IBM Software Development Kit for Linux on Power (SDK)
The IBM Software Development Kit for Linux on Power (SDK) is a diverse set of tools that are available to enhance the porting, optimizing, analysis, and tuning of applications and libraries for Linux on Power. From optimizing compilers, cross-compilers, and optimized libraries to performance data recording and analysis tools, simulation tools, and emulation environments, getting the best results as quickly as possible gets easier and easier!
Ready to get started?
The IBM Advance Toolchain for Linux on Power is a set of open source compilers, run-time libraries, and development tools, which allows you to take the leading edge advantage of IBMâ€™s latest POWER hardware features on Linux. Included are the latest stable versions of GCC, glibc, Python, Golang, Valgrind (plus instruction tracing), TBB, URCU, Boost, zlib, and more – all optimized for the POWER platform, allowing you to optimize for the POWER platform.
Advance Toolchain for Linux on Power
IBM XL compilers are IBMâ€™s flagship proprietary compiler suite, which IBM uses for reporting SPEC benchmark results on IBM AIXÂ®, IBM z/OSÂ®, and Linux on Power. The following versions of the XL compiler are available:
The Migration Advisor helps with porting Linux-based C/C++ applications to Linux on Power Systems. It scans the application source code and identifies potential migration problems within a C/C++ project, such as source code that will fail to compile or might produce different results when run on Power Systems servers.
FDPR, Source Code Advisor
A sophisticated tool from IBM Research to automatically analyze executables and libraries at runtime, and report any performance-related issues that are detected along with possible remedies.
FDPR and FDPR-wrap:
CPI (cycles per instruction) refers to how many processor cycles are needed to complete an instruction and is a measure of the efficiency of an application on a processor. In the CPI breakdown model, processor performance metrics are broken down hierarchically into sub metrics and finally into individual events. This approach provides a complete view of how the application behaves concerning processor performance. The CPI breakdown tool automates this process, enabling you to access the CPI breakdown model of any C/C++ application on POWER without manually tracking the events and calculating the metrics. Further, the CPI tool can automatically launch new profiling runs of the application for the most-occurring events, drilling down into the code with the most opportunity for performance improvement.
For flexibility in development environments and DevOps, a full cross-compiler is available as part of Advance Toolchain releases. (See Advance Toolchain, above.) Easily build for POWER — on x86!
For even more flexibility in DevOps, QEMU is available as a sophisticated emulation environment, allowing you to run applications that are built for Power, or entire Linux on Power operating systems – from anywhere!
Packages for QEMU emulation of POWER are available with latest versions of Ubuntu (qemu-system-ppc), SUSE (openSUSE qemu-ppc), and Red Hat EPEL (Extra Packages for Enterprise Linux).
Power Functional Simulator
Similar to QEMU, the Power Functional Simulator can emulate a Power system, allowing you to run complete Linux on Power operating systems on an x86 system. Power Functional Simulator can run the complete software stack, from firmware upwards.
Similar to the AIX command of the same name, curt records and reports detailed system utilization statistics, including user time, kernel time, per-IRQ interrupt time, system call counts and timing, idle time, hypervisor call counts and timing, task migrations. Curt is cross-platform.
Similar to the AIX command of the same name, splat records and reports detailed information for an application or system about the usage and contention of application-level locks. Splat is cross-platform.
Performance Simulator, scrollpv, jviewer
The Performance Simulator is a cycle-accurate POWER instruction stream reporting tool. It transforms a POWER instruction trace into a report in which the various stages of each cycle of every instructionâ€™s lifetime is reported. The resulting reports can be viewed with one of the viewers: jviewer and scrollpv.
The pipestat tool operates on the output of the Performance Simulator cycle-accurate timer, performs detailed analysis, and highlights areas that require further study with respect to performance, including hot loops, misaligned short loops, hot long-latency instructions, redundant loads, incorrectly hinted branches, wrongly predicted branches, and store-load conflicts.
The pveclib project provides some well-crafted implementations of useful vector functions, which are not part of the POWER ISA, and implementations of functions from a later version of the POWER ISA for use on earlier processors, which do not have such support.
The Shared Persistent Heap Data Environment (SPHDE) project provides highly tuned implementations of shared memory (shared address space), shared heap, lockless logger, lockless producer-consumer queue, and fast timestamps. SPHDE is cross-platform, is included with the Advance Toolchain, and you can access the project at the following link: