OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

vprotocol.h
1 /*
2 * Copyright (c) 2004-2007 The Trustees of the University of Tennessee.
3 * All rights reserved.
4 * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
5 * $COPYRIGHT$
6 *
7 * Additional copyrights may follow
8 *
9 * $HEADER$
10 */
11
12 #ifndef __INCLUDE_VPROTOCOL_H_
13 #define __INCLUDE_VPROTOCOL_H_
14
15 #include "ompi_config.h"
16 #include "opal/mca/mca.h"
17 #include "ompi/mca/pml/pml.h"
18 #include "ompi/request/request.h"
19
20 BEGIN_C_DECLS
21
22 /* PML_V->PROTOCOL Called by MCA_PML_V framework to initialize the component.
23 *
24 * @param priority (OUT) Relative priority or ranking used by MCA to
25 * select a component.
26 *
27 * @param enable_progress_threads (IN) Whether this component is
28 * allowed to run a hidden/progress thread or not.
29 *
30 * @param enable_mpi_threads (IN) Whether support for multiple MPI
31 * threads is enabled or not (i.e., MPI_THREAD_MULTIPLE), which
32 * indicates whether multiple threads may invoke this component
33 * simultaneously or not.
34 */
35 typedef struct mca_vprotocol_base_module_2_0_0_t *
36 (*mca_vprotocol_base_component_init_fn_t)(int *priority,
37 bool enable_progress_threads,
38 bool enable_mpi_threads);
39
40 /* Release any resource allocated in init
41 */
42 typedef int (*mca_vprotocol_base_component_finalize_fn_t)(void);
43
44
45 /* The MCA type for class instance
46 */
47 typedef struct mca_vprotocol_base_component_2_0_0_t {
48 mca_base_component_t pmlm_version;
49 mca_base_component_data_t pmlm_data;
50 mca_vprotocol_base_component_init_fn_t pmlm_init;
51 mca_vprotocol_base_component_finalize_fn_t pmlm_finalize;
52 } mca_vprotocol_base_component_2_0_0_t;
53 typedef mca_vprotocol_base_component_2_0_0_t mca_vprotocol_base_component_t;
54
55 /* The base module of the component
56 */
57 typedef struct mca_vprotocol_base_module_2_0_0_t
58 {
59 /* PML module stuff */
60 mca_pml_base_module_add_procs_fn_t add_procs;
61 mca_pml_base_module_del_procs_fn_t del_procs;
62 mca_pml_base_module_enable_fn_t enable;
63 mca_pml_base_module_progress_fn_t progress;
64 mca_pml_base_module_add_comm_fn_t add_comm;
65 mca_pml_base_module_del_comm_fn_t del_comm;
66 mca_pml_base_module_irecv_init_fn_t irecv_init;
67 mca_pml_base_module_irecv_fn_t irecv;
68 mca_pml_base_module_recv_fn_t recv;
69 mca_pml_base_module_isend_init_fn_t isend_init;
70 mca_pml_base_module_isend_fn_t isend;
71 mca_pml_base_module_send_fn_t send;
72 mca_pml_base_module_iprobe_fn_t iprobe;
73 mca_pml_base_module_probe_fn_t probe;
74 mca_pml_base_module_start_fn_t start;
75 mca_pml_base_module_dump_fn_t dump;
76 /* Request wait/test stuff */
77 ompi_request_test_fn_t test;
78 ompi_request_test_any_fn_t test_any;
79 ompi_request_test_all_fn_t test_all;
80 ompi_request_test_some_fn_t test_some;
81 ompi_request_wait_fn_t wait;
82 ompi_request_wait_any_fn_t wait_any;
83 ompi_request_wait_all_fn_t wait_all;
84 ompi_request_wait_some_fn_t wait_some;
85
86 /* Custom requests classes to add extra data at end of pml requests */
87 opal_class_t * req_recv_class;
88 opal_class_t * req_send_class;
89 } mca_vprotocol_base_module_2_0_0_t;
90 typedef mca_vprotocol_base_module_2_0_0_t mca_vprotocol_base_module_t;
91
92 END_C_DECLS
93
94 /* silently include the pml_v.h as every file including vprotocol.h will also
95 * need it
96 */
97 #include "ompi/mca/pml/v/pml_v.h"
98 #include "ompi/mca/vprotocol/base/base.h"
99
100 #endif /* __INCLUDE_VPROTOCOL_H_ */
mca_pml_base_module_add_procs_fn_t
int(* mca_pml_base_module_add_procs_fn_t)(struct ompi_proc_t **procs, size_t nprocs)
MCA management functions.
Definition: pml.h:157
ompi_request_wait_fn_t
int(* ompi_request_wait_fn_t)(ompi_request_t **req_ptr, ompi_status_public_t *status)
Wait (blocking-mode) for one requests to complete.
Definition: request.h:256
ompi_request_test_any_fn_t
int(* ompi_request_test_any_fn_t)(size_t count, ompi_request_t **requests, int *index, int *completed, ompi_status_public_t *status)
Non-blocking test for request completion.
Definition: request.h:206
mca_base_component_2_0_0_t
Common type for all MCA components.
Definition: mca.h:250
pml.h
P2P Management Layer (PML)
mca_pml_base_module_irecv_init_fn_t
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
mca_pml_base_module_del_procs_fn_t
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
mca_vprotocol_base_component_2_0_0_t
Definition: vprotocol.h:47
ompi_request_test_some_fn_t
int(* ompi_request_test_some_fn_t)(size_t count, ompi_request_t **requests, int *outcount, int *indices, ompi_status_public_t *statuses)
Non-blocking test for some of N requests to complete.
Definition: request.h:240
mca_pml_base_module_irecv_fn_t
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
mca_pml_base_module_isend_fn_t
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
mca_pml_base_module_add_comm_fn_t
int(* mca_pml_base_module_add_comm_fn_t)(struct ompi_communicator_t *comm)
MPI Interface Functions.
Definition: pml.h:208
ompi_request_wait_all_fn_t
int(* ompi_request_wait_all_fn_t)(size_t count, ompi_request_t **requests, ompi_status_public_t *statuses)
Wait (blocking-mode) for all of N requests to complete.
Definition: request.h:287
mca_pml_base_module_progress_fn_t
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
mca_pml_base_module_send_fn_t
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
mca_pml_base_module_iprobe_fn_t
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
mca_pml_base_module_start_fn_t
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
mca.h
Top-level interface for all MCA components.
opal_class_t
Class descriptor.
Definition: opal_object.h:152
mca_vprotocol_base_module_2_0_0_t
Definition: vprotocol.h:57
mca_pml_base_module_del_comm_fn_t
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
request.h
Top-level description of requests.
mca_pml_base_module_isend_init_fn_t
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
mca_base_component_data_2_0_0_t
Meta data for MCA v2.0.0 components.
Definition: mca.h:309
mca_pml_base_module_enable_fn_t
int(* mca_pml_base_module_enable_fn_t)(bool enable)
Downcall from MCA layer to enable the PML/BTLs.
Definition: pml.h:179
ompi_request_test_all_fn_t
int(* ompi_request_test_all_fn_t)(size_t count, ompi_request_t **requests, int *completed, ompi_status_public_t *statuses)
Non-blocking test for request completion.
Definition: request.h:225
mca_pml_base_module_dump_fn_t
int(* mca_pml_base_module_dump_fn_t)(struct ompi_communicator_t *comm, int verbose)
Diagnostics function.
Definition: pml.h:494
ompi_request_wait_any_fn_t
int(* ompi_request_wait_any_fn_t)(size_t count, ompi_request_t **requests, int *index, ompi_status_public_t *status)
Wait (blocking-mode) for one of N requests to complete.
Definition: request.h:271
mca_pml_base_module_probe_fn_t
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
mca_pml_base_module_recv_fn_t
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
ompi_request_test_fn_t
int(* ompi_request_test_fn_t)(ompi_request_t **rptr, int *completed, ompi_status_public_t *status)
Non-blocking test for request completion.
Definition: request.h:190
ompi_request_wait_some_fn_t
int(* ompi_request_wait_some_fn_t)(size_t count, ompi_request_t **requests, int *outcount, int *indices, ompi_status_public_t *statuses)
Wait (blocking-mode) for some of N requests to complete.
Definition: request.h:304