Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
f50e07f9fa3056b8abd0d4fb7e8a3b39e2ca8ba7
[simgrid.git] / src / smpi / colls / allgather / allgather-GB.cpp
1 /* Copyright (c) 2013-2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "../colls_private.h"
8
9 using namespace simgrid::smpi;
10
11 // Allgather - gather/bcast algorithm
12 int Coll_allgather_GB::allgather(void *send_buff, int send_count,
13                                  MPI_Datatype send_type, void *recv_buff,
14                                  int recv_count, MPI_Datatype recv_type,
15                                  MPI_Comm comm)
16 {
17   int num_procs;
18   num_procs = comm->size();
19   Colls::gather(send_buff, send_count, send_type, recv_buff, recv_count, recv_type,
20              0, comm);
21   Colls::bcast(recv_buff, (recv_count * num_procs), recv_type, 0, comm);
22
23   return MPI_SUCCESS;
24 }