X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9e68ca10e951fb61e944c99c7774b1e415ae9f6d..e7c0c67af63b3979a597a66e5e1c8b0435fc6e19:/src/include/smpi/smpi_interface.h diff --git a/src/include/smpi/smpi_interface.h b/src/include/smpi/smpi_interface.h index 1b24074014..294cd09c96 100644 --- a/src/include/smpi/smpi_interface.h +++ b/src/include/smpi/smpi_interface.h @@ -1,3 +1,5 @@ +#ifndef _SMPI_INTERFACE_H +#define _SMPI_INTERFACE_H #include "smpi/smpi.h" /********** Tracing **********/ @@ -10,3 +12,65 @@ void TRACE_smpi_send(int rank, int src, int dst); void TRACE_smpi_recv(int rank, int src, int dst); void TRACE_smpi_init(int rank); void TRACE_smpi_finalize(int rank); + +/** \brief MPI collective description + */ + +typedef struct mpi_coll_description { + const char *name; + const char *description; + void *coll; +} s_mpi_coll_description_t, *mpi_coll_description_t; + +/** \ingroup MPI allgather + * \brief The list of all available allgather collectives + */ +XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_allgather_description[]; +XBT_PUBLIC_DATA(int (*mpi_coll_allgather_fun) + (void *, int, MPI_Datatype, void *, int, MPI_Datatype, + MPI_Comm)); + + +/** \ingroup MPI allreduce + * \brief The list of all available allgather collectives + */ +XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_allreduce_description[]; +XBT_PUBLIC_DATA(int (*mpi_coll_allreduce_fun) + (void *sbuf, void *rbuf, int rcount, MPI_Datatype dtype, + MPI_Op op, MPI_Comm comm)); + + +/** \ingroup MPI alltoallcollectives + * \brief The list of all available alltoall collectives + */ +XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_alltoall_description[]; +XBT_PUBLIC_DATA(int (*mpi_coll_alltoall_fun) + (void *, int, MPI_Datatype, void *, int, MPI_Datatype, + MPI_Comm)); + + +/** \ingroup MPI bcast + * \brief The list of all available bcast collectives + */ +XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_bcast_description[]; +XBT_PUBLIC_DATA(int (*mpi_coll_bcast_fun) + (void *buf, int count, MPI_Datatype datatype, int root, + MPI_Comm com)); + + +/** \ingroup MPI reduce + * \brief The list of all available reduce collectives + */ +XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_reduce_description[]; +XBT_PUBLIC_DATA(int (*mpi_coll_reduce_fun) + (void *buf, void *rbuf, int count, MPI_Datatype datatype, + MPI_Op op, int root, MPI_Comm comm)); + + +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 char *name); + + +#endif /* _SMPI_INTERFAC_H */