OpenMPI 0.1.1

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

- File List
- Globals

base.h
1 /*
2 * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2005 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * $COPYRIGHT$
13 *
14 * Additional copyrights may follow
15 *
16 * $HEADER$
17 */
18 #ifndef OMPI_CRCP_BASE_H
19 #define OMPI_CRCP_BASE_H
20
21 #include "ompi_config.h"
22
23 #include "ompi/constants.h"
24
25 #include "ompi/mca/crcp/crcp.h"
26
27 /*
28 * Global functions for MCA overall CRCP
29 */
30
31 BEGIN_C_DECLS
32
33 /**
34 * Initialize the CRCP MCA framework
35 *
36 * @retval OMPI_SUCCESS Upon success
37 * @retval OMPI_ERROR Upon failures
38 *
39 * This function is invoked during ompi_init();
40 */
41 OMPI_DECLSPEC int ompi_crcp_base_open(void);
42
43 /**
44 * Select an available component.
45 *
46 * @retval OMPI_SUCCESS Upon Success
47 * @retval OMPI_NOT_FOUND If no component can be selected
48 * @retval OMPI_ERROR Upon other failure
49 *
50 */
51 OMPI_DECLSPEC int ompi_crcp_base_select(void);
52
53 /**
54 * Finalize the CRCP MCA framework
55 *
56 * @retval OMPI_SUCCESS Upon success
57 * @retval OMPI_ERROR Upon failures
58 *
59 * This function is invoked during ompi_finalize();
60 */
61 OMPI_DECLSPEC int ompi_crcp_base_close(void);
62
63 /**
64 * Quiesce Interface (For MPI Ext.)
65 */
66 OMPI_DECLSPEC int ompi_crcp_base_quiesce_start(MPI_Info *info);
67 OMPI_DECLSPEC int ompi_crcp_base_quiesce_end(MPI_Info *info);
68
69 /**
70 * 'None' component functions
71 * These are to be used when no component is selected.
72 * They just return success, and empty strings as necessary.
73 */
74 int ompi_crcp_base_none_open(void);
75 int ompi_crcp_base_none_close(void);
76 int ompi_crcp_base_none_query(mca_base_module_t **module, int *priority);
77
78 int ompi_crcp_base_module_init(void);
79 int ompi_crcp_base_module_finalize(void);
80
81 /* Quiesce Interface */
82 int ompi_crcp_base_none_quiesce_start(MPI_Info *info);
83 int ompi_crcp_base_none_quiesce_end(MPI_Info *info);
84
85 /* PML Interface */
86 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_enable( bool enable, ompi_crcp_base_pml_state_t* );
87
88 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_add_comm( struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
89 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_del_comm( struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
90
91 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_add_procs( struct ompi_proc_t **procs, size_t nprocs, ompi_crcp_base_pml_state_t* );
92 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_del_procs( struct ompi_proc_t **procs, size_t nprocs, ompi_crcp_base_pml_state_t* );
93
94 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_progress(ompi_crcp_base_pml_state_t*);
95
96 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_iprobe(int dst, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t* status, ompi_crcp_base_pml_state_t* );
97
98 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_probe( int dst, int tag, struct ompi_communicator_t* comm, ompi_status_public_t* status, ompi_crcp_base_pml_state_t* );
99
100 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_isend_init( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
101 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
102
103 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_isend( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
104 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
105
106 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_send( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
107 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, ompi_crcp_base_pml_state_t* );
108
109 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_irecv_init( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
110 struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t*);
111
112 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
113 struct ompi_communicator_t* comm, struct ompi_request_t **request, ompi_crcp_base_pml_state_t* );
114
115 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_recv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
116 struct ompi_communicator_t* comm, ompi_status_public_t* status, ompi_crcp_base_pml_state_t*);
117
118 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_dump( struct ompi_communicator_t* comm, int verbose, ompi_crcp_base_pml_state_t* );
119
120 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_start( size_t count, ompi_request_t** requests, ompi_crcp_base_pml_state_t* );
121
122 ompi_crcp_base_pml_state_t* ompi_crcp_base_none_pml_ft_event(int state, ompi_crcp_base_pml_state_t*);
123
124 /* Request Interface */
125 int ompi_crcp_base_none_request_complete( struct ompi_request_t *request );
126
127 /* BTL Interface */
128 ompi_crcp_base_btl_state_t*
129 ompi_crcp_base_none_btl_add_procs( struct mca_btl_base_module_t* btl,
130 size_t nprocs,
131 struct ompi_proc_t** procs,
132 struct mca_btl_base_endpoint_t** endpoints,
133 struct opal_bitmap_t* reachable,
134 ompi_crcp_base_btl_state_t* );
135
136 ompi_crcp_base_btl_state_t*
137 ompi_crcp_base_none_btl_del_procs( struct mca_btl_base_module_t* btl,
138 size_t nprocs,
139 struct ompi_proc_t** procs,
140 struct mca_btl_base_endpoint_t**,
141 ompi_crcp_base_btl_state_t*);
142
143 ompi_crcp_base_btl_state_t*
144 ompi_crcp_base_none_btl_register( struct mca_btl_base_module_t* btl,
145 mca_btl_base_tag_t tag,
146 mca_btl_base_module_recv_cb_fn_t cbfunc,
147 void* cbdata,
148 ompi_crcp_base_btl_state_t*);
149
150 ompi_crcp_base_btl_state_t*
151 ompi_crcp_base_none_btl_finalize( struct mca_btl_base_module_t* btl,
152 ompi_crcp_base_btl_state_t*);
153
154 ompi_crcp_base_btl_state_t*
155 ompi_crcp_base_none_btl_alloc( struct mca_btl_base_module_t* btl,
156 size_t size,
157 ompi_crcp_base_btl_state_t*);
158
159 ompi_crcp_base_btl_state_t*
160 ompi_crcp_base_none_btl_free( struct mca_btl_base_module_t* btl,
161 mca_btl_base_descriptor_t* descriptor,
162 ompi_crcp_base_btl_state_t*);
163
164 ompi_crcp_base_btl_state_t*
165 ompi_crcp_base_none_btl_prepare_src( struct mca_btl_base_module_t* btl,
166 struct mca_btl_base_endpoint_t* endpoint,
167 mca_mpool_base_registration_t* registration,
168 struct opal_convertor_t* convertor,
169 size_t reserve,
170 size_t* size,
171 ompi_crcp_base_btl_state_t*);
172
173 ompi_crcp_base_btl_state_t*
174 ompi_crcp_base_none_btl_prepare_dst( struct mca_btl_base_module_t* btl,
175 struct mca_btl_base_endpoint_t* endpoint,
176 mca_mpool_base_registration_t* registration,
177 struct opal_convertor_t* convertor,
178 size_t reserve,
179 size_t* size,
180 ompi_crcp_base_btl_state_t*);
181
182 ompi_crcp_base_btl_state_t*
183 ompi_crcp_base_none_btl_send( struct mca_btl_base_module_t* btl,
184 struct mca_btl_base_endpoint_t* endpoint,
185 struct mca_btl_base_descriptor_t* descriptor,
186 mca_btl_base_tag_t tag,
187 ompi_crcp_base_btl_state_t*);
188
189 ompi_crcp_base_btl_state_t*
190 ompi_crcp_base_none_btl_put( struct mca_btl_base_module_t* btl,
191 struct mca_btl_base_endpoint_t* endpoint,
192 struct mca_btl_base_descriptor_t* descriptor,
193 ompi_crcp_base_btl_state_t*);
194
195 ompi_crcp_base_btl_state_t*
196 ompi_crcp_base_none_btl_get( struct mca_btl_base_module_t* btl,
197 struct mca_btl_base_endpoint_t* endpoint,
198 struct mca_btl_base_descriptor_t* descriptor,
199 ompi_crcp_base_btl_state_t*);
200
201 ompi_crcp_base_btl_state_t*
202 ompi_crcp_base_none_btl_dump( struct mca_btl_base_module_t* btl,
203 struct mca_btl_base_endpoint_t* endpoint,
204 int verbose,
205 ompi_crcp_base_btl_state_t*);
206
207 ompi_crcp_base_btl_state_t*
208 ompi_crcp_base_none_btl_ft_event(int state,
209 ompi_crcp_base_btl_state_t*);
210
211 /* Utility Functions */
212
213 OMPI_DECLSPEC extern int ompi_crcp_base_output;
214 OMPI_DECLSPEC extern opal_list_t ompi_crcp_base_components_available;
215 OMPI_DECLSPEC extern ompi_crcp_base_component_t ompi_crcp_base_selected_component;
216 OMPI_DECLSPEC extern ompi_crcp_base_module_t ompi_crcp;
217
218 END_C_DECLS
219
220 #endif /* OMPI_CRCP_BASE_H */
mca_btl_base_descriptor_t
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
ompi_crcp_base_pml_state_t
Definition: crcp.h:96
mca_base_module_2_0_0_t
Common type for all MCA modules.
Definition: mca.h:100
mca_btl_base_module_recv_cb_fn_t
void(* mca_btl_base_module_recv_cb_fn_t)(struct mca_btl_base_module_t *btl, mca_btl_base_tag_t tag, mca_btl_base_descriptor_t *descriptor, void *cbdata)
Callback function that is called asynchronously on receipt of data by the transport layer...
Definition: btl.h:391
opal_bitmap_t
Definition: opal_bitmap.h:53
ompi_datatype_t
Definition: ompi_datatype.h:68
crcp.h
Checkpoint/Restart Coordination Protocol (CRCP) Interface.
ompi_crcp_base_btl_state_t
Definition: crcp.h:188
mca_mpool_base_registration_t
Definition: mpool.h:44
ompi_proc_t
Remote Open MPI process structure.
Definition: proc.h:56
ompi_info_t
Definition: info.h:38
ompi_crcp_base_module_1_0_0_t
Structure for CRCP modules.
Definition: crcp.h:297
mca_btl_base_endpoint_t
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
opal_convertor_t
Definition: opal_convertor.h:90
ompi_crcp_base_component_2_0_0_t
Structure for CRCP components.
Definition: crcp.h:277
opal_list_t
Definition: opal_list.h:147
ompi_status_public_t
Definition: mpi.h:337
request
Definition: evdns.c:158
mca_btl_base_module_t
BTL module interface functions and attributes.
Definition: btl.h:786
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100