65 #include "ompi_config.h"
75 typedef uint64_t mca_pml_sequence_t;
89 struct mca_pml_endpoint_t;
93 MCA_PML_BASE_SEND_SYNCHRONOUS,
94 MCA_PML_BASE_SEND_COMPLETE,
95 MCA_PML_BASE_SEND_BUFFERED,
96 MCA_PML_BASE_SEND_READY,
97 MCA_PML_BASE_SEND_STANDARD,
98 MCA_PML_BASE_SEND_SIZE
99 } mca_pml_base_send_mode_t;
102 #define OMPI_ANY_TAG MPI_ANY_TAG
103 #define OMPI_ANY_SOURCE MPI_ANY_SOURCE
104 #define OMPI_PROC_NULL MPI_PROC_NULL
122 bool enable_progress_threads,
123 bool enable_mpi_threads);
125 typedef int (*mca_pml_base_component_finalize_fn_t)(void);
135 mca_pml_base_component_finalize_fn_t pmlm_finalize;
265 typedef int (*mca_pml_base_module_imrecv_fn_t)(
294 typedef int (*mca_pml_base_module_mrecv_fn_t)(
321 mca_pml_base_send_mode_t mode,
346 mca_pml_base_send_mode_t mode,
370 mca_pml_base_send_mode_t mode,
405 typedef int (*mca_pml_base_module_improbe_fn_t)(
431 typedef int (*mca_pml_base_module_mprobe_fn_t)(
532 mca_pml_base_module_improbe_fn_t pml_improbe;
533 mca_pml_base_module_mprobe_fn_t pml_mprobe;
534 mca_pml_base_module_imrecv_fn_t pml_imrecv;
535 mca_pml_base_module_mrecv_fn_t pml_mrecv;
544 uint32_t pml_max_contextid;
553 #define MCA_PML_BASE_VERSION_2_0_0 \
554 MCA_BASE_VERSION_2_0_0, \
560 #if MCA_ompi_pml_DIRECT_CALL
562 #include MCA_ompi_pml_DIRECT_CALL_HEADER
564 #define MCA_PML_CALL_STAMP(a, b) mca_pml_ ## a ## _ ## b
565 #define MCA_PML_CALL_EXPANDER(a, b) MCA_PML_CALL_STAMP(a,b)
566 #define MCA_PML_CALL(a) MCA_PML_CALL_EXPANDER(MCA_ompi_pml_DIRECT_CALL_COMPONENT, a)
569 #define MCA_PML_CALL(a) mca_pml.pml_ ## a
int(* mca_pml_base_module_add_procs_fn_t)(struct ompi_proc_t **procs, size_t nprocs)
MCA management functions.
Definition: pml.h:157
Common type for all MCA components.
Definition: mca.h:250
size_t count
same value as status._ucount
Definition: message.h:28
int(* mca_pml_base_module_irecv_init_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int src, int tag, struct ompi_communicator_t *comm, struct ompi_request_t **request)
Initialize a persistent receive request.
Definition: pml.h:234
int(* mca_pml_base_module_del_procs_fn_t)(struct ompi_proc_t **procs, size_t nprocs)
Downcall from MPI/RTE layer when processes are terminated.
Definition: pml.h:171
Definition: ompi_datatype.h:68
int(* mca_pml_base_module_irecv_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int src, int tag, struct ompi_communicator_t *comm, struct ompi_request_t **request)
Post a receive request.
Definition: pml.h:256
int(* mca_pml_base_module_isend_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int dst, int tag, mca_pml_base_send_mode_t mode, struct ompi_communicator_t *comm, struct ompi_request_t **request)
Post a send request.
Definition: pml.h:340
int(* mca_pml_base_module_add_comm_fn_t)(struct ompi_communicator_t *comm)
MPI Interface Functions.
Definition: pml.h:208
int(* mca_pml_base_module_progress_fn_t)(void)
For non-threaded case, provides MCA the opportunity to progress outstanding requests on all btls...
Definition: pml.h:192
int(* mca_pml_base_module_cancel_fn_t)(struct ompi_request_t *request)
Cancel pending operation.
Definition: pml.h:446
int(* mca_pml_base_module_send_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int dst, int tag, mca_pml_base_send_mode_t mode, struct ompi_communicator_t *comm)
Post a send request and wait for completion.
Definition: pml.h:364
PML component version and interface functions.
Definition: pml.h:131
int(* mca_pml_base_module_iprobe_fn_t)(int src, int tag, struct ompi_communicator_t *comm, int *matched, ompi_status_public_t *status)
Probe to poll for pending recv.
Definition: pml.h:397
Remote Open MPI process structure.
Definition: proc.h:56
int(* mca_pml_base_module_start_fn_t)(size_t count, struct ompi_request_t **requests)
Initiate one or more persistent requests.
Definition: pml.h:381
struct mca_pml_base_module_1_0_0_t *(* mca_pml_base_component_init_fn_t)(int *priority, bool enable_progress_threads, bool enable_mpi_threads)
MCA->PML Called by MCA framework to initialize the component.
Definition: pml.h:120
Top-level interface for all MCA components.
int(* mca_pml_base_module_del_comm_fn_t)(struct ompi_communicator_t *comm)
Downcall from MPI layer when a communicator is destroyed.
Definition: pml.h:220
PML instance.
Definition: pml.h:512
int(* mca_pml_base_module_ft_event_fn_t)(int status)
Fault Tolerance Awareness function.
Definition: pml.h:504
int(* mca_pml_base_module_isend_init_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int dst, int tag, mca_pml_base_send_mode_t mode, struct ompi_communicator_t *comm, struct ompi_request_t **request)
Initialize a persistent send request.
Definition: pml.h:315
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
int(* mca_pml_base_module_enable_fn_t)(bool enable)
Downcall from MCA layer to enable the PML/BTLs.
Definition: pml.h:179
int(* mca_pml_base_module_dump_fn_t)(struct ompi_communicator_t *comm, int verbose)
Diagnostics function.
Definition: pml.h:494
int(* mca_pml_base_module_probe_fn_t)(int src, int tag, struct ompi_communicator_t *comm, ompi_status_public_t *status)
Blocking probe to wait for pending recv.
Definition: pml.h:424
int(* mca_pml_base_module_recv_fn_t)(void *buf, size_t count, struct ompi_datatype_t *datatype, int src, int tag, struct ompi_communicator_t *comm, ompi_status_public_t *status)
Post a receive and wait for completion.
Definition: pml.h:285
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
int(* mca_pml_base_module_free_fn_t)(struct ompi_request_t **request)
Release resources held by a persistent mode request.
Definition: pml.h:470
int(* mca_pml_base_module_cancelled_fn_t)(struct ompi_request_t *request, int *flag)
Has a request been cancelled?
Definition: pml.h:458
int(* mca_pml_base_module_null_fn_t)(struct ompi_request_t **request)
A special NULL request handle.
Definition: pml.h:482