OpenMPI 0.1.1

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

- File List
- Globals

pml_cm.h
1 /*
2 * Copyright (c) 2004-2006 The Regents of the University of California.
3 * All rights reserved.
4 * Copyright (c) 2004-2007 The University of Tennessee and The University
5 * of Tennessee Research Foundation. All rights
6 * reserved.
7 * $COPYRIGHT$
8 *
9 * Additional copyrights may follow
10 *
11 * $HEADER$
12 */
13
14 #ifndef PML_CM_H
15 #define PML_CM_H
16
17 #include "ompi_config.h"
18 #include "ompi/request/request.h"
19 #include "ompi/mca/pml/pml.h"
20 #include "ompi/mca/pml/base/base.h"
21 #include "ompi/datatype/ompi_datatype.h"
22 #include "ompi/communicator/communicator.h"
23 #include "ompi/request/request.h"
24 #include "ompi/mca/mtl/mtl.h"
25
26 BEGIN_C_DECLS
27
28 struct mca_mtl_request_t;
29
30 /* Array of send completion callback - one per send type
31 * These are called internally by the library when the send
32 * is completed from its perspective.
33 */
34 extern void (*send_completion_callbacks[])
35 (struct mca_mtl_request_t *mtl_request);
36
37 struct ompi_pml_cm_t {
38 mca_pml_base_module_t super;
39 int free_list_num;
40 int free_list_max;
41 int free_list_inc;
42 int default_priority;
43 };
44 typedef struct ompi_pml_cm_t ompi_pml_cm_t;
45 extern ompi_pml_cm_t ompi_pml_cm;
46
47 /* PML interface functions */
48 OMPI_DECLSPEC extern int mca_pml_cm_add_procs(struct ompi_proc_t **procs, size_t nprocs);
49 OMPI_DECLSPEC extern int mca_pml_cm_del_procs(struct ompi_proc_t **procs, size_t nprocs);
50
51 OMPI_DECLSPEC extern int mca_pml_cm_enable(bool enable);
52 OMPI_DECLSPEC extern int mca_pml_cm_progress(void);
53
54 OMPI_DECLSPEC extern int mca_pml_cm_add_comm(struct ompi_communicator_t* comm);
55 OMPI_DECLSPEC extern int mca_pml_cm_del_comm(struct ompi_communicator_t* comm);
56
57 OMPI_DECLSPEC extern int mca_pml_cm_irecv_init(void *buf,
58 size_t count,
59 ompi_datatype_t *datatype,
60 int src,
61 int tag,
62 struct ompi_communicator_t* comm,
63 struct ompi_request_t **request);
64
65 OMPI_DECLSPEC extern int mca_pml_cm_irecv(void *buf,
66 size_t count,
67 ompi_datatype_t *datatype,
68 int src,
69 int tag,
70 struct ompi_communicator_t* comm,
71 struct ompi_request_t **request);
72
73 OMPI_DECLSPEC extern int mca_pml_cm_recv(void *buf,
74 size_t count,
75 ompi_datatype_t *datatype,
76 int src,
77 int tag,
78 struct ompi_communicator_t* comm,
79 ompi_status_public_t* status );
80
81 OMPI_DECLSPEC extern int mca_pml_cm_isend_init(void *buf,
82 size_t count,
83 ompi_datatype_t *datatype,
84 int dst,
85 int tag,
86 mca_pml_base_send_mode_t mode,
87 struct ompi_communicator_t* comm,
88 struct ompi_request_t **request);
89
90 OMPI_DECLSPEC extern int mca_pml_cm_isend(void *buf,
91 size_t count,
92 ompi_datatype_t *datatype,
93 int dst,
94 int tag,
95 mca_pml_base_send_mode_t mode,
96 struct ompi_communicator_t* comm,
97 struct ompi_request_t **request);
98
99 OMPI_DECLSPEC extern int mca_pml_cm_send(void *buf,
100 size_t count,
101 ompi_datatype_t *datatype,
102 int dst,
103 int tag,
104 mca_pml_base_send_mode_t mode,
105 struct ompi_communicator_t* comm);
106
107 OMPI_DECLSPEC extern int mca_pml_cm_iprobe(int dst,
108 int tag,
109 struct ompi_communicator_t* comm,
110 int *matched,
111 ompi_status_public_t* status);
112
113 OMPI_DECLSPEC extern int mca_pml_cm_probe(int dst,
114 int tag,
115 struct ompi_communicator_t* comm,
116 ompi_status_public_t* status);
117
118 OMPI_DECLSPEC extern int mca_pml_cm_improbe(int dst,
119 int tag,
120 struct ompi_communicator_t* comm,
121 int *matched,
122 struct ompi_message_t **message,
123 ompi_status_public_t* status);
124
125 OMPI_DECLSPEC extern int mca_pml_cm_mprobe(int dst,
126 int tag,
127 struct ompi_communicator_t* comm,
128 struct ompi_message_t **message,
129 ompi_status_public_t* status);
130
131 OMPI_DECLSPEC extern int mca_pml_cm_imrecv(void *buf,
132 size_t count,
133 ompi_datatype_t *datatype,
134 struct ompi_message_t **message,
135 struct ompi_request_t **request);
136
137 OMPI_DECLSPEC extern int mca_pml_cm_mrecv(void *buf,
138 size_t count,
139 ompi_datatype_t *datatype,
140 struct ompi_message_t **message,
141 ompi_status_public_t* status);
142
143 OMPI_DECLSPEC extern int mca_pml_cm_start(size_t count, ompi_request_t** requests);
144
145
146 OMPI_DECLSPEC extern int mca_pml_cm_dump(struct ompi_communicator_t* comm,
147 int verbose);
148
149 OMPI_DECLSPEC extern int mca_pml_cm_cancel(struct ompi_request_t *request, int flag);
150
151 END_C_DECLS
152
153 #endif /* PML_CM_H_HAS_BEEN_INCLUDED */
pml.h
P2P Management Layer (PML)
ompi_datatype_t
Definition: ompi_datatype.h:68
mca_mtl_request_t
Definition: mtl.h:51
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
mtl.h
Matching Transport Layer.
ompi_status_public_t
Definition: mpi.h:337
request
Definition: evdns.c:158
ompi_pml_cm_t
Definition: pml_cm.h:37
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100
ompi_message_t
Definition: message.h:22