OpenMPI

Установленные версии OpenMPI можно просмотреть и выбрать нужную при помощи утилиты mpi-selector. Если требуется какая-то другая версия, то вы можете самостоятельно скомпилировать её и установить в свою домашнюю директорию с помощью приведённой ниже инструкции.


Для вызова компиляторов используются следующие команды:

  • Для языка C: mpicc. По умолчанию эта команда вызывает системный компилятор gcc. Используемый компилятор можно переопределить с помощью переменной окружения OMPI_CC.
  • Для языка C++ есть три равноценных варианта: mpicxx, mpiCC или mpic++. Компилятор переопределяется переменной окружения OMPI_CXX.
  • Для языка Fortran 77: mpif77. Переменная - OMPI_F77.
  • Для языка Fortran 90: mpif90. Переменная - OMPI_FC.

Ниже приведён пример самостоятельной компиляции OpenMPI 1.6.5 компилятором gcc, идущим в составе операционной системы. Предполагается, что изначально у пользователя нет никаких индивидуальных настроек переменных PATH или LD_LIBRARY_PATH.

  • Скачать дистрибутив OpenMPI с официального сайта на персональный компьютер, затем скопировать на кластер.
  • Разархивировать дистрибутив:
    tar -xjf openmpi-1.6.5.tar.bz2
    cd openmpi-1.6.5
  • При необходимости посмотреть инструкции и возможные параметры компиляции:
    less INSTALL
    ./configure --help | less
  • Сконфигурировать. В параметре 'prefix' указать, куда потом будет производиться установка. Параметр 'disable-openib-connectx-xrc' необходим, т.к. иначе возникнут проблемы с драйверами сети Infiniband:
    ./configure --prefix=/mnt/storage/home/hpcuser10/sw/openmpi-1.6.5-gcc --disable-ipv6 --disable-openib-connectx-xrc CC=gcc CXX=g++ F77=gfortran FC=gfortran
  • Скомпилировать:
    make -s all
  • Установить:
    make -s install


  • Отключить выбор реализации MPI с помощью mpi-selector:
    mpi-selector --unset
  • Настроить переменные окружения, добавив в ~/.bashrc следующие команды:
    openmpi165=/mnt/storage/home/hpcuser10/sw/openmpi-1.6.5-gcc
    export PATH=${openmpi165}/bin:${PATH}
    export LD_LIBRARY_PATH=${openmpi165}/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}
    export MANPATH=${openmpi165}/share/man:${MANPATH}