Скрипт python, запущенный с mpirun, не останавливается, если выполнить assert на процессоре 0 не удается

У меня есть сценарий Python с набором операций, выполняемых параллельно, с библиотекой mpi4py. В конце операций процессор с рангом 0 выполняет проверку утверждения. Если завершение не удается, процесс должен остановиться и программа завершится. Тем не менее, программа не завершается, и это, я думаю, потому что другие процессоры держат. Как заставить программу завершить выполнение в случае сбоя assert? Я запускаю вещи командой:

mpirun -np 10 python myscript.py 

и тогда у меня есть строка в коде, как:

if rank ==0:
    assert mytest()==0

1 ответ

Решение

Вместо того, чтобы утверждать, вы должны прервать.

https://planet.scipy.org/docs/apiref/mpi4py.MPI.Comm-class.html

if rank == 0:
    if mytest() === 0:
        comm.Abort()
Другие вопросы по тегам