Chapter 1. Introducing OpenCL

 

This chapter covers

  • Understanding the purpose and benefits of OpenCL
  • Introducing OpenCL operation: hosts and kernels
  • Implementing an OpenCL application in code

In October 2010, a revolution took place in the world of high-performance computing. The Tianhe-1A, constructed by China’s National Supercomputing Center in Tianjin, came from total obscurity to seize the leading position among the world’s best performing supercomputers. With a maximum recorded computing speed of 2,566 TFLOPS (trillion floating-point operations per second), it performs nearly 50 percent faster than the second-place finisher, Cray’s Jaguar supercomputer. Table 1.1 lists the top three supercomputers.

Table 1.1. Top three supercomputers of 2010 (source: www.top500.org)

Supercomputer

Max speed (TFLOPS)

Processors

Power (kW)

Tianhe-1A 2,566 14,336 Intel Xeon CPUs, 7,168 Nvidia Tesla GPUs 4040.00
Jaguar 1,759 224,256 AMD Opteron CPUs 6950.60
Nebulae 1,271 9,280 Intel Xeon CPUs, 4,640 Nvidia Tesla GPUs 2580.00

What’s so revolutionary is the presence of GPUs (graphics processing units) in both the Tianhe-1A and Nebulae? In 2009, none of the top three supercomputers had GPUs, and only one system in the top 20 had any GPUs at all. As the table makes clear, the two systems with GPUs provide not only excellent performance, but also impressive power efficiency.

1.1. The dawn of OpenCL

1.2. Why OpenCL?

1.3. Analogy: OpenCL processing and a game of cards

1.4. A first look at an OpenCL application

1.5. The OpenCL standard and extensions

1.6. Frameworks and software development kits (SDKs)

1.7. Summary

sitemap