OpenMPI 0.1.1

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

- File List
- Globals

pml_crcpw.h
Go to the documentation of this file.
1 /* -*- Mode: C; c-basic-offset:4 ; -*- */
2 /*
3 * Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
4 * University Research and Technology
5 * Corporation. All rights reserved.
6 * Copyright (c) 2004-2007 The University of Tennessee and The University
7 * of Tennessee Research Foundation. All rights
8 * reserved.
9 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10 * University of Stuttgart. All rights reserved.
11 * Copyright (c) 2004-2006 The Regents of the University of California.
12 * All rights reserved.
13 * $COPYRIGHT$
14 *
15 * Additional copyrights may follow
16 *
17 * $HEADER$
18 */
19 /**
20 * @file
21 */
22
23 #ifndef MCA_PML_CRCPW_H
24 #define MCA_PML_CRCPW_H
25
26 #include "ompi_config.h"
27
28 #include "ompi/class/ompi_free_list.h"
29 #include "ompi/request/request.h"
30 #include "ompi/mca/pml/pml.h"
31 #include "ompi/mca/pml/base/pml_base_request.h"
32 #include "ompi/mca/pml/base/pml_base_bsend.h"
33 #include "ompi/mca/pml/base/pml_base_sendreq.h"
34 #include "ompi/datatype/ompi_datatype.h"
35 #include "ompi/mca/crcp/crcp.h"
36 #include "ompi/mca/crcp/base/base.h"
37
38 BEGIN_C_DECLS
39
40 /**
41 * CRCPW PML module
42 */
43 struct mca_pml_crcpw_component_t {
44 mca_pml_base_component_t super;
45 int verbose;
46 int priority;
47 int output_handle;
48 bool pml_crcp_wrapped;
49 };
50 typedef struct mca_pml_crcpw_component_t mca_pml_crcpw_component_t;
51 OMPI_MODULE_DECLSPEC extern mca_pml_crcpw_component_t mca_pml_crcpw_component;
52
53 struct mca_pml_crcpw_module_t {
54 mca_pml_base_module_t super;
55 mca_pml_base_component_t wrapped_pml_component;
56 mca_pml_base_module_t wrapped_pml_module;
57 };
58 typedef struct mca_pml_crcpw_module_t mca_pml_crcpw_module_t;
59 extern mca_pml_crcpw_module_t mca_pml_crcpw_module;
60
61 /* Free list of PML states */
62 OMPI_MODULE_DECLSPEC extern ompi_free_list_t pml_state_list;
63 OMPI_MODULE_DECLSPEC extern bool pml_crcpw_is_finalized;
64
65 /*
66 * PML module functions.
67 */
68 int mca_pml_crcpw_component_open(void);
69 int mca_pml_crcpw_component_close(void);
70
71 mca_pml_base_module_t* mca_pml_crcpw_component_init(int *priority,
72 bool enable_progress_threads,
73 bool enable_mpi_threads
74 );
75
76 int mca_pml_crcpw_component_finalize(void);
77
78 /*
79 * PML interface functions.
80 */
81 int mca_pml_crcpw_enable( bool enable );
82
83 int mca_pml_crcpw_add_comm( struct ompi_communicator_t* comm );
84 int mca_pml_crcpw_del_comm( struct ompi_communicator_t* comm );
85
86 int mca_pml_crcpw_add_procs( struct ompi_proc_t **procs, size_t nprocs );
87 int mca_pml_crcpw_del_procs( struct ompi_proc_t **procs, size_t nprocs );
88
89 int mca_pml_crcpw_progress(void);
90
91 int mca_pml_crcpw_iprobe(int dst, int tag, struct ompi_communicator_t* comm, int *matched, ompi_status_public_t* status );
92
93 int mca_pml_crcpw_probe( int dst, int tag, struct ompi_communicator_t* comm, ompi_status_public_t* status );
94
95
96 int mca_pml_crcpw_improbe( int dst,
97 int tag,
98 struct ompi_communicator_t* comm,
99 int *matched,
100 struct ompi_message_t **message,
101 ompi_status_public_t* status );
102
103 int mca_pml_crcpw_mprobe( int dst,
104 int tag,
105 struct ompi_communicator_t* comm,
106 struct ompi_message_t **message,
107 ompi_status_public_t* status );
108
109 int mca_pml_crcpw_isend_init( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
110 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request );
111
112 int mca_pml_crcpw_isend( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
113 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, struct ompi_request_t **request );
114
115 int mca_pml_crcpw_send( void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag,
116 mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm );
117
118 int mca_pml_crcpw_irecv_init( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
119 struct ompi_communicator_t* comm, struct ompi_request_t **request);
120
121 int mca_pml_crcpw_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
122 struct ompi_communicator_t* comm, struct ompi_request_t **request );
123
124 int mca_pml_crcpw_recv( void *buf, size_t count, ompi_datatype_t *datatype, int src, int tag,
125 struct ompi_communicator_t* comm, ompi_status_public_t* status);
126
127 int mca_pml_crcpw_imrecv( void *buf,
128 size_t count,
129 ompi_datatype_t *datatype,
130 struct ompi_message_t **message,
131 struct ompi_request_t **request );
132
133 int mca_pml_crcpw_mrecv( void *buf,
134 size_t count,
135 ompi_datatype_t *datatype,
136 struct ompi_message_t **message,
137 ompi_status_public_t* status );
138
139 int mca_pml_crcpw_dump( struct ompi_communicator_t* comm, int verbose );
140
141 int mca_pml_crcpw_start( size_t count, ompi_request_t** requests );
142
143 int mca_pml_crcpw_ft_event(int state);
144
145 END_C_DECLS
146
147 #endif /* MCA_PML_CRCPW_H */
mca_pml_crcpw_module_t
Definition: pml_crcpw.h:53
pml.h
P2P Management Layer (PML)
ompi_datatype_t
Definition: ompi_datatype.h:68
crcp.h
Checkpoint/Restart Coordination Protocol (CRCP) Interface.
pml_base_request.h
mca_pml_base_component_2_0_0_t
PML component version and interface functions.
Definition: pml.h:131
ompi_proc_t
Remote Open MPI process structure.
Definition: proc.h:56
request.h
Top-level description of requests.
mca_pml_base_module_1_0_0_t
PML instance.
Definition: pml.h:512
ompi_free_list_t
Definition: ompi_free_list.h:39
ompi_status_public_t
Definition: mpi.h:337
request
Definition: evdns.c:158
mca_pml_crcpw_component_t
CRCPW PML module.
Definition: pml_crcpw.h:43
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100
pml_base_sendreq.h
ompi_message_t
Definition: message.h:22