57 #ifndef OMPI_MCA_COLL_COLL_H
58 #define OMPI_MCA_COLL_COLL_H
60 #include "ompi_config.h"
64 #include "opal/mca/base/base.h"
67 #include "opal/mca/crs/base/base.h"
69 #if OPAL_ENABLE_FT_MPI
83 #if OPAL_ENABLE_FT_MPI
110 (
bool enable_progress_threads,
bool enable_mpi_threads);
142 (*mca_coll_base_component_comm_query_2_0_0_fn_t)
185 typedef int (*mca_coll_base_module_allgather_fn_t)
189 typedef int (*mca_coll_base_module_allgatherv_fn_t)
193 typedef int (*mca_coll_base_module_allreduce_fn_t)
196 typedef int (*mca_coll_base_module_alltoall_fn_t)
200 typedef int (*mca_coll_base_module_alltoallv_fn_t)
201 (
void *sbuf,
int *scounts,
int *sdisps,
struct ompi_datatype_t *sdtype,
204 typedef int (*mca_coll_base_module_alltoallw_fn_t)
205 (
void *sbuf,
int *scounts,
int *sdisps,
struct ompi_datatype_t **sdtypes,
206 void *rbuf,
int *rcounts,
int *rdisps,
struct ompi_datatype_t **rdtypes,
208 typedef int (*mca_coll_base_module_barrier_fn_t)
210 typedef int (*mca_coll_base_module_bcast_fn_t)
213 typedef int (*mca_coll_base_module_exscan_fn_t)
216 typedef int (*mca_coll_base_module_gather_fn_t)
220 typedef int (*mca_coll_base_module_gatherv_fn_t)
224 typedef int (*mca_coll_base_module_reduce_fn_t)
227 typedef int (*mca_coll_base_module_reduce_scatter_fn_t)
230 typedef int (*mca_coll_base_module_scan_fn_t)
233 typedef int (*mca_coll_base_module_scatter_fn_t)
237 typedef int (*mca_coll_base_module_scatterv_fn_t)
242 #if OPAL_ENABLE_FT_MPI
244 typedef int (*mca_coll_base_module_agreement_fn_t)
249 typedef int (*mca_coll_base_module_iagreement_fn_t)
325 mca_coll_base_module_allgather_fn_t coll_allgather;
326 mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
327 mca_coll_base_module_allreduce_fn_t coll_allreduce;
328 mca_coll_base_module_alltoall_fn_t coll_alltoall;
329 mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
330 mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
331 mca_coll_base_module_barrier_fn_t coll_barrier;
332 mca_coll_base_module_bcast_fn_t coll_bcast;
333 mca_coll_base_module_exscan_fn_t coll_exscan;
334 mca_coll_base_module_gather_fn_t coll_gather;
335 mca_coll_base_module_gatherv_fn_t coll_gatherv;
336 mca_coll_base_module_reduce_fn_t coll_reduce;
337 mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
338 mca_coll_base_module_scan_fn_t coll_scan;
339 mca_coll_base_module_scatter_fn_t coll_scatter;
340 mca_coll_base_module_scatterv_fn_t coll_scatterv;
342 #if OPAL_ENABLE_FT_MPI
343 mca_coll_base_module_agreement_fn_t coll_agreement;
344 mca_coll_base_module_iagreement_fn_t coll_iagreement;
368 mca_coll_base_module_allgather_fn_t coll_allgather;
370 mca_coll_base_module_allgatherv_fn_t coll_allgatherv;
372 mca_coll_base_module_allreduce_fn_t coll_allreduce;
374 mca_coll_base_module_alltoall_fn_t coll_alltoall;
376 mca_coll_base_module_alltoallv_fn_t coll_alltoallv;
378 mca_coll_base_module_alltoallw_fn_t coll_alltoallw;
380 mca_coll_base_module_barrier_fn_t coll_barrier;
382 mca_coll_base_module_bcast_fn_t coll_bcast;
384 mca_coll_base_module_exscan_fn_t coll_exscan;
386 mca_coll_base_module_gather_fn_t coll_gather;
388 mca_coll_base_module_gatherv_fn_t coll_gatherv;
390 mca_coll_base_module_reduce_fn_t coll_reduce;
392 mca_coll_base_module_reduce_scatter_fn_t coll_reduce_scatter;
394 mca_coll_base_module_scan_fn_t coll_scan;
396 mca_coll_base_module_scatter_fn_t coll_scatter;
398 mca_coll_base_module_scatterv_fn_t coll_scatterv;
401 #if OPAL_ENABLE_FT_MPI
402 mca_coll_base_module_agreement_fn_t coll_agreement;
404 mca_coll_base_module_iagreement_fn_t coll_iagreement;
417 #define MCA_COLL_BASE_VERSION_2_0_0 \
418 MCA_BASE_VERSION_2_0_0, \
Common type for all MCA components.
Definition: mca.h:250
mca_coll_base_module_ft_event_fn_t ft_event
Fault tolerance event trigger function.
Definition: coll.h:348
Collective module interface.
Definition: coll.h:316
Definition: ompi_datatype.h:68
Collective component interface.
Definition: coll.h:283
Process identification structure interface.
mca_coll_base_component_comm_query_2_0_0_fn_t collm_comm_query
Query whether component is useable for given communicator.
Definition: coll.h:292
Top-level interface for all MCA components.
mca_base_component_t collm_version
Base component description.
Definition: coll.h:285
mca_base_component_data_t collm_data
Base component data block.
Definition: coll.h:287
Top-level description of requests.
int(* mca_coll_base_component_init_query_fn_t)(bool enable_progress_threads, bool enable_mpi_threads)
Collective component initialization.
Definition: coll.h:110
int(* mca_coll_base_module_enable_1_1_0_fn_t)(struct mca_coll_base_module_2_0_0_t *module, struct ompi_communicator_t *comm)
Enable module for collective communication.
Definition: coll.h:181
Group structure Currently we have four formats for storing the process pointers that are members of t...
Definition: group.h:79
Base object.
Definition: opal_object.h:182
int(* mca_coll_base_module_ft_event_fn_t)(int state)
Fault Tolerance Awareness function.
Definition: coll.h:269
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
mca_coll_base_component_init_query_fn_t collm_init_query
Component initialization function.
Definition: coll.h:290
mca_coll_base_module_enable_1_1_0_fn_t coll_module_enable
Enable function called when a collective module is (possibly) going to be used for the given communic...
Definition: coll.h:322
Checkpoint and Restart Service (CRS) Interface.
struct mca_coll_base_module_2_0_0_t *(* mca_coll_base_component_comm_query_2_0_0_fn_t)(struct ompi_communicator_t *comm, int *priority)
Query whether a component is available for the given communicator.
Definition: coll.h:143
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Back-end type of MPI_Op.
Definition: op.h:100
Collectives communicator cache structure.
Definition: coll.h:367
opal_object_t super
Collective modules all inherit from opal_object.
Definition: coll.h:318
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236