Commからいくつかの作業を行うプロセッサを1つ選択する必要があります(他のプロセッサに作業をさせたくありません)。 私はCommをグループに分割しているので、マスターとして常に1つの特定のランク(たとえば0)を選ぶことはできません。私は現在の通信からそれを選ぶ必要があります。なにか提案を?MPIプログラミングでマスタプロセッサをランダムに選択する方法は?
ありがとうございます。
Commからいくつかの作業を行うプロセッサを1つ選択する必要があります(他のプロセッサに作業をさせたくありません)。 私はCommをグループに分割しているので、マスターとして常に1つの特定のランク(たとえば0)を選ぶことはできません。私は現在の通信からそれを選ぶ必要があります。なにか提案を?MPIプログラミングでマスタプロセッサをランダムに選択する方法は?
ありがとうございます。
プロセスのランクは、常にコミュニケータに相対的です。プロセスを分割したら、新しいコミュニケータでプロセス0を実行して、必要な作業を実行できます。
suszterpattの回答が正解です。これは通常行うべきことです。それにもかかわらず、私は質問のタイトルを無作為にマスタープロセスを選択して扱いたいと思います。コミュニケータで
MPI_MAXLOC
とMPI_Allreduce
を使用してランク番号を配布します。