ヘルプ!
MPIコードを実行しているときに、「プロセスの1つが正常に終了しました:クリーンアップしています...完了を待機しているプロセスマネージャーエラー」というランタイムエラーが返されました。エラープロセスの数とその方法を確認したいのですが。
さらに、4X4(各4プロセスを使用する4台のマシン)を使用する場合は問題ありませんが、4X6以上(4X8)を使用する場合はエラーが発生します。
私のreduceコードは以下のとおりです。
#include <stdio.h>
int main(void)
{
int num,rank;
scanf("%d %d",&num, &rank);
int depth = 1;
int flag = 0;
while(num > 1) {
if(rank < num){
flag = num % 2;
if(rank % 2 != 0){
//MPI_Send(to (rank-1)*depth);
printf("Send to %d\n", (rank - 1) * depth);
rank *= num;
break;
}
else{
if(!(flag && (rank == (num - 1)))) {
//MPI_Recv(from (rank+1)*depth);
printf("Recv from %d\n", (rank+1)*depth);
}
rank /= 2;
}
depth *= 2;
}
num = num / 2 + flag;
}
return 0;
}
ありがとうございました!