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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 #ifndef OMPI_MCA_COLL_COLL_H
64 #define OMPI_MCA_COLL_COLL_H
65
66 #include "ompi_config.h"
67
68 #include "mpi.h"
69 #include "ompi/mca/mca.h"
70 #include "opal/mca/base/base.h"
71
72 #include "opal/mca/crs/crs.h"
73 #include "opal/mca/crs/base/base.h"
74 #include "ompi/request/request.h"
75
76 BEGIN_C_DECLS
77
78
79
80
81
82 struct ompi_communicator_t;
83 struct ompi_datatype_t;
84 struct ompi_op_t;
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 typedef int (*mca_coll_base_component_init_query_fn_t)
110 (bool enable_progress_threads, bool enable_mpi_threads);
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 typedef struct mca_coll_base_module_2_3_0_t *
142 (*mca_coll_base_component_comm_query_2_0_0_fn_t)
143 (struct ompi_communicator_t *comm, int *priority);
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180 typedef int
181 (*mca_coll_base_module_enable_1_1_0_fn_t)(struct mca_coll_base_module_2_3_0_t* module,
182 struct ompi_communicator_t *comm);
183
184
185
186
187
188
189
190
191
192
193
194
195 typedef int
196 (*mca_coll_base_module_disable_1_2_0_fn_t)(struct mca_coll_base_module_2_3_0_t* module,
197 struct ompi_communicator_t *comm);
198
199
200 typedef int (*mca_coll_base_module_allgather_fn_t)
201 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
202 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
203 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
204 typedef int (*mca_coll_base_module_allgatherv_fn_t)
205 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
206 void * rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
207 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
208 typedef int (*mca_coll_base_module_allreduce_fn_t)
209 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
210 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
211 typedef int (*mca_coll_base_module_alltoall_fn_t)
212 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
213 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
214 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
215 typedef int (*mca_coll_base_module_alltoallv_fn_t)
216 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
217 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
218 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
219 typedef int (*mca_coll_base_module_alltoallw_fn_t)
220 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
221 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
222 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
223 typedef int (*mca_coll_base_module_barrier_fn_t)
224 (struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
225 typedef int (*mca_coll_base_module_bcast_fn_t)
226 (void *buff, int count, struct ompi_datatype_t *datatype, int root,
227 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
228 typedef int (*mca_coll_base_module_exscan_fn_t)
229 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
230 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
231 typedef int (*mca_coll_base_module_gather_fn_t)
232 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
233 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
234 int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
235 typedef int (*mca_coll_base_module_gatherv_fn_t)
236 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
237 void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
238 int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
239 typedef int (*mca_coll_base_module_reduce_fn_t)
240 (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
241 struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
242 typedef int (*mca_coll_base_module_reduce_scatter_fn_t)
243 (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
244 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
245 typedef int (*mca_coll_base_module_reduce_scatter_block_fn_t)
246 (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
247 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
248 typedef int (*mca_coll_base_module_scan_fn_t)
249 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
250 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
251 typedef int (*mca_coll_base_module_scatter_fn_t)
252 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
253 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
254 int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
255 typedef int (*mca_coll_base_module_scatterv_fn_t)
256 (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
257 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
258 int root, struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
259
260
261 typedef int (*mca_coll_base_module_iallgather_fn_t)
262 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
263 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
264 struct ompi_communicator_t *comm, ompi_request_t ** request,
265 struct mca_coll_base_module_2_3_0_t *module);
266 typedef int (*mca_coll_base_module_iallgatherv_fn_t)
267 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
268 void * rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
269 struct ompi_communicator_t *comm, ompi_request_t ** request,
270 struct mca_coll_base_module_2_3_0_t *module);
271 typedef int (*mca_coll_base_module_iallreduce_fn_t)
272 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
273 struct ompi_op_t *op, struct ompi_communicator_t *comm,
274 ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module);
275 typedef int (*mca_coll_base_module_ialltoall_fn_t)
276 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
277 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
278 struct ompi_communicator_t *comm, ompi_request_t ** request,
279 struct mca_coll_base_module_2_3_0_t *module);
280 typedef int (*mca_coll_base_module_ialltoallv_fn_t)
281 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
282 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
283 struct ompi_communicator_t *comm, ompi_request_t ** request,
284 struct mca_coll_base_module_2_3_0_t *module);
285 typedef int (*mca_coll_base_module_ialltoallw_fn_t)
286 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
287 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
288 struct ompi_communicator_t *comm, ompi_request_t ** request,
289 struct mca_coll_base_module_2_3_0_t *module);
290 typedef int (*mca_coll_base_module_ibarrier_fn_t)
291 (struct ompi_communicator_t *comm, ompi_request_t ** request,
292 struct mca_coll_base_module_2_3_0_t *module);
293 typedef int (*mca_coll_base_module_ibcast_fn_t)
294 (void *buff, int count, struct ompi_datatype_t *datatype, int root,
295 struct ompi_communicator_t *comm, ompi_request_t ** request,
296 struct mca_coll_base_module_2_3_0_t *module);
297 typedef int (*mca_coll_base_module_iexscan_fn_t)
298 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
299 struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
300 struct mca_coll_base_module_2_3_0_t *module);
301 typedef int (*mca_coll_base_module_igather_fn_t)
302 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
303 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
304 int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
305 struct mca_coll_base_module_2_3_0_t *module);
306 typedef int (*mca_coll_base_module_igatherv_fn_t)
307 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
308 void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
309 int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
310 struct mca_coll_base_module_2_3_0_t *module);
311 typedef int (*mca_coll_base_module_ireduce_fn_t)
312 (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
313 struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
314 struct mca_coll_base_module_2_3_0_t *module);
315 typedef int (*mca_coll_base_module_ireduce_scatter_fn_t)
316 (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
317 struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
318 struct mca_coll_base_module_2_3_0_t *module);
319 typedef int (*mca_coll_base_module_ireduce_scatter_block_fn_t)
320 (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
321 struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
322 struct mca_coll_base_module_2_3_0_t *module);
323 typedef int (*mca_coll_base_module_iscan_fn_t)
324 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
325 struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t ** request,
326 struct mca_coll_base_module_2_3_0_t *module);
327 typedef int (*mca_coll_base_module_iscatter_fn_t)
328 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
329 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
330 int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
331 struct mca_coll_base_module_2_3_0_t *module);
332 typedef int (*mca_coll_base_module_iscatterv_fn_t)
333 (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
334 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
335 int root, struct ompi_communicator_t *comm, ompi_request_t ** request,
336 struct mca_coll_base_module_2_3_0_t *module);
337
338
339 typedef int (*mca_coll_base_module_allgather_init_fn_t)
340 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
341 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
342 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
343 struct mca_coll_base_module_2_3_0_t *module);
344 typedef int (*mca_coll_base_module_allgatherv_init_fn_t)
345 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
346 void * rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
347 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
348 struct mca_coll_base_module_2_3_0_t *module);
349 typedef int (*mca_coll_base_module_allreduce_init_fn_t)
350 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
351 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info,
352 ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module);
353 typedef int (*mca_coll_base_module_alltoall_init_fn_t)
354 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
355 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
356 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
357 struct mca_coll_base_module_2_3_0_t *module);
358 typedef int (*mca_coll_base_module_alltoallv_init_fn_t)
359 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype,
360 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype,
361 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
362 struct mca_coll_base_module_2_3_0_t *module);
363 typedef int (*mca_coll_base_module_alltoallw_init_fn_t)
364 (const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t * const *sdtypes,
365 void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes,
366 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
367 struct mca_coll_base_module_2_3_0_t *module);
368 typedef int (*mca_coll_base_module_barrier_init_fn_t)
369 (struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
370 struct mca_coll_base_module_2_3_0_t *module);
371 typedef int (*mca_coll_base_module_bcast_init_fn_t)
372 (void *buff, int count, struct ompi_datatype_t *datatype, int root,
373 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
374 struct mca_coll_base_module_2_3_0_t *module);
375 typedef int (*mca_coll_base_module_exscan_init_fn_t)
376 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
377 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
378 struct mca_coll_base_module_2_3_0_t *module);
379 typedef int (*mca_coll_base_module_gather_init_fn_t)
380 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
381 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
382 int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
383 struct mca_coll_base_module_2_3_0_t *module);
384 typedef int (*mca_coll_base_module_gatherv_init_fn_t)
385 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
386 void *rbuf, const int *rcounts, const int *disps, struct ompi_datatype_t *rdtype,
387 int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
388 struct mca_coll_base_module_2_3_0_t *module);
389 typedef int (*mca_coll_base_module_reduce_init_fn_t)
390 (const void *sbuf, void* rbuf, int count, struct ompi_datatype_t *dtype,
391 struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
392 struct mca_coll_base_module_2_3_0_t *module);
393 typedef int (*mca_coll_base_module_reduce_scatter_init_fn_t)
394 (const void *sbuf, void *rbuf, const int *rcounts, struct ompi_datatype_t *dtype,
395 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
396 struct mca_coll_base_module_2_3_0_t *module);
397 typedef int (*mca_coll_base_module_reduce_scatter_block_init_fn_t)
398 (const void *sbuf, void *rbuf, int rcount, struct ompi_datatype_t *dtype,
399 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
400 struct mca_coll_base_module_2_3_0_t *module);
401 typedef int (*mca_coll_base_module_scan_init_fn_t)
402 (const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype,
403 struct ompi_op_t *op, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
404 struct mca_coll_base_module_2_3_0_t *module);
405 typedef int (*mca_coll_base_module_scatter_init_fn_t)
406 (const void *sbuf, int scount, struct ompi_datatype_t *sdtype,
407 void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
408 int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
409 struct mca_coll_base_module_2_3_0_t *module);
410 typedef int (*mca_coll_base_module_scatterv_init_fn_t)
411 (const void *sbuf, const int *scounts, const int *disps, struct ompi_datatype_t *sdtype,
412 void* rbuf, int rcount, struct ompi_datatype_t *rdtype,
413 int root, struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
414 struct mca_coll_base_module_2_3_0_t *module);
415
416
417
418
419 typedef int (*mca_coll_base_module_neighbor_alltoallw_fn_t)
420 (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
421 void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
422 struct ompi_communicator_t *comm, struct mca_coll_base_module_2_3_0_t *module);
423 typedef int (*mca_coll_base_module_ineighbor_alltoallw_fn_t)
424 (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
425 void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
426 struct ompi_communicator_t *comm, ompi_request_t ** request,
427 struct mca_coll_base_module_2_3_0_t *module);
428 typedef int (*mca_coll_base_module_neighbor_alltoallw_init_fn_t)
429 (const void *sbuf, const int *scounts, const MPI_Aint *sdisps, struct ompi_datatype_t * const *sdtypes,
430 void *rbuf, const int *rcounts, const MPI_Aint *rdisps, struct ompi_datatype_t * const *rdtypes,
431 struct ompi_communicator_t *comm, struct ompi_info_t *info, ompi_request_t ** request,
432 struct mca_coll_base_module_2_3_0_t *module);
433
434
435
436
437
438
439
440 typedef int (*mca_coll_base_module_reduce_local_fn_t)
441 (const void *inbuf, void *inoutbuf, int count,
442 struct ompi_datatype_t * dtype, struct ompi_op_t * op,
443 struct mca_coll_base_module_2_3_0_t *module);
444
445
446
447
448
449
450
451
452
453
454
455
456
457 typedef int (*mca_coll_base_module_ft_event_fn_t) (int state);
458
459
460
461
462
463
464
465
466
467
468
469
470
471 struct mca_coll_base_component_2_0_0_t {
472
473 mca_base_component_t collm_version;
474
475 mca_base_component_data_t collm_data;
476
477
478 mca_coll_base_component_init_query_fn_t collm_init_query;
479
480 mca_coll_base_component_comm_query_2_0_0_fn_t collm_comm_query;
481 };
482 typedef struct mca_coll_base_component_2_0_0_t mca_coll_base_component_2_0_0_t;
483
484
485
486
487 typedef struct mca_coll_base_component_2_0_0_t mca_coll_base_component_t;
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504 struct mca_coll_base_module_2_3_0_t {
505
506 opal_object_t super;
507
508
509
510 mca_coll_base_module_enable_1_1_0_fn_t coll_module_enable;
511
512
513
514
515 mca_coll_base_module_allgather_fn_t coll_allgather;
516 mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
517 mca_coll_base_module_allreduce_fn_t coll_allreduce;
518 mca_coll_base_module_alltoall_fn_t coll_alltoall;
519 mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
520 mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
521 mca_coll_base_module_barrier_fn_t coll_barrier;
522 mca_coll_base_module_bcast_fn_t coll_bcast;
523 mca_coll_base_module_exscan_fn_t coll_exscan;
524 mca_coll_base_module_gather_fn_t coll_gather;
525 mca_coll_base_module_gatherv_fn_t coll_gatherv;
526 mca_coll_base_module_reduce_fn_t coll_reduce;
527 mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
528 mca_coll_base_module_reduce_scatter_block_fn_t coll_reduce_scatter_block;
529 mca_coll_base_module_scan_fn_t coll_scan;
530 mca_coll_base_module_scatter_fn_t coll_scatter;
531 mca_coll_base_module_scatterv_fn_t coll_scatterv;
532
533
534 mca_coll_base_module_iallgather_fn_t coll_iallgather;
535 mca_coll_base_module_iallgatherv_fn_t coll_iallgatherv;
536 mca_coll_base_module_iallreduce_fn_t coll_iallreduce;
537 mca_coll_base_module_ialltoall_fn_t coll_ialltoall;
538 mca_coll_base_module_ialltoallv_fn_t coll_ialltoallv;
539 mca_coll_base_module_ialltoallw_fn_t coll_ialltoallw;
540 mca_coll_base_module_ibarrier_fn_t coll_ibarrier;
541 mca_coll_base_module_ibcast_fn_t coll_ibcast;
542 mca_coll_base_module_iexscan_fn_t coll_iexscan;
543 mca_coll_base_module_igather_fn_t coll_igather;
544 mca_coll_base_module_igatherv_fn_t coll_igatherv;
545 mca_coll_base_module_ireduce_fn_t coll_ireduce;
546 mca_coll_base_module_ireduce_scatter_fn_t coll_ireduce_scatter;
547 mca_coll_base_module_ireduce_scatter_block_fn_t coll_ireduce_scatter_block;
548 mca_coll_base_module_iscan_fn_t coll_iscan;
549 mca_coll_base_module_iscatter_fn_t coll_iscatter;
550 mca_coll_base_module_iscatterv_fn_t coll_iscatterv;
551
552
553 mca_coll_base_module_allgather_init_fn_t coll_allgather_init;
554 mca_coll_base_module_allgatherv_init_fn_t coll_allgatherv_init;
555 mca_coll_base_module_allreduce_init_fn_t coll_allreduce_init;
556 mca_coll_base_module_alltoall_init_fn_t coll_alltoall_init;
557 mca_coll_base_module_alltoallv_init_fn_t coll_alltoallv_init;
558 mca_coll_base_module_alltoallw_init_fn_t coll_alltoallw_init;
559 mca_coll_base_module_barrier_init_fn_t coll_barrier_init;
560 mca_coll_base_module_bcast_init_fn_t coll_bcast_init;
561 mca_coll_base_module_exscan_init_fn_t coll_exscan_init;
562 mca_coll_base_module_gather_init_fn_t coll_gather_init;
563 mca_coll_base_module_gatherv_init_fn_t coll_gatherv_init;
564 mca_coll_base_module_reduce_init_fn_t coll_reduce_init;
565 mca_coll_base_module_reduce_scatter_init_fn_t coll_reduce_scatter_init;
566 mca_coll_base_module_reduce_scatter_block_init_fn_t coll_reduce_scatter_block_init;
567 mca_coll_base_module_scan_init_fn_t coll_scan_init;
568 mca_coll_base_module_scatter_init_fn_t coll_scatter_init;
569 mca_coll_base_module_scatterv_init_fn_t coll_scatterv_init;
570
571
572 mca_coll_base_module_allgather_fn_t coll_neighbor_allgather;
573 mca_coll_base_module_allgatherv_fn_t coll_neighbor_allgatherv;
574 mca_coll_base_module_alltoall_fn_t coll_neighbor_alltoall;
575 mca_coll_base_module_alltoallv_fn_t coll_neighbor_alltoallv;
576 mca_coll_base_module_neighbor_alltoallw_fn_t coll_neighbor_alltoallw;
577
578
579 mca_coll_base_module_iallgather_fn_t coll_ineighbor_allgather;
580 mca_coll_base_module_iallgatherv_fn_t coll_ineighbor_allgatherv;
581 mca_coll_base_module_ialltoall_fn_t coll_ineighbor_alltoall;
582 mca_coll_base_module_ialltoallv_fn_t coll_ineighbor_alltoallv;
583 mca_coll_base_module_ineighbor_alltoallw_fn_t coll_ineighbor_alltoallw;
584
585
586 mca_coll_base_module_allgather_init_fn_t coll_neighbor_allgather_init;
587 mca_coll_base_module_allgatherv_init_fn_t coll_neighbor_allgatherv_init;
588 mca_coll_base_module_alltoall_init_fn_t coll_neighbor_alltoall_init;
589 mca_coll_base_module_alltoallv_init_fn_t coll_neighbor_alltoallv_init;
590 mca_coll_base_module_neighbor_alltoallw_init_fn_t coll_neighbor_alltoallw_init;
591
592
593 mca_coll_base_module_ft_event_fn_t ft_event;
594
595
596
597 mca_coll_base_module_disable_1_2_0_fn_t coll_module_disable;
598
599 mca_coll_base_module_reduce_local_fn_t coll_reduce_local;
600
601
602
603 struct mca_coll_base_comm_t* base_data;
604 };
605 typedef struct mca_coll_base_module_2_3_0_t mca_coll_base_module_2_3_0_t;
606
607
608
609
610 typedef struct mca_coll_base_module_2_3_0_t mca_coll_base_module_t;
611 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_coll_base_module_t);
612
613
614
615
616
617
618
619
620
621
622 struct mca_coll_base_comm_coll_t {
623
624
625 mca_coll_base_module_allgather_fn_t coll_allgather;
626 mca_coll_base_module_2_3_0_t *coll_allgather_module;
627 mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
628 mca_coll_base_module_2_3_0_t *coll_allgatherv_module;
629 mca_coll_base_module_allreduce_fn_t coll_allreduce;
630 mca_coll_base_module_2_3_0_t *coll_allreduce_module;
631 mca_coll_base_module_alltoall_fn_t coll_alltoall;
632 mca_coll_base_module_2_3_0_t *coll_alltoall_module;
633 mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
634 mca_coll_base_module_2_3_0_t *coll_alltoallv_module;
635 mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
636 mca_coll_base_module_2_3_0_t *coll_alltoallw_module;
637 mca_coll_base_module_barrier_fn_t coll_barrier;
638 mca_coll_base_module_2_3_0_t *coll_barrier_module;
639 mca_coll_base_module_bcast_fn_t coll_bcast;
640 mca_coll_base_module_2_3_0_t *coll_bcast_module;
641 mca_coll_base_module_exscan_fn_t coll_exscan;
642 mca_coll_base_module_2_3_0_t *coll_exscan_module;
643 mca_coll_base_module_gather_fn_t coll_gather;
644 mca_coll_base_module_2_3_0_t *coll_gather_module;
645 mca_coll_base_module_gatherv_fn_t coll_gatherv;
646 mca_coll_base_module_2_3_0_t *coll_gatherv_module;
647 mca_coll_base_module_reduce_fn_t coll_reduce;
648 mca_coll_base_module_2_3_0_t *coll_reduce_module;
649 mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
650 mca_coll_base_module_2_3_0_t *coll_reduce_scatter_module;
651 mca_coll_base_module_reduce_scatter_block_fn_t coll_reduce_scatter_block;
652 mca_coll_base_module_2_3_0_t *coll_reduce_scatter_block_module;
653 mca_coll_base_module_scan_fn_t coll_scan;
654 mca_coll_base_module_2_3_0_t *coll_scan_module;
655 mca_coll_base_module_scatter_fn_t coll_scatter;
656 mca_coll_base_module_2_3_0_t *coll_scatter_module;
657 mca_coll_base_module_scatterv_fn_t coll_scatterv;
658 mca_coll_base_module_2_3_0_t *coll_scatterv_module;
659
660
661 mca_coll_base_module_iallgather_fn_t coll_iallgather;
662 mca_coll_base_module_2_3_0_t *coll_iallgather_module;
663 mca_coll_base_module_iallgatherv_fn_t coll_iallgatherv;
664 mca_coll_base_module_2_3_0_t *coll_iallgatherv_module;
665 mca_coll_base_module_iallreduce_fn_t coll_iallreduce;
666 mca_coll_base_module_2_3_0_t *coll_iallreduce_module;
667 mca_coll_base_module_ialltoall_fn_t coll_ialltoall;
668 mca_coll_base_module_2_3_0_t *coll_ialltoall_module;
669 mca_coll_base_module_ialltoallv_fn_t coll_ialltoallv;
670 mca_coll_base_module_2_3_0_t *coll_ialltoallv_module;
671 mca_coll_base_module_ialltoallw_fn_t coll_ialltoallw;
672 mca_coll_base_module_2_3_0_t *coll_ialltoallw_module;
673 mca_coll_base_module_ibarrier_fn_t coll_ibarrier;
674 mca_coll_base_module_2_3_0_t *coll_ibarrier_module;
675 mca_coll_base_module_ibcast_fn_t coll_ibcast;
676 mca_coll_base_module_2_3_0_t *coll_ibcast_module;
677 mca_coll_base_module_iexscan_fn_t coll_iexscan;
678 mca_coll_base_module_2_3_0_t *coll_iexscan_module;
679 mca_coll_base_module_igather_fn_t coll_igather;
680 mca_coll_base_module_2_3_0_t *coll_igather_module;
681 mca_coll_base_module_igatherv_fn_t coll_igatherv;
682 mca_coll_base_module_2_3_0_t *coll_igatherv_module;
683 mca_coll_base_module_ireduce_fn_t coll_ireduce;
684 mca_coll_base_module_2_3_0_t *coll_ireduce_module;
685 mca_coll_base_module_ireduce_scatter_fn_t coll_ireduce_scatter;
686 mca_coll_base_module_2_3_0_t *coll_ireduce_scatter_module;
687 mca_coll_base_module_ireduce_scatter_block_fn_t coll_ireduce_scatter_block;
688 mca_coll_base_module_2_3_0_t *coll_ireduce_scatter_block_module;
689 mca_coll_base_module_iscan_fn_t coll_iscan;
690 mca_coll_base_module_2_3_0_t *coll_iscan_module;
691 mca_coll_base_module_iscatter_fn_t coll_iscatter;
692 mca_coll_base_module_2_3_0_t *coll_iscatter_module;
693 mca_coll_base_module_iscatterv_fn_t coll_iscatterv;
694 mca_coll_base_module_2_3_0_t *coll_iscatterv_module;
695
696
697 mca_coll_base_module_allgather_init_fn_t coll_allgather_init;
698 mca_coll_base_module_2_3_0_t *coll_allgather_init_module;
699 mca_coll_base_module_allgatherv_init_fn_t coll_allgatherv_init;
700 mca_coll_base_module_2_3_0_t *coll_allgatherv_init_module;
701 mca_coll_base_module_allreduce_init_fn_t coll_allreduce_init;
702 mca_coll_base_module_2_3_0_t *coll_allreduce_init_module;
703 mca_coll_base_module_alltoall_init_fn_t coll_alltoall_init;
704 mca_coll_base_module_2_3_0_t *coll_alltoall_init_module;
705 mca_coll_base_module_alltoallv_init_fn_t coll_alltoallv_init;
706 mca_coll_base_module_2_3_0_t *coll_alltoallv_init_module;
707 mca_coll_base_module_alltoallw_init_fn_t coll_alltoallw_init;
708 mca_coll_base_module_2_3_0_t *coll_alltoallw_init_module;
709 mca_coll_base_module_barrier_init_fn_t coll_barrier_init;
710 mca_coll_base_module_2_3_0_t *coll_barrier_init_module;
711 mca_coll_base_module_bcast_init_fn_t coll_bcast_init;
712 mca_coll_base_module_2_3_0_t *coll_bcast_init_module;
713 mca_coll_base_module_exscan_init_fn_t coll_exscan_init;
714 mca_coll_base_module_2_3_0_t *coll_exscan_init_module;
715 mca_coll_base_module_gather_init_fn_t coll_gather_init;
716 mca_coll_base_module_2_3_0_t *coll_gather_init_module;
717 mca_coll_base_module_gatherv_init_fn_t coll_gatherv_init;
718 mca_coll_base_module_2_3_0_t *coll_gatherv_init_module;
719 mca_coll_base_module_reduce_init_fn_t coll_reduce_init;
720 mca_coll_base_module_2_3_0_t *coll_reduce_init_module;
721 mca_coll_base_module_reduce_scatter_init_fn_t coll_reduce_scatter_init;
722 mca_coll_base_module_2_3_0_t *coll_reduce_scatter_init_module;
723 mca_coll_base_module_reduce_scatter_block_init_fn_t coll_reduce_scatter_block_init;
724 mca_coll_base_module_2_3_0_t *coll_reduce_scatter_block_init_module;
725 mca_coll_base_module_scan_init_fn_t coll_scan_init;
726 mca_coll_base_module_2_3_0_t *coll_scan_init_module;
727 mca_coll_base_module_scatter_init_fn_t coll_scatter_init;
728 mca_coll_base_module_2_3_0_t *coll_scatter_init_module;
729 mca_coll_base_module_scatterv_init_fn_t coll_scatterv_init;
730 mca_coll_base_module_2_3_0_t *coll_scatterv_init_module;
731
732
733 mca_coll_base_module_allgather_fn_t coll_neighbor_allgather;
734 mca_coll_base_module_2_3_0_t *coll_neighbor_allgather_module;
735 mca_coll_base_module_allgatherv_fn_t coll_neighbor_allgatherv;
736 mca_coll_base_module_2_3_0_t *coll_neighbor_allgatherv_module;
737 mca_coll_base_module_alltoall_fn_t coll_neighbor_alltoall;
738 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoall_module;
739 mca_coll_base_module_alltoallv_fn_t coll_neighbor_alltoallv;
740 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallv_module;
741 mca_coll_base_module_neighbor_alltoallw_fn_t coll_neighbor_alltoallw;
742 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallw_module;
743
744
745 mca_coll_base_module_iallgather_fn_t coll_ineighbor_allgather;
746 mca_coll_base_module_2_3_0_t *coll_ineighbor_allgather_module;
747 mca_coll_base_module_iallgatherv_fn_t coll_ineighbor_allgatherv;
748 mca_coll_base_module_2_3_0_t *coll_ineighbor_allgatherv_module;
749 mca_coll_base_module_ialltoall_fn_t coll_ineighbor_alltoall;
750 mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoall_module;
751 mca_coll_base_module_ialltoallv_fn_t coll_ineighbor_alltoallv;
752 mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoallv_module;
753 mca_coll_base_module_ineighbor_alltoallw_fn_t coll_ineighbor_alltoallw;
754 mca_coll_base_module_2_3_0_t *coll_ineighbor_alltoallw_module;
755
756
757 mca_coll_base_module_allgather_init_fn_t coll_neighbor_allgather_init;
758 mca_coll_base_module_2_3_0_t *coll_neighbor_allgather_init_module;
759 mca_coll_base_module_allgatherv_init_fn_t coll_neighbor_allgatherv_init;
760 mca_coll_base_module_2_3_0_t *coll_neighbor_allgatherv_init_module;
761 mca_coll_base_module_alltoall_init_fn_t coll_neighbor_alltoall_init;
762 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoall_init_module;
763 mca_coll_base_module_alltoallv_init_fn_t coll_neighbor_alltoallv_init;
764 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallv_init_module;
765 mca_coll_base_module_neighbor_alltoallw_init_fn_t coll_neighbor_alltoallw_init;
766 mca_coll_base_module_2_3_0_t *coll_neighbor_alltoallw_init_module;
767
768 mca_coll_base_module_reduce_local_fn_t coll_reduce_local;
769 mca_coll_base_module_2_3_0_t *coll_reduce_local_module;
770 };
771 typedef struct mca_coll_base_comm_coll_t mca_coll_base_comm_coll_t;
772
773
774
775
776
777
778
779
780 #define MCA_COLL_BASE_VERSION_2_0_0 \
781 OMPI_MCA_BASE_VERSION_2_1_0("coll", 2, 0, 0)
782
783
784
785
786
787 END_C_DECLS
788
789 #endif