Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Upgrade coll mpich testlist to new mpich
[simgrid.git] / teshsuite / smpi / mpich3-test / coll / allgatherv3.c
index 7ba9a66..25066aa 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-/* Gather data from a vector to contiguous.  This is 
+/* Gather data from a vector to contiguous.  This is
    the trivial version based on the allgather test (allgatherv but with
    constant data sizes) */
 
-int main( int argc, char **argv )
+int main(int argc, char **argv)
 {
     double *vecout, *invec;
     MPI_Comm comm;
-    int    count, minsize = 2;
-    int    i, errs = 0;
-    int    rank, size;
-    int    *displs, *recvcounts;
+    int count, minsize = 2;
+    int i, errs = 0;
+    int rank, size;
+    int *displs, *recvcounts;
 
-    MTest_Init( &argc, &argv );
+    MTest_Init(&argc, &argv);
 
-    while (MTestGetIntracommGeneral( &comm, minsize, 1 )) {
-       if (comm == MPI_COMM_NULL) continue;
-       /* Determine the sender and receiver */
-       MPI_Comm_rank( comm, &rank );
-       MPI_Comm_size( comm, &size );
+    while (MTestGetIntracommGeneral(&comm, minsize, 1)) {
+        if (comm == MPI_COMM_NULL)
+            continue;
+        /* Determine the sender and receiver */
+        MPI_Comm_rank(comm, &rank);
+        MPI_Comm_size(comm, &size);
+
+        displs = (int *) malloc(size * sizeof(int));
+        recvcounts = (int *) malloc(size * sizeof(int));
 
-       displs     = (int *)malloc( size * sizeof(int) );
-       recvcounts = (int *)malloc( size * sizeof(int) );
-       
         for (count = 1; count < 9000; count = count * 2) {
-           invec = (double *)malloc( count * sizeof(double) );
-            vecout = (double *)malloc( size * count * sizeof(double) );
-            
-            for (i=0; i<count; i++) {
-                invec[i] = rank*count+i;
+            invec = (double *) malloc(count * sizeof(double));
+            vecout = (double *) malloc(size * count * sizeof(double));
+
+            for (i = 0; i < count; i++) {
+                invec[i] = rank * count + i;
             }
-            for (i=0; i<size; i++) {
+            for (i = 0; i < size; i++) {
                 recvcounts[i] = count;
-                displs[i]    = i * count;
+                displs[i] = i * count;
             }
-            MPI_Allgatherv( invec, count, MPI_DOUBLE, 
-                            vecout, recvcounts, displs, MPI_DOUBLE, comm );
-            for (i=0; i<count*size; i++) {
+            MPI_Allgatherv(invec, count, MPI_DOUBLE, vecout, recvcounts, displs, MPI_DOUBLE, comm);
+            for (i = 0; i < count * size; i++) {
                 if (vecout[i] != i) {
                     errs++;
                     if (errs < 10) {
-                        fprintf( stderr, "vecout[%d]=%d\n",
-                                 i, (int)vecout[i] );
+                        fprintf(stderr, "vecout[%d]=%d\n", i, (int) vecout[i]);
                     }
                 }
             }
-           free( invec );
-            free( vecout );
+            free(invec);
+            free(vecout);
         }
-       free( displs );
-       free( recvcounts );
-       MTestFreeComm( &comm );
+        free(displs);
+        free(recvcounts);
+        MTestFreeComm(&comm);
     }
-    
-    MTest_Finalize( errs );
+
+    MTest_Finalize(errs);
     MPI_Finalize();
     return 0;
 }
-
-