Article | REF: H3160 V1

OpenCL : Open Computing Language

Author: Frédéric LEMOINE

Publication date: August 10, 2013, Review date: May 2, 2016 | Lire en français

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!

Automatically translated using artificial intelligence technology (Note that only the original version is binding) > find out more.

    A  |  A

    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 article

    AUTHOR

    • 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.

    You do not have access to this resource.

    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

    A Comprehensive Knowledge Base, with over 1,200 authors and 100 scientific advisors
    + More than 10,000 articles and 1,000 how-to sheets, over 800 new or updated articles every year
    From design to prototyping, right through to industrialization, the reference for securing the development of your industrial projects

    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

    Subscribe now!

    Ongoing reading
    Programming heterogeneous parallel systems
    Outline