プログラムで mpi4py を使用しています。n>1 のコアでプログラムを実行し、各コアには独自のリスト (数字の「core_specific_list」と呼ぶことができます) があります。ランク 0 のコアに、「big_list」と呼ぶことができる 1 つの大きなリストにすべてのリストを収集させたいと考えています。 .
プログラムを次のように開始します (変数を定義するためだけに):
from mpi4py import MPI
comm = MPI.COMM_WORLD
したがって、大きなリストにこれを実行させるために、各コアに次の呼び出しをさせます。
big_list = comm.gather(core_specific_list, root = 0)
これにより、期待どおりに big_listが作成されます (各要素は他のランクの core_specific_list の 1 つです)。また、各リスト要素は送信者のランク順に並んでいるようです (つまり、big_list の要素 0 はランク 0 の core_specific_list などです)。
質問:しかし、この仮定は正しいですか? つまり、big_list の要素 j はランク j の core_specific_list ですか? (私が行ったようにいくつかのケースでこれをテストできることは理解していますが、この仮定に頼ることができることを絶対に確認する必要があります)
ありがとうございました。