Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update RMA tests
[simgrid.git] / teshsuite / smpi / mpich3-test / rma / fetch_and_op.c
index f8b7fb2..bd10bb6 100644 (file)
@@ -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++;
         }
     }