OpenMPI  0.1.1
coll_self.h
1 /*
2  * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2005 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
13  * $COPYRIGHT$
14  *
15  * Additional copyrights may follow
16  *
17  * $HEADER$
18  */
19 
20 #ifndef MCA_COLL_SELF_EXPORT_H
21 #define MCA_COLL_SELF_EXPORT_H
22 
23 #include "ompi_config.h"
24 
25 #include "mpi.h"
26 #include "opal/mca/mca.h"
27 #include "ompi/mca/coll/coll.h"
28 #include "ompi/request/request.h"
29 
30 BEGIN_C_DECLS
31 
32 /*
33  * Globally exported variable
34  */
35 
36 OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_2_0_0_t mca_coll_self_component;
37 extern int mca_coll_self_priority_param;
38 
39 
40 /*
41  * coll API functions
42  */
43 
44 
45  /* API functions */
46 
47 int mca_coll_self_init_query(bool enable_progress_threads,
48  bool enable_mpi_threads);
50 mca_coll_self_comm_query(struct ompi_communicator_t *comm, int *priority);
51 
52 int mca_coll_self_module_enable(mca_coll_base_module_t *module,
53  struct ompi_communicator_t *comm);
54 
55 int mca_coll_self_allgather_intra(void *sbuf, int scount,
56  struct ompi_datatype_t *sdtype,
57  void *rbuf, int rcount,
58  struct ompi_datatype_t *rdtype,
59  struct ompi_communicator_t *comm,
60  mca_coll_base_module_t *module);
61 int mca_coll_self_allgatherv_intra(void *sbuf, int scount,
62  struct ompi_datatype_t *sdtype,
63  void * rbuf, int *rcounts, int *disps,
64  struct ompi_datatype_t *rdtype,
65  struct ompi_communicator_t *comm,
66  mca_coll_base_module_t *module);
67 int mca_coll_self_allreduce_intra(void *sbuf, void *rbuf, int count,
68  struct ompi_datatype_t *dtype,
69  struct ompi_op_t *op,
70  struct ompi_communicator_t *comm,
71  mca_coll_base_module_t *module);
72 int mca_coll_self_alltoall_intra(void *sbuf, int scount,
73  struct ompi_datatype_t *sdtype,
74  void* rbuf, int rcount,
75  struct ompi_datatype_t *rdtype,
76  struct ompi_communicator_t *comm,
77  mca_coll_base_module_t *module);
78 int mca_coll_self_alltoallv_intra(void *sbuf, int *scounts, int *sdisps,
79  struct ompi_datatype_t *sdtype,
80  void *rbuf, int *rcounts, int *rdisps,
81  struct ompi_datatype_t *rdtype,
82  struct ompi_communicator_t *comm,
83  mca_coll_base_module_t *module);
84 int mca_coll_self_alltoallw_intra(void *sbuf, int *scounts, int *sdisps,
85  struct ompi_datatype_t **sdtypes,
86  void *rbuf, int *rcounts, int *rdisps,
87  struct ompi_datatype_t **rdtypes,
88  struct ompi_communicator_t *comm,
89  mca_coll_base_module_t *module);
90 int mca_coll_self_barrier_intra(struct ompi_communicator_t *comm,
91  mca_coll_base_module_t *module);
92 int mca_coll_self_bcast_intra(void *buff, int count,
93  struct ompi_datatype_t *datatype,
94  int root,
95  struct ompi_communicator_t *comm,
96  mca_coll_base_module_t *module);
97 int mca_coll_self_exscan_intra(void *sbuf, void *rbuf, int count,
98  struct ompi_datatype_t *dtype,
99  struct ompi_op_t *op,
100  struct ompi_communicator_t *comm,
101  mca_coll_base_module_t *module);
102 int mca_coll_self_gather_intra(void *sbuf, int scount,
103  struct ompi_datatype_t *sdtype, void *rbuf,
104  int rcount, struct ompi_datatype_t *rdtype,
105  int root, struct ompi_communicator_t *comm,
106  mca_coll_base_module_t *module);
107 int mca_coll_self_gatherv_intra(void *sbuf, int scount,
108  struct ompi_datatype_t *sdtype, void *rbuf,
109  int *rcounts, int *disps,
110  struct ompi_datatype_t *rdtype, int root,
111  struct ompi_communicator_t *comm,
112  mca_coll_base_module_t *module);
113 int mca_coll_self_reduce_intra(void *sbuf, void* rbuf, int count,
114  struct ompi_datatype_t *dtype,
115  struct ompi_op_t *op,
116  int root,
117  struct ompi_communicator_t *comm,
118  mca_coll_base_module_t *module);
119 int mca_coll_self_reduce_scatter_intra(void *sbuf, void *rbuf,
120  int *rcounts,
121  struct ompi_datatype_t *dtype,
122  struct ompi_op_t *op,
123  struct ompi_communicator_t *comm,
124  mca_coll_base_module_t *module);
125 int mca_coll_self_scan_intra(void *sbuf, void *rbuf, int count,
126  struct ompi_datatype_t *dtype,
127  struct ompi_op_t *op,
128  struct ompi_communicator_t *comm,
129  mca_coll_base_module_t *module);
130 int mca_coll_self_scatter_intra(void *sbuf, int scount,
131  struct ompi_datatype_t *sdtype, void *rbuf,
132  int rcount, struct ompi_datatype_t *rdtype,
133  int root, struct ompi_communicator_t *comm,
134  mca_coll_base_module_t *module);
135 int mca_coll_self_scatterv_intra(void *sbuf, int *scounts, int *disps,
136  struct ompi_datatype_t *sdtype,
137  void* rbuf, int rcount,
138  struct ompi_datatype_t *rdtype, int root,
139  struct ompi_communicator_t *comm,
140  mca_coll_base_module_t *module);
141 
142 int mca_coll_self_ft_event(int state);
143 
144 
147 
148  ompi_request_t **mccb_reqs;
149  int mccb_num_reqs;
150 };
153 
154 
155 END_C_DECLS
156 
157 #endif /* MCA_COLL_SELF_EXPORT_H */
Collective module interface.
Definition: coll.h:316
Definition: ompi_datatype.h:68
Collective component interface.
Definition: coll.h:283
Top-level interface for all MCA components.
Collective Communication Interface.
Top-level description of requests.
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Back-end type of MPI_Op.
Definition: op.h:100
Definition: coll_self.h:145
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236