Как разрешить рабочим узлам MPI читать свои собственные переменные среды? - PullRequest
0 голосов
/ 20 июня 2020

Я использую OpenMPI и mpirun, и мои процессы MPI разделены между несколькими Docker контейнерами. Каждый контейнер Docker запускает свой собственный процесс, который имеет переменную среды, скажем, FOO, где $FOO (т.е. его значение) различается в зависимости от контейнера. На главном узле запущен процесс, вызывающий mpirun. Есть ли способ заставить каждый рабочий узел иметь FOO, установленный в его процессе MPI в команде mpirun?

Мой вопрос отличается от этого тем, что значения переменные среды могут отличаться от контейнера к контейнеру. Использование -x в команде mpirun экспортирует значение главного узла для переменной среды, так что это не работает для того, что я пытаюсь сделать.

edit: исправлено для уточнения на основе комментария

1 Ответ

0 голосов
/ 30 июня 2020

Публикация на случай, если это окажется полезным для кого-то еще -

Я решил эту проблему, записав переменные среды в /etc/environment перед запуском процесса MPI. Мои изображения Docker используют Ubuntu в качестве основы, а /etc/environment соблюдается даже в неинтерактивной оболочке без входа в систему (это то, что использует MPI).

...