OpenMPI  0.1.1
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,
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,
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,
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 */
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,
135 
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**,
142 
144  ompi_crcp_base_none_btl_register( struct mca_btl_base_module_t* btl,
145  mca_btl_base_tag_t tag,
147  void* cbdata,
149 
151  ompi_crcp_base_none_btl_finalize( struct mca_btl_base_module_t* btl,
153 
155  ompi_crcp_base_none_btl_alloc( struct mca_btl_base_module_t* btl,
156  size_t size,
158 
160  ompi_crcp_base_none_btl_free( struct mca_btl_base_module_t* btl,
161  mca_btl_base_descriptor_t* descriptor,
163 
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,
172 
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,
181 
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,
188 
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,
194 
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,
200 
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,
206 
208  ompi_crcp_base_none_btl_ft_event(int state,
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 */
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
Definition: crcp.h:96
Common type for all MCA modules.
Definition: mca.h:100
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
Definition: opal_bitmap.h:53
Definition: ompi_datatype.h:68
Checkpoint/Restart Coordination Protocol (CRCP) Interface.
Definition: crcp.h:188
Definition: mpool.h:44
Remote Open MPI process structure.
Definition: proc.h:56
Definition: info.h:38
Structure for CRCP modules.
Definition: crcp.h:297
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
Definition: opal_convertor.h:90
Structure for CRCP components.
Definition: crcp.h:277
Definition: opal_list.h:147
Definition: mpi.h:337
Definition: evdns.c:158
BTL module interface functions and attributes.
Definition: btl.h:786
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100