#include <stdio.h> #include "mpi.h" #include <string.h> #define BUFFER_SIZE 32 int main(int argc,char *argv[]) { int MyRank,Numprocs, Destination, iproc; int tag = 0; int Root = 0, temp = 1; char Message[BUFFER_SIZE]; MPI_Init(&argc,&argv); MPI_Status status; MPI_Comm_rank(MPI_COMM_WORLD,&MyRank); MPI_Comm_size(MPI_COMM_WORLD,&Numprocs); /* print host name, and send message from process with rank 0 to all other processes */ if(MyRank == 0) { system("hostname"); strcpy(Message, "Hello India"); for (temp=1; temp<Numprocs;temp++) { MPI_Send(Message, BUFFER_SIZE, MPI_CHAR, temp, tag,MPI_COMM_WORLD); } } else { system("hostname"); MPI_Recv(Message, BUFFER_SIZE, MPI_CHAR, Root, tag,MPI_COMM_WORLD, &status); printf("\n%s in process with rank %d from Process with rank %d\n", Message,MyRank,Root); } MPI_Finalize(); }
I2luY2x1ZGUgPHN0ZGlvLmg+ICNpbmNsdWRlICJtcGkuaCIgI2luY2x1ZGUgPHN0cmluZy5oPiAjZGVmaW5lIEJVRkZFUl9TSVpFIDMyIGludCBtYWluKGludCBhcmdjLGNoYXIgKmFyZ3ZbXSkgeyBpbnQgTXlSYW5rLE51bXByb2NzLCBEZXN0aW5hdGlvbiwgaXByb2M7IGludCB0YWcgPSAwOyBpbnQgUm9vdCA9IDAsIHRlbXAgPSAxOyBjaGFyIE1lc3NhZ2VbQlVGRkVSX1NJWkVdOyBNUElfSW5pdCgmYXJnYywmYXJndik7IE1QSV9TdGF0dXMgc3RhdHVzOyBNUElfQ29tbV9yYW5rKE1QSV9DT01NX1dPUkxELCZNeVJhbmspOyBNUElfQ29tbV9zaXplKE1QSV9DT01NX1dPUkxELCZOdW1wcm9jcyk7IC8qIHByaW50IGhvc3QgbmFtZSwgYW5kIHNlbmQgbWVzc2FnZSBmcm9tIHByb2Nlc3Mgd2l0aCByYW5rIDAgdG8gYWxsIG90aGVyIHByb2Nlc3NlcyAqLyBpZihNeVJhbmsgPT0gMCkgeyBzeXN0ZW0oImhvc3RuYW1lIik7IHN0cmNweShNZXNzYWdlLCAiSGVsbG8gSW5kaWEiKTsgZm9yICh0ZW1wPTE7IHRlbXA8TnVtcHJvY3M7dGVtcCsrKSB7IE1QSV9TZW5kKE1lc3NhZ2UsIEJVRkZFUl9TSVpFLCBNUElfQ0hBUiwgdGVtcCwgdGFnLE1QSV9DT01NX1dPUkxEKTsgfSB9IGVsc2UgeyBzeXN0ZW0oImhvc3RuYW1lIik7IE1QSV9SZWN2KE1lc3NhZ2UsIEJVRkZFUl9TSVpFLCBNUElfQ0hBUiwgUm9vdCwgdGFnLE1QSV9DT01NX1dPUkxELCAmc3RhdHVzKTsgcHJpbnRmKCJcbiVzIGluIHByb2Nlc3Mgd2l0aCByYW5rICVkIGZyb20gUHJvY2VzcyB3aXRoIHJhbmsgJWRcbiIsIE1lc3NhZ2UsTXlSYW5rLFJvb3QpOyB9IE1QSV9GaW5hbGl6ZSgpOyB9