mpi.gather не работает для boost.mpi для python
Я пытаюсь использовать mpi.gather в boost.mpi для Python, как показано ниже.
import mpi
print(mpi.rank)
mpi.gather(value=True, root=0)
Когда я запускаю программу с помощью следующей команды,
mpiexec -n 3 python mpi_test.py
выход
2
1
0
(Порядок номеров может измениться.)
Тем не менее, когда я установил value
аргумент в mpi.gather к чему-то кроме логического типа, он застревает. У вас есть представление о том, почему это происходит?
Я использую mpich2(версия 3.0.4), boost 1.61.0 и python 3.5.1. Заранее спасибо.
ОБНОВЛЕНИЕ: код, который не работает, как показано ниже:
import mpi
print(mpi.rank)
mpi.gather(value='!', root=0)
Я запустил вышеуказанную программу с mpirun -n 3 python mpi_test.py
и получил следующий результат (и снова, порядок номеров может быть другим),
2
1
Программа также должна вывести 0, но она застряла. Я пробовал использовать несколько процессов, но он всегда застревает, а корневой ранг остается без печати.
Кажется, что программа заканчивается только тогда, когда value
установлен в False
или же True
,