Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
smpi: many classes died tonight, but that will save kitten on the long term.
[simgrid.git] / src / smpi / colls / allgather / allgather-bruck.cpp
index 064a8f7..0c3706e 100644 (file)
@@ -1,10 +1,10 @@
-/* Copyright (c) 2013-2017. 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"
 
 /*****************************************************************************
 
@@ -49,7 +49,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 *****************************************************************************/
 
-
 /*****************************************************************************
  * Function: allgather_bruck
  * return: int
@@ -63,9 +62,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *   comm: communication
  * Descrp: Function realizes the allgather operation using the bruck
  *         algorithm.
- * Auther: MPICH
+ * Author: MPICH
  * Comment: Original bruck algorithm from MPICH is slightly modified by
- *          Ahmad Faraj.  
+ *          Ahmad Faraj.
  ****************************************************************************/
 
 namespace simgrid{
@@ -73,10 +72,10 @@ namespace smpi{
 
 
 
-int Coll_allgather_bruck::allgather(void *send_buff, int send_count,
-                                    MPI_Datatype send_type, void *recv_buff,
-                                    int recv_count, MPI_Datatype recv_type,
-                                    MPI_Comm comm)
+int allgather__bruck(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 variables
   MPI_Status status;
@@ -88,11 +87,10 @@ int Coll_allgather_bruck::allgather(void *send_buff, int send_count,
   int pof2 = 1;
 
   // local string variables
-  char *tmp_buff;
   char *send_ptr = (char *) send_buff;
   char *recv_ptr = (char *) recv_buff;
 
-  // get size of the communicator, followed by rank 
+  // get size of the communicator, followed by rank
   num_procs = comm->size();
   rank = comm->rank();
 
@@ -101,11 +99,10 @@ int Coll_allgather_bruck::allgather(void *send_buff, int send_count,
 
   count = recv_count;
 
-  tmp_buff = (char *) smpi_get_tmp_sendbuffer(num_procs * recv_count * recv_extent);
+  unsigned char* tmp_buff = smpi_get_tmp_sendbuffer(num_procs * recv_count * recv_extent);
 
   // perform a local copy
-  Datatype::copy(send_ptr, send_count, send_type,
-                    tmp_buff, recv_count, recv_type);
+  Datatype::copy(send_ptr, send_count, send_type, tmp_buff, recv_count, recv_type);
   while (pof2 <= (num_procs / 2)) {
     src = (rank + pof2) % num_procs;
     dst = (rank - pof2 + num_procs) % num_procs;