Когда я запускаю mpi4py, он зависает, и использование ctrl- c - единственный способ заставить его продолжить работу. Почему это происходит? - PullRequest
0 голосов
/ 21 апреля 2020

Я запускаю программу в 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 всего пару недель, и кривая обучения крутая.

...