X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6e3d42111dfc9ff4e3e881e4cd352b5e54912482..92f0a1a1b3fd1e0ae916d6f561d2268123fe29b6:/examples/smpi/reduce.c diff --git a/examples/smpi/reduce.c b/examples/smpi/reduce.c index 83cc8bfb75..bd4e151f24 100644 --- a/examples/smpi/reduce.c +++ b/examples/smpi/reduce.c @@ -24,90 +24,100 @@ * ENHANCEMENTS, OR MODIFICATIONS. * *************************************************************************** **/ -int ibm_test( int rank, int size ) { - int success=1; +static int ibm_test(int rank, int size) +{ + int success = 1; #define MAXLEN 10000 - int root,i,j,k; - int out[MAXLEN]; - int in[MAXLEN]; - root = size/2; - - for(j=1;j<=MAXLEN;j*=10) { - for(i=0;i 1 && !strcmp(argv[1], "-q")) + quiet = 1; + start_timer = MPI_Wtime(); - value=rank+1; /* easy to verify that sum= (size*(size+1))/2; */ + value = rank + 1; /* easy to verify that sum= (size*(size+1))/2; */ - printf("[%d] has value %d\n", rank, value); + //printf("[%d] has value %d\n", rank, value); MPI_Reduce(&value, &sum, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD); MPI_Reduce(&value, &sum_mirror, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD); MPI_Reduce(&value, &min, 1, MPI_INT, MPI_MIN, root, MPI_COMM_WORLD); MPI_Reduce(&value, &max, 1, MPI_INT, MPI_MAX, root, MPI_COMM_WORLD); - if ( rank == root) { - printf("** Scalar Int Test Result:\n"); - printf("\t[%d] sum=%d ... validation ",rank,sum); - if (((size*(size+1))/2 == sum) && (sum_mirror==sum) ) - printf("ok.\n"); - else - printf("failed (sum=%d,sum_mirror=%d while both sould be %d.\n", - sum,sum_mirror,(size*(size+1))/2); - printf("\t[%d] min=%d ... validation ",rank,min); - if (1 == min ) - printf("ok.\n"); - else - printf("failed.\n"); - printf("\t[%d] max=%d ... validation ",rank,max); - if ( size == max ) - printf("ok.\n"); - else - printf("failed.\n"); - printf("Elapsed time=%lf s\n", MPI_Wtime()-start_timer); + if (rank == root) { + printf("** Scalar Int Test Result:\n"); + printf("\t[%d] sum=%d ... validation ", rank, sum); + if (((size * (size + 1)) / 2 == sum) && (sum_mirror == sum)) + printf("ok.\n"); + else + printf("failed (sum=%d,sum_mirror=%d while both sould be %d.\n", + sum, sum_mirror, (size * (size + 1)) / 2); + printf("\t[%d] min=%d ... validation ", rank, min); + if (1 == min) + printf("ok.\n"); + else + printf("failed.\n"); + printf("\t[%d] max=%d ... validation ", rank, max); + if (size == max) + printf("ok.\n"); + else + printf("failed.\n"); + if (!quiet) + printf("Elapsed time=%lf s\n", MPI_Wtime() - start_timer); } - MPI_Barrier( MPI_COMM_WORLD ); + MPI_Barrier(MPI_COMM_WORLD); - if ( 0 == rank ) - printf("** IBM Test Result: ... \n"); - if (!ibm_test( rank, size)) - printf("\t[%d] failed.\n",rank); + if (0 == rank) + printf("** IBM Test Result: ... \n"); + if (!ibm_test(rank, size)) + printf("\t[%d] failed.\n", rank); + else if (!quiet) + printf("\t[%d] ok.\n", rank); else - printf("\t[%d] ok.\n",rank); + printf("\tok.\n"); MPI_Finalize(); return 0; } -