X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a4eb1ae8b7be9ad432765f2a6a3d16c115c03603..bf57dc39f9991991f1f94f736787304718026c97:/examples/smpi/MM/2.5D_MM.c diff --git a/examples/smpi/MM/2.5D_MM.c b/examples/smpi/MM/2.5D_MM.c index 63e4058619..054cdf170b 100644 --- a/examples/smpi/MM/2.5D_MM.c +++ b/examples/smpi/MM/2.5D_MM.c @@ -1,12 +1,11 @@ /*! * 2.5D Block Matrix Multiplication example * - * Authors: Quintin Jean-Noël */ #include "Matrix_init.h" #include "Summa.h" -#include "timer.h" +#include "2.5D_MM.h" #include #include "xbt/log.h" #define CHECK_25D 1 @@ -18,7 +17,8 @@ double two_dot_five( size_t m, size_t k, size_t n, size_t Block_size, size_t group, size_t key, size_t size_row, size_t size_col, size_t NB_groups ){ - double *a, *b, *c, *res; + double *a, *b, *c; + double *res = NULL; /* Split the communicator into groups */ /* Find out my identity in the default communicator */ @@ -29,9 +29,9 @@ double two_dot_five( double time, communication_time = 0; - struct timespec start_time, end_time; //time mesure - struct timespec end_time_intern; //time mesure - struct timespec start_time_reduce, end_time_reduce; //time mesure + double start_time, end_time; //time mesure + double end_time_intern; //time mesure + double start_time_reduce, end_time_reduce; //time mesure MPI_Comm my_world; @@ -180,7 +180,7 @@ double two_dot_five( MPI_Barrier(my_world); - get_time(&start_time); + start_time = MPI_Wtime(); if( NB_groups > 1 ) { err = MPI_Bcast(a, m*k_a, MPI_DOUBLE, 0, group_line); if (err != MPI_SUCCESS) { @@ -194,8 +194,8 @@ double two_dot_five( } MPI_Barrier(my_world); } - get_time(&end_time_intern); - communication_time += get_timediff(&start_time,&end_time_intern); + end_time_intern = MPI_Wtime(); + communication_time += end_time_intern - start_time; XBT_INFO( "group %zu NB_block: %zu, NB_groups %zu\n" ,group,NB_Block, NB_groups); @@ -219,7 +219,7 @@ double two_dot_five( MPI_Comm_rank(group_line, &myrank); MPI_Barrier(my_world); - get_time(&start_time_reduce); + start_time_reduce = MPI_Wtime(); if( NB_groups > 1 ) { // a gather is better? err = MPI_Reduce(c, res, m*n, MPI_DOUBLE, MPI_SUM, 0, group_line); @@ -233,14 +233,14 @@ double two_dot_five( res=swap; } MPI_Barrier(my_world); - get_time(&end_time_reduce); + end_time_reduce = MPI_Wtime(); MPI_Barrier(my_world); - get_time(&end_time); - time = get_timediff(&start_time,&end_time); - double reduce_time = get_timediff(&start_time_reduce,&end_time_reduce); - printf("communication time: %le reduce time: %le nanoseconds, " - "total time: %le nanoseconds\n",communication_time,reduce_time,time); + end_time = MPI_Wtime(); + time = end_time - start_time; + double reduce_time = end_time_reduce - start_time_reduce; + printf("communication time: %le reduce time: %le seconds, " + "total time: %le seconds\n",communication_time,reduce_time,time); MPI_Barrier(my_world); #if CHECK_25D