Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add new entry in Release_Notes.
[simgrid.git] / src / smpi / colls / allreduce / allreduce-lr.cpp
index 380e093..517bd69 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2019. 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
@@ -7,7 +7,7 @@
 #include "../colls_private.hpp"
 
 /* IMPLEMENTED BY PITCH PATARASUK
-   Non-topoloty-specific all-reduce operation designed bandwidth optimally
+   Non-topology-specific all-reduce operation designed bandwidth optimally
    Bug fixing by Xin Yuan, 04/04/2008
 */
 
 */
 
 //#include <star-reduction.c>
-namespace simgrid{
-namespace smpi{
-int
-Coll_allreduce_lr::allreduce(const void *sbuf, void *rbuf, int rcount,
-                             MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
+namespace simgrid::smpi {
+int allreduce__lr(const void *sbuf, void *rbuf, int rcount,
+                  MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
 {
   int tag = COLL_TAG_ALLREDUCE;
   MPI_Status status;
@@ -37,10 +35,9 @@ Coll_allreduce_lr::allreduce(const void *sbuf, void *rbuf, int rcount,
   MPI_Aint extent;
   extent = dtype->get_extent();
 
-  /* when communication size is smaller than number of process (not support) */
   if (rcount < size) {
-    XBT_WARN("MPI_allreduce_lr use default MPI_allreduce.");
-    Coll_allreduce_default::allreduce(sbuf, rbuf, rcount, dtype, op, comm);
+    XBT_INFO("MPI_allreduce_lr: communication size smaller than number of process, use default MPI_allreduce.");
+    allreduce__redbcast(sbuf, rbuf, rcount, dtype, op, comm);
     return MPI_SUCCESS;
   }
 
@@ -98,12 +95,9 @@ Coll_allreduce_lr::allreduce(const void *sbuf, void *rbuf, int rcount,
   /* 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,
-                         (char *) rbuf + remainder_offset, remainder, dtype, op,
-                         comm);
+    return colls::allreduce((char*)sbuf + remainder_offset, (char*)rbuf + remainder_offset, remainder, dtype, op, comm);
   }
 
   return 0;
 }
-}
-}
+} // namespace simgrid::smpi