Introduction to the SDK for Linux on Power

The IBM® Software Development Kit for Linux on Power (SDK) provides a robust set of tools that enable you to port, optimize, analyze, and tune your C/C++ applications and libraries for Linux on Power.

What’s included in the SDK

Use some or all of the tools described in this article to yield the best results as quickly as possible.

Advance Toolchain

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. Learn more about the Advance Toolchain

XL Compilers

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:

Cross Compiler

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.

Migration Advisor

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. Learn more.

Cycles-per-Instruction Breakdown

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. Learn more.

FDPR and 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.

QEMU

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
  • SUSE Linux Enterprise Server (SLES)
  • RedHat Extra Packages for Enterprise Linux (EPEL)

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.

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.

pipestat

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.

curt

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.

splat

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.

pveclib

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.

SPHDE

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.

Ready to get started ?