Openmpi на Fedora 21
Я пытаюсь скомпилировать некоторый код в Fedora 21, используя 'mpif90'.
Сначала я устанавливаю openmpi с помощью 'yum':
[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, но он не скомпилируется.
2 ответа
Вы не можете скомпилировать, потому что вы не загрузили необходимый модуль.
Вам нужно загрузить модуль среды, вот как 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
dnf whatprovides "*/mpif90"
говорит вам, какой пакет предоставляет этот двоичный файл. В Fedora вы можете получить его от openmpi-devel
или же mpich
пакеты. Так работает
yum install openmpi-devel
должен сделать работу за вас.