OpenMPI  0.1.1
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"
32 #include "ompi/mca/pml/base/pml_base_bsend.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  */
45  int verbose;
46  int priority;
47  int output_handle;
48  bool pml_crcp_wrapped;
49  };
51  OMPI_MODULE_DECLSPEC extern mca_pml_crcpw_component_t mca_pml_crcpw_component;
52 
55  mca_pml_base_component_t wrapped_pml_component;
56  mca_pml_base_module_t wrapped_pml_module;
57  };
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 */
Definition: pml_crcpw.h:53
P2P Management Layer (PML)
Definition: ompi_datatype.h:68
Checkpoint/Restart Coordination Protocol (CRCP) Interface.
PML component version and interface functions.
Definition: pml.h:131
Remote Open MPI process structure.
Definition: proc.h:56
Top-level description of requests.
PML instance.
Definition: pml.h:512
Definition: ompi_free_list.h:39
Definition: mpi.h:337
Definition: evdns.c:158
CRCPW PML module.
Definition: pml_crcpw.h:43
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Definition: message.h:22