私はMPIがどのように機能するかについての直感を得ようとしています。したがって、私は小さな例から始めました:
...
MPI_Comm_rank(MPI_COMM_WORLD, &tid);
MPI_Comm_size(MPI_COMM_WORLD, &nthreads);
int message = 2;
if(tid != 0)
{
MPI_Recv(&rec, 1, MPI_INT, tid-1, 0, MPI_COMM_WORLD, &status);
printf("Process %i receive %i\n", tid, rec);
}
if(tid != nthreads-1)
{
message++;
printf("Process %i sends %i\n", tid, message);
MPI_Send(&message, 1, MPI_INT, tid+1, 0, MPI_COMM_WORLD);
}
...
それは3を超えて増加しているように見えるという事実にもかかわらず、それはうまく機能message
します。それはなぜですか?