Tutorial: OpenCL* - Introduction for HPC Programmers

Published: 03/21/2011, Last Updated: 03/21/2011

To the Intel® SDK for OpenCL* Applications main page


OpenCL* is an important new standard for heterogeneous computing. With OpenCL, a software developer can write a single program running on everything: from cell phones to nodes in a supercomputer. To reach its full potential, however, OpenCL needs to deliver more than portability. It needs to deliver "performance portability". In this presentation, we discuss the "performance portability" of OpenCL programs.

Frankly, achieving good "performance portability" can be challenging with the current releases of OpenCL device. This article, in addition to tips for writing "performance portable" code today, discusses possible future enhancements of Intel® SDK for OpenCL Applications to improve "performance portability". You can download the Intel® SDK for OpenCL* Applications (versions for Linux* and Windows* OS) at: http://www.intel.com/go/opencl.

This intends to be hands-on tutorial build upon the Windows* OS release from Intel, but we invite to use Linux* OS version as well.

Click the Download below button to see the tutorial..


Tim's Biography


Tim Mattson is a parallel programmer (Ph.D. Chemistry, UCSC, 1985). The recurring theme of his career is to do whatever it takes to meet the needs of parallel application programmers.

Tim has been with Intel since 1993 where he has worked with brilliant people on great projects including:

  • the first TFLOP computer (ASCI Red)
  • the OpenMP API for shared memory programming
  • the OpenCL programming language for heterogeneous platforms
  • programming Intel's first TFLOP chip (the 80 core research chip)
  • Intel’s 48 core, SCC research processor

Tim has published extensively including the books Patterns for Parallel Programming (with Beverly Sanders and Berna Massingill, Addison Wesley, 2004) and An Introduction to Concurrency in Programming Languages (with Matthew J. Sottile and Craig E Rasmussen, CRC Press, 2009), and the OpenCL Programming Guide (with Aaftab Munshi, Ben Gaster, James Fung, and Dan Ginsburg, Addison Wesley, summer 2011).

* OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804