0

以下に示すように、Pythonのboost.mpiでmpi.gatherを使用しようとしています。

import mpi
print(mpi.rank)
mpi.gather(value=True, root=0)

次のコマンドでプログラムを実行すると、

mpiexec -n 3 python mpi_test.py

出力は

2
1
0

(数字の順番は変わる可能性があります。)

ただし、valuempi.gather の引数をブール型以外に設定すると、スタックします。なぜこれが起こっているのか分かりますか?

私はmpich2(バージョン3.0.4)、ブースト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に設定した場合のみ、プログラムが終了するようです。FalseTrue

4

0 に答える 0