OpenCL conflict on shared workstation

We have shared linux (OpenSUSE 11.4 x86_64) workstation in our research lab and eight people are suppose to program and run their different OpenCL applications. In a single user environment I never had any trouble, but with eight people something is conflicting. It was my understanding that things should continue to work, just multiple kernels would be serialized (for a given device). However, people are complaining that their programs are failing and their sources won’t compile when they previously did. I found out that for some reason their are thousands of OCL*.so files being created in /tmp, and if I delete them then people can compile their programs, but then again thousands of OCL*.so are created and we’re back to the same problem.

Any ideas what’s happening and a real solution? I’ve got the most recent AMD APP SDK, NVIDIA CUDA SDK, and Intel OpenCL SDK installed and I assume configured properly since it worked when only I was using the system.

Any ideas what’s happening and a real solution?

Whenever you call clBuildProgram() they are compiling and linking a .so file that they store in /tmp/. The code apparently has a race condition and and you get different programs producing the same .so file name at the same time.

I recommend writing a polite letter to their customer support, preferably with a short snippet of code that they can compile and run to reproduce the issue.

As for ways to work around that problem, you could modify the apps so that they try recompiling a few times before bailing out. You can also set up a cron job to kill those .so files every now and then.