OpenMPI: различия между версиями

Материал из ALT Linux Wiki
(Каталог с бинарниками переехал.)
Строка 1: Строка 1:
= Особенности =
= Особенности =
* В сборке Open MPI для ALT LInux по-умолчанию включен флаг "--no-as-needed" для компиляции пользовательских программ
* В сборке Open MPI для ALT LInux по умолчанию включен флаг "--no-as-needed" для компиляции пользовательских программ
* Бинарники находятся в каталоге {{path|/usr/lib64/openmpi}}, имеет смысл добавить его в {{cmd|$PATH}}
* Бинарники находятся в пакете {{pkg|openmpi-devel}} и лежат каталоге {{path|/usr/lib64/openmpi/bin}}, имеет смысл добавить его в {{cmd|$PATH}}


= Компиляция =
= Компиляция =

Версия от 22:22, 22 октября 2022

Особенности

  • В сборке Open MPI для ALT LInux по умолчанию включен флаг "--no-as-needed" для компиляции пользовательских программ
  • Бинарники находятся в пакете openmpi-devel и лежат каталоге /usr/lib64/openmpi/bin, имеет смысл добавить его в $PATH

Компиляция

Используется mpicc, mpic++ (mpicxx), mpif77 (mpif99) в зависимости от языка.

Просмотр правил компиляции

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

 mpicc --showme

Посмотреть команду вызова компилятора

 -showme:command

Посмотреть флаги, которые добавляются во время компиляции

 -showme:compile

Посмотреть флаги, которые добавляются во время связывания (линковки)

 -showme:link

Посмотреть список директорий include, используемых во время компиляции

 -showme:incdirs

Посмотреть список директорий библиотек, используемых во время связывания (линковки)

 -showme:libdirs

Посмотреть список библиотек, добавляемых во время связывания (линковки)

 -showme:libs

Посмотреть версию Open MPI

 -showme:version

Флаги компилятора и линкера

Дополнительные флаги могут быть добавлены с помощью префикса 'OMPI_' Например:

 OMPI_CFLAGS
 OMPI_LDFLAGS

Пример включения "--as-needed"

 export OMPI_LDFLAGS="-Wl,--as-needed,-Rpath=/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib"

или, если версия Open MPI заранее неизвестна:

 export OMPI_LDFLAGS="`mpicc -showme:link | sed s/"--no-as-needed"/"--as-needed"/`"