IBM Software Development Kit for Linux on Power (SDK)
The IBM Software Development Kit for Linux on Power (SDK) is a free, Eclipse-based Integrated Development Environment (IDE). The SDK integrates C/C++ source development with the Advance Toolchain, Post-Link Optimization, and classic Linux performance analysis tools, including Oprofile, Perf and Valgrind.
Ready to get started?
The Build Advisor scans project build output and reports opportunities where “best practices” may be implemented for improved results. It looks for compilers (type and version), optimization levels, processor-specific optimization, and other compiler and linker flags.
The Migration Advisor scans the project source code and reports issues which are likely portability and/or performance issues, including non-portable compiler intrinsics, non-portable API calls, non-portable assembly, preprocessor masking of architecture-specific optimizations, endian issues, sub-optimal intrinsics, etc. In addition, the Migration Advisor suggests likely remedies for these issues. For many issues, the Migration Advisor offers to implement the remedy directly in the source code with a single click. Further, the Migration Advisor can automatically implement all high-confidence remedies directly in the source code with no additional clicks.
Source Code Advisor
The Source Code Advisor leverages technology produced by IBM Research to analyze the run-time characteristics of a program for performance issues which cannot be determined at compile-time. These issues are reported with explanations and suggestions for possible remedies. In addition, for most issues, the Source Code Advisor offers to implement the remedy directly in the source code with a single click.
Power Performance Advisor
The Power Performance Advisor profiles a running application to collect POWER-specific hardware performance counters and presents statistics in logical groups, including cache use efficiency, instruction rejections (processor pipeline congestion), branch prediction efficiency, instruction mix, and memory locality (NUMA effects).
Cycles-per-Instruction Breakdown & Drill-down
CPI Breakdown Model profiles a running application and presents a hierarchical set of processor-specific hardware events and metrics which shows how efficiently processor resources are being used. Areas of inefficiency become evident for deeper investigation. CPI Drill-down facilitates that investigation by launching the application scenario while profiling for a user-selected hardware event from the CPI Breakdown Model, showing areas of the project most impacted by the inefficiencies directly to the lines of source code.
Valgrind & other Linux Tools
Other familiar and powerful tools are integrated into the IDE for convenience and ease-of-use, including Valgrind, gcov, gprof.
A full Power-based development environment is available even in the absence of a Power system. The SDK can make use of the IBM Advance Toolchain’s cross-compiler to build application binaries for Power systems.
A user-mode Power emulation environment is provided using QEMU, allowing one to build (with a cross-compiler) and run Power application binaries without need for access to a Power system.
Power Functional Simulator
A full-system Power emulation environment is provided using the IBM Power Functional Simulator, allowing one to build and run Power application binaries without need for access to a Power system. The emulated system runs on the desktop system, and functions just like a “remote, synchronized” system.
The familiar Linux-based performance analysis tools, perf and OProfile, are integrated within the SDK to provide quick and easy profiling of applications. Presentation of results is in a space-efficient hierarchical layout, which can be expanded down to the line of source code or even the hardware instruction.
Local and remote/synchronized operating modes
The SDK can operate in several convenient modes:
- “Local”: Run the SDK directly on the Power system. Remote display of the SDK user interface can be achieved through commonly available technologies like VNC, SSH tunneling of X-Windows protocol, or X-Windows protocol directly over the network.
- “Remote, synchronized”: Run the SDK on any (Linux-based) desktop and interact seamlessly with a remote Power system. Project files are synchronized between the two environments, so the SDK interface and all file interactions are local for best interactivity.
- “Local, emulated”: Run the SDK on any (Linux-based) desktop and run Power binaries on the same desktop through emulation technologies. Both QEMU (user-mode emulation) and the IBM Power Functional Simulator (full system simulation) are provided. In this mode, one can develop and port applications without need for Power hardware.
Trace Analyzer runs a program with libraries instrumented to collect trace information related to pthread, mutex, and I/O operations. It can process such a trace file and graphically display program-wide time-relative events as a process flow. The graphical display includes:
- pthread operations (create, destroy, join)
- mutex operations (lock, wait, unlock)
- condition variable operations
- I/O operations
- statistics related to all of the above