OpenCL is standard for cross-platform hardware-independent parallel programming:
http://www.khronos.com/opencl/

Current OpenCL packaging in Debian assumes that there can be many
different OpenCL implementations present on the system. Each
implementation is supposed to provide package opencl-icd (Installable
Client Driver, ICD) which will allow for client software to chose OpenCL
library to run.
To have working OpenCL you need to have two packages installed,
libopencl1 and opencl-icd:
 * libopencl1 is OpenCL management library which manages all OpenCL providers
 * opencl-icd points to particular OpenCL provider, e.g. Mesa, Beignet,
   AMD, or NVIDIA

While you can install as many of opencl-icd packages as you want (e.g.
both amd-opencl-icd and nvidia-opencl-icd), you can install only one
package providing libopencl1. I recommend using free ocl-icd-libopencl1
against which this package was build as it works well with different
OpenCL providers.  You can still try to use other (non-free) libraries,
e.g. amd-libopencl1 or nvidia-libopencl1, but those are less stable and
there have been problems with running them, especially while having many
ICD installed.

As packages is in main, it depends on mesa-opencl-icd (also in main) or
other opencl-icd package. If you do not have any opencl-icd installed,
apt will install mesa-opencl-icd. If it does not work and you have Intel
GPU you can install beignet which provides OpenCL support for Intel
hardware.  If you want to use PyOpenCL with other hardware (AMD or
NVIDIA) you'll need to install appropriate package from non-free
providing opencl-icd.

Error in function dlGetPlatformIDs means that there is no OpenCL
implementation available on the system.

