Newer
Older
#include "mpi.h"
#include <cstring>
int main(int argc, char **argv) {
MPI_Init(&argc, &argv);
int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0) {
const char* data = "random size value";
MPI_Send(data, strlen(data), MPI_CHAR, 1, 0, MPI_COMM_WORLD);
} else {
char* data;
MPI_Status status;
MPI_Probe(0, 0, MPI_COMM_WORLD, &status);
int size;
MPI_Get_count(&status, MPI_CHAR, &size);
data = new char[size];
MPI_Recv(data, size, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("received: %s\n", data);
delete[] data;
}
MPI_Finalize();
return 0;
}