Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update RMA tests
[simgrid.git] / teshsuite / smpi / mpich3-test / rma / lockopts.c
index 6f962e3..2259505 100644 (file)
@@ -3,28 +3,28 @@
  *  (C) 2012 by Argonne National Laboratory.
  *      See COPYRIGHT in top-level directory.
  */
-#include "mpi.h" 
+#include "mpi.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "mpitest.h"
 
-/* tests passive target RMA on 2 processes. tests the lock-single_op-unlock 
+/* tests passive target RMA on 2 processes. tests the lock-single_op-unlock
    optimization for less common cases:
 
    origin datatype derived, target datatype predefined
 
 */
-int main(int argc, char *argv[]) 
-{ 
-    int          wrank, nprocs, *srcbuf, *rmabuf, i;
-    int          memsize;
+int main(int argc, char *argv[])
+{
+    int wrank, nprocs, *srcbuf, *rmabuf, i;
+    int memsize;
     MPI_Datatype vectype;
-    MPI_Win      win;
-    int          errs = 0;
+    MPI_Win win;
+    int errs = 0;
 
-    MTest_Init(&argc,&argv); 
-    MPI_Comm_size(MPI_COMM_WORLD,&nprocs); 
-    MPI_Comm_rank(MPI_COMM_WORLD,&wrank); 
+    MTest_Init(&argc, &argv);
+    MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
+    MPI_Comm_rank(MPI_COMM_WORLD, &wrank);
 
     if (nprocs < 2) {
         printf("Run this program with 2 or more processes\n");
@@ -33,179 +33,169 @@ int main(int argc, char *argv[])
 
     memsize = 10 * 4 * nprocs;
     /* Create and initialize data areas */
-    srcbuf = (int *)malloc( sizeof(int) * memsize );
-    MPI_Alloc_mem( sizeof(int) * memsize, MPI_INFO_NULL, &rmabuf );
+    srcbuf = (int *) malloc(sizeof(int) * memsize);
+    MPI_Alloc_mem(sizeof(int) * memsize, MPI_INFO_NULL, &rmabuf);
     if (!srcbuf || !rmabuf) {
-       printf( "Unable to allocate srcbuf and rmabuf of size %d\n", memsize );
-       MPI_Abort( MPI_COMM_WORLD, 1 );
+        printf("Unable to allocate srcbuf and rmabuf of size %d\n", memsize);
+        MPI_Abort(MPI_COMM_WORLD, 1);
     }
-    for (i=0; i<memsize; i++) {
-      rmabuf[i] = -i;
-      srcbuf[i] = i;
+    for (i = 0; i < memsize; i++) {
+        rmabuf[i] = -i;
+        srcbuf[i] = i;
     }
 
-    MPI_Win_create( rmabuf, memsize*sizeof(int), sizeof(int), MPI_INFO_NULL, 
-                   MPI_COMM_WORLD, &win );
+    MPI_Win_create(rmabuf, memsize * sizeof(int), sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &win);
 
     /* Vector of 10 elements, separated by 4 */
-    MPI_Type_vector( 10, 1, 4, MPI_INT, &vectype );
-    MPI_Type_commit( &vectype );
+    MPI_Type_vector(10, 1, 4, MPI_INT, &vectype);
+    MPI_Type_commit(&vectype);
 
-    /* Accumulate with a derived origin type and target predefined type*/
+    /* Accumulate with a derived origin type and target predefined type */
     if (wrank == 0) {
-       MPI_Barrier( MPI_COMM_WORLD );
-       MPI_Win_lock( MPI_LOCK_EXCLUSIVE, 0, 0, win );
-       for (i=0; i<10; i++) {
-           if (rmabuf[i] != -i + 4*i) {
-               errs++;
-               printf( "Acc: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, -i + 4*i, rmabuf[i] );
-           }
-           rmabuf[i] = -i;
-       }
-       for (i=10; i<memsize; i++) {
-           if (rmabuf[i] != -i) {
-               errs++;
-               printf( "Acc: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, -i, rmabuf[i] );
-               rmabuf[i] = -i;
-           }
-       }
-       MPI_Win_unlock( 0, win );
+        MPI_Barrier(MPI_COMM_WORLD);
+        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, 0, 0, win);
+        for (i = 0; i < 10; i++) {
+            if (rmabuf[i] != -i + 4 * i) {
+                errs++;
+                printf("Acc: expected rmabuf[%d] = %d but saw %d\n", i, -i + 4 * i, rmabuf[i]);
+            }
+            rmabuf[i] = -i;
+        }
+        for (i = 10; i < memsize; i++) {
+            if (rmabuf[i] != -i) {
+                errs++;
+                printf("Acc: expected rmabuf[%d] = %d but saw %d\n", i, -i, rmabuf[i]);
+                rmabuf[i] = -i;
+            }
+        }
+        MPI_Win_unlock(0, win);
     }
     else if (wrank == 1) {
-       MPI_Win_lock( MPI_LOCK_SHARED, 0, 0, win );
-       MPI_Accumulate( srcbuf, 1, vectype, 0, 0, 10, MPI_INT, MPI_SUM, win );
-       MPI_Win_unlock( 0, win );
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Win_lock(MPI_LOCK_SHARED, 0, 0, win);
+        MPI_Accumulate(srcbuf, 1, vectype, 0, 0, 10, MPI_INT, MPI_SUM, win);
+        MPI_Win_unlock(0, win);
+        MPI_Barrier(MPI_COMM_WORLD);
     }
     else {
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Barrier(MPI_COMM_WORLD);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    /* Put with a derived origin type and target predefined type*/
+    /* Put with a derived origin type and target predefined type */
     if (wrank == 0) {
-       MPI_Barrier( MPI_COMM_WORLD );
-       MPI_Win_lock( MPI_LOCK_EXCLUSIVE, 0, 0, win );
-       for (i=0; i<10; i++) {
-           if (rmabuf[i] != 4*i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, 4*i, rmabuf[i] );
-           }
-           rmabuf[i] = -i;
-       }
-       for (i=10; i<memsize; i++) {
-           if (rmabuf[i] != -i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, -i, rmabuf[i] );
-               rmabuf[i] = -i;
-           }
-       }
-       MPI_Win_unlock( 0, win );
+        MPI_Barrier(MPI_COMM_WORLD);
+        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, 0, 0, win);
+        for (i = 0; i < 10; i++) {
+            if (rmabuf[i] != 4 * i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, 4 * i, rmabuf[i]);
+            }
+            rmabuf[i] = -i;
+        }
+        for (i = 10; i < memsize; i++) {
+            if (rmabuf[i] != -i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, -i, rmabuf[i]);
+                rmabuf[i] = -i;
+            }
+        }
+        MPI_Win_unlock(0, win);
     }
     else if (wrank == 1) {
-       MPI_Win_lock( MPI_LOCK_SHARED, 0, 0, win );
-       MPI_Put( srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win );
-       MPI_Win_unlock( 0, win );
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Win_lock(MPI_LOCK_SHARED, 0, 0, win);
+        MPI_Put(srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win);
+        MPI_Win_unlock(0, win);
+        MPI_Barrier(MPI_COMM_WORLD);
     }
     else {
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Barrier(MPI_COMM_WORLD);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    /* Put with a derived origin type and target predefined type, with 
-       a get (see the move-to-end optimization) */
+    /* Put with a derived origin type and target predefined type, with
+     * a get (see the move-to-end optimization) */
     if (wrank == 0) {
-       MPI_Barrier( MPI_COMM_WORLD );
-       MPI_Win_lock( MPI_LOCK_EXCLUSIVE, 0, 0, win );
-       for (i=0; i<10; i++) {
-           if (rmabuf[i] != 4*i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, 4*i, rmabuf[i] );
-           }
-           rmabuf[i] = -i;
-       }
-       for (i=10; i<memsize; i++) {
-           if (rmabuf[i] != -i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, -i, rmabuf[i] );
-               rmabuf[i] = -i;
-           }
-       }
-       MPI_Win_unlock( 0, win );
+        MPI_Barrier(MPI_COMM_WORLD);
+        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, 0, 0, win);
+        for (i = 0; i < 10; i++) {
+            if (rmabuf[i] != 4 * i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, 4 * i, rmabuf[i]);
+            }
+            rmabuf[i] = -i;
+        }
+        for (i = 10; i < memsize; i++) {
+            if (rmabuf[i] != -i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, -i, rmabuf[i]);
+                rmabuf[i] = -i;
+            }
+        }
+        MPI_Win_unlock(0, win);
     }
     else if (wrank == 1) {
-       int val;
-       MPI_Win_lock( MPI_LOCK_SHARED, 0, 0, win );
-       MPI_Get( &val, 1, MPI_INT, 0, 10, 1, MPI_INT, win );
-       MPI_Put( srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win );
-       MPI_Win_unlock( 0, win );
-       MPI_Barrier( MPI_COMM_WORLD );
-       if (val != -10) {
-           errs++;
-           printf( "Get: Expected -10, got %d\n", val );
-       }
+        int val;
+        MPI_Win_lock(MPI_LOCK_SHARED, 0, 0, win);
+        MPI_Get(&val, 1, MPI_INT, 0, 10, 1, MPI_INT, win);
+        MPI_Put(srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win);
+        MPI_Win_unlock(0, win);
+        MPI_Barrier(MPI_COMM_WORLD);
+        if (val != -10) {
+            errs++;
+            printf("Get: Expected -10, got %d\n", val);
+        }
     }
     else {
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Barrier(MPI_COMM_WORLD);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    /* Put with a derived origin type and target predefined type, with 
-       a get already at the end (see the move-to-end optimization) */
+    /* Put with a derived origin type and target predefined type, with
+     * a get already at the end (see the move-to-end optimization) */
     if (wrank == 0) {
-       MPI_Barrier( MPI_COMM_WORLD );
-       MPI_Win_lock( MPI_LOCK_EXCLUSIVE, 0, 0, win );
-       for (i=0; i<10; i++) {
-           if (rmabuf[i] != 4*i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, 4*i, rmabuf[i] );
-           }
-           rmabuf[i] = -i;
-       }
-       for (i=10; i<memsize; i++) {
-           if (rmabuf[i] != -i) {
-               errs++;
-               printf( "Put: expected rmabuf[%d] = %d but saw %d\n", 
-                       i, -i, rmabuf[i] );
-               rmabuf[i] = -i;
-           }
-       }
-       MPI_Win_unlock( 0, win );
+        MPI_Barrier(MPI_COMM_WORLD);
+        MPI_Win_lock(MPI_LOCK_EXCLUSIVE, 0, 0, win);
+        for (i = 0; i < 10; i++) {
+            if (rmabuf[i] != 4 * i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, 4 * i, rmabuf[i]);
+            }
+            rmabuf[i] = -i;
+        }
+        for (i = 10; i < memsize; i++) {
+            if (rmabuf[i] != -i) {
+                errs++;
+                printf("Put: expected rmabuf[%d] = %d but saw %d\n", i, -i, rmabuf[i]);
+                rmabuf[i] = -i;
+            }
+        }
+        MPI_Win_unlock(0, win);
     }
     else if (wrank == 1) {
-       int val;
-       MPI_Win_lock( MPI_LOCK_SHARED, 0, 0, win );
-       MPI_Put( srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win );
-       MPI_Get( &val, 1, MPI_INT, 0, 10, 1, MPI_INT, win );
-       MPI_Win_unlock( 0, win );
-       MPI_Barrier( MPI_COMM_WORLD );
-       if (val != -10) {
-           errs++;
-           printf( "Get: Expected -10, got %d\n", val );
-       }
+        int val;
+        MPI_Win_lock(MPI_LOCK_SHARED, 0, 0, win);
+        MPI_Put(srcbuf, 1, vectype, 0, 0, 10, MPI_INT, win);
+        MPI_Get(&val, 1, MPI_INT, 0, 10, 1, MPI_INT, win);
+        MPI_Win_unlock(0, win);
+        MPI_Barrier(MPI_COMM_WORLD);
+        if (val != -10) {
+            errs++;
+            printf("Get: Expected -10, got %d\n", val);
+        }
     }
     else {
-       MPI_Barrier( MPI_COMM_WORLD );
+        MPI_Barrier(MPI_COMM_WORLD);
     }
 
-    MPI_Win_free( &win );
-    MPI_Free_mem( rmabuf );
-    free( srcbuf );
-    MPI_Type_free( &vectype );
+    MPI_Win_free(&win);
+    MPI_Free_mem(rmabuf);
+    free(srcbuf);
+    MPI_Type_free(&vectype);
 
     MTest_Finalize(errs);
-    MPI_Finalize(); 
-    return 0; 
-} 
-
+    MPI_Finalize();
+    return 0;
+}