Рейтинг:2

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

флаг cn

У меня установлена ​​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 ../настроить $ARGS
$PARGS сделать -j8 && сделать установить

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

mpirun --версия

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

Команда «mpirun» не найдена, но ее можно установить с помощью:

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

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

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

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

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

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

# установить путь OpenMPI
экспорт OMPI=/openmpi/3.1.6/gcc/8.4.0
экспорт PATH=$PATH:$OMPI/bin
экспорт LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OMPI/библиотека

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

N0rbert avatar
флаг zw
Что не так с OpenMPI 4.0.3 из [официальных репозиториев] (https://packages.ubuntu.com/focal/libopenmpi-dev)? Какова ваша окончательная идея?
sfwalter avatar
флаг cn
Программное обеспечение, которое я использую, не работает с OpenMPI новее 3.1.6. Это исследовательский код, поэтому он не обновляется при обновлении других пакетов.
Рейтинг:1
флаг cc

Посмотрите в .profile своего домашнего каталога, чтобы узнать, как добавить что-то в свой PATH.
Там, где вы установили openmpi, вероятно, есть подкаталоги с именами bin, lib64 и т. д. Например, вы выбрали $HOME/openMPI для его установки, поэтому добавьте $HOME/openMPI/bin в свой PATH в конце вашего .profile: экспорт PATH="$HOME/openMPI/bin:$PATH" Затем добавьте строку: " экспорт 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, его можно использовать, просто он не получит никаких обновлений, если таковые имеются.

sfwalter avatar
флаг cn
Спасибо вам большое за это. В чем я не уверен... в моем .profile есть такие вещи, как следующее: # установить PATH, чтобы он включал личную корзину пользователя, если она существует если [ -d "$HOME/bin" ] ; тогда PATH="$HOME/bin:$PATH" фи Так бы я добавил # установить PATH для OpenMPI (обратите внимание, что это не в $HOME/openmpi, а на один каталог выше... это проблема? если [-d "openmpi/3.1.6/gcc/8.4.0/bin"]; тогда PATH="openmpi/3.1.6/gcc/8.4.0/bin:$PATH" фи Это выглядит правильно?
sfwalter avatar
флаг cn
Это сработало! # установить путь OpenMPI экспорт OMPI=/openmpi/3.1.6/gcc/8.4.0 экспорт PATH=$PATH:$OMPI/bin экспорт LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OMPI/библиотека
флаг cc
Вам будет проще добавить к исходному сообщению, и вы сможете отформатировать его как код.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.