Как изменить переменные среды для OpenMPI?

У меня установлена Ubuntu 20.04 и мне нужно установить OpenMPI 3.1.6 с gcc 8.4.0.

Я скачал tar-архив с OpenMPI и установил его с помощью следующей команды

tar-xzf openmpi-3.1.6.tar.gz && cd openmpi-3.1.6
PARGS="env CC=/usr/bin/gcc FC=/usr/bin/gfortran CXX=/usr/bin/g++"
ARGS=" --enable-shared --enable-mpi-fortran=usempi"
ARGS+=" --enable-mpi-thread-multiple"
ARGS+=" --prefix=/openmpi/3.1.6/gcc/8.4.0"
mkdir -p build && cd build
$PARGS ../configure $ARGS
$PARGS make -j8 && make install

Он установился просто отлично, без проблем. Но когда я пытаюсь

mpirun --version

я получаю следующую ошибку

Команда 'mpirun' не найдена, но может быть установлена с помощью:

и затем предлагает различные варианты с помощью sudo apt-get (именно так я установил его изначально, но он не поддерживает 3.1.6).

Я предположил, что это связано с переменными среды, что Linux просто не может найти программу. Поэтому я пошел искать и нашел, что в FAQ по OpenMPI упоминается следующее:

"предполагая, что вы уже изменили свои переменные окружения PATH и/или LD_LIBRARY_PATH на новое место, где теперь находится Open MPI"

... но затем там не говорится, как это сделать. Я пробовал искать, но там говорится о всевозможных ~/.FILE (где файл - это bash или lib64 или lib32 или другие файлы).

Что я должен изменить в переменных окружения и в каком файле? Я использую терминал Ubuntu практически для всего.

============================================ Спасибо, ubfan1! Мне пришлось добавить следующее в /.profile:

# set the OpenMPI path
export OMPI=/openmpi/3.1.6/gcc/8.4.0
export PATH=$PATH:$OMPI/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OMPI/lib

И теперь все работает! Моя система может найти mpirun и версия 3.1.6!

2
задан 21 August 2021 в 01:40

1 ответ

Посмотрите в .profile вашего домашнего каталога, чтобы узнать, как добавить что-то в PATH.
Там, где вы установили openmpi, вероятно, есть подкаталоги с именами bin, lib64 и т.д. Например, $HOME/openMPI - это место, где вы выбрали его для установки, поэтому добавьте $HOME/openMPI/bin в PATH в конце вашего .profile: export PATH="$HOME/openMPI/bin:$PATH" Затем добавьте строку:" export LD_LIBRARY_PATH=$HOME/openMPI/lib64 (при условии, что у вас нет существующего LD_LIBRARY_PATH). Теперь, когда у вас есть местоположение ...openMPI/bin в начале вашего PATH, вы можете переопределить стандартные системные команды, поместив туда новые, такие как ссылку с именем gcc на версию gcc-8.4 (которая доступна в 20.04). Если вам нужна версия gcc, недоступная в стандартных пакетах, вы можете просто поместить весь исполняемый файл (откуда бы вы его ни взяли) вместо ссылки. Возможно, вы предпочитаете не переопределять gcc при каждом входе в систему. В этом случае просто настройте скрипт для запуска вместо того, чтобы вносить изменения в .profile.

Обычные проблемы:

  1. Ваш вход в систему не создает оболочку входа, поэтому .profile не выполняется (Обычно это не проблема Ubuntu, но все предложения по внесению изменений PATH в .bashrc связаны с этой проблемой.
  2. Вы сделали .bash_profile, который переопределяет .profile - ну, вы должны знать, если вы это сделали, и изменить .bash_profile вместо этого.
  3. Предложение изменить /etc/alternatives, чтобы изменить системный gcc по умолчанию, в основном разрушит вашу систему при следующем обновлении, когда вам понадобится стандартный, выпущенный, протестированный компилятор.

Ваше дополнение к пути, вероятно, должно начинаться с /, поэтому /home/openmpi/..., а не просто openmpi/.... Однако, посмотрите в каталоге openmpi, есть ли там каталог bin, это тот каталог, который я ожидаю, если там действительно есть исполняемые файлы openmpi для запуска. В него вы можете добавить ссылку gcc на нижний уровень gcc...bin, чтобы держать все программы openmpi вместе. Обратите внимание, что gcc 8.4 доступен как стандартный пакет в Ubuntu 20.04, но если у вашей установки openmpi есть такой пакет, то можно использовать его, просто он не будет получать обновления, если таковые будут.

1
ответ дан 4 September 2021 в 09:28

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

Похожие вопросы: