Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sanitize the OOP of kernel::profile
[simgrid.git] / src / smpi / colls / allreduce / allreduce-lr.cpp
index 5ff1b88..9d92883 100644 (file)
@@ -1,13 +1,13 @@
-/* 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
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "../colls_private.h"
+#include "../colls_private.hpp"
 
-/* IMPLEMENTED BY PITCH PATARASUK 
-   Non-topoloty-specific all-reduce operation designed bandwidth optimally 
+/* IMPLEMENTED BY PITCH PATARASUK
+   Non-topoloty-specific all-reduce operation designed bandwidth optimally
    Bug fixing by Xin Yuan, 04/04/2008
 */
 
@@ -18,7 +18,8 @@
 */
 
 //#include <star-reduction.c>
-
+namespace simgrid{
+namespace smpi{
 int
 Coll_allreduce_lr::allreduce(void *sbuf, void *rbuf, int rcount,
                              MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
@@ -38,12 +39,12 @@ Coll_allreduce_lr::allreduce(void *sbuf, void *rbuf, int rcount,
 
   /* when communication size is smaller than number of process (not support) */
   if (rcount < size) {
-    XBT_WARN("MPI_allreduce_lr use default MPI_allreduce.");     
+    XBT_WARN("MPI_allreduce_lr use default MPI_allreduce.");
     Coll_allreduce_default::allreduce(sbuf, rbuf, rcount, dtype, op, comm);
-    return MPI_SUCCESS; 
+    return MPI_SUCCESS;
   }
 
-  /* when communication size is not divisible by number of process: 
+  /* when communication size is not divisible by number of process:
      call the native implementation for the remain chunk at the end of the operation */
   if (rcount % size != 0) {
     remainder = rcount % size;
@@ -61,7 +62,7 @@ Coll_allreduce_lr::allreduce(void *sbuf, void *rbuf, int rcount,
   /* our ALL-REDUCE implementation
      1. copy (partial of)send_buf to recv_buf
      2. use logical ring reduce-scatter
-     3. use logical ring all-gather 
+     3. use logical ring all-gather
    */
 
   // copy partial data
@@ -94,7 +95,7 @@ Coll_allreduce_lr::allreduce(void *sbuf, void *rbuf, int rcount,
                  ((rank + size - 1) % size), tag + i, comm, &status);
   }
 
-  /* when communication size is not divisible by number of process: 
+  /* when communication size is not divisible by number of process:
      call the native implementation for the remain chunk at the end of the operation */
   if (remainder_flag) {
     return Colls::allreduce((char *) sbuf + remainder_offset,
@@ -104,3 +105,5 @@ Coll_allreduce_lr::allreduce(void *sbuf, void *rbuf, int rcount,
 
   return 0;
 }
+}
+}