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.
Установка
Версия 4.1.1
OpenMPI версии 4.1.1 компилируется в целом аналогично версии 1.6.5 (см. ниже), со следующими нюансами:
- Начиная с версии 4.0 OpenMPI по умолчанию не взаимодействует с сетевой картой Infiniband напрямую, а пытается использовать для этого ПО UCX («an open-source, production-grade communication framework for data-centric and high-performance applications»). Нужно или предварительно скомпилировать и установить UCX, или указать OpenMPI, что с устройствами Infiniband нужно взаимодействовать самостоятельно. Ниже рассматривается второй вариант.
- Параметры скрипта 'configure' должны выглядеть примерно так:
./configure --prefix=/mnt/storage/home/hpcuser10/sw/openmpi-4.1.1-gcc --disable-ipv6 --without-ucx --enable-static --with-tm=/opt/pbs CC=gcc CXX=g++ FC=gfortran
- '--without-ucx' отключает поиск установленного UCX
- '--with-tm' служит для интеграции с Altair PBS Pro
- После выполнения 'make -s install' нужно перейти в поддиректорию etc директории, указанной ранее в параметре '--prefix', и добавить в файл openmpi-mca-params.conf следующую строку:
btl_openib_allow_ib = 1
Версия 1.6.5
Ниже приведён пример самостоятельной компиляции OpenMPI 1.6.5 компилятором gcc, идущим в составе операционной системы. Предполагается, что изначально у пользователя нет никаких индивидуальных настроек переменных PATH или LD_LIBRARY_PATH. Если ранее с помощью утилиты mpi-selector была выбрана какая-то реализация MPI, её следует отключить командой 'mpi-selector --unset'.
- Скачать дистрибутив 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
- Для использования настроить переменные окружения. Например, добавив в ~/.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}