This source file includes following definitions.
- mca_coll_basic_init_query
- mca_coll_basic_comm_query
- mca_coll_basic_module_enable
- mca_coll_basic_ft_event
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include "ompi_config.h"
27 #include "coll_basic.h"
28
29 #include <stdio.h>
30
31 #include "mpi.h"
32 #include "ompi/mca/coll/coll.h"
33 #include "ompi/mca/coll/base/base.h"
34 #include "coll_basic.h"
35
36
37
38
39
40
41
42 int
43 mca_coll_basic_init_query(bool enable_progress_threads,
44 bool enable_mpi_threads)
45 {
46
47
48 return OMPI_SUCCESS;
49 }
50
51
52
53
54
55
56
57 mca_coll_base_module_t *
58 mca_coll_basic_comm_query(struct ompi_communicator_t *comm,
59 int *priority)
60 {
61 mca_coll_basic_module_t *basic_module;
62
63 basic_module = OBJ_NEW(mca_coll_basic_module_t);
64 if (NULL == basic_module) return NULL;
65
66 *priority = mca_coll_basic_priority;
67
68
69
70 basic_module->super.coll_module_enable = mca_coll_basic_module_enable;
71 basic_module->super.ft_event = mca_coll_basic_ft_event;
72
73 if (OMPI_COMM_IS_INTER(comm)) {
74 basic_module->super.coll_allgather = mca_coll_basic_allgather_inter;
75 basic_module->super.coll_allgatherv = mca_coll_basic_allgatherv_inter;
76 basic_module->super.coll_allreduce = mca_coll_basic_allreduce_inter;
77 basic_module->super.coll_alltoall = mca_coll_basic_alltoall_inter;
78 basic_module->super.coll_alltoallv = mca_coll_basic_alltoallv_inter;
79 basic_module->super.coll_alltoallw = mca_coll_basic_alltoallw_inter;
80 basic_module->super.coll_barrier = mca_coll_basic_barrier_inter_lin;
81 basic_module->super.coll_bcast = mca_coll_basic_bcast_lin_inter;
82 basic_module->super.coll_exscan = NULL;
83 basic_module->super.coll_gather = mca_coll_basic_gather_inter;
84 basic_module->super.coll_gatherv = mca_coll_basic_gatherv_inter;
85 basic_module->super.coll_reduce = mca_coll_basic_reduce_lin_inter;
86 basic_module->super.coll_reduce_scatter_block = mca_coll_basic_reduce_scatter_block_inter;
87 basic_module->super.coll_reduce_scatter = mca_coll_basic_reduce_scatter_inter;
88 basic_module->super.coll_scan = NULL;
89 basic_module->super.coll_scatter = mca_coll_basic_scatter_inter;
90 basic_module->super.coll_scatterv = mca_coll_basic_scatterv_inter;
91 } else if (ompi_comm_size(comm) <= mca_coll_basic_crossover) {
92 basic_module->super.coll_allgather = ompi_coll_base_allgather_intra_basic_linear;
93 basic_module->super.coll_allgatherv = ompi_coll_base_allgatherv_intra_basic_default;
94 basic_module->super.coll_allreduce = mca_coll_basic_allreduce_intra;
95 basic_module->super.coll_alltoall = ompi_coll_base_alltoall_intra_basic_linear;
96 basic_module->super.coll_alltoallv = ompi_coll_base_alltoallv_intra_basic_linear;
97 basic_module->super.coll_alltoallw = mca_coll_basic_alltoallw_intra;
98 basic_module->super.coll_barrier = ompi_coll_base_barrier_intra_basic_linear;
99 basic_module->super.coll_bcast = ompi_coll_base_bcast_intra_basic_linear;
100 basic_module->super.coll_exscan = mca_coll_basic_exscan_intra;
101 basic_module->super.coll_gather = ompi_coll_base_gather_intra_basic_linear;
102 basic_module->super.coll_gatherv = mca_coll_basic_gatherv_intra;
103 basic_module->super.coll_reduce = ompi_coll_base_reduce_intra_basic_linear;
104 basic_module->super.coll_reduce_scatter_block = mca_coll_basic_reduce_scatter_block_intra;
105 basic_module->super.coll_reduce_scatter = mca_coll_basic_reduce_scatter_intra;
106 basic_module->super.coll_scan = mca_coll_basic_scan_intra;
107 basic_module->super.coll_scatter = ompi_coll_base_scatter_intra_basic_linear;
108 basic_module->super.coll_scatterv = mca_coll_basic_scatterv_intra;
109 } else {
110 basic_module->super.coll_allgather = ompi_coll_base_allgather_intra_basic_linear;
111 basic_module->super.coll_allgatherv = ompi_coll_base_allgatherv_intra_basic_default;
112 basic_module->super.coll_allreduce = mca_coll_basic_allreduce_intra;
113 basic_module->super.coll_alltoall = ompi_coll_base_alltoall_intra_basic_linear;
114 basic_module->super.coll_alltoallv = ompi_coll_base_alltoallv_intra_basic_linear;
115 basic_module->super.coll_alltoallw = mca_coll_basic_alltoallw_intra;
116 basic_module->super.coll_barrier = mca_coll_basic_barrier_intra_log;
117 basic_module->super.coll_bcast = mca_coll_basic_bcast_log_intra;
118 basic_module->super.coll_exscan = mca_coll_basic_exscan_intra;
119 basic_module->super.coll_gather = ompi_coll_base_gather_intra_basic_linear;
120 basic_module->super.coll_gatherv = mca_coll_basic_gatherv_intra;
121 basic_module->super.coll_reduce = mca_coll_basic_reduce_log_intra;
122 basic_module->super.coll_reduce_scatter_block = mca_coll_basic_reduce_scatter_block_intra;
123 basic_module->super.coll_reduce_scatter = mca_coll_basic_reduce_scatter_intra;
124 basic_module->super.coll_scan = mca_coll_basic_scan_intra;
125 basic_module->super.coll_scatter = ompi_coll_base_scatter_intra_basic_linear;
126 basic_module->super.coll_scatterv = mca_coll_basic_scatterv_intra;
127 }
128
129
130 basic_module->super.coll_neighbor_allgather = mca_coll_basic_neighbor_allgather;
131 basic_module->super.coll_neighbor_allgatherv = mca_coll_basic_neighbor_allgatherv;
132 basic_module->super.coll_neighbor_alltoall = mca_coll_basic_neighbor_alltoall;
133 basic_module->super.coll_neighbor_alltoallv = mca_coll_basic_neighbor_alltoallv;
134 basic_module->super.coll_neighbor_alltoallw = mca_coll_basic_neighbor_alltoallw;
135
136 basic_module->super.coll_reduce_local = mca_coll_base_reduce_local;
137
138 return &(basic_module->super);
139 }
140
141
142
143
144
145 int
146 mca_coll_basic_module_enable(mca_coll_base_module_t *module,
147 struct ompi_communicator_t *comm)
148 {
149
150 module->base_data = OBJ_NEW(mca_coll_base_comm_t);
151 if (NULL == module->base_data) {
152 return OMPI_ERROR;
153 }
154
155
156 return OMPI_SUCCESS;
157 }
158
159 int
160 mca_coll_basic_ft_event(int state) {
161 if(OPAL_CRS_CHECKPOINT == state) {
162 ;
163 }
164 else if(OPAL_CRS_CONTINUE == state) {
165 ;
166 }
167 else if(OPAL_CRS_RESTART == state) {
168 ;
169 }
170 else if(OPAL_CRS_TERM == state ) {
171 ;
172 }
173 else {
174 ;
175 }
176
177 return OMPI_SUCCESS;
178 }