The IBM SDK for Linux on Power provides you with an all-in-one solution for developing software on IBM Power servers. It integrates the IBM Eclipse SDK with several open source and IBM tools in a single IDE (Integrated Development Environment), allowing easy development, build, debug, analyze and packaging of software on Power servers.
Developing applications with IBM Eclipse SDK
The IBM SDK for Linux on Power provides you with the IBM Eclipse SDK along with the C/C++ Development Tools to easy develop, build and debug applications. Several of IBM tools discussed in next sections are integrated into the IDE though a set of eclipse plug-ins. The IDE also bundles plug-ins from the Eclipse Linux Tools project that integrates following open source development tools into the GUI:
While the Linux Tools plug-ins improves the usability of several commonly used Linux command line tools, the key plug-ins for performance analysis and application tuning are OProfile and Valgrind.
Analyzing applications with Valgrind
The IBM SDK for Linux on Power provides Eclipse integration with Valgrind, which is an open source framework for building dynamic analysis tools. Valgrind also provides a suite of tools to debugging and profiling of applications, and so supported SDK tools are memcheck, Helgrind and cachegrind.
Memcheck detects memory management problems in your application, reporting these errors as they occur. Memcheck gives the source line number at which the error occurred, and a stack trace of the functions called up to that line. Problems detected by Memcheck include the following:
Helgrind is a thread analysis and problems detector for POSIX Pthreads. Problems detected by Helgrind include the following:
Cachegrind is a cache and branch-prediction profiler. Cachegrind identifies the number of cache misses, memory references, and instructions executed for each line of source code.
Profiling applications with Oprofile
OProfile is a system-wide and low overhead profiler for Linux systems that allows for the analysis of applications performance and the identification of code hot spots. The IBM SDK for Linux on Power provides Eclipse integration with Oprofile, to allow you to profile running applications.
Profiling applications with Perf
Perf is a tool that uses information produced by the Linux kernel perf events subsystem to profile a running application. The IBM SDK for Linux on Power provides Eclipse integration with Perf.
Leveraging IBM Advance Toolchain for Linux on Power
IBM Advance Toolchain for Linux on Power provides the latest tested and supported GNU Compiler Collection (GCC) compiler versions for Power Systems servers, and is packaged with a set of processor-tuned runtime libraries. With IBM Advance Toolchain for Linux on Power, you can build and debug applications leveraging latest and greatest toolchain for Linux. You can also take advantage of the tuning assistant, which helps you choose advanced compiler options to tune your application for Power Systems servers running Linux.
Analyze and improve applications performance with FDPR and SCA
The IBM SDK for Linux on Power provides Eclipse integration of two related tools: Source Code Advisor (SCA) and the Feedback Directed Program Restructuring tool (FDPR).
FDPR implements feedback-directed post-link program analysis and optimization technology. It works similarly to a compiler: it reads a linked executable program (or shared library), execute an instrumented version of it in order to collect execution profile and finally produces an optimized version of it.
SCA finds and visualizes performance problems in the application source code, using information produced by using FDPR. It alerts you to problems, and provides you with tips for restructuring source code and modifying build settings.
POSIX Pthreads monitoring tool and trace analyzer
Trace Analyzer allows graphic visualization and analysis of POSIX Threads (Pthreads) concurrency by using information that is generated with a Pthread monitoring tool. The concurrency information includes synchronization using mutexes, spinlocks, and conditional variable signaling.
With the Trace Analyzer, you can perform the following analysis tasks:
The IBM SDK for Linux on Power integrates Eclipse with Trace Analyzer and Pthread monitoring tool.
Migrate applications with Migration Advisor
The IBM SDK for Linux on Power includes a Migration Advisor eclipse plug-in to help in moving Linux applications from x86 systems to Power Systems servers. The advisor uses the Eclipse C/C++ Development Tools code analysis tool to locate potential migration problems within a project, such as endianess, x86-specific compiler builtins, inline assembly, data type differences and more. It can also suggest changes on source code (quick fixes) to solve some of the problems it detects.
Migration Advisor quick fix
New in this release of the SDK for Linux on Power is Quick Fix for the Migration Advisor plug-in. This new function of Migration Advisor allows the tool to propose quick fixes in any assembly code that is flagged for incompatibility in Power systems.
Remote synchronized application development
The IBM Software Development Kit for Linux on Power is available as two different packages, providing you with two different development modes.
The IBM SDK for Linux on Power server development package allows you to use the IBM SDK for Linux on Power directly on the Power Systems server. To run the IBM SDK for Linux on Power server development package, you start the IBM SDK for Linux on Power on the Power Systems server, and use X11 forwarding or Virtual Network Computing (VNC) from an x86-64 workstation to view the IBM SDK for Linux on Power to build, execute, debug, and analyze programs.
With the IBM SDK client for remote development package, you can start the SDK x86_64 client on a personal computer. You can then connect to a remote Power Systems server that has the IBM SDK for Linux on Power server-side agent installed to build, execute, debug, and analyze programs.
Further aiding software development for POWER7 systems, the IBM Software Development Kit for Linux on Power allows you to profile C/C++ applications by means of the CPI Breakdown plug-in. It profiles the application by using the CPI (cycles per instructions) breakdown model for POWER7 Systems, showing a complete diagnosis of the application performance.
Integrated bug reporting
The IBM SDK for Linux on Power includes integrated bug reporting, which allows you to create a report that contains source code, error markers, and logs to be posted in the IBM developerWorks Linux on Power Community message board. You can include specifics about your question or problem.
You can submit questions and review technical information about the IBM SDK for Linux on Power in the IBM developerWorks Linux on Power Community. You can go directly to the Linux on Power Community page, or go to IBM developerWorks and search for the "Linux on Power community group".
Provides a coding assistant that helps with code completion, function templates, and context-sensitive information for some of Advance Toolchain provided libraries and the altivec (vector) API when using the C/C++ editor.
IBM POWER8 Functional Simulator
The IBM POWER8 Functional Simulator aims to simulate the architectural behavior of a POWER8 system on a 64-bit x86 host. This will allow users to develop and debug software designed to run on POWER8-based systems without needing access to actual hardware. It provides an instruction accurate functional model of the POWER8 core(s) along with generalized models of main memory, disk, network, and a system console such that an operating system such as Linux can be booted on the simulated system. Note that while the IBM POWER8 Functional Simulator serves as a full instruction set simulator for the POWER8 processor, it may not model all aspects of the IBM Power Systems POWER8 hardware and thus may not exactly reflect the behavior of the POWER8 hardware.
System Grokking Technology (SGT)
The IBM System Grokking Technology plug-in aims to help users detect code that may behave differently on platforms with different endianness. It helps porting C/C++ projects from x86_64 (Little Endian) to POWER (Big Endian). SGT executes a deep analyses regarding endianness issues on union data structures.