20 #ifndef MCA_COLL_SYNC_EXPORT_H
21 #define MCA_COLL_SYNC_EXPORT_H
23 #include "ompi_config.h"
30 #include "ompi/constants.h"
33 #include "ompi/communicator/communicator.h"
39 int mca_coll_sync_init_query(
bool enable_progress_threads,
40 bool enable_mpi_threads);
51 int mca_coll_sync_bcast(
void *buff,
int count,
57 int mca_coll_sync_exscan(
void *sbuf,
void *rbuf,
int count,
63 int mca_coll_sync_gather(
void *sbuf,
int scount,
65 void *rbuf,
int rcount,
71 int mca_coll_sync_gatherv(
void *sbuf,
int scount,
73 void *rbuf,
int *rcounts,
int *disps,
79 int mca_coll_sync_reduce(
void *sbuf,
void *rbuf,
int count,
86 int mca_coll_sync_reduce_scatter(
void *sbuf,
void *rbuf,
93 int mca_coll_sync_scan(
void *sbuf,
void *rbuf,
int count,
99 int mca_coll_sync_scatter(
void *sbuf,
int scount,
101 void *rbuf,
int rcount,
107 int mca_coll_sync_scatterv(
void *sbuf,
int *scounts,
int *disps,
109 void *rbuf,
int rcount,
115 int mca_coll_sync_ft_event(
int status);
127 int before_num_operations;
130 int after_num_operations;
147 int barrier_before_nops;
150 int barrier_after_nops;
159 #define COLL_SYNC(module, op) \
161 int err = MPI_SUCCESS; \
162 s->in_operation = true; \
163 if (OPAL_UNLIKELY(++s->before_num_operations == \
164 mca_coll_sync_component.barrier_before_nops)) { \
165 s->before_num_operations = 0; \
166 err = s->c_coll.coll_barrier(comm, s->c_coll.coll_barrier_module); \
168 if (OPAL_LIKELY(MPI_SUCCESS == err)) { \
171 if (OPAL_UNLIKELY(++s->after_num_operations == \
172 mca_coll_sync_component.barrier_after_nops) && \
173 OPAL_LIKELY(MPI_SUCCESS == err)) { \
174 s->after_num_operations = 0; \
175 err = s->c_coll.coll_barrier(comm, s->c_coll.coll_barrier_module); \
177 s->in_operation = false; \
Collective module interface.
Definition: coll.h:316
Definition: ompi_datatype.h:68
Collective component interface.
Definition: coll.h:283
MCA coll base framework public interface functions.
Top-level interface for all MCA components.
Collective Communication Interface.
Definition: coll_sync.h:140
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
Definition: communicator.h:118
Back-end type of MPI_Op.
Definition: op.h:100
Collectives communicator cache structure.
Definition: coll.h:367
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
Definition: coll_sync.h:120