我正在尝试使用' mpif90'在Fedora 21中编译一些代码。
首先,我使用' yum'
安装openmpi[root@localhost Inversion]# yum install openmpi
Loaded plugins: langpacks
Package openmpi-1.8.3-2.fc21.x86_64 already installed and latest version
Nothing to do
但是当我使用' make'它不起作用:
[root@localhost Inversion]# make all
mpif90 -O3 -c src/dispersion.f90
make: mpif90: Command not found
Makefile:18: recipe for target 'obj' failed
make: *** [obj] Error 127
正如您所看到的,我已经下载了openmpi包但它不会编译。
答案 0 :(得分:3)
dnf whatprovides "*/mpif90"
告诉你哪个包提供了这个二进制文件。在Fedora中,您可以从openmpi-devel
或mpich
个包中获取它。所以正在运行
yum install openmpi-devel
应该为你做好工作。
答案 1 :(得分:3)
您无法编译,因为您尚未加载必要的模块。
您需要加载环境模块,这是Fedora在使用以下方法安装openmpi时的处理方式:
dnf install openmpi
(在Fedora 25中)
只需按照以下步骤操作:
在您的终端中,执行:
module avail
你应该看到类似这样的输出:
--------------------- /usr/share/Modules/modulefiles ----------------------
dot module-git module-info modules null use.own
---------------------------- /etc/modulefiles -----------------------------
mpi/openmpi-x86_64
请注意,mpi/openmpi-x86_64
模块可供您“加载”。
在您的终端中,您只需:
module load mpi/openmpi-x86_64
现在您可以访问所有mpi编译器,如mpif90
和mpic++
等。您可以看到编译器二进制文件存储在:/usr/lib64/openmpi/bin
:
$ which mpif90
你看到输出是:
/usr/lib64/openmpi/bin/mpif90