/*PID 0 has an array of integer values, It should send the array to pid 1 and
pid 1 should receive the values*/
#include <mpi.h> //containd the MPI function type declaractions
#include <stdio.h > // stands for standarad input output
#include <string.h>
int main()
{
int np;
int pid;
MPI_Init(NULL, NULL);
MPI_Comm_size(MPI_COMM_WORLD, &np);
MPI_Comm_rank(MPI_COMM_WORLD, &pid);
MPI_Status sta;
if (pid == 0)
{
int Send_Num[5] = { 10,20,30,40,50 };
MPI_Send(&Send_Num, 5, MPI_INT, 1, 50, MPI_COMM_WORLD);
printf("My processor id is %d and I'm the sender. \n", pid
); }
if (pid == 1)
{
int Recv_msg[5];
int sum = 0;
MPI_Recv(&Recv_msg, 5, MPI_INT, 0, 50, MPI_COMM_WORLD, &sta);
printf("My processor id is %d and I'm the receiver. \n", pid
); printf("Received Messages are,"); for(int i=0;i<5;i++)
{
}
}
MPI_Finalize();
return 0;
}
LypQSUQgMCBoYXMgYW4gYXJyYXkgb2YgaW50ZWdlciB2YWx1ZXMsIEl0IHNob3VsZCBzZW5kIHRoZSBhcnJheSB0byBwaWQgMSBhbmQgCnBpZCAxIHNob3VsZCByZWNlaXZlIHRoZSB2YWx1ZXMqLwoKI2luY2x1ZGUgPG1waS5oPiAvL2NvbnRhaW5kIHRoZSBNUEkgZnVuY3Rpb24gdHlwZSBkZWNsYXJhY3Rpb25zCiNpbmNsdWRlIDxzdGRpby5oID4gLy8gc3RhbmRzIGZvciBzdGFuZGFyYWQgaW5wdXQgb3V0cHV0CiNpbmNsdWRlIDxzdHJpbmcuaD4KaW50IG1haW4oKQp7CglpbnQgbnA7CglpbnQgcGlkOwoJTVBJX0luaXQoTlVMTCwgTlVMTCk7CglNUElfQ29tbV9zaXplKE1QSV9DT01NX1dPUkxELCAmbnApOwoJTVBJX0NvbW1fcmFuayhNUElfQ09NTV9XT1JMRCwgJnBpZCk7CglNUElfU3RhdHVzIHN0YTsKCWlmIChwaWQgPT0gMCkKCXsKCQlpbnQgU2VuZF9OdW1bNV0gPSB7IDEwLDIwLDMwLDQwLDUwIH07CgkJTVBJX1NlbmQoJlNlbmRfTnVtLCA1LCBNUElfSU5ULCAxLCA1MCwgTVBJX0NPTU1fV09STEQpOwoJCXByaW50ZigiTXkgcHJvY2Vzc29yIGlkIGlzICVkIGFuZCBJJ20gdGhlIHNlbmRlci4gXG4iLCBwaWQpOwoJfQoJaWYgKHBpZCA9PSAxKQoJewoJCWludCBSZWN2X21zZ1s1XTsKCQlpbnQgc3VtID0gMDsKCQlNUElfUmVjdigmUmVjdl9tc2csIDUsIE1QSV9JTlQsIDAsIDUwLCBNUElfQ09NTV9XT1JMRCwgJnN0YSk7CgkJcHJpbnRmKCJNeSBwcm9jZXNzb3IgaWQgaXMgJWQgYW5kIEknbSB0aGUgcmVjZWl2ZXIuIFxuIiwgcGlkKTsKCQlwcmludGYoIlJlY2VpdmVkIE1lc3NhZ2VzIGFyZSwiKTsKCQlmb3IoaW50IGk9MDtpPDU7aSsrKQoJCXsKCQkJcHJpbnRmKCIlZCBcbiIsUmVjdl9tc2dbaV0pOwoJCX0KCX0KCU1QSV9GaW5hbGl6ZSgpOwoJcmV0dXJuIDA7Cn0=