我有一个使用OpenMPI进行并行计算的Fortran代码。两周前我运行代码时,情况进展顺利。但今天我有这个奇怪的错误:
mpif90 ./nrutil.f90 ./matrix.f90 ./probability.f90 ./random.f90 ./ardiscret.f90
./trans_ind_sub.f90 ./globvar.f90 ./interpolpr.f90 ./viterch.f90 ./viterpr.f90
./bisearch.f90 ./simulate.f90 ./statistics.f90 ./moment.f90 ./main.f90
-g -o output.out
/usr/bin/ld: warning: libibverbs.so.1, needed by /home/wenya/.openmpi/lib/libmpi.so, not found (try using -rpath or -rpath-link)
/home/wenya/.openmpi/lib/libmpi.so: undefined reference to `ibv_read_sysfs_file@IBVERBS_1.0'
/home/wenya/.openmpi/lib/libmpi.so: undefined reference to `ibv_register_driver@IBVERBS_1.1'
collect2: error: ld returned 1 exit status
Makefile:32: recipe for target 'output' failed
make: *** [output] Error 1
这是我的makefile:
#Compiler
fc = mpif90
#Compiler flags
FCFLAGS= -fcheck=all
SRCS= ./nrutil.f90 \
./matrix.f90 \
./probability.f90 \
./random.f90 \
./ardiscret.f90 \
./trans_ind_sub.f90 \
./globvar.f90 \
./interpolpr.f90 \
./viterch.f90\
./viterpr.f90 \
./bisearch.f90\
./simulate.f90 \
./statistics.f90 \
./moment.f90 \
./main.f90 \
output:
$(fc) $(SRCS) -g -o output.out $(LFLAGS) $(LIBS)
debug:
$(fc) $(SRCS) -g -o debug.exe
clean:
rm -rf *.mod *.o *.il *~ \#* PI*
run:
mpirun -np 8 ./output.out
我的操作系统:Ubuntu 16.04.2; GNU Fortran:5.4.0。我想知道OpenMPI安装是否有任何问题。当我输入ompi_info
以获取OpenMPI版本号时,我得到了
ompi_info: error while loading shared libraries: libibverbs.so.1: cannot open shared object file: No such file or directory
这在某种程度上是愚蠢的,因为该计划在两周前顺利进行。有什么想法吗?