/* High level handling of collective algorithms */
-/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2009-2021. 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. */
#define COLL_DEFS(cat, ret, args, args2) \
extern int(*cat) args;
-#define COLL_SIG(cat, ret, args, args2) int cat args;
-
#define COLL_UNPAREN(...) __VA_ARGS__
#define COLL_APPLY(action, sig, name) action(sig, name)
};
namespace colls {
-XBT_PUBLIC void coll_help(const char* category, s_mpi_coll_description_t* table);
-XBT_PUBLIC int find_coll_description(s_mpi_coll_description_t* table, const std::string& name, const char* desc);
void set_collectives();
-XBT_PUBLIC s_mpi_coll_description_t* get_smpi_coll_description(const char* name, int rank);
+XBT_PUBLIC std::vector<s_mpi_coll_description_t>* get_smpi_coll_descriptions(const std::string& name);
void set_gather(const std::string& name);
void set_allgather(const std::string& name);
void set_alltoall(const std::string& name);
void set_alltoallv(const std::string& name);
-// for each collective type, create the set_* prototype, the description array and the function pointer
+// for each collective type, create the function pointer
// extern int(*gather)(const void *send_buff, int send_count, MPI_Datatype send_type, void *recv_buff, int recv_count,
// MPI_Datatype recv_type, int root, MPI_Comm comm);
COLL_APPLY(COLL_DEFS, COLL_GATHER_SIG, "")
MPI_Request* request, int external = 1);
extern void (*smpi_coll_cleanup_callback)();
-};
+}
/***********************************************
* Prototypes of each and every implementation *