Overview
ABSTRACT
The OpenCL technology was created in order to program heterogeneous parallel systems and benefit from the whole of their calculating power to accelerate complex data processing. This programming language is used to numerically simulate complex physical phenomena in a growing number of sectors: medicine, bioinformatics and meteorology. This article presents this technology, the compatible hardware, programming methodology and a practical example.
Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.
Read the articleAUTHOR
-
Frédéric LEMOINE: Research engineer at the Conservatoire national des arts et métiers (CNAM) - Application development project manager – IT department
INTRODUCTION
A modern computer today comprises a large number of different processors: one or more general-purpose processors and one or more specialized processors (graphics, signal processing, etc.). This heterogeneity makes programming this machine increasingly complex. What's more, some processors are not used to their full potential. The graphics processor, for example, is under-utilized in office use and could be used for something other than display.
The OpenCL (Open Computing Language) was proposed by Apple to enable programming of heterogeneous parallel systems. It is a language derived from C, with certain extensions and a set of specific functions (API: Application Programming Interface).
It is managed by the Kronos Group. The Kronos Group defines itself as a non-profit industry consortium establishing open standards for parallel computing acceleration, for the creation of graphics content and dynamic media on a wide variety of platforms and devices. All members can participate in API development. This consortium also manages a large number of other standards, such as OpenGL, OpenMax, OpenSL, OpenVG, OpenWF, WebGL...
OpenCL can be used in heterogeneous architectures comprising, for example, CPUs (Central Processing Units), GPUs (Graphics Processing Units), Cell processors (Cell Broadband Engines) or DSPs (Digital Signal Processors).
CPUs (general-purpose) have become multi-core, and their number has increased over the years (4 cores on an Intel Core i7). GPUs (specialized and multi-core) are becoming more and more general-purpose, capable of managing more than just displays.
OpenCL is a programming model at the intersection of these two fields. It unifies and exploits the parallelism of these heterogeneous architectures. It can be integrated on embedded mobile platforms (phones, tablets) or on high-performance computers. It can also interface with graphics APIs such as OpenGL, for example, to display results in real time.
As OpenCL is an industry standard, the application code produced is easily portable from one manufacturer's system to another. In fact, it ignores the specificities of the hardware layer.
In short, OpenCL lets you write a single application, portable from one system to another, using all the heterogeneous resources of the host machine.
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference
This article is included in
Software technologies and System architectures
This offer includes:
Knowledge Base
Updated and enriched with articles validated by our scientific committees
Services
A set of exclusive tools to complement the resources
Practical Path
Operational and didactic, to guarantee the acquisition of transversal skills
Doc & Quiz
Interactive articles with quizzes, for constructive reading
Programming heterogeneous parallel systems
Bibliography
Websites
OpenCL for Nvidia http://www.nvidia.fr/object/cuda_opencl_new_fr.html
Nvidia Corporation Supercomputing with Tesla GPUs http://www.nvidia.com/object/tesla-supercomputing-solutions.html
...Events
GPU Technology Conference. Annual conference on GPU computing and visualization and their importance for the future of science and innovation. http://www.gputechconf.com
Directory
Manufacturers – Suppliers – Distributors (non-exhaustive list)
CARRI Manufacturer, assembler and integrator of computing stations based on the Nvidia Tesla range http://www.carri.fr
Exclusive to subscribers. 97% yet to be discovered!
You do not have access to this resource.
Click here to request your free trial access!
Already subscribed? Log in!
The Ultimate Scientific and Technical Reference