Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI colls in not really C++. But cleaner than before.
[simgrid.git] / src / include / smpi / smpi_interface.h
1 /* Copyright (c) 2012-2017. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef SMPI_INTERFACE_H
7 #define SMPI_INTERFACE_H
8 #include "smpi/smpi.h"
9
10 SG_BEGIN_DECL()
11
12 /** \brief MPI collective description */
13
14 struct mpi_coll_description {
15   const char *name;
16   const char *description;
17   void *coll;
18 };
19 typedef struct mpi_coll_description  s_mpi_coll_description_t;
20 typedef struct mpi_coll_description* mpi_coll_description_t;
21
22 /** \ingroup MPI gather
23  *  \brief The list of all available allgather collectives
24  */
25 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_gather_description[];
26                  
27 /** \ingroup MPI allgather
28  *  \brief The list of all available allgather collectives
29  */
30 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_allgather_description[];
31
32 /** \ingroup MPI allgather
33  *  \brief The list of all available allgather collectives
34  */
35 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_allgatherv_description[];
36
37 /** \ingroup MPI allreduce
38  *  \brief The list of all available allgather collectives
39  */
40 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_allreduce_description[];
41
42 /** \ingroup MPI alltoall
43  *  \brief The list of all available alltoall collectives
44  */
45 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_alltoall_description[];
46
47 /** \ingroup MPI alltoallv
48  *  \brief The list of all available alltoallv collectives
49  */
50 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_alltoallv_description[];
51
52 /** \ingroup MPI bcast
53  *  \brief The list of all available bcast collectives
54  */
55 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_bcast_description[];
56
57 /** \ingroup MPI reduce
58  *  \brief The list of all available reduce collectives
59  */
60 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_reduce_description[];
61
62 /** \ingroup MPI reduce_scatter
63  *  \brief The list of all available allgather collectives
64  */
65 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_reduce_scatter_description[];
66
67 /** \ingroup MPI scatter
68  *  \brief The list of all available allgather collectives
69  */
70 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_scatter_description[];
71
72 /** \ingroup MPI barrier
73  *  \brief The list of all available allgather collectives
74  */
75 XBT_PUBLIC_DATA(s_mpi_coll_description_t) mpi_coll_barrier_description[];
76 XBT_PUBLIC_DATA(int (*mpi_coll_barrier_fun)(MPI_Comm comm));
77
78 XBT_PUBLIC(void) coll_help(const char *category, s_mpi_coll_description_t * table);
79 XBT_PUBLIC(int) find_coll_description(s_mpi_coll_description_t * table, const char *name, const char *desc);
80
81 XBT_PUBLIC_DATA(void) (*smpi_coll_cleanup_callback)();
82 XBT_PUBLIC(void) smpi_coll_cleanup_mvapich2(void);
83
84 SG_END_DECL()
85
86 #endif