I am using the ctypes module to load the Intel MKL into python and then I'd like to call a routine that requires openmp parallelization (pardiso, in my case)
I found this useful link on the Intel sites that details the process, and I can run their example code, but when I run my own example that uses an openmp threaded function, the program crashes with the message
python: symbol lookup error: /opt/intel/Compiler/11.1/072/mkl/lib/em64t/libmkl_intel_thread.so: undefined symbol: omp_get_num_procs
I strongly suspect that loading the libmkl_rt.so doesn't properly trigger a load of libiomp5.so
I have tried adding the Intel MKL library paths (and the "normal" Intel library paths) to both LD_RUN_PATH and LD_LIBRARY_PATH, to no avail, although in these paths both the mkl libraries and the openmp library (intel version) are contained.
What's the magic trick here?
Note that although I also use numpy, I have not built numpy against the mkl. But I doubt that this should matter, because I should be able to call stuff from the mkl without doing anything with numpy in the first place.