Source code
/* Program: * 每個 node 將訊息傳送給 node 0,由,node 0 統一印出 * History: * 2008-06-12 BETA * 2008-06-17 更改顯示方式,並增加註解 */ #include <stdio.h> #include <mpi.h> #include <string.h> main(int argc, char **argv) { int myrank, i, numprocs; char message[20]; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); /* Node 0 will do the following */ if(myrank == 0) { /* receive messages from other nodes */ for(i = 1; i < numprocs; i++) { MPI_Recv(message, 20, MPI_CHAR, i, 99, MPI_COMM_WORLD, &status); printf("[Node 0] << 「%s」[Node %d] \n", message, status.MPI_SOURCE); } } /* other Nodes will do the following */ if(myrank != 0) { /* send node's rank to Node 0 */ sprintf(message, "[%d]", myrank); MPI_Send(message, 20, MPI_CHAR, 0, 99, MPI_COMM_WORLD); printf("[Node %d]「%s」 >> [Node 0]\n", myrank, message); } MPI_Finalize(); }
Result
Last modified 16 years ago
Last modified on Jun 17, 2008, 10:59:13 AM
Attachments (1)
- demo3-01.png (54.2 KB) - added by wade 16 years ago.
Download all attachments as: .zip