我正在尝试在新服务器上编译和运行fortran脚本(适用于我的旧服务器)。如果我通过gfortran跑;它运行愉快。如果我通过mpif90运行;我收到这个错误......
wom@rl-womserv:~/$ mpif90 nrutil.f90 minimization.f90 main.f90 -O3 -o mpi.exe; mpiexec -n 2 ./mpi.exe
./mpi.exe: symbol lookup error: /usr/lib/libmpi_f77.so.1: undefined symbol: opal_uses_threads
./mpi.exe: symbol lookup error: /usr/lib/libmpi_f77.so.1: undefined symbol: opal_uses_threads
--------------------------------------------------------------------------
mpiexec noticed that the job aborted, but has no info as to the process
that caused that situation.
--------------------------------------------------------------------------
IA:在我的慢速(工作Ubuntu 12.04.3 LTS,gfortran和mpif90)和快速新版本(Ubuntu 14.04.1 LTS,工作gfortran,破坏的mpif90)上安装了软件包,并没有真正看到任何差异。
任何我应该看的指针都会非常感激。
答案 0 :(得分:2)
如果您转移到新系统,您可能已经从一个MPI实施转移到另一个实施。
容易忘记关于MPI的一件事是,它是一个标准,而不是一个库。您最初使用Open MPI编译代码(从opal
的引用中可以明显看出),但您可能已经转移到使用MPICH(或其他类似Intel MPI)的系统。
从来回移动代码不是问题(只要您只使用标准MPI功能而不是扩展程序)它应该是可移植的,但是如果你要去在Open MPI和MPICH之间,您必须在新机器上重新编译代码。
仅供参考:对于某些实施,根据MPICH ABI Compatibility Initiative,这不再是真实的。
答案 1 :(得分:0)
原来我的库路径错了。
export PATH =“$ PATH:/opt/openmpi-1.8/bin” export LD_LIBRARY_PATH =“$ LD_LIBRARY_PATH:/opt/openmpi-1.8/lib”
在我的个人资料中,一切都很好。谢谢你看......:)
-Chris