@@ -30,6 +30,16 @@ static void run_mpi_benchmark(options_t* options) {
3030
3131 char * buf = malloc (options -> msg_size );
3232
33+ // warm up
34+ if (rank % 2 == 0 ) {
35+ MPI_Send (buf , options -> msg_size , MPI_BYTE , (rank + 1 )%2 , 0 , MPI_COMM_WORLD );
36+ MPI_Recv (buf , options -> msg_size , MPI_BYTE , (rank + 1 )%2 , 0 , MPI_COMM_WORLD , MPI_STATUS_IGNORE );
37+ } else {
38+ MPI_Recv (buf , options -> msg_size , MPI_BYTE , (rank + 1 )%2 , 0 , MPI_COMM_WORLD , MPI_STATUS_IGNORE );
39+ MPI_Send (buf , options -> msg_size , MPI_BYTE , (rank + 1 )%2 , 0 , MPI_COMM_WORLD );
40+ }
41+
42+ // benchmark
3343 MPI_Barrier (MPI_COMM_WORLD );
3444 t_start = MPI_Wtime ();
3545
@@ -76,13 +86,23 @@ static void run_mona_benchmark(options_t* options) {
7686 char other_addr_str [128 ];
7787 MPI_Sendrecv (addr_str , 128 , MPI_BYTE , (rank + 1 )%2 , 0 ,
7888 other_addr_str , 128 , MPI_BYTE , (rank + 1 )%2 , 0 ,
79- MPI_COMM_WORLD , MPI_STATUS_IGNORE );
89+ MPI_COMM_WORLD , MPI_STATUS_IGNORE );
8090
8191 ret = mona_addr_lookup (mona , other_addr_str , & addr );
8292 ASSERT_MESSAGE (ret == NA_SUCCESS , "Could not lookup address" );
8393
8494 char * buf = malloc (options -> msg_size );
8595
96+ // warm up
97+ if (rank % 2 == 0 ) {
98+ mona_send (mona , buf , options -> msg_size , addr , 0 , 0 );
99+ mona_recv (mona , buf , options -> msg_size , addr , 0 , NULL , NULL , NULL );
100+ } else {
101+ mona_recv (mona , buf , options -> msg_size , addr , 0 , NULL , NULL , NULL );
102+ mona_send (mona , buf , options -> msg_size , addr , 0 , 0 );
103+ }
104+
105+ // benchmark
86106 MPI_Barrier (MPI_COMM_WORLD );
87107 t_start = MPI_Wtime ();
88108
0 commit comments