#include <mpi.h>
#include <iostream>
int main(int argc, char** argv) {
MPI_Init(&argc, &argv);
int rank, numProcesses;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &numProcesses);
int data = 0;
if (rank == 0) {
data = 100;
MPI_Send(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); // Rank 0 sends data to rank 1
} else if (rank == 1) {
MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); // Rank 1 receives data from rank 0
std::cout << "Received data: " << data << " on process " << rank << std::endl;
}
MPI_Finalize();
return 0;
}
I2luY2x1ZGUgPG1waS5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgIE1QSV9Jbml0KCZhcmdjLCAmYXJndik7CgogICAgaW50IHJhbmssIG51bVByb2Nlc3NlczsKICAgIE1QSV9Db21tX3JhbmsoTVBJX0NPTU1fV09STEQsICZyYW5rKTsKICAgIE1QSV9Db21tX3NpemUoTVBJX0NPTU1fV09STEQsICZudW1Qcm9jZXNzZXMpOwoKICAgIGludCBkYXRhID0gMDsKCiAgICBpZiAocmFuayA9PSAwKSB7CiAgICAgICAgZGF0YSA9IDEwMDsKICAgICAgICBNUElfU2VuZCgmZGF0YSwgMSwgTVBJX0lOVCwgMSwgMCwgTVBJX0NPTU1fV09STEQpOyAvLyBSYW5rIDAgc2VuZHMgZGF0YSB0byByYW5rIDEKICAgIH0gZWxzZSBpZiAocmFuayA9PSAxKSB7CiAgICAgICAgTVBJX1JlY3YoJmRhdGEsIDEsIE1QSV9JTlQsIDAsIDAsIE1QSV9DT01NX1dPUkxELCBNUElfU1RBVFVTX0lHTk9SRSk7IC8vIFJhbmsgMSByZWNlaXZlcyBkYXRhIGZyb20gcmFuayAwCiAgICAgICAgc3RkOjpjb3V0IDw8ICJSZWNlaXZlZCBkYXRhOiAiIDw8IGRhdGEgPDwgIiBvbiBwcm9jZXNzICIgPDwgcmFuayA8PCBzdGQ6OmVuZGw7CiAgICB9CgogICAgTVBJX0ZpbmFsaXplKCk7CiAgICByZXR1cm4gMDsKfQoK