10 #ifndef MCA_COLL_FCA_H
11 #define MCA_COLL_FCA_H
13 #include "ompi_config.h"
20 #include "ompi/mca/coll/base/coll_tags.h"
21 #include "ompi/communicator/communicator.h"
24 #include "coll_fca_api.h"
25 #include "coll_fca_debug.h"
28 #ifdef OMPI_DATATYPE_MAX_PREDEFINED
30 #include "opal/datatype/opal_convertor.h"
31 #define FCA_CONVERTOR_T opal_convertor_t
32 #define FCA_CONVERTOR_COPY_AND_PREPARE_FOR_SEND opal_convertor_copy_and_prepare_for_send
33 #define FCA_CONVERTOR_COPY_AND_PREPARE_FOR_RECV opal_convertor_copy_and_prepare_for_recv
34 #define FCA_CONVERTOR_CONVERTOR_GET_PACKED_SIZE opal_convertor_get_packed_size
35 #define FCA_CONVERTOR_CONVERTOR_UNPACK opal_convertor_unpack
36 #define FCA_CONVERTOR_CONVERTOR_PACK opal_convertor_pack
38 #define FCA_DT_MAX_PREDEFINED OMPI_DATATYPE_MAX_PREDEFINED
39 #define FCA_DT_EXTENT ompi_datatype_type_extent
40 #define FCA_DT_GET_TRUE_EXTENT ompi_datatype_get_true_extent
41 #define FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(__dtype, __count) \
42 ompi_datatype_is_contiguous_memory_layout(__dtype, __count)
45 #include "ompi/datatype/convertor.h"
46 #define FCA_CONVERTOR_T ompi_convertor_t
47 #define FCA_CONVERTOR_COPY_AND_PREPARE_FOR_SEND ompi_convertor_copy_and_prepare_for_send
48 #define FCA_CONVERTOR_COPY_AND_PREPARE_FOR_RECV ompi_convertor_copy_and_prepare_for_recv
49 #define FCA_CONVERTOR_CONVERTOR_GET_PACKED_SIZE ompi_convertor_get_packed_size
50 #define FCA_CONVERTOR_CONVERTOR_UNPACK ompi_convertor_unpack
51 #define FCA_CONVERTOR_CONVERTOR_PACK ompi_convertor_pack
53 #define FCA_DT_MAX_PREDEFINED DT_MAX_PREDEFINED
54 #define FCA_DT_EXTENT ompi_ddt_type_extent
55 #define FCA_DT_GET_TRUE_EXTENT ompi_ddt_get_true_extent
56 #define FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(__dtype, __count) \
57 ompi_ddt_is_contiguous_memory_layout(__dtype, __count)
61 #ifdef OMPI_PROC_FLAG_LOCAL
62 #define FCA_IS_LOCAL_PROCESS(n) ((n) & OMPI_PROC_FLAG_LOCAL)
64 #define FCA_IS_LOCAL_PROCESS(n) OPAL_PROC_ON_LOCAL_NODE(n)
82 size_t mpi_dtype_extent;
84 size_t fca_dtype_extent;
98 #define FCA_MAX_OPS 32
174 void *fca_lib_handle;
196 fca_comm_t *fca_comm;
197 fca_comm_desc_t fca_comm_desc;
198 fca_comm_caps_t fca_comm_caps;
201 mca_coll_base_module_reduce_fn_t previous_reduce;
203 mca_coll_base_module_allreduce_fn_t previous_allreduce;
205 mca_coll_base_module_bcast_fn_t previous_bcast;
207 mca_coll_base_module_barrier_fn_t previous_barrier;
209 mca_coll_base_module_allgather_fn_t previous_allgather;
211 mca_coll_base_module_allgatherv_fn_t previous_allgatherv;
213 mca_coll_base_module_alltoall_fn_t previous_alltoall;
215 mca_coll_base_module_alltoallv_fn_t previous_alltoallv;
217 mca_coll_base_module_alltoallw_fn_t previous_alltoallw;
219 mca_coll_base_module_gather_fn_t previous_gather;
221 mca_coll_base_module_gatherv_fn_t previous_gatherv;
223 mca_coll_base_module_reduce_scatter_fn_t previous_reduce_scatter;
232 int mca_coll_fca_init_query(
bool enable_progress_threads,
bool enable_mpi_threads);
238 int mca_coll_fca_allreduce(
void *sbuf,
void *rbuf,
int count,
242 int mca_coll_fca_bcast(
void *buff,
int count,
struct ompi_datatype_t *datatype,
246 int mca_coll_fca_reduce(
void *sbuf,
void* rbuf,
int count,
254 int mca_coll_fca_allgather(
void *sbuf,
int scount,
struct ompi_datatype_t *sdtype,
259 int mca_coll_fca_allgatherv(
void *sbuf,
int scount,
261 void *rbuf,
int *rcounts,
int *disps,
266 int mca_coll_fca_alltoall(
void *sbuf,
int scount,
268 void *rbuf,
int rcount,
273 int mca_coll_fca_alltoallv(
void *sbuf,
int *scounts,
int *sdisps,
275 void *rbuf,
int *rcounts,
int *rdisps,
280 int mca_coll_fca_alltoallw(
void *sbuf,
int *scounts,
int *sdisps,
282 void *rbuf,
int *rcounts,
int *rdisps,
287 int mca_coll_fca_gather(
void *sbuf,
int scount,
289 void *rbuf,
int rcount,
294 int mca_coll_fca_gatherv(
void *sbuf,
int scount,
296 void *rbuf,
int *rcounts,
int *disps,
301 int mca_coll_fca_reduce_scatter(
void *sbuf,
void *rbuf,
int *rcounts,
int fca_enable_gather
MCA parameter: Enable FCA Gather.
Definition: coll_fca.h:156
Definition: coll_fca_api.h:49
int fca_enable_allgather
MCA parameter: Enable FCA Allgather.
Definition: coll_fca.h:150
int fca_enable_barrier
MCA parameter: Enable FCA Barrier.
Definition: coll_fca.h:135
P2P Management Layer (PML)
char * fca_spec_file
MCA parameter: Path to fca spec file.
Definition: coll_fca.h:123
Collective module interface.
Definition: coll.h:316
Definition: ompi_datatype.h:68
Collective component interface.
Definition: coll.h:283
int fca_enable_bcast
MCA parameter: Enable FCA Bcast.
Definition: coll_fca.h:138
int fca_enable_gatherv
MCA parameter: Enable FCA Gatherv.
Definition: coll_fca.h:159
Globally exported structure.
Definition: coll_fca.h:103
mca_coll_base_component_2_0_0_t super
Base coll component.
Definition: coll_fca.h:105
int fca_enable_alltoall
MCA parameter: Enable FCA AlltoAll.
Definition: coll_fca.h:162
char * fca_comm_mgid
MCA parameter: Comm_mGid.
Definition: coll_fca.h:117
int fca_np
MCA parameter: FCA NP.
Definition: coll_fca.h:171
int fca_enable_reduce
MCA parameter: Enable FCA Reduce.
Definition: coll_fca.h:141
Top-level interface for all MCA components.
int fca_enable_allreduce
MCA parameter: Enable FCA Allreduce.
Definition: coll_fca.h:147
char * fca_fmm_mlid
MCA parameter: FCA_Mlid.
Definition: coll_fca.h:120
Collective Communication Interface.
char * fca_lib_path
MCA parameter: Path to libfca.so.
Definition: coll_fca.h:126
Public interface for the MPI_Op handle.
Top-level description of requests.
FCA enabled communicator.
Definition: coll_fca.h:188
FCA operator information.
Definition: coll_fca.h:92
char * fca_comm_mlid
MCA parameter: Comm_mLid.
Definition: coll_fca.h:114
int fca_enable_alltoallv
MCA parameter: Enable FCA AlltoAllv.
Definition: coll_fca.h:165
int fca_priority
MCA parameter: Priority of this component.
Definition: coll_fca.h:108
int fca_enable_alltoallw
MCA parameter: Enable FCA AlltoAllw.
Definition: coll_fca.h:168
int fca_enable
MCA parameter: Enable FCA.
Definition: coll_fca.h:132
FCA data type information.
Definition: coll_fca.h:80
int fca_verbose
MCA parameter: Verbose level of this component.
Definition: coll_fca.h:111
char * fca_dev
MCA parameter: FCA device.
Definition: coll_fca.h:129
Definition: communicator.h:118
int fca_enable_reduce_scatter
MCA parameter: Enable FCA Reduce_Scatter.
Definition: coll_fca.h:144
Back-end type of MPI_Op.
Definition: op.h:100
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
int fca_enable_allgatherv
MCA parameter: Enable FCA Allgatherv.
Definition: coll_fca.h:153