Composer 2013 Update 3 and OpenCL

I had the problem that after installing the Update 3 for the Composer 2013 I wasn’t able to execute my OpenCL programs any more. Debugging told me that already the function clGetPlatformIDs returns error status -1001 and so no OpenCL device in my system could be found. I realized that I was able to run applications which where compiled with gcc. But at the point where I sourced the intel compilervariables via

source /opt/intel/composer_xe_2013/bin/compilervars.sh intel64

my OpenCL devices disappeared. I played a little bit around but only could reach a point where I recognized that their is no error, when I comment out the debugger variables file in compilervars.sh. But at this point I ran out of ideas (and especially knowledge of the instrinsics of the Intel software and configuration). But in Intel forum I got the solution from Evgeny Fiksman [1]:

The problem may happen because of mismatch in TBB binaries. After sourcing of compilervars the LD_LIBRARY_PATH is updated with a path to TBB binaries provided with ICC installation.

Since LD_LIBRARY_PATH overides RUNPATH used in the OpenCL binaries, the TBB binaries from the ICC installation are used.

Please include the path wherein OpenCL binaries are installed before ICC path in the LD_LIBRARY_PATH.

So I need the following command sequence to get OpenCL running together with the Update 3 of the composer:

source /opt/intel/bin/compilervars.sh intel64
export LD_LIBRARY_PATH=/opt/intel/opencl-1.2-3.0.56860/lib64:$LD_LIBRARY_PATH

So if someone has the same issue: try this.

Sources:
http://software.intel.com/en-us/comment/1734158#comment-1734158