首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到错误[安装openmpi]

未找到错误[安装openmpi]
EN

Ask Ubuntu用户
提问于 2020-03-01 11:29:25
回答 1查看 2.6K关注 0票数 2

我试着在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中的代码:

代码语言:javascript
复制
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,就像对这个问题的回答一样。这个问题似乎与此无关。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-03-01 13:44:12

若要在Fortran程序中包含C样式的头文件,需要使用C样式的预处理器指令。

代码语言:javascript
复制
#include 

而不是使用本机Fortran include语句,然后告诉gfortran通过添加-cpp命令行开关来运行预处理器(或者将源文件后缀更改为大写F90,这将导致预处理器默认运行)。例如见

但是,显然不推荐使用mpif.h,而应该使用MPI模块,使用mpif90来编译程序,而不是直接调用gfortran

例如。

代码语言:javascript
复制
$ 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

,您对PATHLD_LIBRAY_PATH的更改可能没有任何影响,因为您已经使用aptopenmpi安装到系统目录中。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1214043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档