OpenCL

Stands for "Open Computing Language." OpenCL is an open standard for cross-platform, parallel programming. It was originally developed by Apple in 2008 and is now maintained by the Khronos Group. The first major operating system to support OpenCL was Snow Leopard (Mac OS X 10.6), which was released in 2009.

OpenCL provides an API that allows software programs to access multiple processors simultaneously to perform parallel processing. Examples include CPUs, GPUs, digital signal processors (DSPs), and field-programmable gate arrays (FPGAs). By distributing the computing load across multiple processors, OpenCL increases processing efficiency and can substantially improve a program's performance.

While OpenCL supports many different types of processors, it is most notably used to access the GPU for general computing tasks. This technique, also called GPGPU, takes advantage of the GPU's processing power and allows it to assist the CPU in completing calculations. Before OpenCL, the graphics processor would often remain idle while the CPU was running at full capacity. OpenCL enables the GPU to assist the CPU in processing non-graphics-related computations.

In order to take advantage of OpenCL, both the hardware and software must support the OpenCL API. Because of the performance advantage OpenCL provides, most video cards developed by NVIDIA and AMD now support OpenCL. Many mobile graphics processors, such as those used in smartphones and tablets, support OpenCL as well.

Updated June 26, 2015 by Per C.

quizTest Your Knowledge

What verb means searching for Wi-Fi networks from a moving vehicle?

A
Wiflying
0%
B
Wardriving
0%
C
Mobilehacking
0%
D
Autoscreening
0%
Correct! Incorrect!     View the Wardriving definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of OpenCL on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.