Fortran MPI - 无法使现有代码库在新服务器上运行

时间:2014-08-26 01:10:01

标签: compiler-errors fortran mpi fortran90

我正在尝试在新服务器上编译和运行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)上安装了软件包,并没有真正看到任何差异。

任何我应该看的指针都会非常感激。

2 个答案:

答案 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