Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines with new year.
[simgrid.git] / src / smpi / colls / allgatherv / allgatherv-mpich-ring.cpp
index 2deb294..c0d9dc9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2014. The SimGrid Team.
+/* Copyright (c) 2013-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,7 +10,7 @@
  *      See COPYRIGHT in top-level directory.
  */
 
-#include "../colls_private.h"
+#include "../colls_private.hpp"
 
 /*****************************************************************************
  * Function: allgather_mpich_ring
  *   recv_type: data type of elements being received
  *   comm: communication
  ****************************************************************************/
+
+namespace simgrid{
+namespace smpi{
+
 int
-smpi_coll_tuned_allgatherv_mpich_ring(void *sendbuf, int sendcount,
+Coll_allgatherv_mpich_ring::allgatherv(void *sendbuf, int sendcount,
     MPI_Datatype send_type, void *recvbuf,
     int *recvcounts, int *displs, MPI_Datatype recvtype,
     MPI_Comm comm)
@@ -68,7 +72,7 @@ smpi_coll_tuned_allgatherv_mpich_ring(void *sendbuf, int sendcount,
     min = 32768*8 / recvtype_extent;
   /* Handle the case where the datatype extent is larger than
    * the pipeline size. */
-  if (!min)
+  if (not min)
     min = 1;
 
   sidx = rank;
@@ -82,25 +86,23 @@ smpi_coll_tuned_allgatherv_mpich_ring(void *sendbuf, int sendcount,
       rbuf = (char *)recvbuf + ((displs[ridx] + roffset) * recvtype_extent);
 
       /* Protect against wrap-around of indices */
-      if (!tosend)
+      if (not tosend)
         sendnow = 0;
-      if (!torecv)
+      if (not torecv)
         recvnow = 0;
 
       /* Communicate */
-      if (!sendnow && !recvnow) {
-          /* Don't do anything. This case is possible if two
-           * consecutive processes contribute 0 bytes each. */
-      }
-      else if (!sendnow) { /* If there's no data to send, just do a recv call */
-          Request::recv(rbuf, recvnow, recvtype, left, COLL_TAG_ALLGATHERV, comm, &status);
+      if (not sendnow && not recvnow) {
+        /* Don't do anything. This case is possible if two
+         * consecutive processes contribute 0 bytes each. */
+      } else if (not sendnow) { /* If there's no data to send, just do a recv call */
+        Request::recv(rbuf, recvnow, recvtype, left, COLL_TAG_ALLGATHERV, comm, &status);
 
-          torecv -= recvnow;
-      }
-      else if (!recvnow) { /* If there's no data to receive, just do a send call */
-          Request::send(sbuf, sendnow, recvtype, right, COLL_TAG_ALLGATHERV, comm);
+        torecv -= recvnow;
+      } else if (not recvnow) { /* If there's no data to receive, just do a send call */
+        Request::send(sbuf, sendnow, recvtype, right, COLL_TAG_ALLGATHERV, comm);
 
-          tosend -= sendnow;
+        tosend -= sendnow;
       }
       else { /* There's data to be sent and received */
           Request::sendrecv(sbuf, sendnow, recvtype, right, COLL_TAG_ALLGATHERV,
@@ -124,3 +126,6 @@ smpi_coll_tuned_allgatherv_mpich_ring(void *sendbuf, int sendcount,
 
   return MPI_SUCCESS;
 }
+
+}
+}