Основной процесс mpi не убивается при закрытой оболочке - PullRequest
0 голосов
/ 04 мая 2018

Я бегу LAMMPS в параллельном режиме с использованием mpi, и я заметил нечто странное.

Если я закрою оболочку, из которой был запущен процесс, подчиненные процессы будут уничтожены, но мастер не будет:

(с открытой оболочкой)

valesori@eris:~$ ps aux | grep lammps
valesori  3985  0.2  0.0 208124  7508 pts/26   Sl+  13:59   0:00 mpirun -np 4 lammps -in in.create_bonds
valesori  3987 96.9  0.2 406148 21956 pts/26   Rl   13:59   0:09 lammps -in in.create_bonds
valesori  3988 94.2  0.2 406060 22192 pts/26   Rl   13:59   0:09 lammps -in in.create_bonds
valesori  3989 98.5  0.2 406040 21888 pts/26   Rl   13:59   0:09 lammps -in in.create_bonds
valesori  3991 94.2  0.2 406044 21944 pts/26   Rl   13:59   0:09 lammps -in in.create_bonds
valesori  4102  0.0  0.0  14228   936 pts/27   S+   13:59   0:00 grep lammps

(с закрытой оболочкой)

valesori@eris:~$ ps aux | grep lammps
valesori  3985 15.1  0.1 208124  8244 ?        Rl   13:59   0:04 mpirun -np 4 lammps -in in.create_bonds
valesori  4285  0.0  0.0  14228   924 pts/27   S+   13:59   0:00 grep lammps

Единственное, что я заметил, это то, что состояние главного процесса меняется с Sl + на Rl. R должен означать «работает / работать», в то время как S должен означать «прерывистый сон (ожидание завершения события)»; l означает, что процесс является многопоточным и + находится в группе процессов переднего плана (см., например, этот сетевой пост ).

Если я запускаю тот же сценарий в последовательном режиме, процесс обычно завершается при закрытии оболочки.

Это известная ошибка в mpi? Если нет, то в чем может быть причина?

(я использую Open MPI версии 1.10.2)

UPDATE

Я действительно понял, что результат в некотором роде не воспроизводим. До сих пор у меня было 3 разных результата:

  1. Мастер и рабы убиты, когда оболочка закрыта.
  2. Только рабы убиты при закрытой оболочке.
  3. При закрытии оболочки процесс не прерывается.
...