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)

Просто выполните следующие шаги:

  1. В своем терминале выполните:

    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 модуль доступен для загрузки.

  2. В вашем терминале вы просто делаете:

    module load mpi/openmpi-x86_64
    
  3. Теперь у вас есть доступ ко всем 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

должен сделать работу за вас.

Другие вопросы по тегам