OpenMPI  0.1.1
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);
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 
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 };
119 
120 
121 END_C_DECLS
122 
123 #endif /* MCA_COLL_INTER_EXPORT_H */
Collective module interface.
Definition: coll.h:316
Definition: ompi_datatype.h:68
Collective component interface.
Definition: coll.h:283
Definition: coll_inter.h:109
Top-level interface for all MCA components.
Collective Communication Interface.
Definition: communicator.h:118
Back-end type of MPI_Op.
Definition: op.h:100
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236