#include #include #include #include #define MAX_ITER 1000 int main (int argc, char **argv) { int rc; int size; int myrank; size_t max_send = 1<<22; char *send_buf = (char*)malloc(sizeof(char)*max_send); char *recv_buf = (char*)malloc(sizeof(char)*max_send); size_t send_size; clock_t start, end; rc = MPI_Init (&argc, &argv); if (rc != MPI_SUCCESS) { fprintf (stderr, "MPI_Init() failed"); return EXIT_FAILURE; } rc = MPI_Comm_size (MPI_COMM_WORLD, &size); if (rc != MPI_SUCCESS) { fprintf (stderr, "MPI_Comm_size() failed"); goto exit_with_error; } if(size!= 2) { fprintf(stderr, "This process requieres exact two processes\n"); } rc = MPI_Comm_rank (MPI_COMM_WORLD, &myrank); if (rc != MPI_SUCCESS) { fprintf (stderr, "MPI_Comm_rank() failed"); goto exit_with_error; } if(myrank==0) fprintf (stdout, "Size\t Time(ms)\n"); for(send_size=1 ; send_size<= max_send; send_size*=2){ for (int i = 0; i