在linux上使用gcc4.7.2安装带有MKL10.3的numpy1.7.1

2021-05-13 15:20:05 发布

您现在位置:Python中文网/ 问答频道 /正文

几天来,我一直试图在linux-2.6.18-308.24.1.el5系统上使用gcc-4.7.2linux-2.6.18-308.24.1.el5系统上安装numpy-1.7.1和{}。不久前,我用同一个编译器用MKL成功地编译了R-3.0.1。在

我修改了numpy-1.7.1中的site.cfg文件,如下所示:

[mkl]
library_dirs = /sb/software/libraries/MKL/10.3/lib/intel64
include_dirs = /sb/software/libraries/MKL/10.3/include
mkl_libs = mkl_rt
lapack_libs =

当我调用python setup.py install时,它找到BLASLAPACKMKL库。在此之前,没有投诉或警告。一旦我试图用numpy做一些事情,它就会崩溃。在

^{pr2}$

这似乎是一个已知的问题(link to source),其中libiomp5不是由libmkl_rt加载的。当我将libiomp5的路径添加到site.cfg中的library_dirs变量时,numpy无法检测所有库。在

我甚至尝试过下面的方法来强制gcc使用它自己的openMP库/头,但是没有用。在

CFLAGS='-fopenmp -lgomp' python setup.py install

在这件事上,如能得到任何帮助或建议,我将不胜感激。请不要犹豫,让我知道我忽略了这个线程中的关键信息。在

编辑:我在x86_64平台上运行。在

2条回答
网友
1楼 ·

您需要将路径添加到libomp5:composer_xe_install_path/compiler/lib/intel64 去你的图书馆路。对我来说,路径是:/opt/apps/intel/16.1/compilers_and_libraries_2016.1.150/linux/compiler/lib/intel64

网友
2楼 ·

libiomp5的路径添加到LD_MODULES_PATH环境中。我当前使用的服务器使用modules库来管理服务器范围内的应用程序和库。我以前只使用了独立的MKL/10.3模块,但是用它代替ifort_icc/13.0(它也包含MKL)增加了icc相关的路径到LD_MODULES_PATH。使用上面描述的相同的site.cfg似乎可以工作,numpy运行测试套件。在

我不知道这是否是最优雅的解决方案,但它现在可以解决问题。在

相关问题