Я запускаю программу в mpi4py; он содержит for l oop, предназначенный для перебора нескольких списков файлов, назначенных каждому процессу. Прямо сейчас это выглядит примерно так:
comm = MPI.COMM_WORLD
my_rank = comm.Get_rank()
for sub_list in my_sublists:
print('about to do thing')
sys.stdout.flush()
a = do_thing(sublist)
print('did thing')
sys.stdout.flush()
write_to_file(a)
print('wrote to file')
print('{} worked'.format(my_rank))
sys.stdout.flush()
comm.barrier()
Проблема в том, что иногда он зависает (в течение нескольких часов - намного дольше, чем do_thing или write_to_file take); отправка ctrl- c запускает его снова и заставляет сразу несколько операторов print прокручиваться всеми. Мне интересно, почему это происходит и как я могу заставить мою программу работать непрерывно от начала до конца sh. Если это имеет какое-то значение, я запускаю это на экране. Любое понимание будет с благодарностью; Я работаю с mpi всего пару недель, и кривая обучения крутая.