-/* Copyright (c) 2013-2014. The SimGrid Team.
+/* Copyright (c) 2013-2018. 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"
//#include <star-reduction.c>
-
+namespace simgrid{
+namespace smpi{
// NP pow of 2 for now
-int smpi_coll_tuned_allreduce_rab1(void *sbuff, void *rbuff,
+int Coll_allreduce_rab1::allreduce(void *sbuff, void *rbuff,
int count, MPI_Datatype dtype,
MPI_Op op, MPI_Comm comm)
{
if(op!=MPI_OP_NULL) op->apply( tmp_buf, (char *) recv + recv_idx * extent, &recv_cnt,
dtype);
- // update send_idx for next iteration
+ // update send_idx for next iteration
send_idx = recv_idx;
mask >>= 1;
}
memcpy(tmp_buf, (char *) recv + recv_idx * extent, recv_cnt * extent);
- mpi_coll_allgather_fun(tmp_buf, recv_cnt, dtype, recv, recv_cnt, dtype, comm);
+ Colls::allgather(tmp_buf, recv_cnt, dtype, recv, recv_cnt, dtype, comm);
memcpy(rbuff, recv, count * extent);
smpi_free_tmp_buffer(recv);
if(op!=MPI_OP_NULL) op->apply( tmp_buf, (char *) rbuff + recv_idx * extent, &recv_cnt,
dtype);
- // update send_idx for next iteration
+ // update send_idx for next iteration
send_idx = recv_idx;
mask >>= 1;
}
memcpy(tmp_buf, (char *) rbuff + recv_idx * extent, recv_cnt * extent);
- mpi_coll_allgather_fun(tmp_buf, recv_cnt, dtype, rbuff, recv_cnt, dtype, comm);
+ Colls::allgather(tmp_buf, recv_cnt, dtype, rbuff, recv_cnt, dtype, comm);
smpi_free_tmp_buffer(tmp_buf);
}
return MPI_SUCCESS;
}
+}
+}