Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines.
[simgrid.git] / src / smpi / colls / bcast / bcast-ompi-split-bintree.cpp
index 24736d4..38c97de 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2020. The SimGrid Team.
+/* Copyright (c) 2013-2021. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@ int bcast__ompi_split_bintree( void* buffer,
     int segindex, i, lr, pair;
     int segcount[2];       /* Number ompi_request_wait_allof elements sent with each segment */
     uint32_t counts[2];
-    int num_segments[2];   /* Number of segmenets */
+    int num_segments[2];   /* Number of segments */
     int sendcount[2];      /* the same like segcount, except for the last segment */
     size_t realsegsize[2];
     char *tmpbuf[2];
@@ -112,23 +112,20 @@ int bcast__ompi_split_bintree( void* buffer,
     counts[0] = count/2;
     if (count % 2 != 0) counts[0]++;
     counts[1] = count - counts[0];
-    if ( segsize > 0 ) {
-        /* Note that ompi_datatype_type_size() will never return a negative
-           value in typelng; it returns an int [vs. an unsigned type]
-           because of the MPI spec. */
-        if (segsize < ((uint32_t)type_size)) {
-          segsize = type_size; /* push segsize up to hold one type */
-        }
-        segcount[0] = segcount[1] = segsize / type_size;
-        num_segments[0] = counts[0]/segcount[0];
-        if ((counts[0] % segcount[0]) != 0) num_segments[0]++;
-        num_segments[1] = counts[1]/segcount[1];
-        if ((counts[1] % segcount[1]) != 0) num_segments[1]++;
-    } else {
-        segcount[0]     = counts[0];
-        segcount[1]     = counts[1];
-        num_segments[0] = num_segments[1] = 1;
+
+    /* Note that ompi_datatype_type_size() will never return a negative
+       value in typelng; it returns an int [vs. an unsigned type]
+       because of the MPI spec. */
+    if (segsize < ((uint32_t)type_size)) {
+      segsize = type_size; /* push segsize up to hold one type */
     }
+    segcount[0] = segcount[1] = segsize / type_size;
+    num_segments[0]           = counts[0] / segcount[0];
+    if ((counts[0] % segcount[0]) != 0)
+      num_segments[0]++;
+    num_segments[1] = counts[1] / segcount[1];
+    if ((counts[1] % segcount[1]) != 0)
+      num_segments[1]++;
 
     /* if the message is too small to be split into segments */
     if( (counts[0] == 0 || counts[1] == 0) ||
@@ -211,7 +208,7 @@ int bcast__ompi_split_bintree( void* buffer,
           Request::send(tmpbuf[lr], segcount[lr], datatype, tree->tree_next[i], COLL_TAG_BCAST, comm);
         } /* end of for each child */
 
-        /* upate the base request */
+        /* update the base request */
         base_req = new_req;
         /* go to the next buffer (ie. the one corresponding to the next recv) */
         tmpbuf[lr] += realsegsize[lr];