The Wayback Machine - https://web.archive.org/web/20110809160855/http://www.alphaworks.ibm.com/tech/opencl
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: March 31, 2011
Conformant implementation of OpenCL 1.1 Specification

 

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 1.1 Specification. This implementation is for Power hardware running the Linux operating system and has been tested on the IBM BladeCenter QS22 system running Red Hat Enterprise Linux 5.5 or 5.6, IBM Bladecenter JS22, JS23, JS43 running Red Hat Enterprise Linux 5.5, 5.6, or 6.0 and the IBM Power 750, 755 server, IBM BladeCenter PS700, PS701, PS702 running Red Hat Enterprise Linux 6.0 or SuSE Linux Enterprise Server 11 SP1.

Leveraging the optimization and rich functionality of IBMs family of XL compilers, the development kit deploys a new member, the IBM XL C for OpenCL compiler. This compiler delivers high performance application development capability with exploitation of the Cell/B.E., Power6, and Power7 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. The framework allows for parallel programming across a number of devices such as CPUs, GPUs, and accelerators (like the Cell/B.E. SPU). The OpenCL framework and OpenCL C language abstracts the details of the devices enabling programmers to write high performance, portable HPC (High Performance Computing) applications and libraries.

OpenCL includes a language for writing compute kernels and APIs for creating and managing these kernels. The compute kernels are runtime compiled for the targeted device during application execution. 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 on Power consists of the IBM XL C for OpenCL compiler, the OpenCL runtime, sample applications, and user documentation.

How does it work?

OpenCL defines an extended C language for writing compute kernels and a set of 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