Does Clang v5.0.0 OpenMP Implementation recognize OMP_PLACES=threads env variable?

Clang v5.0.0 is stated to be based on OpenMP 3.1 and some 4.0. Did it pick up OpenMP 4.0’s introduction of the “OMP_PLACES=threads” environment variable?

Yes, the LLVM OpenMP runtime supports Thread Affinity as introduced by OpenMP 4.0. However one possible problem might be that the library can't determine your machine's hardware topology (mapping of OS processors to threads, cores, sockets...). This should work fine for x86_64 and PPC64 on Linux and probably on Windows. Any other combination might require changes to the detection routines.

You can run your program with KMP_AFFINITY=verbose which should give enough details to understand what the library does. I'd experiment with setting the variables (OMP_PLACES, OMP_PROC_BIND) to different values and see what happens.

Hope this helps,
Jonas