21 #ifndef MCA_COLL_FTBASIC_EXPORT_H
22 #define MCA_COLL_FTBASIC_EXPORT_H
24 #include "ompi_config.h"
30 #include "ompi/class/ompi_free_list.h"
33 #include "ompi/mca/coll/base/coll_tags.h"
36 #include "ompi/communicator/communicator.h"
37 #include "ompi/runtime/params.h"
46 #define MCA_COLL_FTBASIC_TAG_AGREEMENT(module) (module->mccb_coll_tag_agreement)
47 #define MCA_COLL_FTBASIC_TAG_AGREEMENT_CATCH_UP (MCA_COLL_BASE_TAG_AGREEMENT_CATCH_UP)
48 #define MCA_COLL_FTBASIC_TAG_AGREEMENT_CATCH_UP_REQ (MCA_COLL_BASE_TAG_AGREEMENT_CATCH_UP_REQ)
49 #define MCA_COLL_FTBASIC_TAG_AGREEMENT_UR_ELECTED (MCA_COLL_BASE_TAG_AGREEMENT_UR_ELECTED)
53 #define MCA_COLL_FTBASIC_TAG_STEP 0
59 mca_coll_ftbasic_component;
60 extern int mca_coll_ftbasic_priority;
61 extern int mca_coll_ftbasic_crossover;
63 enum mca_coll_ftbasic_agreement_method_t {
64 COLL_FTBASIC_ALLREDUCE = 0,
65 COLL_FTBASIC_TWO_PHASE = 1,
66 COLL_FTBASIC_LOG_TWO_PHASE = 2,
67 COLL_FTBASIC_EARLY_TERMINATION = 3
69 typedef enum mca_coll_ftbasic_agreement_method_t mca_coll_ftbasic_agreement_method_t;
71 extern mca_coll_ftbasic_agreement_method_t mca_coll_ftbasic_cur_agreement_method;
72 extern bool mca_coll_ftbasic_use_agreement_timer;
73 extern bool mca_coll_ftbasic_agreement_use_progress;
74 extern int mca_coll_ftbasic_agreement_log_max_len;
75 extern int mca_coll_ftbasic_agreement_help_wait_cycles_inc;
88 int agreement_seq_num;
121 int mccb_num_statuses;
127 int mccb_coll_tag_agreement;
138 int mca_coll_ftbasic_init_query(
bool enable_progress_threads,
139 bool enable_mpi_threads);
147 int mca_coll_ftbasic_ft_event(
int status);
195 static inline void mca_coll_ftbasic_free_reqs(
ompi_request_t ** reqs,
199 for (i = 0; i < count; ++i) {
200 if( OMPI_REQUEST_INVALID != reqs[i]->req_state ) {
Definition: opal_bitmap.h:53
Definition: coll_ftbasic_agreement.h:263
Collective module interface.
Definition: coll.h:316
Collective component interface.
Definition: coll.h:283
Definition: coll_ftbasic.h:83
Top-level interface for all MCA components.
Definition: opal_list.h:98
Collective Communication Interface.
Top-level description of requests.
Definition: coll_ftbasic.h:109
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
Definition: opal_list.h:147
Global params for OpenRTE.
static int ompi_request_free(ompi_request_t **request)
Free a request.
Definition: request.h:371
Infrastructure for MPI group support.
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236