我尝试在 ubuntu 上安装 openpi。我有一台 Ubuntu 18.04.4 LTS(64 位)桌面。我使用以下方法安装了 openmpi
sudo apt-get 安装 openmpi-bin openmpi-common openmpi-doc libopenmpi2 libopenmpi-dev openssh-client openssh-server
然后,在 .bashrc 中,我添加了以下两行:
回显导出 PATH="$PATH:/home/$USER/.openmpi/bin" >> /home/$USER/.bashrc
回显导出 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/" >> /home/$USER/.bashrc
之后,我用达特茅斯 你好世界 mpi 编写一个小程序,编译并运行它,通过输入以下内容来检查 openmpi 安装是否正常:gfortran ubuntu.f90
这会导致以下错误
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-mpi-dev就像回答这个问题。 这问题似乎不相关。
答案1
要在 Fortran 程序中包含 C 样式的头文件,您需要使用 C 样式的预处理器指令
#include <mpif.h>
而不是本机 Fortraninclude
语句,然后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
FWIW,您对PATH
和的更改LD_LIBRAY_PATH
可能不会产生任何效果,因为您已经openmpi
使用以下方式安装到系统目录中apt