📄 pml.h
字号:
int tag, struct ompi_communicator_t* comm, struct ompi_request_t **request);/** * Post a receive and wait for completion. * * @param buf (IN) User buffer * @param count (IN) Number of elements of the specified datatype * @param datatype (IN) User defined datatype * @param src (IN) Source rank w/in communicator * @param tag (IN) User defined tag * @param comm (IN) Communicator * @param status (OUT) Completion status * @return OMPI_SUCCESS or failure status. */typedef 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);/** * Initialize a persistent send request. * * @param buf (IN) User buffer. * @param count (IN) Number of elements of the specified datatype. * @param datatype (IN) User defined datatype. * @param dst (IN) Peer rank w/in communicator. * @param tag (IN) User defined tag. * @param mode (IN) Send mode (STANDARD,BUFFERED,SYNCHRONOUS,READY) * @param comm (IN) Communicator. * @param request (OUT) Request handle. * @return OMPI_SUCCESS or failure status. */typedef 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);/** * Post a send request. * * @param buf (IN) User buffer. * @param count (IN) Number of elements of the specified datatype. * @param datatype (IN) User defined datatype. * @param dst (IN) Peer rank w/in communicator. * @param tag (IN) User defined tag. * @param mode (IN) Send mode (STANDARD,BUFFERED,SYNCHRONOUS,READY) * @param comm (IN) Communicator. * @param request (OUT) Request handle. * @return OMPI_SUCCESS or failure status. */typedef 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 and wait for completion. * * @param buf (IN) User buffer. * @param count (IN) Number of elements of the specified datatype. * @param datatype (IN) User defined datatype. * @param dst (IN) Peer rank w/in communicator. * @param tag (IN) User defined tag. * @param mode (IN) Send mode (STANDARD,BUFFERED,SYNCHRONOUS,READY) * @param comm (IN) Communicator. * @return OMPI_SUCCESS or failure status. */typedef 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);/** * Initiate one or more persistent requests. * * @param count Number of requests * @param request Array of persistent requests * @return OMPI_SUCCESS or failure status. */typedef int (*mca_pml_base_module_start_fn_t)( size_t count, struct ompi_request_t** requests);/** * Probe to poll for pending recv. * * @param src (IN) Source rank w/in communicator. * @param tag (IN) User defined tag. * @param comm (IN) Communicator. * @param matched (OUT) Flag indicating if matching recv exists. * @param status (OUT) Completion statuses. * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_iprobe_fn_t)( int src, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t *status);/** * Blocking probe to wait for pending recv. * * @param src (IN) Source rank w/in communicator. * @param tag (IN) User defined tag. * @param comm (IN) Communicator. * @param status (OUT) Completion statuses. * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_probe_fn_t)( int src, int tag, struct ompi_communicator_t* comm, ompi_status_public_t *status);/** * Cancel pending operation. * * @param request (IN) Request * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_cancel_fn_t)( struct ompi_request_t* request);/** * Has a request been cancelled? * * @param request (IN) Request * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_cancelled_fn_t)( struct ompi_request_t* request, int *flag);/** * Release resources held by a persistent mode request. * * @param request (IN) Request * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_free_fn_t)( struct ompi_request_t** request);/** * A special NULL request handle. * * @param request (OUT) Request * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_null_fn_t)( struct ompi_request_t** request);/** * Diagnostics function. * * @param request (IN) Communicator * @return OMPI_SUCCESS or failure status. * */typedef int (*mca_pml_base_module_dump_fn_t)( struct ompi_communicator_t* comm, int verbose);/** * PML instance. */struct mca_pml_base_module_1_0_0_t { /* downcalls from MCA to PML */ mca_pml_base_module_add_procs_fn_t pml_add_procs; mca_pml_base_module_del_procs_fn_t pml_del_procs; mca_pml_base_module_enable_fn_t pml_enable; mca_pml_base_module_progress_fn_t pml_progress; /* downcalls from MPI to PML */ mca_pml_base_module_add_comm_fn_t pml_add_comm; mca_pml_base_module_del_comm_fn_t pml_del_comm; mca_pml_base_module_irecv_init_fn_t pml_irecv_init; mca_pml_base_module_irecv_fn_t pml_irecv; mca_pml_base_module_recv_fn_t pml_recv; mca_pml_base_module_isend_init_fn_t pml_isend_init; mca_pml_base_module_isend_fn_t pml_isend; mca_pml_base_module_send_fn_t pml_send; mca_pml_base_module_iprobe_fn_t pml_iprobe; mca_pml_base_module_probe_fn_t pml_probe; mca_pml_base_module_start_fn_t pml_start; /* diagnostics */ mca_pml_base_module_dump_fn_t pml_dump; /* maximum constant sizes */ int pml_max_contextid; int pml_max_tag;};typedef struct mca_pml_base_module_1_0_0_t mca_pml_base_module_1_0_0_t;typedef mca_pml_base_module_1_0_0_t mca_pml_base_module_t;/* * Macro for use in components that are of type pml v1.0.0 */#define MCA_PML_BASE_VERSION_1_0_0 \ /* pml v1.0 is chained to MCA v1.0 */ \ MCA_BASE_VERSION_1_0_0, \ /* pml v1.0 */ \ "pml", 1, 0, 0 /* * macro for doing direct call / call through struct */#if MCA_pml_DIRECT_CALL#include MCA_pml_DIRECT_CALL_HEADER#define MCA_PML_CALL_STAMP(a, b) mca_pml_ ## a ## _ ## b#define MCA_PML_CALL_EXPANDER(a, b) MCA_PML_CALL_STAMP(a,b)#define MCA_PML_CALL(a) MCA_PML_CALL_EXPANDER(MCA_pml_DIRECT_CALL_COMPONENT, a)#else#define MCA_PML_CALL(a) mca_pml.pml_ ## a#endifOMPI_DECLSPEC extern mca_pml_base_module_t mca_pml;#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif /* MCA_PML_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -