1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #ifndef MCA_COLL_BASIC_EXPORT_H
27 #define MCA_COLL_BASIC_EXPORT_H
28
29 #include "ompi_config.h"
30
31 #include "mpi.h"
32 #include "ompi/mca/mca.h"
33 #include "ompi/mca/coll/coll.h"
34 #include "ompi/request/request.h"
35 #include "ompi/communicator/communicator.h"
36 #include "ompi/mca/coll/base/coll_base_functions.h"
37
38 BEGIN_C_DECLS
39
40
41
42 OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_2_0_0_t
43 mca_coll_basic_component;
44 extern int mca_coll_basic_priority;
45 extern int mca_coll_basic_crossover;
46
47
48
49 int mca_coll_basic_init_query(bool enable_progress_threads,
50 bool enable_mpi_threads);
51 mca_coll_base_module_t
52 *mca_coll_basic_comm_query(struct ompi_communicator_t *comm,
53 int *priority);
54
55 int mca_coll_basic_module_enable(mca_coll_base_module_t *module,
56 struct ompi_communicator_t *comm);
57
58 int mca_coll_basic_allgather_inter(const void *sbuf, int scount,
59 struct ompi_datatype_t *sdtype,
60 void *rbuf, int rcount,
61 struct ompi_datatype_t *rdtype,
62 struct ompi_communicator_t *comm,
63 mca_coll_base_module_t *module);
64
65 int mca_coll_basic_allgatherv_inter(const void *sbuf, int scount,
66 struct ompi_datatype_t *sdtype,
67 void *rbuf, const int *rcounts,
68 const int *disps,
69 struct ompi_datatype_t *rdtype,
70 struct ompi_communicator_t *comm,
71 mca_coll_base_module_t *module);
72
73 int mca_coll_basic_allreduce_intra(const void *sbuf, void *rbuf, int count,
74 struct ompi_datatype_t *dtype,
75 struct ompi_op_t *op,
76 struct ompi_communicator_t *comm,
77 mca_coll_base_module_t *module);
78 int mca_coll_basic_allreduce_inter(const void *sbuf, void *rbuf, int count,
79 struct ompi_datatype_t *dtype,
80 struct ompi_op_t *op,
81 struct ompi_communicator_t *comm,
82 mca_coll_base_module_t *module);
83
84 int mca_coll_basic_alltoall_inter(const void *sbuf, int scount,
85 struct ompi_datatype_t *sdtype,
86 void *rbuf, int rcount,
87 struct ompi_datatype_t *rdtype,
88 struct ompi_communicator_t *comm,
89 mca_coll_base_module_t *module);
90
91 int mca_coll_basic_alltoallv_inter(const void *sbuf, const int *scounts,
92 const int *sdisps,
93 struct ompi_datatype_t *sdtype,
94 void *rbuf, const int *rcounts,
95 const int *rdisps,
96 struct ompi_datatype_t *rdtype,
97 struct ompi_communicator_t *comm,
98 mca_coll_base_module_t *module);
99
100 int mca_coll_basic_alltoallw_intra(const void *sbuf, const int *scounts,
101 const int *sdisps,
102 struct ompi_datatype_t * const *sdtypes,
103 void *rbuf, const int *rcounts,
104 const int *rdisps,
105 struct ompi_datatype_t * const *rdtypes,
106 struct ompi_communicator_t *comm,
107 mca_coll_base_module_t *module);
108 int mca_coll_basic_alltoallw_inter(const void *sbuf, const int *scounts,
109 const int *sdisps,
110 struct ompi_datatype_t * const *sdtypes,
111 void *rbuf, const int *rcounts,
112 const int *rdisps,
113 struct ompi_datatype_t * const *rdtypes,
114 struct ompi_communicator_t *comm,
115 mca_coll_base_module_t *module);
116
117 int mca_coll_basic_barrier_inter_lin(struct ompi_communicator_t *comm,
118 mca_coll_base_module_t *module);
119
120 int mca_coll_basic_barrier_intra_log(struct ompi_communicator_t *comm,
121 mca_coll_base_module_t *module);
122
123 int mca_coll_basic_bcast_lin_inter(void *buff, int count,
124 struct ompi_datatype_t *datatype,
125 int root,
126 struct ompi_communicator_t *comm,
127 mca_coll_base_module_t *module);
128
129 int mca_coll_basic_bcast_log_intra(void *buff, int count,
130 struct ompi_datatype_t *datatype,
131 int root,
132 struct ompi_communicator_t *comm,
133 mca_coll_base_module_t *module);
134
135 int mca_coll_basic_bcast_log_inter(void *buff, int count,
136 struct ompi_datatype_t *datatype,
137 int root,
138 struct ompi_communicator_t *comm,
139 mca_coll_base_module_t *module);
140
141 int mca_coll_basic_exscan_intra(const void *sbuf, void *rbuf, int count,
142 struct ompi_datatype_t *dtype,
143 struct ompi_op_t *op,
144 struct ompi_communicator_t *comm,
145 mca_coll_base_module_t *module);
146
147 int mca_coll_basic_exscan_inter(const void *sbuf, void *rbuf, int count,
148 struct ompi_datatype_t *dtype,
149 struct ompi_op_t *op,
150 struct ompi_communicator_t *comm,
151 mca_coll_base_module_t *module);
152
153 int mca_coll_basic_gather_inter(const void *sbuf, int scount,
154 struct ompi_datatype_t *sdtype,
155 void *rbuf, int rcount,
156 struct ompi_datatype_t *rdtype,
157 int root,
158 struct ompi_communicator_t *comm,
159 mca_coll_base_module_t *module);
160
161 int mca_coll_basic_gatherv_intra(const void *sbuf, int scount,
162 struct ompi_datatype_t *sdtype,
163 void *rbuf, const int *rcounts, const int *disps,
164 struct ompi_datatype_t *rdtype,
165 int root,
166 struct ompi_communicator_t *comm,
167 mca_coll_base_module_t *module);
168
169 int mca_coll_basic_gatherv_inter(const void *sbuf, int scount,
170 struct ompi_datatype_t *sdtype,
171 void *rbuf, const int *rcounts, const int *disps,
172 struct ompi_datatype_t *rdtype,
173 int root,
174 struct ompi_communicator_t *comm,
175 mca_coll_base_module_t *module);
176
177 int mca_coll_basic_reduce_lin_inter(const void *sbuf, void *rbuf, int count,
178 struct ompi_datatype_t *dtype,
179 struct ompi_op_t *op,
180 int root,
181 struct ompi_communicator_t *comm,
182 mca_coll_base_module_t *module);
183
184 int mca_coll_basic_reduce_log_intra(const void *sbuf, void *rbuf, int count,
185 struct ompi_datatype_t *dtype,
186 struct ompi_op_t *op,
187 int root,
188 struct ompi_communicator_t *comm,
189 mca_coll_base_module_t *module);
190 int mca_coll_basic_reduce_log_inter(const void *sbuf, void *rbuf, int count,
191 struct ompi_datatype_t *dtype,
192 struct ompi_op_t *op,
193 int root,
194 struct ompi_communicator_t *comm,
195 mca_coll_base_module_t *module);
196
197 int mca_coll_basic_reduce_scatter_block_intra(const void *sbuf, void *rbuf,
198 int rcount,
199 struct ompi_datatype_t *dtype,
200 struct ompi_op_t *op,
201 struct ompi_communicator_t *comm,
202 mca_coll_base_module_t *module);
203
204 int mca_coll_basic_reduce_scatter_block_inter(const void *sbuf, void *rbuf,
205 int rcount,
206 struct ompi_datatype_t *dtype,
207 struct ompi_op_t *op,
208 struct ompi_communicator_t *comm,
209 mca_coll_base_module_t *module);
210
211 int mca_coll_basic_reduce_scatter_intra(const void *sbuf, void *rbuf,
212 const int *rcounts,
213 struct ompi_datatype_t *dtype,
214 struct ompi_op_t *op,
215 struct ompi_communicator_t *comm,
216 mca_coll_base_module_t *module);
217
218 int mca_coll_basic_reduce_scatter_inter(const void *sbuf, void *rbuf,
219 const int *rcounts,
220 struct ompi_datatype_t *dtype,
221 struct ompi_op_t *op,
222 struct ompi_communicator_t *comm,
223 mca_coll_base_module_t *module);
224
225 int mca_coll_basic_scan_intra(const void *sbuf, void *rbuf, int count,
226 struct ompi_datatype_t *dtype,
227 struct ompi_op_t *op,
228 struct ompi_communicator_t *comm,
229 mca_coll_base_module_t *module);
230 int mca_coll_basic_scan_inter(const void *sbuf, void *rbuf, int count,
231 struct ompi_datatype_t *dtype,
232 struct ompi_op_t *op,
233 struct ompi_communicator_t *comm,
234 mca_coll_base_module_t *module);
235
236 int mca_coll_basic_scatter_inter(const void *sbuf, int scount,
237 struct ompi_datatype_t *sdtype,
238 void *rbuf, int rcount,
239 struct ompi_datatype_t *rdtype,
240 int root,
241 struct ompi_communicator_t *comm,
242 mca_coll_base_module_t *module);
243
244 int mca_coll_basic_scatterv_intra(const void *sbuf, const int *scounts, const int *disps,
245 struct ompi_datatype_t *sdtype,
246 void *rbuf, int rcount,
247 struct ompi_datatype_t *rdtype,
248 int root,
249 struct ompi_communicator_t *comm,
250 mca_coll_base_module_t *module);
251 int mca_coll_basic_scatterv_inter(const void *sbuf, const int *scounts, const int *disps,
252 struct ompi_datatype_t *sdtype,
253 void *rbuf, int rcount,
254 struct ompi_datatype_t *rdtype,
255 int root,
256 struct ompi_communicator_t *comm,
257 mca_coll_base_module_t *module);
258
259 int mca_coll_basic_neighbor_allgather(const void *sbuf, int scount,
260 struct ompi_datatype_t *sdtype, void *rbuf,
261 int rcount, struct ompi_datatype_t *rdtype,
262 struct ompi_communicator_t *comm,
263 mca_coll_base_module_t *module);
264
265 int mca_coll_basic_neighbor_allgatherv(const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
266 void *rbuf, const int rcounts[], const int disps[], struct ompi_datatype_t *rdtype,
267 struct ompi_communicator_t *comm, mca_coll_base_module_t *module);
268
269 int mca_coll_basic_neighbor_alltoall(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, void *rbuf,
270 int rcount, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm,
271 mca_coll_base_module_t *module);
272
273 int mca_coll_basic_neighbor_alltoallv(const void *sbuf, const int scounts[], const int sdisps[],
274 struct ompi_datatype_t *sdtype, void *rbuf, const int rcounts[],
275 const int rdisps[], struct ompi_datatype_t *rdtype,
276 struct ompi_communicator_t *comm, mca_coll_base_module_t *module);
277
278 int mca_coll_basic_neighbor_alltoallw(const void *sbuf, const int scounts[], const MPI_Aint sdisps[],
279 struct ompi_datatype_t * const *sdtypes, void *rbuf, const int rcounts[],
280 const MPI_Aint rdisps[], struct ompi_datatype_t * const *rdtypes,
281 struct ompi_communicator_t *comm, mca_coll_base_module_t *module);
282
283 int mca_coll_basic_ft_event(int status);
284
285
286 struct mca_coll_basic_module_t {
287 mca_coll_base_module_t super;
288 };
289 typedef struct mca_coll_basic_module_t mca_coll_basic_module_t;
290 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_coll_basic_module_t);
291
292 END_C_DECLS
293
294 #endif