Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add allgatherv algo from ompi
[simgrid.git] / src / smpi / colls / allreduce-rab-rsag.c
index 268ac8b..34e23d6 100644 (file)
@@ -5,7 +5,7 @@ int smpi_coll_tuned_allreduce_rab_rsag(void *sbuff, void *rbuff, int count,
                                        MPI_Datatype dtype, MPI_Op op,
                                        MPI_Comm comm)
 {
-  int nprocs, rank, type_size, tag = 543;
+  int nprocs, rank, tag = 543;
   int mask, dst, pof2, newrank, rem, newdst, i,
       send_idx, recv_idx, last_idx, send_cnt, recv_cnt, *cnts, *disps;
   MPI_Aint extent;
@@ -20,8 +20,6 @@ int smpi_coll_tuned_allreduce_rab_rsag(void *sbuff, void *rbuff, int count,
   smpi_mpi_sendrecv(sbuff, count, dtype, rank, tag, rbuff, count, dtype, rank, tag,
                comm, &status);
 
-  type_size = smpi_datatype_size(dtype);
-
   // find nearest power-of-two less than or equal to comm_size
   pof2 = 1;
   while (pof2 <= nprocs)
@@ -52,7 +50,7 @@ int smpi_coll_tuned_allreduce_rab_rsag(void *sbuff, void *rbuff, int count,
       // do the reduction on received data. since the
       // ordering is right, it doesn't matter whether
       // the operation is commutative or not.
-      star_reduction(op, tmp_buf, rbuff, &count, &dtype);
+      smpi_op_apply(op, tmp_buf, rbuff, &count, &dtype);
 
       // change the rank 
       newrank = rank / 2;
@@ -121,7 +119,7 @@ int smpi_coll_tuned_allreduce_rab_rsag(void *sbuff, void *rbuff, int count,
 
       // This algorithm is used only for predefined ops
       // and predefined ops are always commutative.
-      star_reduction(op, (char *) tmp_buf + disps[recv_idx] * extent,
+      smpi_op_apply(op, (char *) tmp_buf + disps[recv_idx] * extent,
                      (char *) rbuff + disps[recv_idx] * extent,
                      &recv_cnt, &dtype);