Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / src / smpi / colls / bcast / bcast-scatter-rdb-allgather.cpp
index 9cf489b..0c41344 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2011-2022. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -72,7 +72,7 @@ static int scatter_for_bcast(
     }
 
     /* This process is responsible for all processes that have bits
-       set from the LSB upto (but not including) mask.  Because of
+       set from the LSB up to (but not including) mask.  Because of
        the "not including", we start by shifting mask back down
        one. */
 
@@ -114,7 +114,8 @@ int bcast__scatter_rdb_allgather(
     int relative_rank, mask;
     int mpi_errno = MPI_SUCCESS;
     int scatter_size, curr_size, recv_size = 0;
-    int j, k, i, tmp_mask, is_contig, is_homogeneous;
+    int j, k, i, tmp_mask;
+    bool is_contig, is_homogeneous;
     MPI_Aint type_size = 0, nbytes = 0;
     int relative_dst, dst_tree_root, my_tree_root, send_offset;
     int recv_offset, tree_root, nprocs_completed, offset;
@@ -130,13 +131,9 @@ int bcast__scatter_rdb_allgather(
     if (comm_size == 1) goto fn_exit;
 
     //if (HANDLE_GET_KIND(datatype) == HANDLE_KIND_BUILTIN)
-    if(datatype->flags() & DT_FLAG_CONTIGUOUS)
-        is_contig = 1;
-    else {
-        is_contig = 0;
-    }
+    is_contig = ((datatype->flags() & DT_FLAG_CONTIGUOUS) != 0);
 
-    is_homogeneous = 1;
+    is_homogeneous = true;
 
     /* MPI_Type_size() might not give the accurate size of the packed
      * datatype for heterogeneous systems (because of padding, encoding,
@@ -167,8 +164,7 @@ int bcast__scatter_rdb_allgather(
       position = 0;
       if (rank == root) {
         mpi_errno = datatype->pack(buffer, count, tmp_buf, nbytes, &position, comm);
-        if (mpi_errno)
-          xbt_die("crash while packing %d", mpi_errno);
+        xbt_assert(mpi_errno == 0, "crash while packing %d", mpi_errno);
       }
     }
 
@@ -177,9 +173,7 @@ int bcast__scatter_rdb_allgather(
 
     mpi_errno = scatter_for_bcast(root, comm,
                                   nbytes, tmp_buf);
-    if (mpi_errno) {
-      xbt_die("crash while scattering %d", mpi_errno);
-    }
+    xbt_assert(mpi_errno == 0, "crash while scattering %d", mpi_errno);
 
     /* curr_size is the amount of data that this process now has stored in
      * buffer at byte offset (relative_rank*scatter_size) */
@@ -319,16 +313,13 @@ int bcast__scatter_rdb_allgather(
 
     /* check that we received as much as we expected */
     /* recvd_size may not be accurate for packed heterogeneous data */
-    if (is_homogeneous && curr_size != nbytes) {
-      xbt_die("we didn't receive enough !");
-    }
+    xbt_assert(not is_homogeneous || curr_size == nbytes, "we didn't receive enough !");
 
     if (not is_contig || not is_homogeneous) {
       if (rank != root) {
         position  = 0;
         mpi_errno = MPI_Unpack(tmp_buf, nbytes, &position, buffer, count, datatype, comm);
-        if (mpi_errno)
-          xbt_die("error when unpacking %d", mpi_errno);
+        xbt_assert(mpi_errno == 0, "error when unpacking %d", mpi_errno);
       }
     }