我是MPI的新手,但我一直在尝试在具有OpenMPI的群集上使用它。我遇到以下问题:
$ python -c "from mpi4py import MPI"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: libmpi.so.1: cannot open shared object file: No such file or directory
我做了一些研究并尝试了一些方法,包括:
module load mpi/openmpi-x86_64
似乎没有任何改变。我的LD_LIBRARY_PATH似乎设置正确,但所需的“libmpi.so.1”不存在。相反,有“libmpi.so.12”:
$ echo $LD_LIBRARY_PATH
/usr/lib64/openmpi/lib:/usr/local/matio/lib:/usr/lib64/mysql:/usr/local/knitro/lib:/usr/local/gurobi/linux64/lib:/usr/local/lib:
$ls /usr/lib64/openmpi/lib
... libmpi.so libmpi.so.12 libmpi.so.12.0.0 libmpi_usempi.so ...
我无法卸载/重新安装mpi4py,因为它在我的虚拟环境之外/我没有权限在普通群集上卸载它。我已经看到了这个:Error because file libmpi.so.1 missing,但不确定如何创建符号链接/不认为我有权修改文件夹。
我有点想法:不确定是否可以在我的virtualenv上单独安装mpi4py,或者我是否可以暂时为mpi4py指定正确的文件?
任何建议都将不胜感激!
更新:我按照建议运行find /usr -name libmpi.so.1 2>/dev/null
,返回usr/lib64/compat-openmpi16/lib/libmpi.so.1
。使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH"/usr/lib64/compat-openmpi16/lib/"
,python -c "from mpi4py import MPI"
运行没有任何问题。但是,如果我尝试mpiexec -np 2 python -c 'from mpi4py import MPI'
,我会收到以下错误:
[[INVALID],INVALID] ORTE_ERROR_LOG: Not found in file ess_env_module.c at line 367
[[INVALID],INVALID]-[[28753,0],0] mca_oob_tcp_peer_try_connect: connect to 255.255.255.255:37376 failed: Network is unreachable (101)
答案 0 :(得分:0)
即使添加到LD_LIBRARY_PATH对我也不起作用。我必须卸载mpi4py,然后根据此处的说明-https://mpi4py.readthedocs.io/en/stable/install.html(使用distutils部分)使用我的mpicc路径进行手动安装