Skip to main content

OpenCL Development Kit for Linux on Power

OpenCL - The open standard for parallel programming of heterogeneous systems

Date Posted: October 30, 2009

alphaworks tab navigation


 

Update: December 10, 2009
OpenCL bug fixes and enhancements

 

What is OpenCL Development Kit for Linux on Power?

OpenCL™ is the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices.

Open Computing Language(OpenCL) greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories from gaming and entertainment to scientific and medical software.

OpenCL supports a wide range of applications, from embedded and consumer software to HPC solutions, through a low-level, high performance, portable abstraction. By creating an efficient, close-to-the-metal programming interface, OpenCL will form the foundation layer of a parallel computing ecosystem of platform-independent tools, middleware and applications.

The OpenCL Development Kit for Linux on Power is an IBM implementation of the OpenCL Specification, Version 1.0. This implementation is for Power hardware running the Linux operating system and has been tested on the IBM BladeCenter QS22 systems running Fedora 9 and on the IBM BladeCenter JS23 systems running Red Hat Enterprise Linux 5.3.

The IBM XL C for OpenCL compiler leverages the optimization technology and rich functionality in the IBM family of XL compilers. This compiler delivers high performance application development capability with exploitation of the QS22 and JS23 hardware architectures.

The OpenCL Specification is an open standard managed by the Khronos Group consortium, which manages other open industry standards such as OpenGL for graphics. OpenCL is a framework and language for parallel programming that takes advantage of heterogeneous processing platforms. OpenCL allows for parallel programming across a number of devices such as CPU, GPU and accelerators. The OpenCL framework and OpenCL C language abstracts the details of the devices which enables programmers to write portable HPC (High Performance Computing) applications and libraries to take advantage of the processing power of multiple heterogeneous compute devices on a system.

OpenCL includes a language for writing compute kernels and APIs for creating and managing these kernels. The compute kernels are compiled, with a runtime compiler, which compiles them on-the-fly during host application execution for the targeted device. This enables the host application to take advantage of all the compute devices in the system with a single set of portable compute kernels.

The OpenCL Development Kit for Linux consists of the OpenCL Development Kit for Linux on Power libraries along with sample applications, documentation. The IBM XL C for OpenCL compiler is used to compile compute kernels that exploit the performance capability of the hardware.

How does it work?

OpenCL includes a language for writing compute kernels and APIs for creating and managing these kernels. The compute kernels are compiled, with a runtime compiler, which compiles them on-the-fly during host application execution for the targeted device. This enables the host application to take advantage of all the compute devices in the system with a single set of portable compute kernels.

About the technology author(s)

The OpenCL Development Kit for Linux on Power and IBM XL C for OpenCL compiler have been developed by teams in IBM consisting of the HPC Multicore Software Development team in Austin TX, Rochester MN and Poughkeepsie NY, the XL C Compiler team in Toronto ON, Canada, with assistance from the Compiler Research team in the Watson Research Lab in Yorktown Heights, NY.

Trademarks