Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add new entry in Release_Notes.
[simgrid.git] / src / smpi / colls / alltoall / alltoall-pair-mpi-barrier.cpp
index d39e9985c0a2fdf021bc1f66c65271c6528fb6c0..fbc71633b5192d4a3a19284835473a94e9013670 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2018. The SimGrid Team.
+/* Copyright (c) 2013-2023. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
            phases, nodes in pair communicate their data. MPI barriers are
            inserted between each two phases.
 
            phases, nodes in pair communicate their data. MPI barriers are
            inserted between each two phases.
 
- * Auther: Ahmad Faraj
+ * Author: Ahmad Faraj
 
  ****************************************************************************/
 
  ****************************************************************************/
-namespace simgrid{
-namespace smpi{
+namespace simgrid::smpi {
 int
 int
-Coll_alltoall_pair_mpi_barrier::alltoall(void *send_buff, int send_count,
-                                          MPI_Datatype send_type,
-                                          void *recv_buff, int recv_count,
-                                          MPI_Datatype recv_type, MPI_Comm comm)
+alltoall__pair_mpi_barrier(const void *send_buff, int send_count,
+                           MPI_Datatype send_type,
+                           void *recv_buff, int recv_count,
+                           MPI_Datatype recv_type, MPI_Comm comm)
 {
   MPI_Status s;
   MPI_Aint send_chunk, recv_chunk;
 {
   MPI_Status s;
   MPI_Aint send_chunk, recv_chunk;
@@ -46,7 +45,7 @@ Coll_alltoall_pair_mpi_barrier::alltoall(void *send_buff, int send_count,
   num_procs = comm->size();
 
   if((num_procs&(num_procs-1)))
   num_procs = comm->size();
 
   if((num_procs&(num_procs-1)))
-    THROWF(arg_error,0, "alltoall pair algorithm can't be used with non power of two number of processes ! ");
+    throw std::invalid_argument("alltoall pair algorithm can't be used with non power of two number of processes!");
 
   send_chunk = send_type->get_extent();
   recv_chunk = recv_type->get_extent();
 
   send_chunk = send_type->get_extent();
   recv_chunk = recv_type->get_extent();
@@ -56,12 +55,11 @@ Coll_alltoall_pair_mpi_barrier::alltoall(void *send_buff, int send_count,
 
   for (i = 0; i < num_procs; i++) {
     src = dst = rank ^ i;
 
   for (i = 0; i < num_procs; i++) {
     src = dst = rank ^ i;
-    Colls::barrier(comm);
+    colls::barrier(comm);
     Request::sendrecv(send_ptr + dst * send_chunk, send_count, send_type, dst,
                  tag, recv_ptr + src * recv_chunk, recv_count, recv_type,
                  src, tag, comm, &s);
   }
   return MPI_SUCCESS;
 }
     Request::sendrecv(send_ptr + dst * send_chunk, send_count, send_type, dst,
                  tag, recv_ptr + src * recv_chunk, recv_count, recv_type,
                  src, tag, comm, &s);
   }
   return MPI_SUCCESS;
 }
-}
-}
+} // namespace simgrid::smpi