【发布时间】:2012-02-18 05:05:50
【问题描述】:
我正在使用ctypes 模块将英特尔 MKL 加载到 python 中,然后我想调用一个需要 openmp 并行化的例程(在我的例子中是pardiso)
我在英特尔网站上找到了this 有用的链接,详细介绍了该过程,我可以运行他们的示例代码,但是当我运行我自己的使用 openmp 线程函数的示例时,程序崩溃并显示消息
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_PATH 和 LD_LIBRARY_PATH,但无济于事,尽管在这些路径中 mkl库和openmp库(英特尔版)。
这里的魔术是什么?
请注意,虽然我也使用numpy,但我还没有针对 mkl 构建numpy。但我怀疑这是否重要,因为我应该能够从 mkl 调用东西而无需首先对 numpy 做任何事情。
【问题讨论】:
标签: python openmp ctypes intel-mkl