2016-04-24 12 views
0

Commからいくつかの作業を行うプロセッサを1つ選択する必要があります(他のプロセッサに作業をさせたくありません)。 私はCommをグループに分割しているので、マスターとして常に1つの特定のランク(たとえば0)を選ぶことはできません。私は現在の通信からそれを選ぶ必要があります。なにか提案を?MPIプログラミングでマスタプロセッサをランダムに選択する方法は?

ありがとうございます。

答えて

3

プロセスのランクは、常にコミュニケータに相対的です。プロセスを分割したら、新しいコミュニケータでプロセス0を実行して、必要な作業を実行できます。

0

suszterpattの回答が正解です。これは通常行うべきことです。それにもかかわらず、私は質問のタイトルを無作為にマスタープロセスを選択して扱いたいと思います。コミュニケータで

  1. すべてのランクは乱数
  2. を生成することを行うには、乱数とMPI_MAXLOCMPI_Allreduceを使用してランク番号を配布します。
  3. コミュニケータのすべてのランクは、ランクをマスターとして使用できます。
関連する問題