121 ´®Ðв¿·Ö II |
MPI_Attr_get( comm, MPE_Seq_keyval, (void *)&local_comm, &flag ); if (!flag) { /* This expects a communicator to be a pointer */ MPI_Comm_dup( comm, &local_comm ); MPI_Attr_put( comm, MPE_Seq_keyval, (void *)local_comm ); } MPI_Comm_rank( comm, &lidx ); MPI_Comm_size( comm, &np ); if (lidx != 0) { MPI_Recv( NULL, 0, MPI_INT, lidx-1, 0, local_comm, &status ); } /* Send to the next process in the group unless we are the last process in the processor set */ if ( (lidx % ng) < ng - 1 && lidx != np - 1) { MPI_Send( NULL, 0, MPI_INT, lidx + 1, 0, local_comm ); } }
Copyright: NPACT |