OpenCL - Open Computing Language is a standard for programming heterogeneous systems, e.g. CPU and GPU, and supports data and task parallelism. It defines abstract platform, execution, memory and programming models that describe features and behaviour of the target system. The heterogeneous system consists of a host system and one or more OpenCL devices containing processing elements. The host application controls communication with devices and both in order and out of order execution of compute kernels instances in the form of threads. The kernels are written using OpenCL C/C++ extension.
Related program(s): CPU to GPU