我试着在ubuntu上安装openpi。我有一个Ubuntu18.04.4LTS (64位)桌面。我安装openmpi时
sudo apt-获取安装openmpi-bin openmpi-通用openmpi-doc libopenmpi2 libopenmpi-dev openssh-客户端openssh-server
然后,在.bashrc中,我添加了以下两行:
回送导出LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/“PATH=”$PATH:/home/$USER/..openmpi/bin“>> /home/$USER/..bashrc回送导出>> /home/$USER/..bashrc
之后,我使用达特茅斯你好世界mpi编写了一个小程序,编译它并运行它,通过输入gfortran ubuntu.f90来检查openmpi安装是否正常。
这将导致以下错误
ubuntu.f90:2:错误:无法打开包含的文件'mpif.h‘
ubuntu.f90中的代码:
program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end我尝试过安装libblacs dev,就像对这个问题的回答一样。这个问题似乎与此无关。
发布于 2020-03-01 13:44:12
若要在Fortran程序中包含C样式的头文件,需要使用C样式的预处理器指令。
#include 而不是使用本机Fortran include语句,然后告诉gfortran通过添加-cpp命令行开关来运行预处理器(或者将源文件后缀更改为大写F90,这将导致预处理器默认运行)。例如见
但是,显然不推荐使用mpif.h,而应该使用MPI模块,使用mpif90来编译程序,而不是直接调用gfortran。
例如。
$ cat ubuntu.f90
program hello
use mpi
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end
$ mpif90 ubuntu.f90
$ ./a.out
node 0 : Hello world,您对PATH和LD_LIBRAY_PATH的更改可能没有任何影响,因为您已经使用apt将openmpi安装到系统目录中。
https://askubuntu.com/questions/1214043
复制相似问题