I have an int I intend to broadcast from root (rank==(FIELD=0)).
int winner if (rank == FIELD) { winner = something; } MPI_Barrier(MPI_COMM_WORLD); MPI_Bcast(&winner, 1, MPI_INT, FIELD, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); if (rank != FIELD) { cout << rank << " informed that winner is " << winner << endl; } But it appears I get
[JM:6892] *** An error occurred in MPI_Bcast [JM:6892] *** on communicator MPI_COMM_WORLD [JM:6892] *** MPI_ERR_TRUNCATE: message truncated [JM:6892] *** MPI_ERRORS_ARE_FATAL: your MPI job will now abort Found that I can increase the buffer size in Bcast
MPI_Bcast(&winner, NUMPROCS, MPI_INT, FIELD, MPI_COMM_WORLD); Where NUMPROCS is number of running processes. (actually seems like I just need it to be 2). Then it runs, but gives unexpected output ...
1 informed that winner is 103 2 informed that winner is 103 3 informed that winner is 103 5 informed that winner is 103 4 informed that winner is 103 When I cout the winner, it should be -1