MPI на главном процессе докера - PullRequest
0 голосов
/ 14 декабря 2018

Рекомендуемый способ работы с horovod и docker: https://github.com/uber/horovod/blob/master/docs/docker.md. В некотором смысле это плохо, поскольку bash рассматривается как основной процесс docker, а процесс python - как вторичный.Docker регистрирует отчет о журналах bash, состояние docker зависит от состояния bash, docker закрывается, если закрывается процесс bash, и т. Д., Поэтому он считает, что его основным процессом является bash, а это должен быть процесс python, который мы запускаем.Можно ли сделать процесс Python основным процессом у всех рабочих докеров, первичных и вторичных?

Я попытался запустить процесс mpirun снаружи вместо запуска mpirun внутри докера, с интерактивной командой запуска docker в качестве команды mpirun (dockerконтейнеры уже были подготовлены с nvidia-docker create):

mpirun -H localhost,localhost \
-np 1 \
-bind-to none \
-map-by slot  \
-x NCCL_DEBUG=INFO \
-x LD_LIBRARY_PATH \
-x PATH \
-x NCCL_SOCKET_IFNAME=^docker0,lo \
-mca btl_tcp_if_exclude lo,docker0 \
-mca oob_tcp_if_exclude lo,docker0 \
-mca pml ob1 \
-mca btl ^openib \
docker start -a -i bajaga_aws-ls0-l : \
-np 1 \
-bind-to none \
-map-by slot  \
-x NCCL_DEBUG=INFO \
-x LD_LIBRARY_PATH \
-x PATH \
-x NCCL_SOCKET_IFNAME=^docker0,lo \
-mca btl_tcp_if_exclude lo,docker0 \
-mca oob_tcp_if_exclude lo,docker0 \
-mca pml ob1 \
-mca btl ^openib \
docker start -a -i bajaga_aws-ls1-l

Но это не удалось - процессы не общались через хоровод и работали как независимые процессы.

Знаете ли вы, как мне сделать основной процесс Python Process Docker основным *? 1011 *

1 Ответ

0 голосов
/ 26 декабря 2018

Удалось выполнить это достаточно хорошо с помощью нескольких трюков: * Запуск контейнера с точкой входа, которая работает вечно до тех пор, пока не будет передан sigterm * Запуск mpi-содержимого как другого процесса * Запись вывода в процесс 1 stdout / err, так что журналы докера работают * Наконец моего процесса отправка sigterm процессу 1, так что весь контейнер закрывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...