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 9c04f878f367e68c0a697424fb4ea439dd2accc4..fbc71633b5192d4a3a19284835473a94e9013670 100644 (file)
@@ -1,10 +1,10 @@
-/* Copyright (c) 2013-2014. 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
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
  * 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. */
 
-#include "../colls_private.h"
+#include "../colls_private.hpp"
 /*****************************************************************************
 
  * Function: alltoall_pair_mpi_barrier
 /*****************************************************************************
 
  * Function: alltoall_pair_mpi_barrier
            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::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;
@@ -44,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();
@@ -54,10 +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