This source file includes following definitions.
- mca_coll_inter_init_query
- mca_coll_inter_comm_query
- mca_coll_inter_module_enable
- mca_coll_inter_dump_struct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include "ompi_config.h"
24 #include "coll_inter.h"
25
26 #include <stdio.h>
27
28 #include "mpi.h"
29 #include "ompi/communicator/communicator.h"
30
31 #include "ompi/mca/coll/coll.h"
32 #include "ompi/mca/coll/base/base.h"
33 #include "ompi/mca/coll/base/coll_base_functions.h"
34 #include "ompi/mca/coll/base/coll_tags.h"
35
36 #include "ompi/mca/bml/base/base.h"
37
38
39 #if 0
40 static void mca_coll_inter_dump_struct ( struct mca_coll_base_comm_t *c);
41
42 static const mca_coll_base_module_1_0_0_t inter = {
43
44
45
46 mca_coll_inter_module_init,
47 mca_coll_inter_module_finalize,
48
49
50
51
52 mca_coll_inter_allgather_inter,
53 mca_coll_inter_allgatherv_inter,
54 mca_coll_inter_allreduce_inter,
55 NULL,
56 NULL,
57 NULL,
58 NULL,
59 mca_coll_inter_bcast_inter,
60 NULL,
61 mca_coll_inter_gather_inter,
62 mca_coll_inter_gatherv_inter,
63 mca_coll_inter_reduce_inter,
64 NULL,
65 NULL,
66 mca_coll_inter_scatter_inter,
67 mca_coll_inter_scatterv_inter
68 };
69 #endif
70
71
72
73
74
75
76 int mca_coll_inter_init_query(bool allow_inter_user_threads,
77 bool have_hidden_user_threads)
78 {
79
80 return OMPI_SUCCESS;
81 }
82
83
84
85
86
87
88
89 mca_coll_base_module_t *
90 mca_coll_inter_comm_query(struct ompi_communicator_t *comm, int *priority)
91 {
92 int size, rsize;
93 mca_coll_inter_module_t *inter_module;
94
95
96 if (!OMPI_COMM_IS_INTER(comm)) {
97 return NULL;
98 }
99
100
101
102 *priority = mca_coll_inter_priority_param;
103 if (0 >= mca_coll_inter_priority_param) {
104 return NULL;
105 }
106
107 size = ompi_comm_size(comm);
108 rsize = ompi_comm_remote_size(comm);
109
110 if ( size < mca_coll_inter_crossover && rsize < mca_coll_inter_crossover) {
111 return NULL;
112 }
113
114 inter_module = OBJ_NEW(mca_coll_inter_module_t);
115 if (NULL == inter_module) {
116 return NULL;
117 }
118
119 inter_module->super.coll_module_enable = mca_coll_inter_module_enable;
120 inter_module->super.ft_event = NULL;
121
122 inter_module->super.coll_allgather = mca_coll_inter_allgather_inter;
123 inter_module->super.coll_allgatherv = mca_coll_inter_allgatherv_inter;
124 inter_module->super.coll_allreduce = mca_coll_inter_allreduce_inter;
125 inter_module->super.coll_alltoall = NULL;
126 inter_module->super.coll_alltoallv = NULL;
127 inter_module->super.coll_alltoallw = NULL;
128 inter_module->super.coll_barrier = NULL;
129 inter_module->super.coll_bcast = mca_coll_inter_bcast_inter;
130 inter_module->super.coll_exscan = NULL;
131 inter_module->super.coll_gather = mca_coll_inter_gather_inter;
132 inter_module->super.coll_gatherv = mca_coll_inter_gatherv_inter;
133 inter_module->super.coll_reduce = mca_coll_inter_reduce_inter;
134 inter_module->super.coll_reduce_scatter = NULL;
135 inter_module->super.coll_scan = NULL;
136 inter_module->super.coll_scatter = mca_coll_inter_scatter_inter;
137 inter_module->super.coll_scatterv = mca_coll_inter_scatterv_inter;
138 inter_module->super.coll_reduce_local = mca_coll_base_reduce_local;
139
140 return &(inter_module->super);
141 }
142
143
144
145
146
147 int
148 mca_coll_inter_module_enable(mca_coll_base_module_t *module,
149 struct ompi_communicator_t *comm)
150 {
151 mca_coll_inter_module_t *inter_module = (mca_coll_inter_module_t*) module;
152
153 inter_module->inter_comm = comm;
154
155 #if 0
156 if ( mca_coll_inter_verbose_param ) {
157 mca_coll_inter_dump_struct (data);
158 }
159 #endif
160
161 return OMPI_SUCCESS;
162 }
163
164
165 #if 0
166 static void mca_coll_inter_dump_struct ( struct mca_coll_base_comm_t *c)
167 {
168 int rank;
169
170 rank = ompi_comm_rank ( c->inter_comm );
171
172 printf("%d: Dump of inter-struct for comm %s cid %u\n",
173 rank, c->inter_comm->c_name, c->inter_comm->c_contextid);
174
175
176 return;
177 }
178 #endif