OpenMPI 0.1.1

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

- File List
- Globals

coll_inter.h
1 /*
2 * Copyright (c) 2004-2005 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) 2006-2007 University of Houston. All rights reserved.
13 * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
14 * $COPYRIGHT$
15 *
16 * Additional copyrights may follow
17 *
18 * $HEADER$
19 */
20
21 #ifndef MCA_COLL_INTER_EXPORT_H
22 #define MCA_COLL_INTER_EXPORT_H
23
24 #define mca_coll_inter_crossover 1
25 #include "ompi_config.h"
26
27 #include "mpi.h"
28 #include "opal/mca/mca.h"
29 #include "ompi/mca/coll/coll.h"
30 #include "ompi/communicator/communicator.h"
31
32 BEGIN_C_DECLS
33
34 /*
35 * Globally exported variable
36 */
37
38 OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_2_0_0_t mca_coll_inter_component;
39 extern int mca_coll_inter_priority_param;
40 extern int mca_coll_inter_verbose_param;
41
42
43 /*
44 * coll API functions
45 */
46 int mca_coll_inter_init_query(bool allow_inter_user_threads,
47 bool have_hidden_threads);
48 mca_coll_base_module_t *
49 mca_coll_inter_comm_query(struct ompi_communicator_t *comm, int *priority);
50
51 int mca_coll_inter_module_enable(mca_coll_base_module_t *module,
52 struct ompi_communicator_t *comm);
53
54 int mca_coll_inter_allgather_inter(void *sbuf, int scount,
55 struct ompi_datatype_t *sdtype,
56 void *rbuf, int rcount,
57 struct ompi_datatype_t *rdtype,
58 struct ompi_communicator_t *comm,
59 mca_coll_base_module_t *module);
60 int mca_coll_inter_allgatherv_inter(void *sbuf, int scount,
61 struct ompi_datatype_t *sdtype,
62 void *rbuf, int *rcounts, int *disps,
63 struct ompi_datatype_t *rdtype,
64 struct ompi_communicator_t *comm,
65 mca_coll_base_module_t *module);
66 int mca_coll_inter_allreduce_inter(void *sbuf, void *rbuf, int count,
67 struct ompi_datatype_t *dtype,
68 struct ompi_op_t *op,
69 struct ompi_communicator_t *comm,
70 mca_coll_base_module_t *module);
71 int mca_coll_inter_bcast_inter(void *buff, int count,
72 struct ompi_datatype_t *datatype,
73 int root,
74 struct ompi_communicator_t *comm,
75 mca_coll_base_module_t *module);
76 int mca_coll_inter_gather_inter(void *sbuf, int scount,
77 struct ompi_datatype_t *sdtype,
78 void *rbuf, int rcount,
79 struct ompi_datatype_t *rdtype,
80 int root,
81 struct ompi_communicator_t *comm,
82 mca_coll_base_module_t *module);
83 int mca_coll_inter_gatherv_inter(void *sbuf, int scount,
84 struct ompi_datatype_t *sdtype,
85 void *rbuf, int *rcounts, int *disps,
86 struct ompi_datatype_t *rdtype,
87 int root,
88 struct ompi_communicator_t *comm,
89 mca_coll_base_module_t *module);
90 int mca_coll_inter_reduce_inter(void *sbuf, void* rbuf, int count,
91 struct ompi_datatype_t *dtype,
92 struct ompi_op_t *op,
93 int root,
94 struct ompi_communicator_t *comm,
95 mca_coll_base_module_t *module);
96 int mca_coll_inter_scatter_inter(void *sbuf, int scount,
97 struct ompi_datatype_t *sdtype, void *rbuf,
98 int rcount, struct ompi_datatype_t *rdtype,
99 int root, struct ompi_communicator_t *comm,
100 mca_coll_base_module_t *module);
101 int mca_coll_inter_scatterv_inter(void *sbuf, int *scounts, int *disps,
102 struct ompi_datatype_t *sdtype,
103 void* rbuf, int rcount,
104 struct ompi_datatype_t *rdtype, int root,
105 struct ompi_communicator_t *comm,
106 mca_coll_base_module_t *module);
107
108
109 struct mca_coll_inter_module_t {
110 mca_coll_base_module_t super;
111
112 /* Clarifying some terminology:
113 * comm: the input communicator, consisting of several lower level communicators.
114 */
115 struct ompi_communicator_t *inter_comm; /* link back to the attached comm */
116 };
117 typedef struct mca_coll_inter_module_t mca_coll_inter_module_t;
118 OBJ_CLASS_DECLARATION(mca_coll_inter_module_t);
119
120
121 END_C_DECLS
122
123 #endif /* MCA_COLL_INTER_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_coll_inter_module_t
Definition: coll_inter.h:109
mca.h
Top-level interface for all MCA components.
coll.h
Collective Communication Interface.
ompi_communicator_t
Definition: communicator.h:118
ompi_op_t
Back-end type of MPI_Op.
Definition: op.h:100
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236