Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove useless allocations.
[simgrid.git] / teshsuite / smpi / coll-alltoallv / coll-alltoallv.c
index c3e3798..233b978 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2014. The SimGrid Team.
+/* Copyright (c) 2013-2014, 2016-2017. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
    <2> rbuf: (#9):   [3][4][103][104][203][204][-1][-1][-1]
 */
 
-static void print_buffer_int(void *buf, int len, char *msg, int rank)
+static void print_buffer_int(void *buf, int len, const char *msg, int rank)
 {
-  int tmp, *v;
   printf("[%d] %s (#%d): ", rank, msg, len);
-  for (tmp = 0; tmp < len; tmp++) {
-    v = buf;
+  for (int tmp = 0; tmp < len; tmp++) {
+    int* v = buf;
     printf("[%d]", v[tmp]);
   }
   printf("\n");
-  free(msg);
 }
 
 int main(int argc, char **argv)
 {
   MPI_Comm comm;
-  int *sbuf, *rbuf;
-  int i,rank, size;
-  int *sendcounts, *recvcounts, *rdispls, *sdispls;
+  int i;
+  int rank;
+  int size;
 
   MPI_Init(&argc, &argv);
 
@@ -69,9 +67,13 @@ int main(int argc, char **argv)
 
   /* Create the buffer */
   MPI_Comm_size(comm, &size);
+  if(size<=0){
+    printf("error : comm size <= 0, run with mpirun\n");
+    return -1;
+  }
   MPI_Comm_rank(comm, &rank);
-  sbuf = (int *) xbt_malloc(size * size * sizeof(int));
-  rbuf = (int *) xbt_malloc(size * size * sizeof(int));
+  int* sbuf = (int *) xbt_malloc(size * size * sizeof(int));
+  int* rbuf = (int *) xbt_malloc(size * size * sizeof(int));
 
   /* Load up the buffers */
   for (i = 0; i < size * size; i++) {
@@ -80,10 +82,10 @@ int main(int argc, char **argv)
   }
 
   /* Create and load the arguments to alltoallv */
-  sendcounts = (int *) xbt_malloc(size * sizeof(int));
-  recvcounts = (int *) xbt_malloc(size * sizeof(int));
-  rdispls = (int *) xbt_malloc(size * sizeof(int));
-  sdispls = (int *) xbt_malloc(size * sizeof(int));
+  int* sendcounts = (int*)xbt_malloc(size * sizeof(int));
+  int* recvcounts = (int*)xbt_malloc(size * sizeof(int));
+  int* rdispls    = (int*)xbt_malloc(size * sizeof(int));
+  int* sdispls    = (int*)xbt_malloc(size * sizeof(int));
   for (i = 0; i < size; i++) {
     sendcounts[i] = i;
     recvcounts[i] = rank;
@@ -91,17 +93,17 @@ int main(int argc, char **argv)
     sdispls[i] = (i * (i + 1)) / 2;
   }
 
-  print_buffer_int( sbuf, size*size, strdup("sbuf:"),rank);
-  print_buffer_int( sendcounts, size, strdup("scount:"),rank);
-  print_buffer_int( recvcounts, size, strdup("rcount:"),rank);
-  print_buffer_int( sdispls, size, strdup("sdisp:"),rank);
-  print_buffer_int( rdispls, size, strdup("rdisp:"),rank);
+  print_buffer_int(sbuf, size * size, "sbuf:", rank);
+  print_buffer_int(sendcounts, size, "scount:", rank);
+  print_buffer_int(recvcounts, size, "rcount:", rank);
+  print_buffer_int(sdispls, size, "sdisp:", rank);
+  print_buffer_int(rdispls, size, "rdisp:", rank);
 
   MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, rbuf, recvcounts, rdispls, MPI_INT, comm);
 
-  print_buffer_int( rbuf, size*size, strdup("rbuf:"),rank);
+  print_buffer_int(rbuf, size * size, "rbuf:", rank);
 
-  MPI_Barrier(MPI_COMM_WORLD);  
+  MPI_Barrier(MPI_COMM_WORLD);
   if (0 == rank) {
     printf("Alltoallv TEST COMPLETE.\n");
   }