#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
int rank;
int buf;
const int root=0;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(rank == root) {
buf = 777;
}
printf("[%d]: Before Bcast, buf is %d\n", rank
, buf
);
/* everyone calls bcast, data is taken from root and ends up in everyone's buf */
MPI_Bcast(&buf, 1, MPI_INT, root, MPI_COMM_WORLD);
printf("[%d]: After Bcast, buf is %d\n", rank
, buf
);
MPI_Finalize();
return 0;
}
I2luY2x1ZGUgPG1waS5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewogICAgICAgIGludCByYW5rOwogICAgICAgIGludCBidWY7CiAgICAgICAgY29uc3QgaW50IHJvb3Q9MDsKCiAgICAgICAgTVBJX0luaXQoJmFyZ2MsICZhcmd2KTsKICAgICAgICBNUElfQ29tbV9yYW5rKE1QSV9DT01NX1dPUkxELCAmcmFuayk7CgogICAgICAgIGlmKHJhbmsgPT0gcm9vdCkgewogICAgICAgICAgIGJ1ZiA9IDc3NzsKICAgICAgICB9CgogICAgICAgIHByaW50ZigiWyVkXTogQmVmb3JlIEJjYXN0LCBidWYgaXMgJWRcbiIsIHJhbmssIGJ1Zik7CgogICAgICAgIC8qIGV2ZXJ5b25lIGNhbGxzIGJjYXN0LCBkYXRhIGlzIHRha2VuIGZyb20gcm9vdCBhbmQgZW5kcyB1cCBpbiBldmVyeW9uZSdzIGJ1ZiAqLwogICAgICAgIE1QSV9CY2FzdCgmYnVmLCAxLCBNUElfSU5ULCByb290LCBNUElfQ09NTV9XT1JMRCk7CgogICAgICAgIHByaW50ZigiWyVkXTogQWZ0ZXIgQmNhc3QsIGJ1ZiBpcyAlZFxuIiwgcmFuaywgYnVmKTsKCiAgICAgICAgTVBJX0ZpbmFsaXplKCk7CiAgICAgICAgcmV0dXJuIDA7Cn0=