OpenMPI 0.1.1

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

- File List
- Globals

coll_self.h
1 /*
2 * Copyright (c) 2004-2007 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 (c) 2008 Cisco Systems, Inc. All rights reserved.
13 * $COPYRIGHT$
14 *
15 * Additional copyrights may follow
16 *
17 * $HEADER$
18 */
19
20 #ifndef MCA_COLL_SELF_EXPORT_H
21 #define MCA_COLL_SELF_EXPORT_H
22
23 #include "ompi_config.h"
24
25 #include "mpi.h"
26 #include "opal/mca/mca.h"
27 #include "ompi/mca/coll/coll.h"
28 #include "ompi/request/request.h"
29
30 BEGIN_C_DECLS
31
32 /*
33 * Globally exported variable
34 */
35
36 OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_2_0_0_t mca_coll_self_component;
37 extern int mca_coll_self_priority_param;
38
39
40 /*
41 * coll API functions
42 */
43
44
45 /* API functions */
46
47 int mca_coll_self_init_query(bool enable_progress_threads,
48 bool enable_mpi_threads);
49 mca_coll_base_module_t *
50 mca_coll_self_comm_query(struct ompi_communicator_t *comm, int *priority);
51
52 int mca_coll_self_module_enable(mca_coll_base_module_t *module,
53 struct ompi_communicator_t *comm);
54
55 int mca_coll_self_allgather_intra(void *sbuf, int scount,
56 struct ompi_datatype_t *sdtype,
57 void *rbuf, int rcount,
58 struct ompi_datatype_t *rdtype,
59 struct ompi_communicator_t *comm,
60 mca_coll_base_module_t *module);
61 int mca_coll_self_allgatherv_intra(void *sbuf, int scount,
62 struct ompi_datatype_t *sdtype,
63 void * rbuf, int *rcounts, int *disps,
64 struct ompi_datatype_t *rdtype,
65 struct ompi_communicator_t *comm,
66 mca_coll_base_module_t *module);
67 int mca_coll_self_allreduce_intra(void *sbuf, void *rbuf, int count,
68 struct ompi_datatype_t *dtype,
69 struct ompi_op_t *op,
70 struct ompi_communicator_t *comm,
71 mca_coll_base_module_t *module);
72 int mca_coll_self_alltoall_intra(void *sbuf, int scount,
73 struct ompi_datatype_t *sdtype,
74 void* rbuf, int rcount,
75 struct ompi_datatype_t *rdtype,
76 struct ompi_communicator_t *comm,
77 mca_coll_base_module_t *module);
78 int mca_coll_self_alltoallv_intra(void *sbuf, int *scounts, int *sdisps,
79 struct ompi_datatype_t *sdtype,
80 void *rbuf, int *rcounts, int *rdisps,
81 struct ompi_datatype_t *rdtype,
82 struct ompi_communicator_t *comm,
83 mca_coll_base_module_t *module);
84 int mca_coll_self_alltoallw_intra(void *sbuf, int *scounts, int *sdisps,
85 struct ompi_datatype_t **sdtypes,
86 void *rbuf, int *rcounts, int *rdisps,
87 struct ompi_datatype_t **rdtypes,
88 struct ompi_communicator_t *comm,
89 mca_coll_base_module_t *module);
90 int mca_coll_self_barrier_intra(struct ompi_communicator_t *comm,
91 mca_coll_base_module_t *module);
92 int mca_coll_self_bcast_intra(void *buff, int count,
93 struct ompi_datatype_t *datatype,
94 int root,
95 struct ompi_communicator_t *comm,
96 mca_coll_base_module_t *module);
97 int mca_coll_self_exscan_intra(void *sbuf, void *rbuf, int count,
98 struct ompi_datatype_t *dtype,
99 struct ompi_op_t *op,
100 struct ompi_communicator_t *comm,
101 mca_coll_base_module_t *module);
102 int mca_coll_self_gather_intra(void *sbuf, int scount,
103 struct ompi_datatype_t *sdtype, void *rbuf,
104 int rcount, struct ompi_datatype_t *rdtype,
105 int root, struct ompi_communicator_t *comm,
106 mca_coll_base_module_t *module);
107 int mca_coll_self_gatherv_intra(void *sbuf, int scount,
108 struct ompi_datatype_t *sdtype, void *rbuf,
109 int *rcounts, int *disps,
110 struct ompi_datatype_t *rdtype, int root,
111 struct ompi_communicator_t *comm,
112 mca_coll_base_module_t *module);
113 int mca_coll_self_reduce_intra(void *sbuf, void* rbuf, int count,
114 struct ompi_datatype_t *dtype,
115 struct ompi_op_t *op,
116 int root,
117 struct ompi_communicator_t *comm,
118 mca_coll_base_module_t *module);
119 int mca_coll_self_reduce_scatter_intra(void *sbuf, void *rbuf,
120 int *rcounts,
121 struct ompi_datatype_t *dtype,
122 struct ompi_op_t *op,
123 struct ompi_communicator_t *comm,
124 mca_coll_base_module_t *module);
125 int mca_coll_self_scan_intra(void *sbuf, void *rbuf, int count,
126 struct ompi_datatype_t *dtype,
127 struct ompi_op_t *op,
128 struct ompi_communicator_t *comm,
129 mca_coll_base_module_t *module);
130 int mca_coll_self_scatter_intra(void *sbuf, int scount,
131 struct ompi_datatype_t *sdtype, void *rbuf,
132 int rcount, struct ompi_datatype_t *rdtype,
133 int root, struct ompi_communicator_t *comm,
134 mca_coll_base_module_t *module);
135 int mca_coll_self_scatterv_intra(void *sbuf, int *scounts, int *disps,
136 struct ompi_datatype_t *sdtype,
137 void* rbuf, int rcount,
138 struct ompi_datatype_t *rdtype, int root,
139 struct ompi_communicator_t *comm,
140 mca_coll_base_module_t *module);
141
142 int mca_coll_self_ft_event(int state);
143
144
145 struct mca_coll_self_module_t {
146 mca_coll_base_module_t super;
147
148 ompi_request_t **mccb_reqs;
149 int mccb_num_reqs;
150 };
151 typedef struct mca_coll_self_module_t mca_coll_self_module_t;
152 OBJ_CLASS_DECLARATION(mca_coll_self_module_t);
153
154
155 END_C_DECLS
156
157 #endif /* MCA_COLL_SELF_EXPORT_H */
mca_coll_base_module_2_0_0_t
Collective module interface.
Definition: coll.h:316
ompi_datatype_t
Definition: ompi_datatype.h:68
mca_coll_base_component_2_0_0_t
Collective component interface.
Definition: coll.h:283
mca.h
Top-level interface for all MCA components.
coll.h
Collective Communication Interface.
request.h
Top-level description of requests.
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100
ompi_op_t
Back-end type of MPI_Op.
Definition: op.h:100
mca_coll_self_module_t
Definition: coll_self.h:145
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236