从python调用MKL的线程函数:找不到openmp库?

时间:2012-01-24 22:56:53

标签: python openmp ctypes intel-mkl

我正在使用ctypes模块将英特尔MKL加载到python中,然后我想调用一个需要openmp并行化的例程(在我的情况下为pardiso

我在英特尔网站上找到了this有用的链接,详细说明了这个过程,我可以运行他们的示例代码,但是当我运行我自己的使用openmp线程函数的示例时,程序崩溃并显示消息< / p>

python: symbol lookup error: /opt/intel/Compiler/11.1/072/mkl/lib/em64t/libmkl_intel_thread.so: undefined symbol: omp_get_num_procs

我强烈怀疑加载libmkl_rt.so并未正确触发libiomp5.so

的加载

我尝试将英特尔MKL库路径(“普通”英特尔库路径)添加到LD_RUN_PATHLD_LIBRARY_PATH,但无效包含mkl库和openmp库(intel版本)的路径。

这里的魔术是什么?

请注意,虽然我也使用numpy,但我没有针对mkl构建numpy。但我怀疑这应该是重要的,因为我应该能够从mkl调用东西,而不是首先使用numpy做任何事情。

1 个答案:

答案 0 :(得分:3)

NVM,原来我安装了旧版MKL。

按照我为10.3之前的版本提供的链接上的说明,我已经启动并运行了。