X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d9c9e08948a8387e9e8ecb0fe67ab6b94ec2a66f..5ca17dc381bb7fba4f2689143e2080f7549ee0ab:/teshsuite/smpi/mpich3-test/rma/fetch_and_op.c diff --git a/teshsuite/smpi/mpich3-test/rma/fetch_and_op.c b/teshsuite/smpi/mpich3-test/rma/fetch_and_op.c index f8b7fb23e8..bd10bb6017 100644 --- a/teshsuite/smpi/mpich3-test/rma/fetch_and_op.c +++ b/teshsuite/smpi/mpich3-test/rma/fetch_and_op.c @@ -42,7 +42,8 @@ #define CMP(x, y) ((x - ((TYPE_C) (y))) > 1.0e-9) -void reset_vars(TYPE_C *val_ptr, TYPE_C *res_ptr, MPI_Win win) { +void reset_vars(TYPE_C * val_ptr, TYPE_C * res_ptr, MPI_Win win) +{ int i, rank, nproc; MPI_Comm_rank(MPI_COMM_WORLD, &rank); @@ -58,24 +59,28 @@ void reset_vars(TYPE_C *val_ptr, TYPE_C *res_ptr, MPI_Win win) { MPI_Barrier(MPI_COMM_WORLD); } -int main(int argc, char **argv) { - int i, rank, nproc, mpi_type_size; - int errors = 0, all_errors = 0; - TYPE_C *val_ptr, *res_ptr; - MPI_Win win; +int main(int argc, char **argv) +{ + int i, rank, nproc, mpi_type_size; + int errors = 0, all_errors = 0; + TYPE_C *val_ptr, *res_ptr; + MPI_Win win; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nproc); - + MPI_Type_size(TYPE_MPI, &mpi_type_size); assert(mpi_type_size == sizeof(TYPE_C)); - val_ptr = malloc(sizeof(TYPE_C)*nproc); - res_ptr = malloc(sizeof(TYPE_C)*nproc); + val_ptr = malloc(sizeof(TYPE_C) * nproc); + res_ptr = malloc(sizeof(TYPE_C) * nproc); + MTEST_VG_MEM_INIT(val_ptr, sizeof(TYPE_C) * nproc); + MTEST_VG_MEM_INIT(res_ptr, sizeof(TYPE_C) * nproc); - MPI_Win_create(val_ptr, sizeof(TYPE_C)*nproc, sizeof(TYPE_C), MPI_INFO_NULL, MPI_COMM_WORLD, &win); + MPI_Win_create(val_ptr, sizeof(TYPE_C) * nproc, sizeof(TYPE_C), MPI_INFO_NULL, MPI_COMM_WORLD, + &win); /* Test self communication */ @@ -89,8 +94,10 @@ int main(int argc, char **argv) { } MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); - if ( CMP(val_ptr[0], ITER) ) { - SQUELCH( printf("%d->%d -- SELF: expected "TYPE_FMT", got "TYPE_FMT"\n", rank, rank, (TYPE_C) ITER, val_ptr[0]); ); + if (CMP(val_ptr[0], ITER)) { + SQUELCH(printf + ("%d->%d -- SELF: expected " TYPE_FMT ", got " TYPE_FMT "\n", rank, rank, + (TYPE_C) ITER, val_ptr[0]);); errors++; } MPI_Win_unlock(rank, win); @@ -101,11 +108,13 @@ int main(int argc, char **argv) { for (i = 0; i < ITER; i++) { TYPE_C one = 1, result = -1; - MPI_Win_lock(MPI_LOCK_EXCLUSIVE, (rank+1)%nproc, 0, win); - MPI_Fetch_and_op(&one, &result, TYPE_MPI, (rank+1)%nproc, 0, MPI_SUM, win); - MPI_Win_unlock((rank+1)%nproc, win); - if ( CMP(result, i) ) { - SQUELCH( printf("%d->%d -- NEIGHBOR[%d]: expected result "TYPE_FMT", got "TYPE_FMT"\n", (rank+1)%nproc, rank, i, (TYPE_C) i, result); ); + MPI_Win_lock(MPI_LOCK_EXCLUSIVE, (rank + 1) % nproc, 0, win); + MPI_Fetch_and_op(&one, &result, TYPE_MPI, (rank + 1) % nproc, 0, MPI_SUM, win); + MPI_Win_unlock((rank + 1) % nproc, win); + if (CMP(result, i)) { + SQUELCH(printf + ("%d->%d -- NEIGHBOR[%d]: expected result " TYPE_FMT ", got " TYPE_FMT "\n", + (rank + 1) % nproc, rank, i, (TYPE_C) i, result);); errors++; } } @@ -113,8 +122,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); - if ( CMP(val_ptr[0], ITER) ) { - SQUELCH( printf("%d->%d -- NEIGHBOR: expected "TYPE_FMT", got "TYPE_FMT"\n", (rank+1)%nproc, rank, (TYPE_C) ITER, val_ptr[0]); ); + if (CMP(val_ptr[0], ITER)) { + SQUELCH(printf + ("%d->%d -- NEIGHBOR: expected " TYPE_FMT ", got " TYPE_FMT "\n", + (rank + 1) % nproc, rank, (TYPE_C) ITER, val_ptr[0]);); errors++; } MPI_Win_unlock(rank, win); @@ -136,8 +147,10 @@ int main(int argc, char **argv) { MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); if (rank == 0 && nproc > 1) { - if ( CMP(val_ptr[0], ITER*(nproc-1)) ) { - SQUELCH( printf("*->%d - CONTENTION: expected="TYPE_FMT" val="TYPE_FMT"\n", rank, (TYPE_C) ITER*(nproc-1), val_ptr[0]); ); + if (CMP(val_ptr[0], ITER * (nproc - 1))) { + SQUELCH(printf + ("*->%d - CONTENTION: expected=" TYPE_FMT " val=" TYPE_FMT "\n", rank, + (TYPE_C) ITER * (nproc - 1), val_ptr[0]);); errors++; } } @@ -159,8 +172,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); for (j = 0; j < nproc; j++) { - if ( CMP(res_ptr[j], i*rank) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (FENCE) [%d]: expected result "TYPE_FMT", got "TYPE_FMT"\n", rank, j, i, (TYPE_C) i*rank, res_ptr[j]); ); + if (CMP(res_ptr[j], i * rank)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (FENCE) [%d]: expected result " TYPE_FMT ", got " + TYPE_FMT "\n", rank, j, i, (TYPE_C) i * rank, res_ptr[j]);); errors++; } } @@ -169,8 +184,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); for (i = 0; i < nproc; i++) { - if ( CMP(val_ptr[i], ITER*i) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (FENCE): expected "TYPE_FMT", got "TYPE_FMT"\n", i, rank, (TYPE_C) ITER*i, val_ptr[i]); ); + if (CMP(val_ptr[i], ITER * i)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (FENCE): expected " TYPE_FMT ", got " TYPE_FMT "\n", i, + rank, (TYPE_C) ITER * i, val_ptr[i]);); errors++; } } @@ -192,8 +209,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); for (j = 0; j < nproc; j++) { - if ( CMP(res_ptr[j], i*rank) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (LOCK-ALL) [%d]: expected result "TYPE_FMT", got "TYPE_FMT"\n", rank, j, i, (TYPE_C) i*rank, res_ptr[j]); ); + if (CMP(res_ptr[j], i * rank)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (LOCK-ALL) [%d]: expected result " TYPE_FMT ", got " + TYPE_FMT "\n", rank, j, i, (TYPE_C) i * rank, res_ptr[j]);); errors++; } } @@ -202,8 +221,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); for (i = 0; i < nproc; i++) { - if ( CMP(val_ptr[i], ITER*i) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (LOCK-ALL): expected "TYPE_FMT", got "TYPE_FMT"\n", i, rank, (TYPE_C) ITER*i, val_ptr[i]); ); + if (CMP(val_ptr[i], ITER * i)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (LOCK-ALL): expected " TYPE_FMT ", got " TYPE_FMT "\n", + i, rank, (TYPE_C) ITER * i, val_ptr[i]);); errors++; } } @@ -226,8 +247,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); for (j = 0; j < nproc; j++) { - if ( CMP(res_ptr[j], i*rank) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (LOCK-ALL+FLUSH) [%d]: expected result "TYPE_FMT", got "TYPE_FMT"\n", rank, j, i, (TYPE_C) i*rank, res_ptr[j]); ); + if (CMP(res_ptr[j], i * rank)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (LOCK-ALL+FLUSH) [%d]: expected result " TYPE_FMT + ", got " TYPE_FMT "\n", rank, j, i, (TYPE_C) i * rank, res_ptr[j]);); errors++; } } @@ -236,8 +259,10 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, win); for (i = 0; i < nproc; i++) { - if ( CMP(val_ptr[i], ITER*i) ) { - SQUELCH( printf("%d->%d -- ALL-TO-ALL (LOCK-ALL+FLUSH): expected "TYPE_FMT", got "TYPE_FMT"\n", i, rank, (TYPE_C) ITER*i, val_ptr[i]); ); + if (CMP(val_ptr[i], ITER * i)) { + SQUELCH(printf + ("%d->%d -- ALL-TO-ALL (LOCK-ALL+FLUSH): expected " TYPE_FMT ", got " TYPE_FMT + "\n", i, rank, (TYPE_C) ITER * i, val_ptr[i]);); errors++; } } @@ -255,15 +280,15 @@ int main(int argc, char **argv) { MPI_Barrier(MPI_COMM_WORLD); for (i = 0; i < ITER; i++) { - int target = (rank+1) % nproc; + int target = (rank + 1) % nproc; MPI_Win_lock(MPI_LOCK_EXCLUSIVE, target, 0, win); MPI_Fetch_and_op(NULL, res_ptr, TYPE_MPI, target, 0, MPI_NO_OP, win); MPI_Win_unlock(target, win); if (res_ptr[0] != (TYPE_C) target) { - SQUELCH( printf("%d->%d -- NOP[%d]: expected "TYPE_FMT", got "TYPE_FMT"\n", - target, rank, i, (TYPE_C) target, res_ptr[0]); ); + SQUELCH(printf("%d->%d -- NOP[%d]: expected " TYPE_FMT ", got " TYPE_FMT "\n", + target, rank, i, (TYPE_C) target, res_ptr[0]);); errors++; } } @@ -287,8 +312,8 @@ int main(int argc, char **argv) { MPI_Win_unlock(target, win); if (res_ptr[0] != (TYPE_C) target) { - SQUELCH( printf("%d->%d -- NOP_SELF[%d]: expected "TYPE_FMT", got "TYPE_FMT"\n", - target, rank, i, (TYPE_C) target, res_ptr[0]); ); + SQUELCH(printf("%d->%d -- NOP_SELF[%d]: expected " TYPE_FMT ", got " TYPE_FMT "\n", + target, rank, i, (TYPE_C) target, res_ptr[0]);); errors++; } }