1 /*
2 * Copyright (C) by Argonne National Laboratory
3 * See COPYRIGHT in top-level directory
4 */
5 /* automatically generated
6 * by: ./maint/extractcvars
7 * at: Thu Dec 16 17:21:20 2021 UTC
8 *
9 * DO NOT EDIT!!!
10 */
11
12 #include "mpiimpl.h"
13
14 /* Actual storage for cvars */
15 int MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE;
16 int MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE;
17 int MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM;
18 int MPIR_CVAR_ALLGATHER_INTER_ALGORITHM;
19 int MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE;
20 int MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE;
21 int MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM;
22 int MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM;
23 int MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE;
24 int MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE;
25 int MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE;
26 int MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM;
27 int MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM;
28 int MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE;
29 int MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE;
30 int MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE;
31 int MPIR_CVAR_ALLTOALL_THROTTLE;
32 int MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM;
33 int MPIR_CVAR_ALLTOALL_INTER_ALGORITHM;
34 int MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE;
35 int MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM;
36 int MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM;
37 int MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE;
38 int MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM;
39 int MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM;
40 int MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE;
41 int MPIR_CVAR_BARRIER_INTRA_ALGORITHM;
42 int MPIR_CVAR_BARRIER_INTER_ALGORITHM;
43 int MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE;
44 int MPIR_CVAR_BCAST_MIN_PROCS;
45 int MPIR_CVAR_BCAST_SHORT_MSG_SIZE;
46 int MPIR_CVAR_BCAST_LONG_MSG_SIZE;
47 int MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE;
48 int MPIR_CVAR_BCAST_INTRA_ALGORITHM;
49 int MPIR_CVAR_BCAST_INTER_ALGORITHM;
50 int MPIR_CVAR_BCAST_DEVICE_COLLECTIVE;
51 int MPIR_CVAR_EXSCAN_INTRA_ALGORITHM;
52 int MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE;
53 int MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE;
54 int MPIR_CVAR_GATHER_INTRA_ALGORITHM;
55 int MPIR_CVAR_GATHER_INTER_ALGORITHM;
56 int MPIR_CVAR_GATHER_DEVICE_COLLECTIVE;
57 int MPIR_CVAR_GATHER_VSMALL_MSG_SIZE;
58 int MPIR_CVAR_GATHERV_INTRA_ALGORITHM;
59 int MPIR_CVAR_GATHERV_INTER_ALGORITHM;
60 int MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE;
61 int MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS;
62 int MPIR_CVAR_IALLGATHER_RECEXCH_KVAL;
63 int MPIR_CVAR_IALLGATHER_BRUCKS_KVAL;
64 int MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM;
65 int MPIR_CVAR_IALLGATHER_INTER_ALGORITHM;
66 int MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE;
67 int MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL;
68 int MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL;
69 int MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM;
70 int MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM;
71 int MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE;
72 int MPIR_CVAR_IALLREDUCE_TREE_KVAL;
73 const char * MPIR_CVAR_IALLREDUCE_TREE_TYPE;
74 int MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE;
75 int MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD;
76 int MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL;
77 int MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM;
78 int MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM;
79 int MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE;
80 int MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM;
81 int MPIR_CVAR_IALLTOALL_INTER_ALGORITHM;
82 int MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE;
83 int MPIR_CVAR_IALLTOALL_BRUCKS_KVAL;
84 int MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR;
85 int MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS;
86 int MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE;
87 int MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM;
88 int MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM;
89 int MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE;
90 int MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS;
91 int MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE;
92 int MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM;
93 int MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM;
94 int MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE;
95 int MPIR_CVAR_IBARRIER_RECEXCH_KVAL;
96 int MPIR_CVAR_IBARRIER_INTRA_ALGORITHM;
97 int MPIR_CVAR_IBARRIER_INTER_ALGORITHM;
98 int MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE;
99 int MPIR_CVAR_IBCAST_TREE_KVAL;
100 const char * MPIR_CVAR_IBCAST_TREE_TYPE;
101 int MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE;
102 int MPIR_CVAR_IBCAST_RING_CHUNK_SIZE;
103 int MPIR_CVAR_IBCAST_INTRA_ALGORITHM;
104 int MPIR_CVAR_IBCAST_SCATTERV_KVAL;
105 int MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL;
106 int MPIR_CVAR_IBCAST_INTER_ALGORITHM;
107 int MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE;
108 int MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM;
109 int MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE;
110 int MPIR_CVAR_IGATHER_INTRA_ALGORITHM;
111 int MPIR_CVAR_IGATHER_TREE_KVAL;
112 int MPIR_CVAR_IGATHER_INTER_ALGORITHM;
113 int MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE;
114 int MPIR_CVAR_IGATHERV_INTRA_ALGORITHM;
115 int MPIR_CVAR_IGATHERV_INTER_ALGORITHM;
116 int MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE;
117 int MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM;
118 int MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM;
119 int MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE;
120 int MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM;
121 int MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM;
122 int MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE;
123 int MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM;
124 int MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM;
125 int MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE;
126 int MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM;
127 int MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM;
128 int MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE;
129 int MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM;
130 int MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM;
131 int MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE;
132 int MPIR_CVAR_IREDUCE_TREE_KVAL;
133 const char * MPIR_CVAR_IREDUCE_TREE_TYPE;
134 int MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE;
135 int MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE;
136 int MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD;
137 int MPIR_CVAR_IREDUCE_INTRA_ALGORITHM;
138 int MPIR_CVAR_IREDUCE_INTER_ALGORITHM;
139 int MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE;
140 int MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL;
141 int MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM;
142 int MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM;
143 int MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE;
144 int MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL;
145 int MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM;
146 int MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM;
147 int MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE;
148 int MPIR_CVAR_ISCAN_INTRA_ALGORITHM;
149 int MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE;
150 int MPIR_CVAR_ISCATTER_INTRA_ALGORITHM;
151 int MPIR_CVAR_ISCATTER_TREE_KVAL;
152 int MPIR_CVAR_ISCATTER_INTER_ALGORITHM;
153 int MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE;
154 int MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM;
155 int MPIR_CVAR_ISCATTERV_INTER_ALGORITHM;
156 int MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE;
157 int MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM;
158 int MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM;
159 int MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE;
160 int MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM;
161 int MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM;
162 int MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE;
163 int MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM;
164 int MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM;
165 int MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE;
166 int MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM;
167 int MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM;
168 int MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE;
169 int MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM;
170 int MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM;
171 int MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE;
172 int MPIR_CVAR_REDUCE_SHORT_MSG_SIZE;
173 int MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE;
174 int MPIR_CVAR_REDUCE_INTRA_ALGORITHM;
175 int MPIR_CVAR_REDUCE_INTER_ALGORITHM;
176 int MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE;
177 int MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE;
178 int MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM;
179 int MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM;
180 int MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE;
181 int MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM;
182 int MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM;
183 int MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE;
184 int MPIR_CVAR_SCAN_INTRA_ALGORITHM;
185 int MPIR_CVAR_SCAN_DEVICE_COLLECTIVE;
186 int MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE;
187 int MPIR_CVAR_SCATTER_INTRA_ALGORITHM;
188 int MPIR_CVAR_SCATTER_INTER_ALGORITHM;
189 int MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE;
190 int MPIR_CVAR_SCATTERV_INTRA_ALGORITHM;
191 int MPIR_CVAR_SCATTERV_INTER_ALGORITHM;
192 int MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE;
193 int MPIR_CVAR_DEVICE_COLLECTIVES;
194 int MPIR_CVAR_COLLECTIVE_FALLBACK;
195 const char * MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE;
196 int MPIR_CVAR_PROGRESS_MAX_COLLS;
197 int MPIR_CVAR_COMM_SPLIT_USE_QSORT;
198 int MPIR_CVAR_CTXID_EAGER_SIZE;
199 int MPIR_CVAR_DATALOOP_FAST_SEEK;
200 int MPIR_CVAR_PROCTABLE_SIZE;
201 int MPIR_CVAR_PROCTABLE_PRINT;
202 int MPIR_CVAR_PRINT_ERROR_STACK;
203 int MPIR_CVAR_CHOP_ERROR_STACK;
204 int MPIR_CVAR_SUPPRESS_ABORT_MESSAGE;
205 const char * MPIR_CVAR_DEFAULT_THREAD_LEVEL;
206 int MPIR_CVAR_ASYNC_PROGRESS;
207 int MPIR_CVAR_DEBUG_HOLD;
208 int MPIR_CVAR_ERROR_CHECKING;
209 int MPIR_CVAR_MEMDUMP;
210 int MPIR_CVAR_MEM_CATEGORY_INFORMATION;
211 int MPIR_CVAR_DIMS_VERBOSE;
212 const char * MPIR_CVAR_NAMESERV_FILE_PUBDIR;
213 int MPIR_CVAR_ABORT_ON_LEAKED_HANDLES;
214 const char * MPIR_CVAR_NETLOC_NODE_FILE;
215 int MPIR_CVAR_NOLOCAL;
216 int MPIR_CVAR_ODD_EVEN_CLIQUES;
217 int MPIR_CVAR_NUM_CLIQUES;
218 int MPIR_CVAR_COLL_ALIAS_CHECK;
219 int MPIR_CVAR_ENABLE_GPU;
220 int MPIR_CVAR_REQUEST_POLL_FREQ;
221 int MPIR_CVAR_REQUEST_BATCH_SIZE;
222 int MPIR_CVAR_POLLS_BEFORE_YIELD;
223 const char * MPIR_CVAR_OFI_USE_PROVIDER;
224 const char * MPIR_CVAR_CH3_INTERFACE_HOSTNAME;
225 MPIR_T_cvar_range_value_t MPIR_CVAR_CH3_PORT_RANGE;
226 const char * MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE;
227 int MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES;
228 int MPIR_CVAR_NEMESIS_ENABLE_CKPOINT;
229 int MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ;
230 int MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ;
231 int MPIR_CVAR_ENABLE_FT;
232 const char * MPIR_CVAR_NEMESIS_NETMOD;
233 int MPIR_CVAR_CH3_ENABLE_HCOLL;
234 int MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT;
235 int MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE;
236 int MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD;
237 int MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD;
238 int MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM;
239 int MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING;
240 int MPIR_CVAR_CH3_RMA_SLOTS_SIZE;
241 int MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES;
242 int MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE;
243 int MPIR_CVAR_CH3_PG_VERBOSE;
244 int MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE;
245 int MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE;
246 int MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE;
247 int MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE;
248 int MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE;
249 int MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE;
250 int MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK;
251 int MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE;
252 int MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE;
253 int MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG;
254 int MPIR_CVAR_OFI_SKIP_IPV6;
255 int MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE;
256 int MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS;
257 int MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS;
258 int MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE;
259 int MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS;
260 int MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED;
261 int MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY;
262 int MPIR_CVAR_CH4_OFI_ENABLE_TAGGED;
263 int MPIR_CVAR_CH4_OFI_ENABLE_AM;
264 int MPIR_CVAR_CH4_OFI_ENABLE_RMA;
265 int MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS;
266 int MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS;
267 int MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS;
268 int MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS;
269 int MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK;
270 int MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS;
271 int MPIR_CVAR_CH4_OFI_RANK_BITS;
272 int MPIR_CVAR_CH4_OFI_TAG_BITS;
273 int MPIR_CVAR_CH4_OFI_MAJOR_VERSION;
274 int MPIR_CVAR_CH4_OFI_MINOR_VERSION;
275 int MPIR_CVAR_CH4_OFI_MAX_VNIS;
276 int MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX;
277 int MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY;
278 int MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS;
279 int MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL;
280 int MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX;
281 int MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK;
282 int MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS;
283 int MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE;
284 int MPIR_CVAR_CH4_UCX_MAX_VNIS;
285 int MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE;
286 int MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD;
287 int MPIR_CVAR_CH4_XPMEM_ENABLE;
288 int MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD;
289 int MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM;
290 int MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM;
291 int MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM;
292 int MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM;
293 int MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD;
294 const char * MPIR_CVAR_CH4_SHM_POSIX_EAGER;
295 const char * MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE;
296 int MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS;
297 int MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE;
298 int MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE;
299 int MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE;
300 int MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS;
301 int MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE;
302 int MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS;
303 int MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL;
304 const char * MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE;
305 int MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL;
306 const char * MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE;
307 int MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES;
308 const char * MPIR_CVAR_CH4_NETMOD;
309 const char * MPIR_CVAR_CH4_SHM;
310 int MPIR_CVAR_CH4_ROOTS_ONLY_PMI;
311 int MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG;
312 const char * MPIR_CVAR_CH4_MT_MODEL;
313 int MPIR_CVAR_CH4_NUM_VCIS;
314 const char * MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE;
315 int MPIR_CVAR_CH4_IOV_DENSITY_MIN;
316 int MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT;
317 int MPIR_CVAR_CH4_RMA_MEM_EFFICIENT;
318 int MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS;
319 int MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL;
320 int MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL;
321 int MPIR_CVAR_ENABLE_HCOLL;
322 int MPIR_CVAR_COLL_SCHED_DUMP;
323 int MPIR_CVAR_SHM_RANDOM_ADDR_RETRY;
324 int MPIR_CVAR_SHM_SYMHEAP_RETRY;
325
MPIR_T_cvar_init(void)326 int MPIR_T_cvar_init(void)
327 {
328 int mpi_errno = MPI_SUCCESS;
329 int rc;
330 const char *tmp_str;
331 static int initialized = FALSE;
332 MPIR_T_cvar_value_t defaultval;
333
334 /* FIXME any MT issues here? */
335 if (initialized)
336 return MPI_SUCCESS;
337 initialized = TRUE;
338
339 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/coll/alltoall/alltoall.c */
340 MPIR_T_cat_add_desc("COLLECTIVE",
341 "A category for collective communication variables.");
342
343 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/comm/comm_split.c */
344 MPIR_T_cat_add_desc("COMMUNICATOR",
345 "cvars that control communicator construction and operation");
346
347 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/datatype/typerep/dataloop/segment.c */
348 MPIR_T_cat_add_desc("DATALOOP",
349 "Dataloop-related CVARs");
350
351 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/errhan/errutil.c */
352 MPIR_T_cat_add_desc("ERROR_HANDLING",
353 "cvars that control error handling behavior (stack traces, aborts, etc)");
354
355 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/init/init.c */
356 MPIR_T_cat_add_desc("THREADS",
357 "multi-threading cvars");
358
359 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/init/initthread.c */
360 MPIR_T_cat_add_desc("DEBUGGER",
361 "cvars relevant to the \"MPIR\" debugger interface");
362
363 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/init/mpi_init.h */
364 MPIR_T_cat_add_desc("DEVELOPER",
365 "useful for developers working on MPICH itself");
366
367 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpi/topo/dims_create.c */
368 MPIR_T_cat_add_desc("DIMS",
369 "Dims_create cvars");
370
371 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/nameserv/file/file_nameserv.c */
372 MPIR_T_cat_add_desc("PROCESS_MANAGER",
373 "cvars that control the client-side process manager code");
374
375 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/util/mpir_handlemem.c */
376 MPIR_T_cat_add_desc("MEMORY",
377 "affects memory allocation and usage, including MPI object handles");
378
379 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/util/mpir_nodemap.h */
380 MPIR_T_cat_add_desc("NODEMAP",
381 "cvars that control behavior of nodemap");
382
383 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/include/mpir_gpu.h */
384 MPIR_T_cat_add_desc("GPU",
385 "GPU related cvars");
386
387 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/include/mpir_request.h */
388 MPIR_T_cat_add_desc("REQUEST",
389 "A category for requests mangement variables");
390
391 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c */
392 MPIR_T_cat_add_desc("NEMESIS",
393 "cvars that control behavior of the ch3:nemesis channel");
394
395 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c */
396 MPIR_T_cat_add_desc("FT",
397 "cvars that control behavior of fault tolerance");
398
399 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch3/src/mpidi_rma.c */
400 MPIR_T_cat_add_desc("CH3",
401 "cvars that control behavior of ch3");
402
403 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch4/netmod/ofi/ofi_init.c */
404 MPIR_T_cat_add_desc("CH4_OFI",
405 "A category for CH4 OFI netmod variables");
406
407 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch4/netmod/ucx/ucx_init.c */
408 MPIR_T_cat_add_desc("CH4_UCX",
409 "A category for CH4 UCX netmod variables");
410
411 /* declared in /tmp/TWGnIFz2TS/mpich-3.4.3/maint/../src/mpid/ch4/src/ch4_init.c */
412 MPIR_T_cat_add_desc("CH4",
413 "cvars that control behavior of the CH4 device");
414
415 defaultval.d = 81920;
416 MPIR_T_CVAR_REGISTER_STATIC(
417 MPI_INT,
418 MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE, /* name */
419 &MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE, /* address */
420 1, /* count */
421 MPI_T_VERBOSITY_USER_BASIC,
422 MPI_T_SCOPE_ALL_EQ,
423 defaultval,
424 "COLLECTIVE", /* category */
425 "For MPI_Allgather and MPI_Allgatherv, the short message algorithm will be used if the send buffer size is < this value (in bytes). (See also: MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE)");
426 MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE = defaultval.d;
427 rc = MPL_env2int("MPICH_ALLGATHER_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE));
428 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHER_SHORT_MSG_SIZE");
429 rc = MPL_env2int("MPIR_PARAM_ALLGATHER_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE));
430 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHER_SHORT_MSG_SIZE");
431 rc = MPL_env2int("MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE));
432 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE");
433
434 defaultval.d = 524288;
435 MPIR_T_CVAR_REGISTER_STATIC(
436 MPI_INT,
437 MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE, /* name */
438 &MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE, /* address */
439 1, /* count */
440 MPI_T_VERBOSITY_USER_BASIC,
441 MPI_T_SCOPE_ALL_EQ,
442 defaultval,
443 "COLLECTIVE", /* category */
444 "For MPI_Allgather and MPI_Allgatherv, the long message algorithm will be used if the send buffer size is >= this value (in bytes) (See also: MPIR_CVAR_ALLGATHER_SHORT_MSG_SIZE)");
445 MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE = defaultval.d;
446 rc = MPL_env2int("MPICH_ALLGATHER_LONG_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE));
447 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHER_LONG_MSG_SIZE");
448 rc = MPL_env2int("MPIR_PARAM_ALLGATHER_LONG_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE));
449 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHER_LONG_MSG_SIZE");
450 rc = MPL_env2int("MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE", &(MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE));
451 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHER_LONG_MSG_SIZE");
452
453 defaultval.d = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_auto;
454 MPIR_T_CVAR_REGISTER_STATIC(
455 MPI_INT,
456 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM, /* name */
457 &MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM, /* address */
458 1, /* count */
459 MPI_T_VERBOSITY_USER_BASIC,
460 MPI_T_SCOPE_ALL_EQ,
461 defaultval,
462 "COLLECTIVE", /* category */
463 "Variable to select allgather algorithm\
464 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
465 brucks - Force brucks algorithm\
466 nb - Force nonblocking algorithm\
467 recursive_doubling - Force recursive doubling algorithm\
468 ring - Force ring algorithm");
469 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = defaultval.d;
470 tmp_str=NULL;
471 rc = MPL_env2str("MPICH_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
472 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHER_INTRA_ALGORITHM");
473 rc = MPL_env2str("MPIR_PARAM_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
474 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHER_INTRA_ALGORITHM");
475 rc = MPL_env2str("MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
476 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM");
477 if (tmp_str != NULL) {
478 if (0 == strcmp(tmp_str, "auto"))
479 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_auto;
480 else if (0 == strcmp(tmp_str, "brucks"))
481 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_brucks;
482 else if (0 == strcmp(tmp_str, "nb"))
483 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_nb;
484 else if (0 == strcmp(tmp_str, "recursive_doubling"))
485 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_recursive_doubling;
486 else if (0 == strcmp(tmp_str, "ring"))
487 MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM_ring;
488 else {
489 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLGATHER_INTRA_ALGORITHM", tmp_str);
490 goto fn_fail;
491 }
492 }
493
494 defaultval.d = MPIR_CVAR_ALLGATHER_INTER_ALGORITHM_auto;
495 MPIR_T_CVAR_REGISTER_STATIC(
496 MPI_INT,
497 MPIR_CVAR_ALLGATHER_INTER_ALGORITHM, /* name */
498 &MPIR_CVAR_ALLGATHER_INTER_ALGORITHM, /* address */
499 1, /* count */
500 MPI_T_VERBOSITY_USER_BASIC,
501 MPI_T_SCOPE_ALL_EQ,
502 defaultval,
503 "COLLECTIVE", /* category */
504 "Variable to select allgather algorithm\
505 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
506 local_gather_remote_bcast - Force local-gather-remote-bcast algorithm\
507 nb - Force nonblocking algorithm");
508 MPIR_CVAR_ALLGATHER_INTER_ALGORITHM = defaultval.d;
509 tmp_str=NULL;
510 rc = MPL_env2str("MPICH_ALLGATHER_INTER_ALGORITHM", &tmp_str);
511 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHER_INTER_ALGORITHM");
512 rc = MPL_env2str("MPIR_PARAM_ALLGATHER_INTER_ALGORITHM", &tmp_str);
513 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHER_INTER_ALGORITHM");
514 rc = MPL_env2str("MPIR_CVAR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
515 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHER_INTER_ALGORITHM");
516 if (tmp_str != NULL) {
517 if (0 == strcmp(tmp_str, "auto"))
518 MPIR_CVAR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_ALLGATHER_INTER_ALGORITHM_auto;
519 else if (0 == strcmp(tmp_str, "local_gather_remote_bcast"))
520 MPIR_CVAR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_ALLGATHER_INTER_ALGORITHM_local_gather_remote_bcast;
521 else if (0 == strcmp(tmp_str, "nb"))
522 MPIR_CVAR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_ALLGATHER_INTER_ALGORITHM_nb;
523 else {
524 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLGATHER_INTER_ALGORITHM", tmp_str);
525 goto fn_fail;
526 }
527 }
528
529 defaultval.d = 1;
530 MPIR_T_CVAR_REGISTER_STATIC(
531 MPI_INT,
532 MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE, /* name */
533 &MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE, /* address */
534 1, /* count */
535 MPI_T_VERBOSITY_USER_BASIC,
536 MPI_T_SCOPE_ALL_EQ,
537 defaultval,
538 "COLLECTIVE", /* category */
539 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Allgather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
540 MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE = defaultval.d;
541 rc = MPL_env2bool("MPICH_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE));
542 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHER_DEVICE_COLLECTIVE");
543 rc = MPL_env2bool("MPIR_PARAM_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE));
544 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHER_DEVICE_COLLECTIVE");
545 rc = MPL_env2bool("MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE));
546 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHER_DEVICE_COLLECTIVE");
547
548 defaultval.d = 32768;
549 MPIR_T_CVAR_REGISTER_STATIC(
550 MPI_INT,
551 MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE, /* name */
552 &MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE, /* address */
553 1, /* count */
554 MPI_T_VERBOSITY_USER_BASIC,
555 MPI_T_SCOPE_ALL_EQ,
556 defaultval,
557 "COLLECTIVE", /* category */
558 "The smallest message size that will be used for the pipelined, large-message, ring algorithm in the MPI_Allgatherv implementation.");
559 MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE = defaultval.d;
560 rc = MPL_env2int("MPICH_ALLGATHERV_PIPELINE_MSG_SIZE", &(MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE));
561 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHERV_PIPELINE_MSG_SIZE");
562 rc = MPL_env2int("MPIR_PARAM_ALLGATHERV_PIPELINE_MSG_SIZE", &(MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE));
563 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHERV_PIPELINE_MSG_SIZE");
564 rc = MPL_env2int("MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE", &(MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE));
565 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHERV_PIPELINE_MSG_SIZE");
566
567 defaultval.d = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_auto;
568 MPIR_T_CVAR_REGISTER_STATIC(
569 MPI_INT,
570 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM, /* name */
571 &MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM, /* address */
572 1, /* count */
573 MPI_T_VERBOSITY_USER_BASIC,
574 MPI_T_SCOPE_ALL_EQ,
575 defaultval,
576 "COLLECTIVE", /* category */
577 "Variable to select allgatherv algorithm\
578 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
579 brucks - Force brucks algorithm\
580 nb - Force nonblocking algorithm\
581 recursive_doubling - Force recursive doubling algorithm\
582 ring - Force ring algorithm");
583 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = defaultval.d;
584 tmp_str=NULL;
585 rc = MPL_env2str("MPICH_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
586 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHERV_INTRA_ALGORITHM");
587 rc = MPL_env2str("MPIR_PARAM_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
588 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHERV_INTRA_ALGORITHM");
589 rc = MPL_env2str("MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
590 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM");
591 if (tmp_str != NULL) {
592 if (0 == strcmp(tmp_str, "auto"))
593 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_auto;
594 else if (0 == strcmp(tmp_str, "brucks"))
595 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_brucks;
596 else if (0 == strcmp(tmp_str, "nb"))
597 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_nb;
598 else if (0 == strcmp(tmp_str, "recursive_doubling"))
599 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_recursive_doubling;
600 else if (0 == strcmp(tmp_str, "ring"))
601 MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM_ring;
602 else {
603 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLGATHERV_INTRA_ALGORITHM", tmp_str);
604 goto fn_fail;
605 }
606 }
607
608 defaultval.d = MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM_auto;
609 MPIR_T_CVAR_REGISTER_STATIC(
610 MPI_INT,
611 MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM, /* name */
612 &MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM, /* address */
613 1, /* count */
614 MPI_T_VERBOSITY_USER_BASIC,
615 MPI_T_SCOPE_ALL_EQ,
616 defaultval,
617 "COLLECTIVE", /* category */
618 "Variable to select allgatherv algorithm\
619 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
620 nb - Force nonblocking algorithm\
621 remote_gather_local_bcast - Force remote-gather-local-bcast algorithm");
622 MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM = defaultval.d;
623 tmp_str=NULL;
624 rc = MPL_env2str("MPICH_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
625 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHERV_INTER_ALGORITHM");
626 rc = MPL_env2str("MPIR_PARAM_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
627 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHERV_INTER_ALGORITHM");
628 rc = MPL_env2str("MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
629 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM");
630 if (tmp_str != NULL) {
631 if (0 == strcmp(tmp_str, "auto"))
632 MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM_auto;
633 else if (0 == strcmp(tmp_str, "nb"))
634 MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM_nb;
635 else if (0 == strcmp(tmp_str, "remote_gather_local_bcast"))
636 MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM_remote_gather_local_bcast;
637 else {
638 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLGATHERV_INTER_ALGORITHM", tmp_str);
639 goto fn_fail;
640 }
641 }
642
643 defaultval.d = 1;
644 MPIR_T_CVAR_REGISTER_STATIC(
645 MPI_INT,
646 MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE, /* name */
647 &MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE, /* address */
648 1, /* count */
649 MPI_T_VERBOSITY_USER_BASIC,
650 MPI_T_SCOPE_ALL_EQ,
651 defaultval,
652 "COLLECTIVE", /* category */
653 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Allgatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
654 MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE = defaultval.d;
655 rc = MPL_env2bool("MPICH_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE));
656 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLGATHERV_DEVICE_COLLECTIVE");
657 rc = MPL_env2bool("MPIR_PARAM_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE));
658 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLGATHERV_DEVICE_COLLECTIVE");
659 rc = MPL_env2bool("MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE));
660 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLGATHERV_DEVICE_COLLECTIVE");
661
662 defaultval.d = 2048;
663 MPIR_T_CVAR_REGISTER_STATIC(
664 MPI_INT,
665 MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE, /* name */
666 &MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE, /* address */
667 1, /* count */
668 MPI_T_VERBOSITY_USER_BASIC,
669 MPI_T_SCOPE_ALL_EQ,
670 defaultval,
671 "COLLECTIVE", /* category */
672 "the short message algorithm will be used if the send buffer size is <= this value (in bytes)");
673 MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE = defaultval.d;
674 rc = MPL_env2int("MPICH_ALLREDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE));
675 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLREDUCE_SHORT_MSG_SIZE");
676 rc = MPL_env2int("MPIR_PARAM_ALLREDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE));
677 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLREDUCE_SHORT_MSG_SIZE");
678 rc = MPL_env2int("MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE));
679 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLREDUCE_SHORT_MSG_SIZE");
680
681 defaultval.d = 0;
682 MPIR_T_CVAR_REGISTER_STATIC(
683 MPI_INT,
684 MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE, /* name */
685 &MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE, /* address */
686 1, /* count */
687 MPI_T_VERBOSITY_USER_BASIC,
688 MPI_T_SCOPE_ALL_EQ,
689 defaultval,
690 "COLLECTIVE", /* category */
691 "Maximum message size for which SMP-aware allreduce is used. A value of '0' uses SMP-aware allreduce for all message sizes.");
692 MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE = defaultval.d;
693 rc = MPL_env2int("MPICH_MAX_SMP_ALLREDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE));
694 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_MAX_SMP_ALLREDUCE_MSG_SIZE");
695 rc = MPL_env2int("MPIR_PARAM_MAX_SMP_ALLREDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE));
696 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_MAX_SMP_ALLREDUCE_MSG_SIZE");
697 rc = MPL_env2int("MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE));
698 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_MAX_SMP_ALLREDUCE_MSG_SIZE");
699
700 defaultval.d = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_auto;
701 MPIR_T_CVAR_REGISTER_STATIC(
702 MPI_INT,
703 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM, /* name */
704 &MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM, /* address */
705 1, /* count */
706 MPI_T_VERBOSITY_USER_BASIC,
707 MPI_T_SCOPE_ALL_EQ,
708 defaultval,
709 "COLLECTIVE", /* category */
710 "Variable to select allreduce algorithm\
711 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
712 nb - Force nonblocking algorithm\
713 smp - Force smp algorithm\
714 recursive_doubling - Force recursive doubling algorithm\
715 reduce_scatter_allgather - Force reduce scatter allgather algorithm");
716 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = defaultval.d;
717 tmp_str=NULL;
718 rc = MPL_env2str("MPICH_ALLREDUCE_INTRA_ALGORITHM", &tmp_str);
719 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLREDUCE_INTRA_ALGORITHM");
720 rc = MPL_env2str("MPIR_PARAM_ALLREDUCE_INTRA_ALGORITHM", &tmp_str);
721 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLREDUCE_INTRA_ALGORITHM");
722 rc = MPL_env2str("MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM", &tmp_str);
723 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM");
724 if (tmp_str != NULL) {
725 if (0 == strcmp(tmp_str, "auto"))
726 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_auto;
727 else if (0 == strcmp(tmp_str, "nb"))
728 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_nb;
729 else if (0 == strcmp(tmp_str, "smp"))
730 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_smp;
731 else if (0 == strcmp(tmp_str, "recursive_doubling"))
732 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_recursive_doubling;
733 else if (0 == strcmp(tmp_str, "reduce_scatter_allgather"))
734 MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM_reduce_scatter_allgather;
735 else {
736 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLREDUCE_INTRA_ALGORITHM", tmp_str);
737 goto fn_fail;
738 }
739 }
740
741 defaultval.d = MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM_auto;
742 MPIR_T_CVAR_REGISTER_STATIC(
743 MPI_INT,
744 MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM, /* name */
745 &MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM, /* address */
746 1, /* count */
747 MPI_T_VERBOSITY_USER_BASIC,
748 MPI_T_SCOPE_ALL_EQ,
749 defaultval,
750 "COLLECTIVE", /* category */
751 "Variable to select allreduce algorithm\
752 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
753 nb - Force nonblocking algorithm\
754 reduce_exchange_bcast - Force reduce-exchange-bcast algorithm");
755 MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM = defaultval.d;
756 tmp_str=NULL;
757 rc = MPL_env2str("MPICH_ALLREDUCE_INTER_ALGORITHM", &tmp_str);
758 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLREDUCE_INTER_ALGORITHM");
759 rc = MPL_env2str("MPIR_PARAM_ALLREDUCE_INTER_ALGORITHM", &tmp_str);
760 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLREDUCE_INTER_ALGORITHM");
761 rc = MPL_env2str("MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM", &tmp_str);
762 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM");
763 if (tmp_str != NULL) {
764 if (0 == strcmp(tmp_str, "auto"))
765 MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM_auto;
766 else if (0 == strcmp(tmp_str, "nb"))
767 MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM_nb;
768 else if (0 == strcmp(tmp_str, "reduce_exchange_bcast"))
769 MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM_reduce_exchange_bcast;
770 else {
771 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLREDUCE_INTER_ALGORITHM", tmp_str);
772 goto fn_fail;
773 }
774 }
775
776 defaultval.d = 1;
777 MPIR_T_CVAR_REGISTER_STATIC(
778 MPI_INT,
779 MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE, /* name */
780 &MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE, /* address */
781 1, /* count */
782 MPI_T_VERBOSITY_USER_BASIC,
783 MPI_T_SCOPE_ALL_EQ,
784 defaultval,
785 "COLLECTIVE", /* category */
786 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Allreduce will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
787 MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE = defaultval.d;
788 rc = MPL_env2bool("MPICH_ALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE));
789 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLREDUCE_DEVICE_COLLECTIVE");
790 rc = MPL_env2bool("MPIR_PARAM_ALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE));
791 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLREDUCE_DEVICE_COLLECTIVE");
792 rc = MPL_env2bool("MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE));
793 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLREDUCE_DEVICE_COLLECTIVE");
794
795 defaultval.d = 256;
796 MPIR_T_CVAR_REGISTER_STATIC(
797 MPI_INT,
798 MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE, /* name */
799 &MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE, /* address */
800 1, /* count */
801 MPI_T_VERBOSITY_USER_BASIC,
802 MPI_T_SCOPE_ALL_EQ,
803 defaultval,
804 "COLLECTIVE", /* category */
805 "the short message algorithm will be used if the per-destination message size (sendcount*size(sendtype)) is <= this value (See also: MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE)");
806 MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE = defaultval.d;
807 rc = MPL_env2int("MPICH_ALLTOALL_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE));
808 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_SHORT_MSG_SIZE");
809 rc = MPL_env2int("MPIR_PARAM_ALLTOALL_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE));
810 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_SHORT_MSG_SIZE");
811 rc = MPL_env2int("MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE));
812 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE");
813
814 defaultval.d = 32768;
815 MPIR_T_CVAR_REGISTER_STATIC(
816 MPI_INT,
817 MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE, /* name */
818 &MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE, /* address */
819 1, /* count */
820 MPI_T_VERBOSITY_USER_BASIC,
821 MPI_T_SCOPE_ALL_EQ,
822 defaultval,
823 "COLLECTIVE", /* category */
824 "the medium message algorithm will be used if the per-destination message size (sendcount*size(sendtype)) is <= this value and larger than MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE (See also: MPIR_CVAR_ALLTOALL_SHORT_MSG_SIZE)");
825 MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE = defaultval.d;
826 rc = MPL_env2int("MPICH_ALLTOALL_MEDIUM_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE));
827 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_MEDIUM_MSG_SIZE");
828 rc = MPL_env2int("MPIR_PARAM_ALLTOALL_MEDIUM_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE));
829 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_MEDIUM_MSG_SIZE");
830 rc = MPL_env2int("MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE", &(MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE));
831 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_MEDIUM_MSG_SIZE");
832
833 defaultval.d = 32;
834 MPIR_T_CVAR_REGISTER_STATIC(
835 MPI_INT,
836 MPIR_CVAR_ALLTOALL_THROTTLE, /* name */
837 &MPIR_CVAR_ALLTOALL_THROTTLE, /* address */
838 1, /* count */
839 MPI_T_VERBOSITY_USER_BASIC,
840 MPI_T_SCOPE_ALL_EQ,
841 defaultval,
842 "COLLECTIVE", /* category */
843 "max no. of irecvs/isends posted at a time in some alltoall algorithms. Setting it to 0 causes all irecvs/isends to be posted at once");
844 MPIR_CVAR_ALLTOALL_THROTTLE = defaultval.d;
845 rc = MPL_env2int("MPICH_ALLTOALL_THROTTLE", &(MPIR_CVAR_ALLTOALL_THROTTLE));
846 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_THROTTLE");
847 rc = MPL_env2int("MPIR_PARAM_ALLTOALL_THROTTLE", &(MPIR_CVAR_ALLTOALL_THROTTLE));
848 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_THROTTLE");
849 rc = MPL_env2int("MPIR_CVAR_ALLTOALL_THROTTLE", &(MPIR_CVAR_ALLTOALL_THROTTLE));
850 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_THROTTLE");
851
852 defaultval.d = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_auto;
853 MPIR_T_CVAR_REGISTER_STATIC(
854 MPI_INT,
855 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM, /* name */
856 &MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM, /* address */
857 1, /* count */
858 MPI_T_VERBOSITY_USER_BASIC,
859 MPI_T_SCOPE_ALL_EQ,
860 defaultval,
861 "COLLECTIVE", /* category */
862 "Variable to select alltoall algorithm\
863 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
864 brucks - Force brucks algorithm\
865 nb - Force nonblocking algorithm\
866 pairwise - Force pairwise algorithm\
867 pairwise_sendrecv_replace - Force pairwise sendrecv replace algorithm\
868 scattered - Force scattered algorithm");
869 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = defaultval.d;
870 tmp_str=NULL;
871 rc = MPL_env2str("MPICH_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
872 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_INTRA_ALGORITHM");
873 rc = MPL_env2str("MPIR_PARAM_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
874 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_INTRA_ALGORITHM");
875 rc = MPL_env2str("MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
876 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM");
877 if (tmp_str != NULL) {
878 if (0 == strcmp(tmp_str, "auto"))
879 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_auto;
880 else if (0 == strcmp(tmp_str, "brucks"))
881 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_brucks;
882 else if (0 == strcmp(tmp_str, "nb"))
883 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_nb;
884 else if (0 == strcmp(tmp_str, "pairwise"))
885 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_pairwise;
886 else if (0 == strcmp(tmp_str, "pairwise_sendrecv_replace"))
887 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_pairwise_sendrecv_replace;
888 else if (0 == strcmp(tmp_str, "scattered"))
889 MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM_scattered;
890 else {
891 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALL_INTRA_ALGORITHM", tmp_str);
892 goto fn_fail;
893 }
894 }
895
896 defaultval.d = MPIR_CVAR_ALLTOALL_INTER_ALGORITHM_auto;
897 MPIR_T_CVAR_REGISTER_STATIC(
898 MPI_INT,
899 MPIR_CVAR_ALLTOALL_INTER_ALGORITHM, /* name */
900 &MPIR_CVAR_ALLTOALL_INTER_ALGORITHM, /* address */
901 1, /* count */
902 MPI_T_VERBOSITY_USER_BASIC,
903 MPI_T_SCOPE_ALL_EQ,
904 defaultval,
905 "COLLECTIVE", /* category */
906 "Variable to select alltoall algorithm\
907 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
908 nb - Force nonblocking algorithm\
909 pairwise_exchange - Force pairwise exchange algorithm");
910 MPIR_CVAR_ALLTOALL_INTER_ALGORITHM = defaultval.d;
911 tmp_str=NULL;
912 rc = MPL_env2str("MPICH_ALLTOALL_INTER_ALGORITHM", &tmp_str);
913 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_INTER_ALGORITHM");
914 rc = MPL_env2str("MPIR_PARAM_ALLTOALL_INTER_ALGORITHM", &tmp_str);
915 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_INTER_ALGORITHM");
916 rc = MPL_env2str("MPIR_CVAR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
917 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_INTER_ALGORITHM");
918 if (tmp_str != NULL) {
919 if (0 == strcmp(tmp_str, "auto"))
920 MPIR_CVAR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_ALLTOALL_INTER_ALGORITHM_auto;
921 else if (0 == strcmp(tmp_str, "nb"))
922 MPIR_CVAR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_ALLTOALL_INTER_ALGORITHM_nb;
923 else if (0 == strcmp(tmp_str, "pairwise_exchange"))
924 MPIR_CVAR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_ALLTOALL_INTER_ALGORITHM_pairwise_exchange;
925 else {
926 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALL_INTER_ALGORITHM", tmp_str);
927 goto fn_fail;
928 }
929 }
930
931 defaultval.d = 1;
932 MPIR_T_CVAR_REGISTER_STATIC(
933 MPI_INT,
934 MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE, /* name */
935 &MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE, /* address */
936 1, /* count */
937 MPI_T_VERBOSITY_USER_BASIC,
938 MPI_T_SCOPE_ALL_EQ,
939 defaultval,
940 "COLLECTIVE", /* category */
941 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Alltoall will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
942 MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE = defaultval.d;
943 rc = MPL_env2bool("MPICH_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE));
944 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALL_DEVICE_COLLECTIVE");
945 rc = MPL_env2bool("MPIR_PARAM_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE));
946 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALL_DEVICE_COLLECTIVE");
947 rc = MPL_env2bool("MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE));
948 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALL_DEVICE_COLLECTIVE");
949
950 defaultval.d = MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM_auto;
951 MPIR_T_CVAR_REGISTER_STATIC(
952 MPI_INT,
953 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM, /* name */
954 &MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM, /* address */
955 1, /* count */
956 MPI_T_VERBOSITY_USER_BASIC,
957 MPI_T_SCOPE_ALL_EQ,
958 defaultval,
959 "COLLECTIVE", /* category */
960 "Variable to select alltoallv algorithm\
961 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
962 nb - Force nonblocking algorithm\
963 pairwise_sendrecv_replace - Force pairwise_sendrecv_replace algorithm\
964 scattered - Force scattered algorithm");
965 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM = defaultval.d;
966 tmp_str=NULL;
967 rc = MPL_env2str("MPICH_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
968 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLV_INTRA_ALGORITHM");
969 rc = MPL_env2str("MPIR_PARAM_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
970 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLV_INTRA_ALGORITHM");
971 rc = MPL_env2str("MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
972 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM");
973 if (tmp_str != NULL) {
974 if (0 == strcmp(tmp_str, "auto"))
975 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM_auto;
976 else if (0 == strcmp(tmp_str, "nb"))
977 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM_nb;
978 else if (0 == strcmp(tmp_str, "pairwise_sendrecv_replace"))
979 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM_pairwise_sendrecv_replace;
980 else if (0 == strcmp(tmp_str, "scattered"))
981 MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM_scattered;
982 else {
983 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALLV_INTRA_ALGORITHM", tmp_str);
984 goto fn_fail;
985 }
986 }
987
988 defaultval.d = MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM_auto;
989 MPIR_T_CVAR_REGISTER_STATIC(
990 MPI_INT,
991 MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM, /* name */
992 &MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM, /* address */
993 1, /* count */
994 MPI_T_VERBOSITY_USER_BASIC,
995 MPI_T_SCOPE_ALL_EQ,
996 defaultval,
997 "COLLECTIVE", /* category */
998 "Variable to select alltoallv algorithm\
999 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1000 pairwise_exchange - Force pairwise exchange algorithm\
1001 nb - Force nonblocking algorithm");
1002 MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM = defaultval.d;
1003 tmp_str=NULL;
1004 rc = MPL_env2str("MPICH_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
1005 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLV_INTER_ALGORITHM");
1006 rc = MPL_env2str("MPIR_PARAM_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
1007 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLV_INTER_ALGORITHM");
1008 rc = MPL_env2str("MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
1009 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM");
1010 if (tmp_str != NULL) {
1011 if (0 == strcmp(tmp_str, "auto"))
1012 MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM_auto;
1013 else if (0 == strcmp(tmp_str, "pairwise_exchange"))
1014 MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM_pairwise_exchange;
1015 else if (0 == strcmp(tmp_str, "nb"))
1016 MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM_nb;
1017 else {
1018 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALLV_INTER_ALGORITHM", tmp_str);
1019 goto fn_fail;
1020 }
1021 }
1022
1023 defaultval.d = 1;
1024 MPIR_T_CVAR_REGISTER_STATIC(
1025 MPI_INT,
1026 MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE, /* name */
1027 &MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE, /* address */
1028 1, /* count */
1029 MPI_T_VERBOSITY_USER_BASIC,
1030 MPI_T_SCOPE_ALL_EQ,
1031 defaultval,
1032 "COLLECTIVE", /* category */
1033 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Alltoallv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1034 MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE = defaultval.d;
1035 rc = MPL_env2bool("MPICH_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE));
1036 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLV_DEVICE_COLLECTIVE");
1037 rc = MPL_env2bool("MPIR_PARAM_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE));
1038 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLV_DEVICE_COLLECTIVE");
1039 rc = MPL_env2bool("MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE));
1040 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLV_DEVICE_COLLECTIVE");
1041
1042 defaultval.d = MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM_auto;
1043 MPIR_T_CVAR_REGISTER_STATIC(
1044 MPI_INT,
1045 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM, /* name */
1046 &MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM, /* address */
1047 1, /* count */
1048 MPI_T_VERBOSITY_USER_BASIC,
1049 MPI_T_SCOPE_ALL_EQ,
1050 defaultval,
1051 "COLLECTIVE", /* category */
1052 "Variable to select alltoallw algorithm\
1053 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1054 nb - Force nonblocking algorithm\
1055 pairwise_sendrecv_replace - Force pairwise sendrecv replace algorithm\
1056 scattered - Force scattered algorithm");
1057 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM = defaultval.d;
1058 tmp_str=NULL;
1059 rc = MPL_env2str("MPICH_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
1060 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLW_INTRA_ALGORITHM");
1061 rc = MPL_env2str("MPIR_PARAM_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
1062 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLW_INTRA_ALGORITHM");
1063 rc = MPL_env2str("MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
1064 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM");
1065 if (tmp_str != NULL) {
1066 if (0 == strcmp(tmp_str, "auto"))
1067 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM_auto;
1068 else if (0 == strcmp(tmp_str, "nb"))
1069 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM_nb;
1070 else if (0 == strcmp(tmp_str, "pairwise_sendrecv_replace"))
1071 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM_pairwise_sendrecv_replace;
1072 else if (0 == strcmp(tmp_str, "scattered"))
1073 MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM_scattered;
1074 else {
1075 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALLW_INTRA_ALGORITHM", tmp_str);
1076 goto fn_fail;
1077 }
1078 }
1079
1080 defaultval.d = MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM_auto;
1081 MPIR_T_CVAR_REGISTER_STATIC(
1082 MPI_INT,
1083 MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM, /* name */
1084 &MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM, /* address */
1085 1, /* count */
1086 MPI_T_VERBOSITY_USER_BASIC,
1087 MPI_T_SCOPE_ALL_EQ,
1088 defaultval,
1089 "COLLECTIVE", /* category */
1090 "Variable to select alltoallw algorithm\
1091 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1092 nb - Force nonblocking algorithm\
1093 pairwise_exchange - Force pairwise exchange algorithm");
1094 MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM = defaultval.d;
1095 tmp_str=NULL;
1096 rc = MPL_env2str("MPICH_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
1097 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLW_INTER_ALGORITHM");
1098 rc = MPL_env2str("MPIR_PARAM_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
1099 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLW_INTER_ALGORITHM");
1100 rc = MPL_env2str("MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
1101 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM");
1102 if (tmp_str != NULL) {
1103 if (0 == strcmp(tmp_str, "auto"))
1104 MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM_auto;
1105 else if (0 == strcmp(tmp_str, "nb"))
1106 MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM_nb;
1107 else if (0 == strcmp(tmp_str, "pairwise_exchange"))
1108 MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM_pairwise_exchange;
1109 else {
1110 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLTOALLW_INTER_ALGORITHM", tmp_str);
1111 goto fn_fail;
1112 }
1113 }
1114
1115 defaultval.d = 1;
1116 MPIR_T_CVAR_REGISTER_STATIC(
1117 MPI_INT,
1118 MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE, /* name */
1119 &MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE, /* address */
1120 1, /* count */
1121 MPI_T_VERBOSITY_USER_BASIC,
1122 MPI_T_SCOPE_ALL_EQ,
1123 defaultval,
1124 "COLLECTIVE", /* category */
1125 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Alltoallw will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1126 MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE = defaultval.d;
1127 rc = MPL_env2bool("MPICH_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE));
1128 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLTOALLW_DEVICE_COLLECTIVE");
1129 rc = MPL_env2bool("MPIR_PARAM_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE));
1130 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLTOALLW_DEVICE_COLLECTIVE");
1131 rc = MPL_env2bool("MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE));
1132 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLTOALLW_DEVICE_COLLECTIVE");
1133
1134 defaultval.d = MPIR_CVAR_BARRIER_INTRA_ALGORITHM_auto;
1135 MPIR_T_CVAR_REGISTER_STATIC(
1136 MPI_INT,
1137 MPIR_CVAR_BARRIER_INTRA_ALGORITHM, /* name */
1138 &MPIR_CVAR_BARRIER_INTRA_ALGORITHM, /* address */
1139 1, /* count */
1140 MPI_T_VERBOSITY_USER_BASIC,
1141 MPI_T_SCOPE_ALL_EQ,
1142 defaultval,
1143 "COLLECTIVE", /* category */
1144 "Variable to select barrier algorithm\
1145 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1146 nb - Force nonblocking algorithm\
1147 dissemination - Force dissemination algorithm");
1148 MPIR_CVAR_BARRIER_INTRA_ALGORITHM = defaultval.d;
1149 tmp_str=NULL;
1150 rc = MPL_env2str("MPICH_BARRIER_INTRA_ALGORITHM", &tmp_str);
1151 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BARRIER_INTRA_ALGORITHM");
1152 rc = MPL_env2str("MPIR_PARAM_BARRIER_INTRA_ALGORITHM", &tmp_str);
1153 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BARRIER_INTRA_ALGORITHM");
1154 rc = MPL_env2str("MPIR_CVAR_BARRIER_INTRA_ALGORITHM", &tmp_str);
1155 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BARRIER_INTRA_ALGORITHM");
1156 if (tmp_str != NULL) {
1157 if (0 == strcmp(tmp_str, "auto"))
1158 MPIR_CVAR_BARRIER_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_INTRA_ALGORITHM_auto;
1159 else if (0 == strcmp(tmp_str, "nb"))
1160 MPIR_CVAR_BARRIER_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_INTRA_ALGORITHM_nb;
1161 else if (0 == strcmp(tmp_str, "dissemination"))
1162 MPIR_CVAR_BARRIER_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_INTRA_ALGORITHM_dissemination;
1163 else {
1164 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BARRIER_INTRA_ALGORITHM", tmp_str);
1165 goto fn_fail;
1166 }
1167 }
1168
1169 defaultval.d = MPIR_CVAR_BARRIER_INTER_ALGORITHM_auto;
1170 MPIR_T_CVAR_REGISTER_STATIC(
1171 MPI_INT,
1172 MPIR_CVAR_BARRIER_INTER_ALGORITHM, /* name */
1173 &MPIR_CVAR_BARRIER_INTER_ALGORITHM, /* address */
1174 1, /* count */
1175 MPI_T_VERBOSITY_USER_BASIC,
1176 MPI_T_SCOPE_ALL_EQ,
1177 defaultval,
1178 "COLLECTIVE", /* category */
1179 "Variable to select barrier algorithm\
1180 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1181 bcast - Force bcast algorithm\
1182 nb - Force nonblocking algorithm");
1183 MPIR_CVAR_BARRIER_INTER_ALGORITHM = defaultval.d;
1184 tmp_str=NULL;
1185 rc = MPL_env2str("MPICH_BARRIER_INTER_ALGORITHM", &tmp_str);
1186 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BARRIER_INTER_ALGORITHM");
1187 rc = MPL_env2str("MPIR_PARAM_BARRIER_INTER_ALGORITHM", &tmp_str);
1188 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BARRIER_INTER_ALGORITHM");
1189 rc = MPL_env2str("MPIR_CVAR_BARRIER_INTER_ALGORITHM", &tmp_str);
1190 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BARRIER_INTER_ALGORITHM");
1191 if (tmp_str != NULL) {
1192 if (0 == strcmp(tmp_str, "auto"))
1193 MPIR_CVAR_BARRIER_INTER_ALGORITHM = MPIR_CVAR_BARRIER_INTER_ALGORITHM_auto;
1194 else if (0 == strcmp(tmp_str, "bcast"))
1195 MPIR_CVAR_BARRIER_INTER_ALGORITHM = MPIR_CVAR_BARRIER_INTER_ALGORITHM_bcast;
1196 else if (0 == strcmp(tmp_str, "nb"))
1197 MPIR_CVAR_BARRIER_INTER_ALGORITHM = MPIR_CVAR_BARRIER_INTER_ALGORITHM_nb;
1198 else {
1199 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BARRIER_INTER_ALGORITHM", tmp_str);
1200 goto fn_fail;
1201 }
1202 }
1203
1204 defaultval.d = 1;
1205 MPIR_T_CVAR_REGISTER_STATIC(
1206 MPI_INT,
1207 MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE, /* name */
1208 &MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE, /* address */
1209 1, /* count */
1210 MPI_T_VERBOSITY_USER_BASIC,
1211 MPI_T_SCOPE_ALL_EQ,
1212 defaultval,
1213 "COLLECTIVE", /* category */
1214 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Barrier will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1215 MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE = defaultval.d;
1216 rc = MPL_env2bool("MPICH_BARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE));
1217 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BARRIER_DEVICE_COLLECTIVE");
1218 rc = MPL_env2bool("MPIR_PARAM_BARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE));
1219 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BARRIER_DEVICE_COLLECTIVE");
1220 rc = MPL_env2bool("MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE));
1221 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BARRIER_DEVICE_COLLECTIVE");
1222
1223 defaultval.d = 8;
1224 MPIR_T_CVAR_REGISTER_STATIC(
1225 MPI_INT,
1226 MPIR_CVAR_BCAST_MIN_PROCS, /* name */
1227 &MPIR_CVAR_BCAST_MIN_PROCS, /* address */
1228 1, /* count */
1229 MPI_T_VERBOSITY_USER_BASIC,
1230 MPI_T_SCOPE_ALL_EQ,
1231 defaultval,
1232 "COLLECTIVE", /* category */
1233 "Let's define short messages as messages with size < MPIR_CVAR_BCAST_SHORT_MSG_SIZE, and medium messages as messages with size >= MPIR_CVAR_BCAST_SHORT_MSG_SIZE but < MPIR_CVAR_BCAST_LONG_MSG_SIZE, and long messages as messages with size >= MPIR_CVAR_BCAST_LONG_MSG_SIZE. The broadcast algorithms selection procedure is as follows. For short messages or when the number of processes is < MPIR_CVAR_BCAST_MIN_PROCS, we do broadcast using the binomial tree algorithm. Otherwise, for medium messages and with a power-of-two number of processes, we do broadcast based on a scatter followed by a recursive doubling allgather algorithm. Otherwise, for long messages or with non power-of-two number of processes, we do broadcast based on a scatter followed by a ring allgather algorithm. (See also: MPIR_CVAR_BCAST_SHORT_MSG_SIZE, MPIR_CVAR_BCAST_LONG_MSG_SIZE)");
1234 MPIR_CVAR_BCAST_MIN_PROCS = defaultval.d;
1235 rc = MPL_env2int("MPICH_BCAST_MIN_PROCS", &(MPIR_CVAR_BCAST_MIN_PROCS));
1236 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_MIN_PROCS");
1237 rc = MPL_env2int("MPIR_PARAM_BCAST_MIN_PROCS", &(MPIR_CVAR_BCAST_MIN_PROCS));
1238 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_MIN_PROCS");
1239 rc = MPL_env2int("MPIR_CVAR_BCAST_MIN_PROCS", &(MPIR_CVAR_BCAST_MIN_PROCS));
1240 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_MIN_PROCS");
1241
1242 defaultval.d = 12288;
1243 MPIR_T_CVAR_REGISTER_STATIC(
1244 MPI_INT,
1245 MPIR_CVAR_BCAST_SHORT_MSG_SIZE, /* name */
1246 &MPIR_CVAR_BCAST_SHORT_MSG_SIZE, /* address */
1247 1, /* count */
1248 MPI_T_VERBOSITY_USER_BASIC,
1249 MPI_T_SCOPE_ALL_EQ,
1250 defaultval,
1251 "COLLECTIVE", /* category */
1252 "Let's define short messages as messages with size < MPIR_CVAR_BCAST_SHORT_MSG_SIZE, and medium messages as messages with size >= MPIR_CVAR_BCAST_SHORT_MSG_SIZE but < MPIR_CVAR_BCAST_LONG_MSG_SIZE, and long messages as messages with size >= MPIR_CVAR_BCAST_LONG_MSG_SIZE. The broadcast algorithms selection procedure is as follows. For short messages or when the number of processes is < MPIR_CVAR_BCAST_MIN_PROCS, we do broadcast using the binomial tree algorithm. Otherwise, for medium messages and with a power-of-two number of processes, we do broadcast based on a scatter followed by a recursive doubling allgather algorithm. Otherwise, for long messages or with non power-of-two number of processes, we do broadcast based on a scatter followed by a ring allgather algorithm. (See also: MPIR_CVAR_BCAST_MIN_PROCS, MPIR_CVAR_BCAST_LONG_MSG_SIZE)");
1253 MPIR_CVAR_BCAST_SHORT_MSG_SIZE = defaultval.d;
1254 rc = MPL_env2int("MPICH_BCAST_SHORT_MSG_SIZE", &(MPIR_CVAR_BCAST_SHORT_MSG_SIZE));
1255 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_SHORT_MSG_SIZE");
1256 rc = MPL_env2int("MPIR_PARAM_BCAST_SHORT_MSG_SIZE", &(MPIR_CVAR_BCAST_SHORT_MSG_SIZE));
1257 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_SHORT_MSG_SIZE");
1258 rc = MPL_env2int("MPIR_CVAR_BCAST_SHORT_MSG_SIZE", &(MPIR_CVAR_BCAST_SHORT_MSG_SIZE));
1259 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_SHORT_MSG_SIZE");
1260
1261 defaultval.d = 524288;
1262 MPIR_T_CVAR_REGISTER_STATIC(
1263 MPI_INT,
1264 MPIR_CVAR_BCAST_LONG_MSG_SIZE, /* name */
1265 &MPIR_CVAR_BCAST_LONG_MSG_SIZE, /* address */
1266 1, /* count */
1267 MPI_T_VERBOSITY_USER_BASIC,
1268 MPI_T_SCOPE_ALL_EQ,
1269 defaultval,
1270 "COLLECTIVE", /* category */
1271 "Let's define short messages as messages with size < MPIR_CVAR_BCAST_SHORT_MSG_SIZE, and medium messages as messages with size >= MPIR_CVAR_BCAST_SHORT_MSG_SIZE but < MPIR_CVAR_BCAST_LONG_MSG_SIZE, and long messages as messages with size >= MPIR_CVAR_BCAST_LONG_MSG_SIZE. The broadcast algorithms selection procedure is as follows. For short messages or when the number of processes is < MPIR_CVAR_BCAST_MIN_PROCS, we do broadcast using the binomial tree algorithm. Otherwise, for medium messages and with a power-of-two number of processes, we do broadcast based on a scatter followed by a recursive doubling allgather algorithm. Otherwise, for long messages or with non power-of-two number of processes, we do broadcast based on a scatter followed by a ring allgather algorithm. (See also: MPIR_CVAR_BCAST_MIN_PROCS, MPIR_CVAR_BCAST_SHORT_MSG_SIZE)");
1272 MPIR_CVAR_BCAST_LONG_MSG_SIZE = defaultval.d;
1273 rc = MPL_env2int("MPICH_BCAST_LONG_MSG_SIZE", &(MPIR_CVAR_BCAST_LONG_MSG_SIZE));
1274 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_LONG_MSG_SIZE");
1275 rc = MPL_env2int("MPIR_PARAM_BCAST_LONG_MSG_SIZE", &(MPIR_CVAR_BCAST_LONG_MSG_SIZE));
1276 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_LONG_MSG_SIZE");
1277 rc = MPL_env2int("MPIR_CVAR_BCAST_LONG_MSG_SIZE", &(MPIR_CVAR_BCAST_LONG_MSG_SIZE));
1278 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_LONG_MSG_SIZE");
1279
1280 defaultval.d = 0;
1281 MPIR_T_CVAR_REGISTER_STATIC(
1282 MPI_INT,
1283 MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE, /* name */
1284 &MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE, /* address */
1285 1, /* count */
1286 MPI_T_VERBOSITY_USER_BASIC,
1287 MPI_T_SCOPE_ALL_EQ,
1288 defaultval,
1289 "COLLECTIVE", /* category */
1290 "Maximum message size for which SMP-aware broadcast is used. A value of '0' uses SMP-aware broadcast for all message sizes.");
1291 MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE = defaultval.d;
1292 rc = MPL_env2int("MPICH_MAX_SMP_BCAST_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE));
1293 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_MAX_SMP_BCAST_MSG_SIZE");
1294 rc = MPL_env2int("MPIR_PARAM_MAX_SMP_BCAST_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE));
1295 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_MAX_SMP_BCAST_MSG_SIZE");
1296 rc = MPL_env2int("MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE));
1297 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_MAX_SMP_BCAST_MSG_SIZE");
1298
1299 defaultval.d = MPIR_CVAR_BCAST_INTRA_ALGORITHM_auto;
1300 MPIR_T_CVAR_REGISTER_STATIC(
1301 MPI_INT,
1302 MPIR_CVAR_BCAST_INTRA_ALGORITHM, /* name */
1303 &MPIR_CVAR_BCAST_INTRA_ALGORITHM, /* address */
1304 1, /* count */
1305 MPI_T_VERBOSITY_USER_BASIC,
1306 MPI_T_SCOPE_ALL_EQ,
1307 defaultval,
1308 "COLLECTIVE", /* category */
1309 "Variable to select bcast algorithm\
1310 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1311 binomial - Force Binomial Tree\
1312 nb - Force nonblocking algorithm\
1313 smp - Force smp algorithm\
1314 scatter_recursive_doubling_allgather - Force Scatter Recursive-Doubling Allgather\
1315 scatter_ring_allgather - Force Scatter Ring");
1316 MPIR_CVAR_BCAST_INTRA_ALGORITHM = defaultval.d;
1317 tmp_str=NULL;
1318 rc = MPL_env2str("MPICH_BCAST_INTRA_ALGORITHM", &tmp_str);
1319 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTRA_ALGORITHM");
1320 rc = MPL_env2str("MPIR_PARAM_BCAST_INTRA_ALGORITHM", &tmp_str);
1321 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTRA_ALGORITHM");
1322 rc = MPL_env2str("MPIR_CVAR_BCAST_INTRA_ALGORITHM", &tmp_str);
1323 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTRA_ALGORITHM");
1324 if (tmp_str != NULL) {
1325 if (0 == strcmp(tmp_str, "auto"))
1326 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_auto;
1327 else if (0 == strcmp(tmp_str, "binomial"))
1328 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_binomial;
1329 else if (0 == strcmp(tmp_str, "nb"))
1330 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_nb;
1331 else if (0 == strcmp(tmp_str, "smp"))
1332 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_smp;
1333 else if (0 == strcmp(tmp_str, "scatter_recursive_doubling_allgather"))
1334 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_scatter_recursive_doubling_allgather;
1335 else if (0 == strcmp(tmp_str, "scatter_ring_allgather"))
1336 MPIR_CVAR_BCAST_INTRA_ALGORITHM = MPIR_CVAR_BCAST_INTRA_ALGORITHM_scatter_ring_allgather;
1337 else {
1338 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BCAST_INTRA_ALGORITHM", tmp_str);
1339 goto fn_fail;
1340 }
1341 }
1342
1343 defaultval.d = MPIR_CVAR_BCAST_INTER_ALGORITHM_auto;
1344 MPIR_T_CVAR_REGISTER_STATIC(
1345 MPI_INT,
1346 MPIR_CVAR_BCAST_INTER_ALGORITHM, /* name */
1347 &MPIR_CVAR_BCAST_INTER_ALGORITHM, /* address */
1348 1, /* count */
1349 MPI_T_VERBOSITY_USER_BASIC,
1350 MPI_T_SCOPE_ALL_EQ,
1351 defaultval,
1352 "COLLECTIVE", /* category */
1353 "Variable to select bcast algorithm\
1354 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1355 nb - Force nonblocking algorithm\
1356 remote_send_local_bcast - Force remote-send-local-bcast algorithm");
1357 MPIR_CVAR_BCAST_INTER_ALGORITHM = defaultval.d;
1358 tmp_str=NULL;
1359 rc = MPL_env2str("MPICH_BCAST_INTER_ALGORITHM", &tmp_str);
1360 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTER_ALGORITHM");
1361 rc = MPL_env2str("MPIR_PARAM_BCAST_INTER_ALGORITHM", &tmp_str);
1362 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTER_ALGORITHM");
1363 rc = MPL_env2str("MPIR_CVAR_BCAST_INTER_ALGORITHM", &tmp_str);
1364 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTER_ALGORITHM");
1365 if (tmp_str != NULL) {
1366 if (0 == strcmp(tmp_str, "auto"))
1367 MPIR_CVAR_BCAST_INTER_ALGORITHM = MPIR_CVAR_BCAST_INTER_ALGORITHM_auto;
1368 else if (0 == strcmp(tmp_str, "nb"))
1369 MPIR_CVAR_BCAST_INTER_ALGORITHM = MPIR_CVAR_BCAST_INTER_ALGORITHM_nb;
1370 else if (0 == strcmp(tmp_str, "remote_send_local_bcast"))
1371 MPIR_CVAR_BCAST_INTER_ALGORITHM = MPIR_CVAR_BCAST_INTER_ALGORITHM_remote_send_local_bcast;
1372 else {
1373 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BCAST_INTER_ALGORITHM", tmp_str);
1374 goto fn_fail;
1375 }
1376 }
1377
1378 defaultval.d = 1;
1379 MPIR_T_CVAR_REGISTER_STATIC(
1380 MPI_INT,
1381 MPIR_CVAR_BCAST_DEVICE_COLLECTIVE, /* name */
1382 &MPIR_CVAR_BCAST_DEVICE_COLLECTIVE, /* address */
1383 1, /* count */
1384 MPI_T_VERBOSITY_USER_BASIC,
1385 MPI_T_SCOPE_ALL_EQ,
1386 defaultval,
1387 "COLLECTIVE", /* category */
1388 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Bcast will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1389 MPIR_CVAR_BCAST_DEVICE_COLLECTIVE = defaultval.d;
1390 rc = MPL_env2bool("MPICH_BCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_BCAST_DEVICE_COLLECTIVE));
1391 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_DEVICE_COLLECTIVE");
1392 rc = MPL_env2bool("MPIR_PARAM_BCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_BCAST_DEVICE_COLLECTIVE));
1393 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_DEVICE_COLLECTIVE");
1394 rc = MPL_env2bool("MPIR_CVAR_BCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_BCAST_DEVICE_COLLECTIVE));
1395 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_DEVICE_COLLECTIVE");
1396
1397 defaultval.d = MPIR_CVAR_EXSCAN_INTRA_ALGORITHM_auto;
1398 MPIR_T_CVAR_REGISTER_STATIC(
1399 MPI_INT,
1400 MPIR_CVAR_EXSCAN_INTRA_ALGORITHM, /* name */
1401 &MPIR_CVAR_EXSCAN_INTRA_ALGORITHM, /* address */
1402 1, /* count */
1403 MPI_T_VERBOSITY_USER_BASIC,
1404 MPI_T_SCOPE_ALL_EQ,
1405 defaultval,
1406 "COLLECTIVE", /* category */
1407 "Variable to select allgather algorithm\
1408 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1409 nb - Force nonblocking algorithm\
1410 recursive_doubling - Force recursive doubling algorithm");
1411 MPIR_CVAR_EXSCAN_INTRA_ALGORITHM = defaultval.d;
1412 tmp_str=NULL;
1413 rc = MPL_env2str("MPICH_EXSCAN_INTRA_ALGORITHM", &tmp_str);
1414 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_EXSCAN_INTRA_ALGORITHM");
1415 rc = MPL_env2str("MPIR_PARAM_EXSCAN_INTRA_ALGORITHM", &tmp_str);
1416 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_EXSCAN_INTRA_ALGORITHM");
1417 rc = MPL_env2str("MPIR_CVAR_EXSCAN_INTRA_ALGORITHM", &tmp_str);
1418 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_EXSCAN_INTRA_ALGORITHM");
1419 if (tmp_str != NULL) {
1420 if (0 == strcmp(tmp_str, "auto"))
1421 MPIR_CVAR_EXSCAN_INTRA_ALGORITHM = MPIR_CVAR_EXSCAN_INTRA_ALGORITHM_auto;
1422 else if (0 == strcmp(tmp_str, "nb"))
1423 MPIR_CVAR_EXSCAN_INTRA_ALGORITHM = MPIR_CVAR_EXSCAN_INTRA_ALGORITHM_nb;
1424 else if (0 == strcmp(tmp_str, "recursive_doubling"))
1425 MPIR_CVAR_EXSCAN_INTRA_ALGORITHM = MPIR_CVAR_EXSCAN_INTRA_ALGORITHM_recursive_doubling;
1426 else {
1427 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_EXSCAN_INTRA_ALGORITHM", tmp_str);
1428 goto fn_fail;
1429 }
1430 }
1431
1432 defaultval.d = 1;
1433 MPIR_T_CVAR_REGISTER_STATIC(
1434 MPI_INT,
1435 MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE, /* name */
1436 &MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE, /* address */
1437 1, /* count */
1438 MPI_T_VERBOSITY_USER_BASIC,
1439 MPI_T_SCOPE_ALL_EQ,
1440 defaultval,
1441 "COLLECTIVE", /* category */
1442 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Exscan will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1443 MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE = defaultval.d;
1444 rc = MPL_env2bool("MPICH_EXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE));
1445 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_EXSCAN_DEVICE_COLLECTIVE");
1446 rc = MPL_env2bool("MPIR_PARAM_EXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE));
1447 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_EXSCAN_DEVICE_COLLECTIVE");
1448 rc = MPL_env2bool("MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE));
1449 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_EXSCAN_DEVICE_COLLECTIVE");
1450
1451 defaultval.d = 2048;
1452 MPIR_T_CVAR_REGISTER_STATIC(
1453 MPI_INT,
1454 MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE, /* name */
1455 &MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE, /* address */
1456 1, /* count */
1457 MPI_T_VERBOSITY_USER_BASIC,
1458 MPI_T_SCOPE_ALL_EQ,
1459 defaultval,
1460 "COLLECTIVE", /* category */
1461 "use the short message algorithm for intercommunicator MPI_Gather if the send buffer size is < this value (in bytes) (See also: MPIR_CVAR_GATHER_VSMALL_MSG_SIZE)");
1462 MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE = defaultval.d;
1463 rc = MPL_env2int("MPICH_GATHER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE));
1464 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHER_INTER_SHORT_MSG_SIZE");
1465 rc = MPL_env2int("MPIR_PARAM_GATHER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE));
1466 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHER_INTER_SHORT_MSG_SIZE");
1467 rc = MPL_env2int("MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE));
1468 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE");
1469
1470 defaultval.d = MPIR_CVAR_GATHER_INTRA_ALGORITHM_auto;
1471 MPIR_T_CVAR_REGISTER_STATIC(
1472 MPI_INT,
1473 MPIR_CVAR_GATHER_INTRA_ALGORITHM, /* name */
1474 &MPIR_CVAR_GATHER_INTRA_ALGORITHM, /* address */
1475 1, /* count */
1476 MPI_T_VERBOSITY_USER_BASIC,
1477 MPI_T_SCOPE_ALL_EQ,
1478 defaultval,
1479 "COLLECTIVE", /* category */
1480 "Variable to select gather algorithm\
1481 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1482 binomial - Force binomial algorithm\
1483 nb - Force nonblocking algorithm");
1484 MPIR_CVAR_GATHER_INTRA_ALGORITHM = defaultval.d;
1485 tmp_str=NULL;
1486 rc = MPL_env2str("MPICH_GATHER_INTRA_ALGORITHM", &tmp_str);
1487 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHER_INTRA_ALGORITHM");
1488 rc = MPL_env2str("MPIR_PARAM_GATHER_INTRA_ALGORITHM", &tmp_str);
1489 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHER_INTRA_ALGORITHM");
1490 rc = MPL_env2str("MPIR_CVAR_GATHER_INTRA_ALGORITHM", &tmp_str);
1491 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHER_INTRA_ALGORITHM");
1492 if (tmp_str != NULL) {
1493 if (0 == strcmp(tmp_str, "auto"))
1494 MPIR_CVAR_GATHER_INTRA_ALGORITHM = MPIR_CVAR_GATHER_INTRA_ALGORITHM_auto;
1495 else if (0 == strcmp(tmp_str, "binomial"))
1496 MPIR_CVAR_GATHER_INTRA_ALGORITHM = MPIR_CVAR_GATHER_INTRA_ALGORITHM_binomial;
1497 else if (0 == strcmp(tmp_str, "nb"))
1498 MPIR_CVAR_GATHER_INTRA_ALGORITHM = MPIR_CVAR_GATHER_INTRA_ALGORITHM_nb;
1499 else {
1500 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_GATHER_INTRA_ALGORITHM", tmp_str);
1501 goto fn_fail;
1502 }
1503 }
1504
1505 defaultval.d = MPIR_CVAR_GATHER_INTER_ALGORITHM_auto;
1506 MPIR_T_CVAR_REGISTER_STATIC(
1507 MPI_INT,
1508 MPIR_CVAR_GATHER_INTER_ALGORITHM, /* name */
1509 &MPIR_CVAR_GATHER_INTER_ALGORITHM, /* address */
1510 1, /* count */
1511 MPI_T_VERBOSITY_USER_BASIC,
1512 MPI_T_SCOPE_ALL_EQ,
1513 defaultval,
1514 "COLLECTIVE", /* category */
1515 "Variable to select gather algorithm\
1516 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1517 linear - Force linear algorithm\
1518 local_gather_remote_send - Force local-gather-remote-send algorithm\
1519 nb - Force nonblocking algorithm");
1520 MPIR_CVAR_GATHER_INTER_ALGORITHM = defaultval.d;
1521 tmp_str=NULL;
1522 rc = MPL_env2str("MPICH_GATHER_INTER_ALGORITHM", &tmp_str);
1523 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHER_INTER_ALGORITHM");
1524 rc = MPL_env2str("MPIR_PARAM_GATHER_INTER_ALGORITHM", &tmp_str);
1525 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHER_INTER_ALGORITHM");
1526 rc = MPL_env2str("MPIR_CVAR_GATHER_INTER_ALGORITHM", &tmp_str);
1527 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHER_INTER_ALGORITHM");
1528 if (tmp_str != NULL) {
1529 if (0 == strcmp(tmp_str, "auto"))
1530 MPIR_CVAR_GATHER_INTER_ALGORITHM = MPIR_CVAR_GATHER_INTER_ALGORITHM_auto;
1531 else if (0 == strcmp(tmp_str, "linear"))
1532 MPIR_CVAR_GATHER_INTER_ALGORITHM = MPIR_CVAR_GATHER_INTER_ALGORITHM_linear;
1533 else if (0 == strcmp(tmp_str, "local_gather_remote_send"))
1534 MPIR_CVAR_GATHER_INTER_ALGORITHM = MPIR_CVAR_GATHER_INTER_ALGORITHM_local_gather_remote_send;
1535 else if (0 == strcmp(tmp_str, "nb"))
1536 MPIR_CVAR_GATHER_INTER_ALGORITHM = MPIR_CVAR_GATHER_INTER_ALGORITHM_nb;
1537 else {
1538 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_GATHER_INTER_ALGORITHM", tmp_str);
1539 goto fn_fail;
1540 }
1541 }
1542
1543 defaultval.d = 1;
1544 MPIR_T_CVAR_REGISTER_STATIC(
1545 MPI_INT,
1546 MPIR_CVAR_GATHER_DEVICE_COLLECTIVE, /* name */
1547 &MPIR_CVAR_GATHER_DEVICE_COLLECTIVE, /* address */
1548 1, /* count */
1549 MPI_T_VERBOSITY_USER_BASIC,
1550 MPI_T_SCOPE_ALL_EQ,
1551 defaultval,
1552 "COLLECTIVE", /* category */
1553 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Gather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1554 MPIR_CVAR_GATHER_DEVICE_COLLECTIVE = defaultval.d;
1555 rc = MPL_env2bool("MPICH_GATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHER_DEVICE_COLLECTIVE));
1556 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHER_DEVICE_COLLECTIVE");
1557 rc = MPL_env2bool("MPIR_PARAM_GATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHER_DEVICE_COLLECTIVE));
1558 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHER_DEVICE_COLLECTIVE");
1559 rc = MPL_env2bool("MPIR_CVAR_GATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHER_DEVICE_COLLECTIVE));
1560 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHER_DEVICE_COLLECTIVE");
1561
1562 defaultval.d = 1024;
1563 MPIR_T_CVAR_REGISTER_STATIC(
1564 MPI_INT,
1565 MPIR_CVAR_GATHER_VSMALL_MSG_SIZE, /* name */
1566 &MPIR_CVAR_GATHER_VSMALL_MSG_SIZE, /* address */
1567 1, /* count */
1568 MPI_T_VERBOSITY_USER_BASIC,
1569 MPI_T_SCOPE_ALL_EQ,
1570 defaultval,
1571 "COLLECTIVE", /* category */
1572 "use a temporary buffer for intracommunicator MPI_Gather if the send buffer size is < this value (in bytes) (See also: MPIR_CVAR_GATHER_INTER_SHORT_MSG_SIZE)");
1573 MPIR_CVAR_GATHER_VSMALL_MSG_SIZE = defaultval.d;
1574 rc = MPL_env2int("MPICH_GATHER_VSMALL_MSG_SIZE", &(MPIR_CVAR_GATHER_VSMALL_MSG_SIZE));
1575 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHER_VSMALL_MSG_SIZE");
1576 rc = MPL_env2int("MPIR_PARAM_GATHER_VSMALL_MSG_SIZE", &(MPIR_CVAR_GATHER_VSMALL_MSG_SIZE));
1577 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHER_VSMALL_MSG_SIZE");
1578 rc = MPL_env2int("MPIR_CVAR_GATHER_VSMALL_MSG_SIZE", &(MPIR_CVAR_GATHER_VSMALL_MSG_SIZE));
1579 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHER_VSMALL_MSG_SIZE");
1580
1581 defaultval.d = MPIR_CVAR_GATHERV_INTRA_ALGORITHM_auto;
1582 MPIR_T_CVAR_REGISTER_STATIC(
1583 MPI_INT,
1584 MPIR_CVAR_GATHERV_INTRA_ALGORITHM, /* name */
1585 &MPIR_CVAR_GATHERV_INTRA_ALGORITHM, /* address */
1586 1, /* count */
1587 MPI_T_VERBOSITY_USER_BASIC,
1588 MPI_T_SCOPE_ALL_EQ,
1589 defaultval,
1590 "COLLECTIVE", /* category */
1591 "Variable to select gatherv algorithm\
1592 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1593 linear - Force linear algorithm\
1594 nb - Force nonblocking algorithm");
1595 MPIR_CVAR_GATHERV_INTRA_ALGORITHM = defaultval.d;
1596 tmp_str=NULL;
1597 rc = MPL_env2str("MPICH_GATHERV_INTRA_ALGORITHM", &tmp_str);
1598 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHERV_INTRA_ALGORITHM");
1599 rc = MPL_env2str("MPIR_PARAM_GATHERV_INTRA_ALGORITHM", &tmp_str);
1600 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHERV_INTRA_ALGORITHM");
1601 rc = MPL_env2str("MPIR_CVAR_GATHERV_INTRA_ALGORITHM", &tmp_str);
1602 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHERV_INTRA_ALGORITHM");
1603 if (tmp_str != NULL) {
1604 if (0 == strcmp(tmp_str, "auto"))
1605 MPIR_CVAR_GATHERV_INTRA_ALGORITHM = MPIR_CVAR_GATHERV_INTRA_ALGORITHM_auto;
1606 else if (0 == strcmp(tmp_str, "linear"))
1607 MPIR_CVAR_GATHERV_INTRA_ALGORITHM = MPIR_CVAR_GATHERV_INTRA_ALGORITHM_linear;
1608 else if (0 == strcmp(tmp_str, "nb"))
1609 MPIR_CVAR_GATHERV_INTRA_ALGORITHM = MPIR_CVAR_GATHERV_INTRA_ALGORITHM_nb;
1610 else {
1611 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_GATHERV_INTRA_ALGORITHM", tmp_str);
1612 goto fn_fail;
1613 }
1614 }
1615
1616 defaultval.d = MPIR_CVAR_GATHERV_INTER_ALGORITHM_auto;
1617 MPIR_T_CVAR_REGISTER_STATIC(
1618 MPI_INT,
1619 MPIR_CVAR_GATHERV_INTER_ALGORITHM, /* name */
1620 &MPIR_CVAR_GATHERV_INTER_ALGORITHM, /* address */
1621 1, /* count */
1622 MPI_T_VERBOSITY_USER_BASIC,
1623 MPI_T_SCOPE_ALL_EQ,
1624 defaultval,
1625 "COLLECTIVE", /* category */
1626 "Variable to select gatherv algorithm\
1627 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1628 linear - Force linear algorithm\
1629 nb - Force nonblocking algorithm");
1630 MPIR_CVAR_GATHERV_INTER_ALGORITHM = defaultval.d;
1631 tmp_str=NULL;
1632 rc = MPL_env2str("MPICH_GATHERV_INTER_ALGORITHM", &tmp_str);
1633 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHERV_INTER_ALGORITHM");
1634 rc = MPL_env2str("MPIR_PARAM_GATHERV_INTER_ALGORITHM", &tmp_str);
1635 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHERV_INTER_ALGORITHM");
1636 rc = MPL_env2str("MPIR_CVAR_GATHERV_INTER_ALGORITHM", &tmp_str);
1637 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHERV_INTER_ALGORITHM");
1638 if (tmp_str != NULL) {
1639 if (0 == strcmp(tmp_str, "auto"))
1640 MPIR_CVAR_GATHERV_INTER_ALGORITHM = MPIR_CVAR_GATHERV_INTER_ALGORITHM_auto;
1641 else if (0 == strcmp(tmp_str, "linear"))
1642 MPIR_CVAR_GATHERV_INTER_ALGORITHM = MPIR_CVAR_GATHERV_INTER_ALGORITHM_linear;
1643 else if (0 == strcmp(tmp_str, "nb"))
1644 MPIR_CVAR_GATHERV_INTER_ALGORITHM = MPIR_CVAR_GATHERV_INTER_ALGORITHM_nb;
1645 else {
1646 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_GATHERV_INTER_ALGORITHM", tmp_str);
1647 goto fn_fail;
1648 }
1649 }
1650
1651 defaultval.d = 1;
1652 MPIR_T_CVAR_REGISTER_STATIC(
1653 MPI_INT,
1654 MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE, /* name */
1655 &MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE, /* address */
1656 1, /* count */
1657 MPI_T_VERBOSITY_USER_BASIC,
1658 MPI_T_SCOPE_ALL_EQ,
1659 defaultval,
1660 "COLLECTIVE", /* category */
1661 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Gatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1662 MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE = defaultval.d;
1663 rc = MPL_env2bool("MPICH_GATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE));
1664 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHERV_DEVICE_COLLECTIVE");
1665 rc = MPL_env2bool("MPIR_PARAM_GATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE));
1666 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHERV_DEVICE_COLLECTIVE");
1667 rc = MPL_env2bool("MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE));
1668 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHERV_DEVICE_COLLECTIVE");
1669
1670 defaultval.d = 32;
1671 MPIR_T_CVAR_REGISTER_STATIC(
1672 MPI_INT,
1673 MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS, /* name */
1674 &MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS, /* address */
1675 1, /* count */
1676 MPI_T_VERBOSITY_USER_BASIC,
1677 MPI_T_SCOPE_ALL_EQ,
1678 defaultval,
1679 "COLLECTIVE", /* category */
1680 "Use Ssend (synchronous send) for intercommunicator MPI_Gatherv if the \"group B\" size is >= this value. Specifying \"-1\" always avoids using Ssend. For backwards compatibility, specifying \"0\" uses the default value.");
1681 MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS = defaultval.d;
1682 rc = MPL_env2int("MPICH_GATHERV_INTER_SSEND_MIN_PROCS", &(MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS));
1683 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_GATHERV_INTER_SSEND_MIN_PROCS");
1684 rc = MPL_env2int("MPIR_PARAM_GATHERV_INTER_SSEND_MIN_PROCS", &(MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS));
1685 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_GATHERV_INTER_SSEND_MIN_PROCS");
1686 rc = MPL_env2int("MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS", &(MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS));
1687 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_GATHERV_INTER_SSEND_MIN_PROCS");
1688
1689 defaultval.d = 2;
1690 MPIR_T_CVAR_REGISTER_STATIC(
1691 MPI_INT,
1692 MPIR_CVAR_IALLGATHER_RECEXCH_KVAL, /* name */
1693 &MPIR_CVAR_IALLGATHER_RECEXCH_KVAL, /* address */
1694 1, /* count */
1695 MPI_T_VERBOSITY_USER_BASIC,
1696 MPI_T_SCOPE_ALL_EQ,
1697 defaultval,
1698 "COLLECTIVE", /* category */
1699 "k value for recursive exchange based iallgather");
1700 MPIR_CVAR_IALLGATHER_RECEXCH_KVAL = defaultval.d;
1701 rc = MPL_env2int("MPICH_IALLGATHER_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHER_RECEXCH_KVAL));
1702 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHER_RECEXCH_KVAL");
1703 rc = MPL_env2int("MPIR_PARAM_IALLGATHER_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHER_RECEXCH_KVAL));
1704 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHER_RECEXCH_KVAL");
1705 rc = MPL_env2int("MPIR_CVAR_IALLGATHER_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHER_RECEXCH_KVAL));
1706 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHER_RECEXCH_KVAL");
1707
1708 defaultval.d = 2;
1709 MPIR_T_CVAR_REGISTER_STATIC(
1710 MPI_INT,
1711 MPIR_CVAR_IALLGATHER_BRUCKS_KVAL, /* name */
1712 &MPIR_CVAR_IALLGATHER_BRUCKS_KVAL, /* address */
1713 1, /* count */
1714 MPI_T_VERBOSITY_USER_BASIC,
1715 MPI_T_SCOPE_ALL_EQ,
1716 defaultval,
1717 "COLLECTIVE", /* category */
1718 "k value for radix in brucks based iallgather");
1719 MPIR_CVAR_IALLGATHER_BRUCKS_KVAL = defaultval.d;
1720 rc = MPL_env2int("MPICH_IALLGATHER_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHER_BRUCKS_KVAL));
1721 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHER_BRUCKS_KVAL");
1722 rc = MPL_env2int("MPIR_PARAM_IALLGATHER_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHER_BRUCKS_KVAL));
1723 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHER_BRUCKS_KVAL");
1724 rc = MPL_env2int("MPIR_CVAR_IALLGATHER_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHER_BRUCKS_KVAL));
1725 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHER_BRUCKS_KVAL");
1726
1727 defaultval.d = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_auto;
1728 MPIR_T_CVAR_REGISTER_STATIC(
1729 MPI_INT,
1730 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM, /* name */
1731 &MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM, /* address */
1732 1, /* count */
1733 MPI_T_VERBOSITY_USER_BASIC,
1734 MPI_T_SCOPE_ALL_EQ,
1735 defaultval,
1736 "COLLECTIVE", /* category */
1737 "Variable to select iallgather algorithm\
1738 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1739 sched_auto - Internal algorithm selection for sched-based algorithms\
1740 sched_ring - Force ring algorithm\
1741 sched_brucks - Force brucks algorithm\
1742 sched_recursive_doubling - Force recursive doubling algorithm\
1743 gentran_ring - Force generic transport ring algorithm\
1744 gentran_brucks - Force generic transport based brucks algorithm\
1745 gentran_recexch_doubling - Force generic transport recursive exchange with neighbours doubling in distance in each phase\
1746 gentran_recexch_halving - Force generic transport recursive exchange with neighbours halving in distance in each phase");
1747 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = defaultval.d;
1748 tmp_str=NULL;
1749 rc = MPL_env2str("MPICH_IALLGATHER_INTRA_ALGORITHM", &tmp_str);
1750 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHER_INTRA_ALGORITHM");
1751 rc = MPL_env2str("MPIR_PARAM_IALLGATHER_INTRA_ALGORITHM", &tmp_str);
1752 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHER_INTRA_ALGORITHM");
1753 rc = MPL_env2str("MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM", &tmp_str);
1754 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM");
1755 if (tmp_str != NULL) {
1756 if (0 == strcmp(tmp_str, "auto"))
1757 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_auto;
1758 else if (0 == strcmp(tmp_str, "sched_auto"))
1759 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_sched_auto;
1760 else if (0 == strcmp(tmp_str, "sched_ring"))
1761 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_sched_ring;
1762 else if (0 == strcmp(tmp_str, "sched_brucks"))
1763 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_sched_brucks;
1764 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
1765 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_sched_recursive_doubling;
1766 else if (0 == strcmp(tmp_str, "gentran_ring"))
1767 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_gentran_ring;
1768 else if (0 == strcmp(tmp_str, "gentran_brucks"))
1769 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_gentran_brucks;
1770 else if (0 == strcmp(tmp_str, "gentran_recexch_doubling"))
1771 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_gentran_recexch_doubling;
1772 else if (0 == strcmp(tmp_str, "gentran_recexch_halving"))
1773 MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM_gentran_recexch_halving;
1774 else {
1775 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLGATHER_INTRA_ALGORITHM", tmp_str);
1776 goto fn_fail;
1777 }
1778 }
1779
1780 defaultval.d = MPIR_CVAR_IALLGATHER_INTER_ALGORITHM_auto;
1781 MPIR_T_CVAR_REGISTER_STATIC(
1782 MPI_INT,
1783 MPIR_CVAR_IALLGATHER_INTER_ALGORITHM, /* name */
1784 &MPIR_CVAR_IALLGATHER_INTER_ALGORITHM, /* address */
1785 1, /* count */
1786 MPI_T_VERBOSITY_USER_BASIC,
1787 MPI_T_SCOPE_ALL_EQ,
1788 defaultval,
1789 "COLLECTIVE", /* category */
1790 "Variable to select iallgather algorithm\
1791 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1792 sched_auto - Internal algorithm selection for sched-based algorithms\
1793 sched_local_gather_remote_bcast - Force local-gather-remote-bcast algorithm");
1794 MPIR_CVAR_IALLGATHER_INTER_ALGORITHM = defaultval.d;
1795 tmp_str=NULL;
1796 rc = MPL_env2str("MPICH_IALLGATHER_INTER_ALGORITHM", &tmp_str);
1797 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHER_INTER_ALGORITHM");
1798 rc = MPL_env2str("MPIR_PARAM_IALLGATHER_INTER_ALGORITHM", &tmp_str);
1799 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHER_INTER_ALGORITHM");
1800 rc = MPL_env2str("MPIR_CVAR_IALLGATHER_INTER_ALGORITHM", &tmp_str);
1801 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHER_INTER_ALGORITHM");
1802 if (tmp_str != NULL) {
1803 if (0 == strcmp(tmp_str, "auto"))
1804 MPIR_CVAR_IALLGATHER_INTER_ALGORITHM = MPIR_CVAR_IALLGATHER_INTER_ALGORITHM_auto;
1805 else if (0 == strcmp(tmp_str, "sched_auto"))
1806 MPIR_CVAR_IALLGATHER_INTER_ALGORITHM = MPIR_CVAR_IALLGATHER_INTER_ALGORITHM_sched_auto;
1807 else if (0 == strcmp(tmp_str, "sched_local_gather_remote_bcast"))
1808 MPIR_CVAR_IALLGATHER_INTER_ALGORITHM = MPIR_CVAR_IALLGATHER_INTER_ALGORITHM_sched_local_gather_remote_bcast;
1809 else {
1810 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLGATHER_INTER_ALGORITHM", tmp_str);
1811 goto fn_fail;
1812 }
1813 }
1814
1815 defaultval.d = 1;
1816 MPIR_T_CVAR_REGISTER_STATIC(
1817 MPI_INT,
1818 MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE, /* name */
1819 &MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE, /* address */
1820 1, /* count */
1821 MPI_T_VERBOSITY_USER_BASIC,
1822 MPI_T_SCOPE_ALL_EQ,
1823 defaultval,
1824 "COLLECTIVE", /* category */
1825 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iallgather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1826 MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE = defaultval.d;
1827 rc = MPL_env2bool("MPICH_IALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE));
1828 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHER_DEVICE_COLLECTIVE");
1829 rc = MPL_env2bool("MPIR_PARAM_IALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE));
1830 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHER_DEVICE_COLLECTIVE");
1831 rc = MPL_env2bool("MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE));
1832 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHER_DEVICE_COLLECTIVE");
1833
1834 defaultval.d = 2;
1835 MPIR_T_CVAR_REGISTER_STATIC(
1836 MPI_INT,
1837 MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL, /* name */
1838 &MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL, /* address */
1839 1, /* count */
1840 MPI_T_VERBOSITY_USER_BASIC,
1841 MPI_T_SCOPE_ALL_EQ,
1842 defaultval,
1843 "COLLECTIVE", /* category */
1844 "k value for recursive exchange based iallgatherv");
1845 MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL = defaultval.d;
1846 rc = MPL_env2int("MPICH_IALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL));
1847 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHERV_RECEXCH_KVAL");
1848 rc = MPL_env2int("MPIR_PARAM_IALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL));
1849 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHERV_RECEXCH_KVAL");
1850 rc = MPL_env2int("MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL));
1851 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHERV_RECEXCH_KVAL");
1852
1853 defaultval.d = 2;
1854 MPIR_T_CVAR_REGISTER_STATIC(
1855 MPI_INT,
1856 MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL, /* name */
1857 &MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL, /* address */
1858 1, /* count */
1859 MPI_T_VERBOSITY_USER_BASIC,
1860 MPI_T_SCOPE_ALL_EQ,
1861 defaultval,
1862 "COLLECTIVE", /* category */
1863 "k value for radix in brucks based iallgatherv");
1864 MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL = defaultval.d;
1865 rc = MPL_env2int("MPICH_IALLGATHERV_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL));
1866 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHERV_BRUCKS_KVAL");
1867 rc = MPL_env2int("MPIR_PARAM_IALLGATHERV_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL));
1868 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHERV_BRUCKS_KVAL");
1869 rc = MPL_env2int("MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL", &(MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL));
1870 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHERV_BRUCKS_KVAL");
1871
1872 defaultval.d = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_auto;
1873 MPIR_T_CVAR_REGISTER_STATIC(
1874 MPI_INT,
1875 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM, /* name */
1876 &MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM, /* address */
1877 1, /* count */
1878 MPI_T_VERBOSITY_USER_BASIC,
1879 MPI_T_SCOPE_ALL_EQ,
1880 defaultval,
1881 "COLLECTIVE", /* category */
1882 "Variable to select iallgatherv algorithm\
1883 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1884 sched_auto - Internal algorithm selection for sched-based algorithms\
1885 sched_brucks - Force brucks algorithm\
1886 sched_recursive_doubling - Force recursive doubling algorithm\
1887 sched_ring - Force ring algorithm\
1888 gentran_recexch_doubling - Force generic transport recursive exchange with neighbours doubling in distance in each phase\
1889 gentran_recexch_halving - Force generic transport recursive exchange with neighbours halving in distance in each phase\
1890 gentran_ring - Force generic transport ring algorithm\
1891 gentran_brucks - Force generic transport based brucks algorithm");
1892 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = defaultval.d;
1893 tmp_str=NULL;
1894 rc = MPL_env2str("MPICH_IALLGATHERV_INTRA_ALGORITHM", &tmp_str);
1895 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHERV_INTRA_ALGORITHM");
1896 rc = MPL_env2str("MPIR_PARAM_IALLGATHERV_INTRA_ALGORITHM", &tmp_str);
1897 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHERV_INTRA_ALGORITHM");
1898 rc = MPL_env2str("MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM", &tmp_str);
1899 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM");
1900 if (tmp_str != NULL) {
1901 if (0 == strcmp(tmp_str, "auto"))
1902 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_auto;
1903 else if (0 == strcmp(tmp_str, "sched_auto"))
1904 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_sched_auto;
1905 else if (0 == strcmp(tmp_str, "sched_brucks"))
1906 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_sched_brucks;
1907 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
1908 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_sched_recursive_doubling;
1909 else if (0 == strcmp(tmp_str, "sched_ring"))
1910 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_sched_ring;
1911 else if (0 == strcmp(tmp_str, "gentran_recexch_doubling"))
1912 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_gentran_recexch_doubling;
1913 else if (0 == strcmp(tmp_str, "gentran_recexch_halving"))
1914 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_gentran_recexch_halving;
1915 else if (0 == strcmp(tmp_str, "gentran_ring"))
1916 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_gentran_ring;
1917 else if (0 == strcmp(tmp_str, "gentran_brucks"))
1918 MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM_gentran_brucks;
1919 else {
1920 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLGATHERV_INTRA_ALGORITHM", tmp_str);
1921 goto fn_fail;
1922 }
1923 }
1924
1925 defaultval.d = MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM_auto;
1926 MPIR_T_CVAR_REGISTER_STATIC(
1927 MPI_INT,
1928 MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM, /* name */
1929 &MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM, /* address */
1930 1, /* count */
1931 MPI_T_VERBOSITY_USER_BASIC,
1932 MPI_T_SCOPE_ALL_EQ,
1933 defaultval,
1934 "COLLECTIVE", /* category */
1935 "Variable to select iallgatherv algorithm\
1936 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
1937 sched_auto - Internal algorithm selection for sched-based algorithms\
1938 sched_remote_gather_local_bcast - Force remote-gather-local-bcast algorithm");
1939 MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM = defaultval.d;
1940 tmp_str=NULL;
1941 rc = MPL_env2str("MPICH_IALLGATHERV_INTER_ALGORITHM", &tmp_str);
1942 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHERV_INTER_ALGORITHM");
1943 rc = MPL_env2str("MPIR_PARAM_IALLGATHERV_INTER_ALGORITHM", &tmp_str);
1944 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHERV_INTER_ALGORITHM");
1945 rc = MPL_env2str("MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM", &tmp_str);
1946 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM");
1947 if (tmp_str != NULL) {
1948 if (0 == strcmp(tmp_str, "auto"))
1949 MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM_auto;
1950 else if (0 == strcmp(tmp_str, "sched_auto"))
1951 MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM_sched_auto;
1952 else if (0 == strcmp(tmp_str, "sched_remote_gather_local_bcast"))
1953 MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM_sched_remote_gather_local_bcast;
1954 else {
1955 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLGATHERV_INTER_ALGORITHM", tmp_str);
1956 goto fn_fail;
1957 }
1958 }
1959
1960 defaultval.d = 1;
1961 MPIR_T_CVAR_REGISTER_STATIC(
1962 MPI_INT,
1963 MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE, /* name */
1964 &MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE, /* address */
1965 1, /* count */
1966 MPI_T_VERBOSITY_USER_BASIC,
1967 MPI_T_SCOPE_ALL_EQ,
1968 defaultval,
1969 "COLLECTIVE", /* category */
1970 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iallgatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
1971 MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE = defaultval.d;
1972 rc = MPL_env2bool("MPICH_IALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE));
1973 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLGATHERV_DEVICE_COLLECTIVE");
1974 rc = MPL_env2bool("MPIR_PARAM_IALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE));
1975 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLGATHERV_DEVICE_COLLECTIVE");
1976 rc = MPL_env2bool("MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE));
1977 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLGATHERV_DEVICE_COLLECTIVE");
1978
1979 defaultval.d = 2;
1980 MPIR_T_CVAR_REGISTER_STATIC(
1981 MPI_INT,
1982 MPIR_CVAR_IALLREDUCE_TREE_KVAL, /* name */
1983 &MPIR_CVAR_IALLREDUCE_TREE_KVAL, /* address */
1984 1, /* count */
1985 MPI_T_VERBOSITY_USER_BASIC,
1986 MPI_T_SCOPE_ALL_EQ,
1987 defaultval,
1988 "COLLECTIVE", /* category */
1989 "k value for tree based iallreduce (for tree_kary and tree_knomial)");
1990 MPIR_CVAR_IALLREDUCE_TREE_KVAL = defaultval.d;
1991 rc = MPL_env2int("MPICH_IALLREDUCE_TREE_KVAL", &(MPIR_CVAR_IALLREDUCE_TREE_KVAL));
1992 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_TREE_KVAL");
1993 rc = MPL_env2int("MPIR_PARAM_IALLREDUCE_TREE_KVAL", &(MPIR_CVAR_IALLREDUCE_TREE_KVAL));
1994 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_TREE_KVAL");
1995 rc = MPL_env2int("MPIR_CVAR_IALLREDUCE_TREE_KVAL", &(MPIR_CVAR_IALLREDUCE_TREE_KVAL));
1996 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_TREE_KVAL");
1997
1998 defaultval.str = (const char *) "kary";
1999 MPIR_T_CVAR_REGISTER_STATIC(
2000 MPI_CHAR,
2001 MPIR_CVAR_IALLREDUCE_TREE_TYPE, /* name */
2002 &MPIR_CVAR_IALLREDUCE_TREE_TYPE, /* address */
2003 MPIR_CVAR_MAX_STRLEN, /* count */
2004 MPI_T_VERBOSITY_USER_BASIC,
2005 MPI_T_SCOPE_ALL_EQ,
2006 defaultval,
2007 "COLLECTIVE", /* category */
2008 "Tree type for tree based ibcast kary - kary tree type knomial_1 - knomial_1 tree type knomial_2 - knomial_2 tree type");
2009 tmp_str = defaultval.str;
2010 rc = MPL_env2str("MPICH_IALLREDUCE_TREE_TYPE", &tmp_str);
2011 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_TREE_TYPE");
2012 rc = MPL_env2str("MPIR_PARAM_IALLREDUCE_TREE_TYPE", &tmp_str);
2013 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_TREE_TYPE");
2014 rc = MPL_env2str("MPIR_CVAR_IALLREDUCE_TREE_TYPE", &tmp_str);
2015 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_TREE_TYPE");
2016 if (tmp_str != NULL) {
2017 MPIR_CVAR_IALLREDUCE_TREE_TYPE = MPL_strdup(tmp_str);
2018 MPIR_CVAR_assert(MPIR_CVAR_IALLREDUCE_TREE_TYPE);
2019 if (MPIR_CVAR_IALLREDUCE_TREE_TYPE == NULL) {
2020 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_IALLREDUCE_TREE_TYPE");
2021 goto fn_fail;
2022 }
2023 }
2024 else {
2025 MPIR_CVAR_IALLREDUCE_TREE_TYPE = NULL;
2026 }
2027
2028 defaultval.d = 0;
2029 MPIR_T_CVAR_REGISTER_STATIC(
2030 MPI_INT,
2031 MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE, /* name */
2032 &MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE, /* address */
2033 1, /* count */
2034 MPI_T_VERBOSITY_USER_BASIC,
2035 MPI_T_SCOPE_ALL_EQ,
2036 defaultval,
2037 "COLLECTIVE", /* category */
2038 "Maximum chunk size (in bytes) for pipelining in tree based iallreduce. Default value is 0, that is, no pipelining by default");
2039 MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE = defaultval.d;
2040 rc = MPL_env2int("MPICH_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE));
2041 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE");
2042 rc = MPL_env2int("MPIR_PARAM_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE));
2043 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE");
2044 rc = MPL_env2int("MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE));
2045 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_TREE_PIPELINE_CHUNK_SIZE");
2046
2047 defaultval.d = 0;
2048 MPIR_T_CVAR_REGISTER_STATIC(
2049 MPI_INT,
2050 MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD, /* name */
2051 &MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD, /* address */
2052 1, /* count */
2053 MPI_T_VERBOSITY_USER_BASIC,
2054 MPI_T_SCOPE_ALL_EQ,
2055 defaultval,
2056 "COLLECTIVE", /* category */
2057 "If set to true, a rank in tree_kary and tree_knomial algorithms will allocate a dedicated buffer for every child it receives data from. This would mean more memory consumption but it would allow preposting of the receives and hence reduce the number of unexpected messages. If set to false, there is only one buffer that is used to receive the data from all the children. The receives are therefore serialized, that is, only one receive can be posted at a time.");
2058 MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD = defaultval.d;
2059 rc = MPL_env2bool("MPICH_IALLREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD));
2060 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_TREE_BUFFER_PER_CHILD");
2061 rc = MPL_env2bool("MPIR_PARAM_IALLREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD));
2062 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_TREE_BUFFER_PER_CHILD");
2063 rc = MPL_env2bool("MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD));
2064 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_TREE_BUFFER_PER_CHILD");
2065
2066 defaultval.d = 2;
2067 MPIR_T_CVAR_REGISTER_STATIC(
2068 MPI_INT,
2069 MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL, /* name */
2070 &MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL, /* address */
2071 1, /* count */
2072 MPI_T_VERBOSITY_USER_BASIC,
2073 MPI_T_SCOPE_ALL_EQ,
2074 defaultval,
2075 "COLLECTIVE", /* category */
2076 "k value for recursive exchange based iallreduce");
2077 MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL = defaultval.d;
2078 rc = MPL_env2int("MPICH_IALLREDUCE_RECEXCH_KVAL", &(MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL));
2079 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_RECEXCH_KVAL");
2080 rc = MPL_env2int("MPIR_PARAM_IALLREDUCE_RECEXCH_KVAL", &(MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL));
2081 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_RECEXCH_KVAL");
2082 rc = MPL_env2int("MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL", &(MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL));
2083 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_RECEXCH_KVAL");
2084
2085 defaultval.d = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_auto;
2086 MPIR_T_CVAR_REGISTER_STATIC(
2087 MPI_INT,
2088 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM, /* name */
2089 &MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM, /* address */
2090 1, /* count */
2091 MPI_T_VERBOSITY_USER_BASIC,
2092 MPI_T_SCOPE_ALL_EQ,
2093 defaultval,
2094 "COLLECTIVE", /* category */
2095 "Variable to select iallreduce algorithm\
2096 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2097 sched_auto - Internal algorithm selection for sched-based algorithms\
2098 sched_naive - Force naive algorithm\
2099 sched_smp - Force smp algorithm\
2100 sched_recursive_doubling - Force recursive doubling algorithm\
2101 sched_reduce_scatter_allgather - Force reduce scatter allgather algorithm\
2102 gentran_recexch_single_buffer - Force generic transport recursive exchange with single buffer for receives\
2103 gentran_recexch_multiple_buffer - Force generic transport recursive exchange with multiple buffers for receives\
2104 gentran_tree - Force generic transport tree algorithm\
2105 gentran_ring - Force generic transport ring algorithm\
2106 gentran_recexch_reduce_scatter_recexch_allgatherv - Force generic transport recursive exchange with reduce scatter and allgatherv");
2107 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = defaultval.d;
2108 tmp_str=NULL;
2109 rc = MPL_env2str("MPICH_IALLREDUCE_INTRA_ALGORITHM", &tmp_str);
2110 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_INTRA_ALGORITHM");
2111 rc = MPL_env2str("MPIR_PARAM_IALLREDUCE_INTRA_ALGORITHM", &tmp_str);
2112 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_INTRA_ALGORITHM");
2113 rc = MPL_env2str("MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM", &tmp_str);
2114 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM");
2115 if (tmp_str != NULL) {
2116 if (0 == strcmp(tmp_str, "auto"))
2117 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_auto;
2118 else if (0 == strcmp(tmp_str, "sched_auto"))
2119 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_sched_auto;
2120 else if (0 == strcmp(tmp_str, "sched_naive"))
2121 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_sched_naive;
2122 else if (0 == strcmp(tmp_str, "sched_smp"))
2123 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_sched_smp;
2124 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
2125 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_sched_recursive_doubling;
2126 else if (0 == strcmp(tmp_str, "sched_reduce_scatter_allgather"))
2127 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_sched_reduce_scatter_allgather;
2128 else if (0 == strcmp(tmp_str, "gentran_recexch_single_buffer"))
2129 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_gentran_recexch_single_buffer;
2130 else if (0 == strcmp(tmp_str, "gentran_recexch_multiple_buffer"))
2131 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_gentran_recexch_multiple_buffer;
2132 else if (0 == strcmp(tmp_str, "gentran_tree"))
2133 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_gentran_tree;
2134 else if (0 == strcmp(tmp_str, "gentran_ring"))
2135 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_gentran_ring;
2136 else if (0 == strcmp(tmp_str, "gentran_recexch_reduce_scatter_recexch_allgatherv"))
2137 MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM_gentran_recexch_reduce_scatter_recexch_allgatherv;
2138 else {
2139 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLREDUCE_INTRA_ALGORITHM", tmp_str);
2140 goto fn_fail;
2141 }
2142 }
2143
2144 defaultval.d = MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM_auto;
2145 MPIR_T_CVAR_REGISTER_STATIC(
2146 MPI_INT,
2147 MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM, /* name */
2148 &MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM, /* address */
2149 1, /* count */
2150 MPI_T_VERBOSITY_USER_BASIC,
2151 MPI_T_SCOPE_ALL_EQ,
2152 defaultval,
2153 "COLLECTIVE", /* category */
2154 "Variable to select iallreduce algorithm\
2155 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2156 sched_auto - Internal algorithm selection for sched-based algorithms\
2157 sched_remote_reduce_local_bcast - Force remote-reduce-local-bcast algorithm");
2158 MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM = defaultval.d;
2159 tmp_str=NULL;
2160 rc = MPL_env2str("MPICH_IALLREDUCE_INTER_ALGORITHM", &tmp_str);
2161 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_INTER_ALGORITHM");
2162 rc = MPL_env2str("MPIR_PARAM_IALLREDUCE_INTER_ALGORITHM", &tmp_str);
2163 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_INTER_ALGORITHM");
2164 rc = MPL_env2str("MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM", &tmp_str);
2165 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM");
2166 if (tmp_str != NULL) {
2167 if (0 == strcmp(tmp_str, "auto"))
2168 MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM_auto;
2169 else if (0 == strcmp(tmp_str, "sched_auto"))
2170 MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM_sched_auto;
2171 else if (0 == strcmp(tmp_str, "sched_remote_reduce_local_bcast"))
2172 MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM = MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM_sched_remote_reduce_local_bcast;
2173 else {
2174 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLREDUCE_INTER_ALGORITHM", tmp_str);
2175 goto fn_fail;
2176 }
2177 }
2178
2179 defaultval.d = 1;
2180 MPIR_T_CVAR_REGISTER_STATIC(
2181 MPI_INT,
2182 MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE, /* name */
2183 &MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE, /* address */
2184 1, /* count */
2185 MPI_T_VERBOSITY_USER_BASIC,
2186 MPI_T_SCOPE_ALL_EQ,
2187 defaultval,
2188 "COLLECTIVE", /* category */
2189 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iallreduce will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2190 MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE = defaultval.d;
2191 rc = MPL_env2bool("MPICH_IALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE));
2192 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLREDUCE_DEVICE_COLLECTIVE");
2193 rc = MPL_env2bool("MPIR_PARAM_IALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE));
2194 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLREDUCE_DEVICE_COLLECTIVE");
2195 rc = MPL_env2bool("MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE));
2196 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLREDUCE_DEVICE_COLLECTIVE");
2197
2198 defaultval.d = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_auto;
2199 MPIR_T_CVAR_REGISTER_STATIC(
2200 MPI_INT,
2201 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM, /* name */
2202 &MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM, /* address */
2203 1, /* count */
2204 MPI_T_VERBOSITY_USER_BASIC,
2205 MPI_T_SCOPE_ALL_EQ,
2206 defaultval,
2207 "COLLECTIVE", /* category */
2208 "Variable to select ialltoall algorithm\
2209 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2210 sched_auto - Internal algorithm selection for sched-based algorithms\
2211 sched_brucks - Force brucks algorithm\
2212 sched_inplace - Force inplace algorithm\
2213 sched_pairwise - Force pairwise algorithm\
2214 sched_permuted_sendrecv - Force permuted sendrecv algorithm\
2215 gentran_ring - Force generic transport based ring algorithm\
2216 gentran_brucks - Force generic transport based brucks algorithm\
2217 gentran_scattered - Force generic transport based scattered algorithm");
2218 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = defaultval.d;
2219 tmp_str=NULL;
2220 rc = MPL_env2str("MPICH_IALLTOALL_INTRA_ALGORITHM", &tmp_str);
2221 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_INTRA_ALGORITHM");
2222 rc = MPL_env2str("MPIR_PARAM_IALLTOALL_INTRA_ALGORITHM", &tmp_str);
2223 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_INTRA_ALGORITHM");
2224 rc = MPL_env2str("MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM", &tmp_str);
2225 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM");
2226 if (tmp_str != NULL) {
2227 if (0 == strcmp(tmp_str, "auto"))
2228 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_auto;
2229 else if (0 == strcmp(tmp_str, "sched_auto"))
2230 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_sched_auto;
2231 else if (0 == strcmp(tmp_str, "sched_brucks"))
2232 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_sched_brucks;
2233 else if (0 == strcmp(tmp_str, "sched_inplace"))
2234 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_sched_inplace;
2235 else if (0 == strcmp(tmp_str, "sched_pairwise"))
2236 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_sched_pairwise;
2237 else if (0 == strcmp(tmp_str, "sched_permuted_sendrecv"))
2238 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_sched_permuted_sendrecv;
2239 else if (0 == strcmp(tmp_str, "gentran_ring"))
2240 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_gentran_ring;
2241 else if (0 == strcmp(tmp_str, "gentran_brucks"))
2242 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_gentran_brucks;
2243 else if (0 == strcmp(tmp_str, "gentran_scattered"))
2244 MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM_gentran_scattered;
2245 else {
2246 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALL_INTRA_ALGORITHM", tmp_str);
2247 goto fn_fail;
2248 }
2249 }
2250
2251 defaultval.d = MPIR_CVAR_IALLTOALL_INTER_ALGORITHM_auto;
2252 MPIR_T_CVAR_REGISTER_STATIC(
2253 MPI_INT,
2254 MPIR_CVAR_IALLTOALL_INTER_ALGORITHM, /* name */
2255 &MPIR_CVAR_IALLTOALL_INTER_ALGORITHM, /* address */
2256 1, /* count */
2257 MPI_T_VERBOSITY_USER_BASIC,
2258 MPI_T_SCOPE_ALL_EQ,
2259 defaultval,
2260 "COLLECTIVE", /* category */
2261 "Variable to select ialltoall algorithm\
2262 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2263 sched_auto - Internal algorithm selection for sched-based algorithms\
2264 sched_pairwise_exchange - Force pairwise exchange algorithm");
2265 MPIR_CVAR_IALLTOALL_INTER_ALGORITHM = defaultval.d;
2266 tmp_str=NULL;
2267 rc = MPL_env2str("MPICH_IALLTOALL_INTER_ALGORITHM", &tmp_str);
2268 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_INTER_ALGORITHM");
2269 rc = MPL_env2str("MPIR_PARAM_IALLTOALL_INTER_ALGORITHM", &tmp_str);
2270 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_INTER_ALGORITHM");
2271 rc = MPL_env2str("MPIR_CVAR_IALLTOALL_INTER_ALGORITHM", &tmp_str);
2272 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_INTER_ALGORITHM");
2273 if (tmp_str != NULL) {
2274 if (0 == strcmp(tmp_str, "auto"))
2275 MPIR_CVAR_IALLTOALL_INTER_ALGORITHM = MPIR_CVAR_IALLTOALL_INTER_ALGORITHM_auto;
2276 else if (0 == strcmp(tmp_str, "sched_auto"))
2277 MPIR_CVAR_IALLTOALL_INTER_ALGORITHM = MPIR_CVAR_IALLTOALL_INTER_ALGORITHM_sched_auto;
2278 else if (0 == strcmp(tmp_str, "sched_pairwise_exchange"))
2279 MPIR_CVAR_IALLTOALL_INTER_ALGORITHM = MPIR_CVAR_IALLTOALL_INTER_ALGORITHM_sched_pairwise_exchange;
2280 else {
2281 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALL_INTER_ALGORITHM", tmp_str);
2282 goto fn_fail;
2283 }
2284 }
2285
2286 defaultval.d = 1;
2287 MPIR_T_CVAR_REGISTER_STATIC(
2288 MPI_INT,
2289 MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE, /* name */
2290 &MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE, /* address */
2291 1, /* count */
2292 MPI_T_VERBOSITY_USER_BASIC,
2293 MPI_T_SCOPE_ALL_EQ,
2294 defaultval,
2295 "COLLECTIVE", /* category */
2296 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ialltoall will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2297 MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE = defaultval.d;
2298 rc = MPL_env2bool("MPICH_IALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE));
2299 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_DEVICE_COLLECTIVE");
2300 rc = MPL_env2bool("MPIR_PARAM_IALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE));
2301 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_DEVICE_COLLECTIVE");
2302 rc = MPL_env2bool("MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE));
2303 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_DEVICE_COLLECTIVE");
2304
2305 defaultval.d = 2;
2306 MPIR_T_CVAR_REGISTER_STATIC(
2307 MPI_INT,
2308 MPIR_CVAR_IALLTOALL_BRUCKS_KVAL, /* name */
2309 &MPIR_CVAR_IALLTOALL_BRUCKS_KVAL, /* address */
2310 1, /* count */
2311 MPI_T_VERBOSITY_USER_BASIC,
2312 MPI_T_SCOPE_ALL_EQ,
2313 defaultval,
2314 "COLLECTIVE", /* category */
2315 "radix (k) value for generic transport brucks based ialltoall");
2316 MPIR_CVAR_IALLTOALL_BRUCKS_KVAL = defaultval.d;
2317 rc = MPL_env2int("MPICH_IALLTOALL_BRUCKS_KVAL", &(MPIR_CVAR_IALLTOALL_BRUCKS_KVAL));
2318 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_BRUCKS_KVAL");
2319 rc = MPL_env2int("MPIR_PARAM_IALLTOALL_BRUCKS_KVAL", &(MPIR_CVAR_IALLTOALL_BRUCKS_KVAL));
2320 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_BRUCKS_KVAL");
2321 rc = MPL_env2int("MPIR_CVAR_IALLTOALL_BRUCKS_KVAL", &(MPIR_CVAR_IALLTOALL_BRUCKS_KVAL));
2322 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_BRUCKS_KVAL");
2323
2324 defaultval.d = 0;
2325 MPIR_T_CVAR_REGISTER_STATIC(
2326 MPI_INT,
2327 MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR, /* name */
2328 &MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR, /* address */
2329 1, /* count */
2330 MPI_T_VERBOSITY_USER_BASIC,
2331 MPI_T_SCOPE_ALL_EQ,
2332 defaultval,
2333 "COLLECTIVE", /* category */
2334 "If set to true, the gentran based brucks algorithm will allocate dedicated send and receive buffers for every neighbor in the brucks algorithm. Otherwise, it would reuse a single buffer for sending and receiving data to/from neighbors");
2335 MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR = defaultval.d;
2336 rc = MPL_env2bool("MPICH_IALLTOALL_BRUCKS_BUFFER_PER_NBR", &(MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR));
2337 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_BRUCKS_BUFFER_PER_NBR");
2338 rc = MPL_env2bool("MPIR_PARAM_IALLTOALL_BRUCKS_BUFFER_PER_NBR", &(MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR));
2339 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_BRUCKS_BUFFER_PER_NBR");
2340 rc = MPL_env2bool("MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR", &(MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR));
2341 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_BRUCKS_BUFFER_PER_NBR");
2342
2343 defaultval.d = 64;
2344 MPIR_T_CVAR_REGISTER_STATIC(
2345 MPI_INT,
2346 MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS, /* name */
2347 &MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS, /* address */
2348 1, /* count */
2349 MPI_T_VERBOSITY_USER_BASIC,
2350 MPI_T_SCOPE_ALL_EQ,
2351 defaultval,
2352 "COLLECTIVE", /* category */
2353 "Maximum number of outstanding sends and recvs posted at a time");
2354 MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS = defaultval.d;
2355 rc = MPL_env2int("MPICH_IALLTOALL_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS));
2356 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_SCATTERED_OUTSTANDING_TASKS");
2357 rc = MPL_env2int("MPIR_PARAM_IALLTOALL_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS));
2358 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_SCATTERED_OUTSTANDING_TASKS");
2359 rc = MPL_env2int("MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS));
2360 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_SCATTERED_OUTSTANDING_TASKS");
2361
2362 defaultval.d = 4;
2363 MPIR_T_CVAR_REGISTER_STATIC(
2364 MPI_INT,
2365 MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE, /* name */
2366 &MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE, /* address */
2367 1, /* count */
2368 MPI_T_VERBOSITY_USER_BASIC,
2369 MPI_T_SCOPE_ALL_EQ,
2370 defaultval,
2371 "COLLECTIVE", /* category */
2372 "Number of send/receive tasks that scattered algorithm waits for completion before posting another batch of send/receives of that size");
2373 MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE = defaultval.d;
2374 rc = MPL_env2int("MPICH_IALLTOALL_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE));
2375 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALL_SCATTERED_BATCH_SIZE");
2376 rc = MPL_env2int("MPIR_PARAM_IALLTOALL_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE));
2377 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALL_SCATTERED_BATCH_SIZE");
2378 rc = MPL_env2int("MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE));
2379 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALL_SCATTERED_BATCH_SIZE");
2380
2381 defaultval.d = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_auto;
2382 MPIR_T_CVAR_REGISTER_STATIC(
2383 MPI_INT,
2384 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM, /* name */
2385 &MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM, /* address */
2386 1, /* count */
2387 MPI_T_VERBOSITY_USER_BASIC,
2388 MPI_T_SCOPE_ALL_EQ,
2389 defaultval,
2390 "COLLECTIVE", /* category */
2391 "Variable to select ialltoallv algorithm\
2392 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2393 sched_auto - Internal algorithm selection for sched-based algorithms\
2394 sched_blocked - Force blocked algorithm\
2395 sched_inplace - Force inplace algorithm\
2396 sched_pairwise_exchange - Force pairwise exchange algorithm\
2397 gentran_scattered - Force generic transport based scattered algorithm\
2398 gentran_blocked - Force generic transport blocked algorithm\
2399 gentran_inplace - Force generic transport inplace algorithm");
2400 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = defaultval.d;
2401 tmp_str=NULL;
2402 rc = MPL_env2str("MPICH_IALLTOALLV_INTRA_ALGORITHM", &tmp_str);
2403 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLV_INTRA_ALGORITHM");
2404 rc = MPL_env2str("MPIR_PARAM_IALLTOALLV_INTRA_ALGORITHM", &tmp_str);
2405 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLV_INTRA_ALGORITHM");
2406 rc = MPL_env2str("MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM", &tmp_str);
2407 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM");
2408 if (tmp_str != NULL) {
2409 if (0 == strcmp(tmp_str, "auto"))
2410 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_auto;
2411 else if (0 == strcmp(tmp_str, "sched_auto"))
2412 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_sched_auto;
2413 else if (0 == strcmp(tmp_str, "sched_blocked"))
2414 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_sched_blocked;
2415 else if (0 == strcmp(tmp_str, "sched_inplace"))
2416 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_sched_inplace;
2417 else if (0 == strcmp(tmp_str, "sched_pairwise_exchange"))
2418 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_sched_pairwise_exchange;
2419 else if (0 == strcmp(tmp_str, "gentran_scattered"))
2420 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_gentran_scattered;
2421 else if (0 == strcmp(tmp_str, "gentran_blocked"))
2422 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_gentran_blocked;
2423 else if (0 == strcmp(tmp_str, "gentran_inplace"))
2424 MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM_gentran_inplace;
2425 else {
2426 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALLV_INTRA_ALGORITHM", tmp_str);
2427 goto fn_fail;
2428 }
2429 }
2430
2431 defaultval.d = MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM_auto;
2432 MPIR_T_CVAR_REGISTER_STATIC(
2433 MPI_INT,
2434 MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM, /* name */
2435 &MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM, /* address */
2436 1, /* count */
2437 MPI_T_VERBOSITY_USER_BASIC,
2438 MPI_T_SCOPE_ALL_EQ,
2439 defaultval,
2440 "COLLECTIVE", /* category */
2441 "Variable to select ialltoallv algorithm\
2442 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2443 sched_auto - Internal algorithm selection for sched-based algorithms\
2444 sched_pairwise_exchange - Force pairwise exchange algorithm");
2445 MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM = defaultval.d;
2446 tmp_str=NULL;
2447 rc = MPL_env2str("MPICH_IALLTOALLV_INTER_ALGORITHM", &tmp_str);
2448 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLV_INTER_ALGORITHM");
2449 rc = MPL_env2str("MPIR_PARAM_IALLTOALLV_INTER_ALGORITHM", &tmp_str);
2450 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLV_INTER_ALGORITHM");
2451 rc = MPL_env2str("MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM", &tmp_str);
2452 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM");
2453 if (tmp_str != NULL) {
2454 if (0 == strcmp(tmp_str, "auto"))
2455 MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM_auto;
2456 else if (0 == strcmp(tmp_str, "sched_auto"))
2457 MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM_sched_auto;
2458 else if (0 == strcmp(tmp_str, "sched_pairwise_exchange"))
2459 MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM_sched_pairwise_exchange;
2460 else {
2461 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALLV_INTER_ALGORITHM", tmp_str);
2462 goto fn_fail;
2463 }
2464 }
2465
2466 defaultval.d = 1;
2467 MPIR_T_CVAR_REGISTER_STATIC(
2468 MPI_INT,
2469 MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE, /* name */
2470 &MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE, /* address */
2471 1, /* count */
2472 MPI_T_VERBOSITY_USER_BASIC,
2473 MPI_T_SCOPE_ALL_EQ,
2474 defaultval,
2475 "COLLECTIVE", /* category */
2476 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ialltoallv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2477 MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE = defaultval.d;
2478 rc = MPL_env2bool("MPICH_IALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE));
2479 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLV_DEVICE_COLLECTIVE");
2480 rc = MPL_env2bool("MPIR_PARAM_IALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE));
2481 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLV_DEVICE_COLLECTIVE");
2482 rc = MPL_env2bool("MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE));
2483 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLV_DEVICE_COLLECTIVE");
2484
2485 defaultval.d = 64;
2486 MPIR_T_CVAR_REGISTER_STATIC(
2487 MPI_INT,
2488 MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS, /* name */
2489 &MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS, /* address */
2490 1, /* count */
2491 MPI_T_VERBOSITY_USER_BASIC,
2492 MPI_T_SCOPE_ALL_EQ,
2493 defaultval,
2494 "COLLECTIVE", /* category */
2495 "Maximum number of outstanding sends and recvs posted at a time");
2496 MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS = defaultval.d;
2497 rc = MPL_env2int("MPICH_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS));
2498 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS");
2499 rc = MPL_env2int("MPIR_PARAM_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS));
2500 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS");
2501 rc = MPL_env2int("MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS", &(MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS));
2502 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLV_SCATTERED_OUTSTANDING_TASKS");
2503
2504 defaultval.d = 4;
2505 MPIR_T_CVAR_REGISTER_STATIC(
2506 MPI_INT,
2507 MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE, /* name */
2508 &MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE, /* address */
2509 1, /* count */
2510 MPI_T_VERBOSITY_USER_BASIC,
2511 MPI_T_SCOPE_ALL_EQ,
2512 defaultval,
2513 "COLLECTIVE", /* category */
2514 "Number of send/receive tasks that scattered algorithm waits for completion before posting another batch of send/receives of that size");
2515 MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE = defaultval.d;
2516 rc = MPL_env2int("MPICH_IALLTOALLV_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE));
2517 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLV_SCATTERED_BATCH_SIZE");
2518 rc = MPL_env2int("MPIR_PARAM_IALLTOALLV_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE));
2519 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLV_SCATTERED_BATCH_SIZE");
2520 rc = MPL_env2int("MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE", &(MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE));
2521 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLV_SCATTERED_BATCH_SIZE");
2522
2523 defaultval.d = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_auto;
2524 MPIR_T_CVAR_REGISTER_STATIC(
2525 MPI_INT,
2526 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM, /* name */
2527 &MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM, /* address */
2528 1, /* count */
2529 MPI_T_VERBOSITY_USER_BASIC,
2530 MPI_T_SCOPE_ALL_EQ,
2531 defaultval,
2532 "COLLECTIVE", /* category */
2533 "Variable to select ialltoallw algorithm\
2534 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2535 sched_auto - Internal algorithm selection for sched-based algorithms\
2536 sched_blocked - Force blocked algorithm\
2537 sched_inplace - Force inplace algorithm\
2538 gentran_blocked - Force genereic transport based blocked algorithm\
2539 gentran_inplace - Force genereic transport based inplace algorithm");
2540 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = defaultval.d;
2541 tmp_str=NULL;
2542 rc = MPL_env2str("MPICH_IALLTOALLW_INTRA_ALGORITHM", &tmp_str);
2543 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLW_INTRA_ALGORITHM");
2544 rc = MPL_env2str("MPIR_PARAM_IALLTOALLW_INTRA_ALGORITHM", &tmp_str);
2545 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLW_INTRA_ALGORITHM");
2546 rc = MPL_env2str("MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM", &tmp_str);
2547 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM");
2548 if (tmp_str != NULL) {
2549 if (0 == strcmp(tmp_str, "auto"))
2550 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_auto;
2551 else if (0 == strcmp(tmp_str, "sched_auto"))
2552 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_sched_auto;
2553 else if (0 == strcmp(tmp_str, "sched_blocked"))
2554 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_sched_blocked;
2555 else if (0 == strcmp(tmp_str, "sched_inplace"))
2556 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_sched_inplace;
2557 else if (0 == strcmp(tmp_str, "gentran_blocked"))
2558 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_gentran_blocked;
2559 else if (0 == strcmp(tmp_str, "gentran_inplace"))
2560 MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM_gentran_inplace;
2561 else {
2562 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALLW_INTRA_ALGORITHM", tmp_str);
2563 goto fn_fail;
2564 }
2565 }
2566
2567 defaultval.d = MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM_auto;
2568 MPIR_T_CVAR_REGISTER_STATIC(
2569 MPI_INT,
2570 MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM, /* name */
2571 &MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM, /* address */
2572 1, /* count */
2573 MPI_T_VERBOSITY_USER_BASIC,
2574 MPI_T_SCOPE_ALL_EQ,
2575 defaultval,
2576 "COLLECTIVE", /* category */
2577 "Variable to select ialltoallw algorithm\
2578 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2579 sched_auto - Internal algorithm selection for sched-based algorithms\
2580 sched_pairwise_exchange - Force pairwise exchange algorithm");
2581 MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM = defaultval.d;
2582 tmp_str=NULL;
2583 rc = MPL_env2str("MPICH_IALLTOALLW_INTER_ALGORITHM", &tmp_str);
2584 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLW_INTER_ALGORITHM");
2585 rc = MPL_env2str("MPIR_PARAM_IALLTOALLW_INTER_ALGORITHM", &tmp_str);
2586 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLW_INTER_ALGORITHM");
2587 rc = MPL_env2str("MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM", &tmp_str);
2588 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM");
2589 if (tmp_str != NULL) {
2590 if (0 == strcmp(tmp_str, "auto"))
2591 MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM_auto;
2592 else if (0 == strcmp(tmp_str, "sched_auto"))
2593 MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM_sched_auto;
2594 else if (0 == strcmp(tmp_str, "sched_pairwise_exchange"))
2595 MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM_sched_pairwise_exchange;
2596 else {
2597 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IALLTOALLW_INTER_ALGORITHM", tmp_str);
2598 goto fn_fail;
2599 }
2600 }
2601
2602 defaultval.d = 1;
2603 MPIR_T_CVAR_REGISTER_STATIC(
2604 MPI_INT,
2605 MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE, /* name */
2606 &MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE, /* address */
2607 1, /* count */
2608 MPI_T_VERBOSITY_USER_BASIC,
2609 MPI_T_SCOPE_ALL_EQ,
2610 defaultval,
2611 "COLLECTIVE", /* category */
2612 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ialltoallw will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2613 MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE = defaultval.d;
2614 rc = MPL_env2bool("MPICH_IALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE));
2615 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IALLTOALLW_DEVICE_COLLECTIVE");
2616 rc = MPL_env2bool("MPIR_PARAM_IALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE));
2617 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IALLTOALLW_DEVICE_COLLECTIVE");
2618 rc = MPL_env2bool("MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE));
2619 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IALLTOALLW_DEVICE_COLLECTIVE");
2620
2621 defaultval.d = 2;
2622 MPIR_T_CVAR_REGISTER_STATIC(
2623 MPI_INT,
2624 MPIR_CVAR_IBARRIER_RECEXCH_KVAL, /* name */
2625 &MPIR_CVAR_IBARRIER_RECEXCH_KVAL, /* address */
2626 1, /* count */
2627 MPI_T_VERBOSITY_USER_BASIC,
2628 MPI_T_SCOPE_ALL_EQ,
2629 defaultval,
2630 "COLLECTIVE", /* category */
2631 "k value for recursive exchange based ibarrier");
2632 MPIR_CVAR_IBARRIER_RECEXCH_KVAL = defaultval.d;
2633 rc = MPL_env2int("MPICH_IBARRIER_RECEXCH_KVAL", &(MPIR_CVAR_IBARRIER_RECEXCH_KVAL));
2634 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBARRIER_RECEXCH_KVAL");
2635 rc = MPL_env2int("MPIR_PARAM_IBARRIER_RECEXCH_KVAL", &(MPIR_CVAR_IBARRIER_RECEXCH_KVAL));
2636 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBARRIER_RECEXCH_KVAL");
2637 rc = MPL_env2int("MPIR_CVAR_IBARRIER_RECEXCH_KVAL", &(MPIR_CVAR_IBARRIER_RECEXCH_KVAL));
2638 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBARRIER_RECEXCH_KVAL");
2639
2640 defaultval.d = MPIR_CVAR_IBARRIER_INTRA_ALGORITHM_auto;
2641 MPIR_T_CVAR_REGISTER_STATIC(
2642 MPI_INT,
2643 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM, /* name */
2644 &MPIR_CVAR_IBARRIER_INTRA_ALGORITHM, /* address */
2645 1, /* count */
2646 MPI_T_VERBOSITY_USER_BASIC,
2647 MPI_T_SCOPE_ALL_EQ,
2648 defaultval,
2649 "COLLECTIVE", /* category */
2650 "Variable to select ibarrier algorithm\
2651 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2652 sched_auto - Internal algorithm selection for sched-based algorithms\
2653 sched_recursive_doubling - Force recursive doubling algorithm\
2654 gentran_recexch - Force generic transport based recursive exchange algorithm");
2655 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM = defaultval.d;
2656 tmp_str=NULL;
2657 rc = MPL_env2str("MPICH_IBARRIER_INTRA_ALGORITHM", &tmp_str);
2658 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBARRIER_INTRA_ALGORITHM");
2659 rc = MPL_env2str("MPIR_PARAM_IBARRIER_INTRA_ALGORITHM", &tmp_str);
2660 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBARRIER_INTRA_ALGORITHM");
2661 rc = MPL_env2str("MPIR_CVAR_IBARRIER_INTRA_ALGORITHM", &tmp_str);
2662 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBARRIER_INTRA_ALGORITHM");
2663 if (tmp_str != NULL) {
2664 if (0 == strcmp(tmp_str, "auto"))
2665 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM = MPIR_CVAR_IBARRIER_INTRA_ALGORITHM_auto;
2666 else if (0 == strcmp(tmp_str, "sched_auto"))
2667 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM = MPIR_CVAR_IBARRIER_INTRA_ALGORITHM_sched_auto;
2668 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
2669 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM = MPIR_CVAR_IBARRIER_INTRA_ALGORITHM_sched_recursive_doubling;
2670 else if (0 == strcmp(tmp_str, "gentran_recexch"))
2671 MPIR_CVAR_IBARRIER_INTRA_ALGORITHM = MPIR_CVAR_IBARRIER_INTRA_ALGORITHM_gentran_recexch;
2672 else {
2673 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IBARRIER_INTRA_ALGORITHM", tmp_str);
2674 goto fn_fail;
2675 }
2676 }
2677
2678 defaultval.d = MPIR_CVAR_IBARRIER_INTER_ALGORITHM_auto;
2679 MPIR_T_CVAR_REGISTER_STATIC(
2680 MPI_INT,
2681 MPIR_CVAR_IBARRIER_INTER_ALGORITHM, /* name */
2682 &MPIR_CVAR_IBARRIER_INTER_ALGORITHM, /* address */
2683 1, /* count */
2684 MPI_T_VERBOSITY_USER_BASIC,
2685 MPI_T_SCOPE_ALL_EQ,
2686 defaultval,
2687 "COLLECTIVE", /* category */
2688 "Variable to select ibarrier algorithm\
2689 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2690 sched_auto - Internal algorithm selection for sched-based algorithms\
2691 sched_bcast - Force bcast algorithm");
2692 MPIR_CVAR_IBARRIER_INTER_ALGORITHM = defaultval.d;
2693 tmp_str=NULL;
2694 rc = MPL_env2str("MPICH_IBARRIER_INTER_ALGORITHM", &tmp_str);
2695 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBARRIER_INTER_ALGORITHM");
2696 rc = MPL_env2str("MPIR_PARAM_IBARRIER_INTER_ALGORITHM", &tmp_str);
2697 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBARRIER_INTER_ALGORITHM");
2698 rc = MPL_env2str("MPIR_CVAR_IBARRIER_INTER_ALGORITHM", &tmp_str);
2699 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBARRIER_INTER_ALGORITHM");
2700 if (tmp_str != NULL) {
2701 if (0 == strcmp(tmp_str, "auto"))
2702 MPIR_CVAR_IBARRIER_INTER_ALGORITHM = MPIR_CVAR_IBARRIER_INTER_ALGORITHM_auto;
2703 else if (0 == strcmp(tmp_str, "sched_auto"))
2704 MPIR_CVAR_IBARRIER_INTER_ALGORITHM = MPIR_CVAR_IBARRIER_INTER_ALGORITHM_sched_auto;
2705 else if (0 == strcmp(tmp_str, "sched_bcast"))
2706 MPIR_CVAR_IBARRIER_INTER_ALGORITHM = MPIR_CVAR_IBARRIER_INTER_ALGORITHM_sched_bcast;
2707 else {
2708 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IBARRIER_INTER_ALGORITHM", tmp_str);
2709 goto fn_fail;
2710 }
2711 }
2712
2713 defaultval.d = 1;
2714 MPIR_T_CVAR_REGISTER_STATIC(
2715 MPI_INT,
2716 MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE, /* name */
2717 &MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE, /* address */
2718 1, /* count */
2719 MPI_T_VERBOSITY_USER_BASIC,
2720 MPI_T_SCOPE_ALL_EQ,
2721 defaultval,
2722 "COLLECTIVE", /* category */
2723 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ibarrier will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2724 MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE = defaultval.d;
2725 rc = MPL_env2bool("MPICH_IBARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE));
2726 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBARRIER_DEVICE_COLLECTIVE");
2727 rc = MPL_env2bool("MPIR_PARAM_IBARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE));
2728 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBARRIER_DEVICE_COLLECTIVE");
2729 rc = MPL_env2bool("MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE));
2730 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBARRIER_DEVICE_COLLECTIVE");
2731
2732 defaultval.d = 2;
2733 MPIR_T_CVAR_REGISTER_STATIC(
2734 MPI_INT,
2735 MPIR_CVAR_IBCAST_TREE_KVAL, /* name */
2736 &MPIR_CVAR_IBCAST_TREE_KVAL, /* address */
2737 1, /* count */
2738 MPI_T_VERBOSITY_USER_BASIC,
2739 MPI_T_SCOPE_ALL_EQ,
2740 defaultval,
2741 "COLLECTIVE", /* category */
2742 "k value for tree (kary, knomial, etc.) based ibcast");
2743 MPIR_CVAR_IBCAST_TREE_KVAL = defaultval.d;
2744 rc = MPL_env2int("MPICH_IBCAST_TREE_KVAL", &(MPIR_CVAR_IBCAST_TREE_KVAL));
2745 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_TREE_KVAL");
2746 rc = MPL_env2int("MPIR_PARAM_IBCAST_TREE_KVAL", &(MPIR_CVAR_IBCAST_TREE_KVAL));
2747 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_TREE_KVAL");
2748 rc = MPL_env2int("MPIR_CVAR_IBCAST_TREE_KVAL", &(MPIR_CVAR_IBCAST_TREE_KVAL));
2749 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_TREE_KVAL");
2750
2751 defaultval.str = (const char *) "kary";
2752 MPIR_T_CVAR_REGISTER_STATIC(
2753 MPI_CHAR,
2754 MPIR_CVAR_IBCAST_TREE_TYPE, /* name */
2755 &MPIR_CVAR_IBCAST_TREE_TYPE, /* address */
2756 MPIR_CVAR_MAX_STRLEN, /* count */
2757 MPI_T_VERBOSITY_USER_BASIC,
2758 MPI_T_SCOPE_ALL_EQ,
2759 defaultval,
2760 "COLLECTIVE", /* category */
2761 "Tree type for tree based ibcast kary - kary tree type knomial_1 - knomial_1 tree type knomial_2 - knomial_2 tree type");
2762 tmp_str = defaultval.str;
2763 rc = MPL_env2str("MPICH_IBCAST_TREE_TYPE", &tmp_str);
2764 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_TREE_TYPE");
2765 rc = MPL_env2str("MPIR_PARAM_IBCAST_TREE_TYPE", &tmp_str);
2766 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_TREE_TYPE");
2767 rc = MPL_env2str("MPIR_CVAR_IBCAST_TREE_TYPE", &tmp_str);
2768 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_TREE_TYPE");
2769 if (tmp_str != NULL) {
2770 MPIR_CVAR_IBCAST_TREE_TYPE = MPL_strdup(tmp_str);
2771 MPIR_CVAR_assert(MPIR_CVAR_IBCAST_TREE_TYPE);
2772 if (MPIR_CVAR_IBCAST_TREE_TYPE == NULL) {
2773 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_IBCAST_TREE_TYPE");
2774 goto fn_fail;
2775 }
2776 }
2777 else {
2778 MPIR_CVAR_IBCAST_TREE_TYPE = NULL;
2779 }
2780
2781 defaultval.d = 0;
2782 MPIR_T_CVAR_REGISTER_STATIC(
2783 MPI_INT,
2784 MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE, /* name */
2785 &MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE, /* address */
2786 1, /* count */
2787 MPI_T_VERBOSITY_USER_BASIC,
2788 MPI_T_SCOPE_ALL_EQ,
2789 defaultval,
2790 "COLLECTIVE", /* category */
2791 "Maximum chunk size (in bytes) for pipelining in tree based ibcast. Default value is 0, that is, no pipelining by default");
2792 MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE = defaultval.d;
2793 rc = MPL_env2int("MPICH_IBCAST_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE));
2794 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_TREE_PIPELINE_CHUNK_SIZE");
2795 rc = MPL_env2int("MPIR_PARAM_IBCAST_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE));
2796 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_TREE_PIPELINE_CHUNK_SIZE");
2797 rc = MPL_env2int("MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE));
2798 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_TREE_PIPELINE_CHUNK_SIZE");
2799
2800 defaultval.d = 0;
2801 MPIR_T_CVAR_REGISTER_STATIC(
2802 MPI_INT,
2803 MPIR_CVAR_IBCAST_RING_CHUNK_SIZE, /* name */
2804 &MPIR_CVAR_IBCAST_RING_CHUNK_SIZE, /* address */
2805 1, /* count */
2806 MPI_T_VERBOSITY_USER_BASIC,
2807 MPI_T_SCOPE_ALL_EQ,
2808 defaultval,
2809 "COLLECTIVE", /* category */
2810 "Maximum chunk size (in bytes) for pipelining in ibcast ring algorithm. Default value is 0, that is, no pipelining by default");
2811 MPIR_CVAR_IBCAST_RING_CHUNK_SIZE = defaultval.d;
2812 rc = MPL_env2int("MPICH_IBCAST_RING_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_RING_CHUNK_SIZE));
2813 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_RING_CHUNK_SIZE");
2814 rc = MPL_env2int("MPIR_PARAM_IBCAST_RING_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_RING_CHUNK_SIZE));
2815 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_RING_CHUNK_SIZE");
2816 rc = MPL_env2int("MPIR_CVAR_IBCAST_RING_CHUNK_SIZE", &(MPIR_CVAR_IBCAST_RING_CHUNK_SIZE));
2817 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_RING_CHUNK_SIZE");
2818
2819 defaultval.d = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_auto;
2820 MPIR_T_CVAR_REGISTER_STATIC(
2821 MPI_INT,
2822 MPIR_CVAR_IBCAST_INTRA_ALGORITHM, /* name */
2823 &MPIR_CVAR_IBCAST_INTRA_ALGORITHM, /* address */
2824 1, /* count */
2825 MPI_T_VERBOSITY_USER_BASIC,
2826 MPI_T_SCOPE_ALL_EQ,
2827 defaultval,
2828 "COLLECTIVE", /* category */
2829 "Variable to select ibcast algorithm\
2830 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2831 sched_auto - Internal algorithm selection for sched-based algorithms\
2832 sched_binomial - Force Binomial algorithm\
2833 sched_smp - Force smp algorithm\
2834 sched_scatter_recursive_doubling_allgather - Force Scatter Recursive Doubling Allgather algorithm\
2835 sched_scatter_ring_allgather - Force Scatter Ring Allgather algorithm\
2836 gentran_tree - Force Generic Transport Tree algorithm\
2837 gentran_scatterv_recexch_allgatherv - Force Generic Transport Scatterv followed by Recursive Exchange Allgatherv algorithm\
2838 gentran_ring - Force Generic Transport Ring algorithm");
2839 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = defaultval.d;
2840 tmp_str=NULL;
2841 rc = MPL_env2str("MPICH_IBCAST_INTRA_ALGORITHM", &tmp_str);
2842 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_INTRA_ALGORITHM");
2843 rc = MPL_env2str("MPIR_PARAM_IBCAST_INTRA_ALGORITHM", &tmp_str);
2844 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_INTRA_ALGORITHM");
2845 rc = MPL_env2str("MPIR_CVAR_IBCAST_INTRA_ALGORITHM", &tmp_str);
2846 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_INTRA_ALGORITHM");
2847 if (tmp_str != NULL) {
2848 if (0 == strcmp(tmp_str, "auto"))
2849 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_auto;
2850 else if (0 == strcmp(tmp_str, "sched_auto"))
2851 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_sched_auto;
2852 else if (0 == strcmp(tmp_str, "sched_binomial"))
2853 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_sched_binomial;
2854 else if (0 == strcmp(tmp_str, "sched_smp"))
2855 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_sched_smp;
2856 else if (0 == strcmp(tmp_str, "sched_scatter_recursive_doubling_allgather"))
2857 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_sched_scatter_recursive_doubling_allgather;
2858 else if (0 == strcmp(tmp_str, "sched_scatter_ring_allgather"))
2859 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_sched_scatter_ring_allgather;
2860 else if (0 == strcmp(tmp_str, "gentran_tree"))
2861 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_gentran_tree;
2862 else if (0 == strcmp(tmp_str, "gentran_scatterv_recexch_allgatherv"))
2863 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_gentran_scatterv_recexch_allgatherv;
2864 else if (0 == strcmp(tmp_str, "gentran_ring"))
2865 MPIR_CVAR_IBCAST_INTRA_ALGORITHM = MPIR_CVAR_IBCAST_INTRA_ALGORITHM_gentran_ring;
2866 else {
2867 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IBCAST_INTRA_ALGORITHM", tmp_str);
2868 goto fn_fail;
2869 }
2870 }
2871
2872 defaultval.d = 2;
2873 MPIR_T_CVAR_REGISTER_STATIC(
2874 MPI_INT,
2875 MPIR_CVAR_IBCAST_SCATTERV_KVAL, /* name */
2876 &MPIR_CVAR_IBCAST_SCATTERV_KVAL, /* address */
2877 1, /* count */
2878 MPI_T_VERBOSITY_USER_BASIC,
2879 MPI_T_SCOPE_ALL_EQ,
2880 defaultval,
2881 "COLLECTIVE", /* category */
2882 "k value for tree based scatter in scatter_recexch_allgather algorithm");
2883 MPIR_CVAR_IBCAST_SCATTERV_KVAL = defaultval.d;
2884 rc = MPL_env2int("MPICH_IBCAST_SCATTERV_KVAL", &(MPIR_CVAR_IBCAST_SCATTERV_KVAL));
2885 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_SCATTERV_KVAL");
2886 rc = MPL_env2int("MPIR_PARAM_IBCAST_SCATTERV_KVAL", &(MPIR_CVAR_IBCAST_SCATTERV_KVAL));
2887 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_SCATTERV_KVAL");
2888 rc = MPL_env2int("MPIR_CVAR_IBCAST_SCATTERV_KVAL", &(MPIR_CVAR_IBCAST_SCATTERV_KVAL));
2889 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_SCATTERV_KVAL");
2890
2891 defaultval.d = 2;
2892 MPIR_T_CVAR_REGISTER_STATIC(
2893 MPI_INT,
2894 MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL, /* name */
2895 &MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL, /* address */
2896 1, /* count */
2897 MPI_T_VERBOSITY_USER_BASIC,
2898 MPI_T_SCOPE_ALL_EQ,
2899 defaultval,
2900 "COLLECTIVE", /* category */
2901 "k value for recursive exchange based allgather in scatter_recexch_allgather algorithm");
2902 MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL = defaultval.d;
2903 rc = MPL_env2int("MPICH_IBCAST_ALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL));
2904 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_ALLGATHERV_RECEXCH_KVAL");
2905 rc = MPL_env2int("MPIR_PARAM_IBCAST_ALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL));
2906 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_ALLGATHERV_RECEXCH_KVAL");
2907 rc = MPL_env2int("MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL", &(MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL));
2908 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_ALLGATHERV_RECEXCH_KVAL");
2909
2910 defaultval.d = MPIR_CVAR_IBCAST_INTER_ALGORITHM_auto;
2911 MPIR_T_CVAR_REGISTER_STATIC(
2912 MPI_INT,
2913 MPIR_CVAR_IBCAST_INTER_ALGORITHM, /* name */
2914 &MPIR_CVAR_IBCAST_INTER_ALGORITHM, /* address */
2915 1, /* count */
2916 MPI_T_VERBOSITY_USER_BASIC,
2917 MPI_T_SCOPE_ALL_EQ,
2918 defaultval,
2919 "COLLECTIVE", /* category */
2920 "Variable to select ibcast algorithm\
2921 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2922 sched_auto - Internal algorithm selection for sched-based algorithms\
2923 sched_flat - Force flat algorithm");
2924 MPIR_CVAR_IBCAST_INTER_ALGORITHM = defaultval.d;
2925 tmp_str=NULL;
2926 rc = MPL_env2str("MPICH_IBCAST_INTER_ALGORITHM", &tmp_str);
2927 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_INTER_ALGORITHM");
2928 rc = MPL_env2str("MPIR_PARAM_IBCAST_INTER_ALGORITHM", &tmp_str);
2929 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_INTER_ALGORITHM");
2930 rc = MPL_env2str("MPIR_CVAR_IBCAST_INTER_ALGORITHM", &tmp_str);
2931 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_INTER_ALGORITHM");
2932 if (tmp_str != NULL) {
2933 if (0 == strcmp(tmp_str, "auto"))
2934 MPIR_CVAR_IBCAST_INTER_ALGORITHM = MPIR_CVAR_IBCAST_INTER_ALGORITHM_auto;
2935 else if (0 == strcmp(tmp_str, "sched_auto"))
2936 MPIR_CVAR_IBCAST_INTER_ALGORITHM = MPIR_CVAR_IBCAST_INTER_ALGORITHM_sched_auto;
2937 else if (0 == strcmp(tmp_str, "sched_flat"))
2938 MPIR_CVAR_IBCAST_INTER_ALGORITHM = MPIR_CVAR_IBCAST_INTER_ALGORITHM_sched_flat;
2939 else {
2940 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IBCAST_INTER_ALGORITHM", tmp_str);
2941 goto fn_fail;
2942 }
2943 }
2944
2945 defaultval.d = 1;
2946 MPIR_T_CVAR_REGISTER_STATIC(
2947 MPI_INT,
2948 MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE, /* name */
2949 &MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE, /* address */
2950 1, /* count */
2951 MPI_T_VERBOSITY_USER_BASIC,
2952 MPI_T_SCOPE_ALL_EQ,
2953 defaultval,
2954 "COLLECTIVE", /* category */
2955 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ibcast will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
2956 MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE = defaultval.d;
2957 rc = MPL_env2bool("MPICH_IBCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE));
2958 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IBCAST_DEVICE_COLLECTIVE");
2959 rc = MPL_env2bool("MPIR_PARAM_IBCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE));
2960 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IBCAST_DEVICE_COLLECTIVE");
2961 rc = MPL_env2bool("MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE", &(MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE));
2962 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IBCAST_DEVICE_COLLECTIVE");
2963
2964 defaultval.d = MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM_auto;
2965 MPIR_T_CVAR_REGISTER_STATIC(
2966 MPI_INT,
2967 MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM, /* name */
2968 &MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM, /* address */
2969 1, /* count */
2970 MPI_T_VERBOSITY_USER_BASIC,
2971 MPI_T_SCOPE_ALL_EQ,
2972 defaultval,
2973 "COLLECTIVE", /* category */
2974 "Variable to select iexscan algorithm\
2975 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
2976 sched_auto - Internal algorithm selection for sched-based algorithms\
2977 sched_recursive_doubling - Force recursive doubling algorithm");
2978 MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM = defaultval.d;
2979 tmp_str=NULL;
2980 rc = MPL_env2str("MPICH_IEXSCAN_INTRA_ALGORITHM", &tmp_str);
2981 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IEXSCAN_INTRA_ALGORITHM");
2982 rc = MPL_env2str("MPIR_PARAM_IEXSCAN_INTRA_ALGORITHM", &tmp_str);
2983 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IEXSCAN_INTRA_ALGORITHM");
2984 rc = MPL_env2str("MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM", &tmp_str);
2985 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM");
2986 if (tmp_str != NULL) {
2987 if (0 == strcmp(tmp_str, "auto"))
2988 MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM = MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM_auto;
2989 else if (0 == strcmp(tmp_str, "sched_auto"))
2990 MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM = MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM_sched_auto;
2991 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
2992 MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM = MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM_sched_recursive_doubling;
2993 else {
2994 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IEXSCAN_INTRA_ALGORITHM", tmp_str);
2995 goto fn_fail;
2996 }
2997 }
2998
2999 defaultval.d = 1;
3000 MPIR_T_CVAR_REGISTER_STATIC(
3001 MPI_INT,
3002 MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE, /* name */
3003 &MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE, /* address */
3004 1, /* count */
3005 MPI_T_VERBOSITY_USER_BASIC,
3006 MPI_T_SCOPE_ALL_EQ,
3007 defaultval,
3008 "COLLECTIVE", /* category */
3009 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iexscan will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3010 MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE = defaultval.d;
3011 rc = MPL_env2bool("MPICH_IEXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE));
3012 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IEXSCAN_DEVICE_COLLECTIVE");
3013 rc = MPL_env2bool("MPIR_PARAM_IEXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE));
3014 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IEXSCAN_DEVICE_COLLECTIVE");
3015 rc = MPL_env2bool("MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE));
3016 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IEXSCAN_DEVICE_COLLECTIVE");
3017
3018 defaultval.d = MPIR_CVAR_IGATHER_INTRA_ALGORITHM_auto;
3019 MPIR_T_CVAR_REGISTER_STATIC(
3020 MPI_INT,
3021 MPIR_CVAR_IGATHER_INTRA_ALGORITHM, /* name */
3022 &MPIR_CVAR_IGATHER_INTRA_ALGORITHM, /* address */
3023 1, /* count */
3024 MPI_T_VERBOSITY_USER_BASIC,
3025 MPI_T_SCOPE_ALL_EQ,
3026 defaultval,
3027 "COLLECTIVE", /* category */
3028 "Variable to select igather algorithm\
3029 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3030 sched_auto - Internal algorithm selection for sched-based algorithms\
3031 sched_binomial - Force binomial algorithm\
3032 gentran_tree - Force genetric transport based tree algorithm");
3033 MPIR_CVAR_IGATHER_INTRA_ALGORITHM = defaultval.d;
3034 tmp_str=NULL;
3035 rc = MPL_env2str("MPICH_IGATHER_INTRA_ALGORITHM", &tmp_str);
3036 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHER_INTRA_ALGORITHM");
3037 rc = MPL_env2str("MPIR_PARAM_IGATHER_INTRA_ALGORITHM", &tmp_str);
3038 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHER_INTRA_ALGORITHM");
3039 rc = MPL_env2str("MPIR_CVAR_IGATHER_INTRA_ALGORITHM", &tmp_str);
3040 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHER_INTRA_ALGORITHM");
3041 if (tmp_str != NULL) {
3042 if (0 == strcmp(tmp_str, "auto"))
3043 MPIR_CVAR_IGATHER_INTRA_ALGORITHM = MPIR_CVAR_IGATHER_INTRA_ALGORITHM_auto;
3044 else if (0 == strcmp(tmp_str, "sched_auto"))
3045 MPIR_CVAR_IGATHER_INTRA_ALGORITHM = MPIR_CVAR_IGATHER_INTRA_ALGORITHM_sched_auto;
3046 else if (0 == strcmp(tmp_str, "sched_binomial"))
3047 MPIR_CVAR_IGATHER_INTRA_ALGORITHM = MPIR_CVAR_IGATHER_INTRA_ALGORITHM_sched_binomial;
3048 else if (0 == strcmp(tmp_str, "gentran_tree"))
3049 MPIR_CVAR_IGATHER_INTRA_ALGORITHM = MPIR_CVAR_IGATHER_INTRA_ALGORITHM_gentran_tree;
3050 else {
3051 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IGATHER_INTRA_ALGORITHM", tmp_str);
3052 goto fn_fail;
3053 }
3054 }
3055
3056 defaultval.d = 2;
3057 MPIR_T_CVAR_REGISTER_STATIC(
3058 MPI_INT,
3059 MPIR_CVAR_IGATHER_TREE_KVAL, /* name */
3060 &MPIR_CVAR_IGATHER_TREE_KVAL, /* address */
3061 1, /* count */
3062 MPI_T_VERBOSITY_USER_BASIC,
3063 MPI_T_SCOPE_ALL_EQ,
3064 defaultval,
3065 "COLLECTIVE", /* category */
3066 "k value for tree based igather");
3067 MPIR_CVAR_IGATHER_TREE_KVAL = defaultval.d;
3068 rc = MPL_env2int("MPICH_IGATHER_TREE_KVAL", &(MPIR_CVAR_IGATHER_TREE_KVAL));
3069 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHER_TREE_KVAL");
3070 rc = MPL_env2int("MPIR_PARAM_IGATHER_TREE_KVAL", &(MPIR_CVAR_IGATHER_TREE_KVAL));
3071 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHER_TREE_KVAL");
3072 rc = MPL_env2int("MPIR_CVAR_IGATHER_TREE_KVAL", &(MPIR_CVAR_IGATHER_TREE_KVAL));
3073 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHER_TREE_KVAL");
3074
3075 defaultval.d = MPIR_CVAR_IGATHER_INTER_ALGORITHM_auto;
3076 MPIR_T_CVAR_REGISTER_STATIC(
3077 MPI_INT,
3078 MPIR_CVAR_IGATHER_INTER_ALGORITHM, /* name */
3079 &MPIR_CVAR_IGATHER_INTER_ALGORITHM, /* address */
3080 1, /* count */
3081 MPI_T_VERBOSITY_USER_BASIC,
3082 MPI_T_SCOPE_ALL_EQ,
3083 defaultval,
3084 "COLLECTIVE", /* category */
3085 "Variable to select igather algorithm\
3086 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3087 sched_auto - Internal algorithm selection for sched-based algorithms\
3088 sched_long - Force long inter algorithm\
3089 sched_short - Force short inter algorithm");
3090 MPIR_CVAR_IGATHER_INTER_ALGORITHM = defaultval.d;
3091 tmp_str=NULL;
3092 rc = MPL_env2str("MPICH_IGATHER_INTER_ALGORITHM", &tmp_str);
3093 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHER_INTER_ALGORITHM");
3094 rc = MPL_env2str("MPIR_PARAM_IGATHER_INTER_ALGORITHM", &tmp_str);
3095 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHER_INTER_ALGORITHM");
3096 rc = MPL_env2str("MPIR_CVAR_IGATHER_INTER_ALGORITHM", &tmp_str);
3097 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHER_INTER_ALGORITHM");
3098 if (tmp_str != NULL) {
3099 if (0 == strcmp(tmp_str, "auto"))
3100 MPIR_CVAR_IGATHER_INTER_ALGORITHM = MPIR_CVAR_IGATHER_INTER_ALGORITHM_auto;
3101 else if (0 == strcmp(tmp_str, "sched_auto"))
3102 MPIR_CVAR_IGATHER_INTER_ALGORITHM = MPIR_CVAR_IGATHER_INTER_ALGORITHM_sched_auto;
3103 else if (0 == strcmp(tmp_str, "sched_long"))
3104 MPIR_CVAR_IGATHER_INTER_ALGORITHM = MPIR_CVAR_IGATHER_INTER_ALGORITHM_sched_long;
3105 else if (0 == strcmp(tmp_str, "sched_short"))
3106 MPIR_CVAR_IGATHER_INTER_ALGORITHM = MPIR_CVAR_IGATHER_INTER_ALGORITHM_sched_short;
3107 else {
3108 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IGATHER_INTER_ALGORITHM", tmp_str);
3109 goto fn_fail;
3110 }
3111 }
3112
3113 defaultval.d = 1;
3114 MPIR_T_CVAR_REGISTER_STATIC(
3115 MPI_INT,
3116 MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE, /* name */
3117 &MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE, /* address */
3118 1, /* count */
3119 MPI_T_VERBOSITY_USER_BASIC,
3120 MPI_T_SCOPE_ALL_EQ,
3121 defaultval,
3122 "COLLECTIVE", /* category */
3123 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Igather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3124 MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE = defaultval.d;
3125 rc = MPL_env2bool("MPICH_IGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE));
3126 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHER_DEVICE_COLLECTIVE");
3127 rc = MPL_env2bool("MPIR_PARAM_IGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE));
3128 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHER_DEVICE_COLLECTIVE");
3129 rc = MPL_env2bool("MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE));
3130 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHER_DEVICE_COLLECTIVE");
3131
3132 defaultval.d = MPIR_CVAR_IGATHERV_INTRA_ALGORITHM_auto;
3133 MPIR_T_CVAR_REGISTER_STATIC(
3134 MPI_INT,
3135 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM, /* name */
3136 &MPIR_CVAR_IGATHERV_INTRA_ALGORITHM, /* address */
3137 1, /* count */
3138 MPI_T_VERBOSITY_USER_BASIC,
3139 MPI_T_SCOPE_ALL_EQ,
3140 defaultval,
3141 "COLLECTIVE", /* category */
3142 "Variable to select igatherv algorithm\
3143 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3144 sched_auto - Internal algorithm selection for sched-based algorithms\
3145 sched_linear - Force linear algorithm\
3146 gentran_linear - Force generic transport based linear algorithm");
3147 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM = defaultval.d;
3148 tmp_str=NULL;
3149 rc = MPL_env2str("MPICH_IGATHERV_INTRA_ALGORITHM", &tmp_str);
3150 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHERV_INTRA_ALGORITHM");
3151 rc = MPL_env2str("MPIR_PARAM_IGATHERV_INTRA_ALGORITHM", &tmp_str);
3152 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHERV_INTRA_ALGORITHM");
3153 rc = MPL_env2str("MPIR_CVAR_IGATHERV_INTRA_ALGORITHM", &tmp_str);
3154 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHERV_INTRA_ALGORITHM");
3155 if (tmp_str != NULL) {
3156 if (0 == strcmp(tmp_str, "auto"))
3157 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IGATHERV_INTRA_ALGORITHM_auto;
3158 else if (0 == strcmp(tmp_str, "sched_auto"))
3159 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IGATHERV_INTRA_ALGORITHM_sched_auto;
3160 else if (0 == strcmp(tmp_str, "sched_linear"))
3161 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IGATHERV_INTRA_ALGORITHM_sched_linear;
3162 else if (0 == strcmp(tmp_str, "gentran_linear"))
3163 MPIR_CVAR_IGATHERV_INTRA_ALGORITHM = MPIR_CVAR_IGATHERV_INTRA_ALGORITHM_gentran_linear;
3164 else {
3165 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IGATHERV_INTRA_ALGORITHM", tmp_str);
3166 goto fn_fail;
3167 }
3168 }
3169
3170 defaultval.d = MPIR_CVAR_IGATHERV_INTER_ALGORITHM_auto;
3171 MPIR_T_CVAR_REGISTER_STATIC(
3172 MPI_INT,
3173 MPIR_CVAR_IGATHERV_INTER_ALGORITHM, /* name */
3174 &MPIR_CVAR_IGATHERV_INTER_ALGORITHM, /* address */
3175 1, /* count */
3176 MPI_T_VERBOSITY_USER_BASIC,
3177 MPI_T_SCOPE_ALL_EQ,
3178 defaultval,
3179 "COLLECTIVE", /* category */
3180 "Variable to select igatherv algorithm\
3181 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3182 sched_auto - Internal algorithm selection for sched-based algorithms\
3183 sched_linear - Force linear algorithm");
3184 MPIR_CVAR_IGATHERV_INTER_ALGORITHM = defaultval.d;
3185 tmp_str=NULL;
3186 rc = MPL_env2str("MPICH_IGATHERV_INTER_ALGORITHM", &tmp_str);
3187 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHERV_INTER_ALGORITHM");
3188 rc = MPL_env2str("MPIR_PARAM_IGATHERV_INTER_ALGORITHM", &tmp_str);
3189 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHERV_INTER_ALGORITHM");
3190 rc = MPL_env2str("MPIR_CVAR_IGATHERV_INTER_ALGORITHM", &tmp_str);
3191 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHERV_INTER_ALGORITHM");
3192 if (tmp_str != NULL) {
3193 if (0 == strcmp(tmp_str, "auto"))
3194 MPIR_CVAR_IGATHERV_INTER_ALGORITHM = MPIR_CVAR_IGATHERV_INTER_ALGORITHM_auto;
3195 else if (0 == strcmp(tmp_str, "sched_auto"))
3196 MPIR_CVAR_IGATHERV_INTER_ALGORITHM = MPIR_CVAR_IGATHERV_INTER_ALGORITHM_sched_auto;
3197 else if (0 == strcmp(tmp_str, "sched_linear"))
3198 MPIR_CVAR_IGATHERV_INTER_ALGORITHM = MPIR_CVAR_IGATHERV_INTER_ALGORITHM_sched_linear;
3199 else {
3200 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IGATHERV_INTER_ALGORITHM", tmp_str);
3201 goto fn_fail;
3202 }
3203 }
3204
3205 defaultval.d = 1;
3206 MPIR_T_CVAR_REGISTER_STATIC(
3207 MPI_INT,
3208 MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE, /* name */
3209 &MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE, /* address */
3210 1, /* count */
3211 MPI_T_VERBOSITY_USER_BASIC,
3212 MPI_T_SCOPE_ALL_EQ,
3213 defaultval,
3214 "COLLECTIVE", /* category */
3215 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Igatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3216 MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE = defaultval.d;
3217 rc = MPL_env2bool("MPICH_IGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE));
3218 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IGATHERV_DEVICE_COLLECTIVE");
3219 rc = MPL_env2bool("MPIR_PARAM_IGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE));
3220 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IGATHERV_DEVICE_COLLECTIVE");
3221 rc = MPL_env2bool("MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE));
3222 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IGATHERV_DEVICE_COLLECTIVE");
3223
3224 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM_auto;
3225 MPIR_T_CVAR_REGISTER_STATIC(
3226 MPI_INT,
3227 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM, /* name */
3228 &MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM, /* address */
3229 1, /* count */
3230 MPI_T_VERBOSITY_USER_BASIC,
3231 MPI_T_SCOPE_ALL_EQ,
3232 defaultval,
3233 "COLLECTIVE", /* category */
3234 "Variable to select ineighbor_allgather algorithm\
3235 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3236 sched_auto - Internal algorithm selection for sched-based algorithms\
3237 sched_linear - Force linear algorithm\
3238 gentran_linear - Force generic transport based linear algorithm");
3239 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM = defaultval.d;
3240 tmp_str=NULL;
3241 rc = MPL_env2str("MPICH_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
3242 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
3243 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
3244 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
3245 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
3246 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
3247 if (tmp_str != NULL) {
3248 if (0 == strcmp(tmp_str, "auto"))
3249 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM_auto;
3250 else if (0 == strcmp(tmp_str, "sched_auto"))
3251 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM_sched_auto;
3252 else if (0 == strcmp(tmp_str, "sched_linear"))
3253 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM_sched_linear;
3254 else if (0 == strcmp(tmp_str, "gentran_linear"))
3255 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM_gentran_linear;
3256 else {
3257 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLGATHER_INTRA_ALGORITHM", tmp_str);
3258 goto fn_fail;
3259 }
3260 }
3261
3262 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM_auto;
3263 MPIR_T_CVAR_REGISTER_STATIC(
3264 MPI_INT,
3265 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM, /* name */
3266 &MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM, /* address */
3267 1, /* count */
3268 MPI_T_VERBOSITY_USER_BASIC,
3269 MPI_T_SCOPE_ALL_EQ,
3270 defaultval,
3271 "COLLECTIVE", /* category */
3272 "Variable to select ineighbor_allgather algorithm\
3273 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3274 sched_auto - Internal algorithm selection for sched-based algorithms\
3275 sched_linear - Force linear algorithm\
3276 gentran_linear - Force generic transport based linear algorithm");
3277 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM = defaultval.d;
3278 tmp_str=NULL;
3279 rc = MPL_env2str("MPICH_INEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
3280 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHER_INTER_ALGORITHM");
3281 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
3282 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHER_INTER_ALGORITHM");
3283 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
3284 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM");
3285 if (tmp_str != NULL) {
3286 if (0 == strcmp(tmp_str, "auto"))
3287 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM_auto;
3288 else if (0 == strcmp(tmp_str, "sched_auto"))
3289 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM_sched_auto;
3290 else if (0 == strcmp(tmp_str, "sched_linear"))
3291 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM_sched_linear;
3292 else if (0 == strcmp(tmp_str, "gentran_linear"))
3293 MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM_gentran_linear;
3294 else {
3295 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLGATHER_INTER_ALGORITHM", tmp_str);
3296 goto fn_fail;
3297 }
3298 }
3299
3300 defaultval.d = 1;
3301 MPIR_T_CVAR_REGISTER_STATIC(
3302 MPI_INT,
3303 MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE, /* name */
3304 &MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE, /* address */
3305 1, /* count */
3306 MPI_T_VERBOSITY_USER_BASIC,
3307 MPI_T_SCOPE_ALL_EQ,
3308 defaultval,
3309 "COLLECTIVE", /* category */
3310 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ineighbor_allgather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3311 MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE = defaultval.d;
3312 rc = MPL_env2bool("MPICH_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
3313 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
3314 rc = MPL_env2bool("MPIR_PARAM_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
3315 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
3316 rc = MPL_env2bool("MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
3317 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
3318
3319 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_auto;
3320 MPIR_T_CVAR_REGISTER_STATIC(
3321 MPI_INT,
3322 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM, /* name */
3323 &MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM, /* address */
3324 1, /* count */
3325 MPI_T_VERBOSITY_USER_BASIC,
3326 MPI_T_SCOPE_ALL_EQ,
3327 defaultval,
3328 "COLLECTIVE", /* category */
3329 "Variable to select ineighbor_allgatherv algorithm\
3330 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3331 sched_auto - Internal algorithm selection for sched-based algorithms\
3332 sched_linear - Force linear algorithm\
3333 gentran_linear - Force generic transport based linear algorithm");
3334 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = defaultval.d;
3335 tmp_str=NULL;
3336 rc = MPL_env2str("MPICH_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
3337 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
3338 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
3339 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
3340 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
3341 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
3342 if (tmp_str != NULL) {
3343 if (0 == strcmp(tmp_str, "auto"))
3344 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_auto;
3345 else if (0 == strcmp(tmp_str, "sched_auto"))
3346 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_sched_auto;
3347 else if (0 == strcmp(tmp_str, "sched_linear"))
3348 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_sched_linear;
3349 else if (0 == strcmp(tmp_str, "gentran_linear"))
3350 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_gentran_linear;
3351 else {
3352 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", tmp_str);
3353 goto fn_fail;
3354 }
3355 }
3356
3357 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM_auto;
3358 MPIR_T_CVAR_REGISTER_STATIC(
3359 MPI_INT,
3360 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM, /* name */
3361 &MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM, /* address */
3362 1, /* count */
3363 MPI_T_VERBOSITY_USER_BASIC,
3364 MPI_T_SCOPE_ALL_EQ,
3365 defaultval,
3366 "COLLECTIVE", /* category */
3367 "Variable to select ineighbor_allgatherv algorithm\
3368 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3369 sched_auto - Internal algorithm selection for sched-based algorithms\
3370 sched_linear - Force linear algorithm\
3371 gentran_linear - Force generic transport based linear algorithm");
3372 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM = defaultval.d;
3373 tmp_str=NULL;
3374 rc = MPL_env2str("MPICH_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
3375 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
3376 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
3377 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
3378 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
3379 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
3380 if (tmp_str != NULL) {
3381 if (0 == strcmp(tmp_str, "auto"))
3382 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM_auto;
3383 else if (0 == strcmp(tmp_str, "sched_auto"))
3384 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM_sched_auto;
3385 else if (0 == strcmp(tmp_str, "sched_linear"))
3386 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM_sched_linear;
3387 else if (0 == strcmp(tmp_str, "gentran_linear"))
3388 MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM_gentran_linear;
3389 else {
3390 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLGATHERV_INTER_ALGORITHM", tmp_str);
3391 goto fn_fail;
3392 }
3393 }
3394
3395 defaultval.d = 1;
3396 MPIR_T_CVAR_REGISTER_STATIC(
3397 MPI_INT,
3398 MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE, /* name */
3399 &MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE, /* address */
3400 1, /* count */
3401 MPI_T_VERBOSITY_USER_BASIC,
3402 MPI_T_SCOPE_ALL_EQ,
3403 defaultval,
3404 "COLLECTIVE", /* category */
3405 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ineighbor_allgatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3406 MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE = defaultval.d;
3407 rc = MPL_env2bool("MPICH_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
3408 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
3409 rc = MPL_env2bool("MPIR_PARAM_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
3410 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
3411 rc = MPL_env2bool("MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
3412 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
3413
3414 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM_auto;
3415 MPIR_T_CVAR_REGISTER_STATIC(
3416 MPI_INT,
3417 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM, /* name */
3418 &MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM, /* address */
3419 1, /* count */
3420 MPI_T_VERBOSITY_USER_BASIC,
3421 MPI_T_SCOPE_ALL_EQ,
3422 defaultval,
3423 "COLLECTIVE", /* category */
3424 "Variable to select ineighbor_alltoall algorithm\
3425 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3426 sched_auto - Internal algorithm selection for sched-based algorithms\
3427 sched_linear - Force linear algorithm\
3428 gentran_linear - Force generic transport based linear algorithm");
3429 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM = defaultval.d;
3430 tmp_str=NULL;
3431 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
3432 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
3433 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
3434 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
3435 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
3436 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
3437 if (tmp_str != NULL) {
3438 if (0 == strcmp(tmp_str, "auto"))
3439 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM_auto;
3440 else if (0 == strcmp(tmp_str, "sched_auto"))
3441 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM_sched_auto;
3442 else if (0 == strcmp(tmp_str, "sched_linear"))
3443 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM_sched_linear;
3444 else if (0 == strcmp(tmp_str, "gentran_linear"))
3445 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM_gentran_linear;
3446 else {
3447 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALL_INTRA_ALGORITHM", tmp_str);
3448 goto fn_fail;
3449 }
3450 }
3451
3452 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM_auto;
3453 MPIR_T_CVAR_REGISTER_STATIC(
3454 MPI_INT,
3455 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM, /* name */
3456 &MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM, /* address */
3457 1, /* count */
3458 MPI_T_VERBOSITY_USER_BASIC,
3459 MPI_T_SCOPE_ALL_EQ,
3460 defaultval,
3461 "COLLECTIVE", /* category */
3462 "Variable to select ineighbor_alltoall algorithm\
3463 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3464 sched_auto - Internal algorithm selection for sched-based algorithms\
3465 sched_linear - Force linear algorithm\
3466 gentran_linear - Force generic transport based linear algorithm");
3467 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM = defaultval.d;
3468 tmp_str=NULL;
3469 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
3470 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALL_INTER_ALGORITHM");
3471 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
3472 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALL_INTER_ALGORITHM");
3473 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
3474 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM");
3475 if (tmp_str != NULL) {
3476 if (0 == strcmp(tmp_str, "auto"))
3477 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM_auto;
3478 else if (0 == strcmp(tmp_str, "sched_auto"))
3479 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM_sched_auto;
3480 else if (0 == strcmp(tmp_str, "sched_linear"))
3481 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM_sched_linear;
3482 else if (0 == strcmp(tmp_str, "gentran_linear"))
3483 MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM_gentran_linear;
3484 else {
3485 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALL_INTER_ALGORITHM", tmp_str);
3486 goto fn_fail;
3487 }
3488 }
3489
3490 defaultval.d = 1;
3491 MPIR_T_CVAR_REGISTER_STATIC(
3492 MPI_INT,
3493 MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE, /* name */
3494 &MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE, /* address */
3495 1, /* count */
3496 MPI_T_VERBOSITY_USER_BASIC,
3497 MPI_T_SCOPE_ALL_EQ,
3498 defaultval,
3499 "COLLECTIVE", /* category */
3500 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ineighbor_alltoall will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3501 MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE = defaultval.d;
3502 rc = MPL_env2bool("MPICH_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
3503 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
3504 rc = MPL_env2bool("MPIR_PARAM_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
3505 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
3506 rc = MPL_env2bool("MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
3507 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
3508
3509 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_auto;
3510 MPIR_T_CVAR_REGISTER_STATIC(
3511 MPI_INT,
3512 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM, /* name */
3513 &MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM, /* address */
3514 1, /* count */
3515 MPI_T_VERBOSITY_USER_BASIC,
3516 MPI_T_SCOPE_ALL_EQ,
3517 defaultval,
3518 "COLLECTIVE", /* category */
3519 "Variable to select ineighbor_alltoallv algorithm\
3520 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3521 sched_auto - Internal algorithm selection for sched-based algorithms\
3522 sched_linear - Force linear algorithm\
3523 gentran_linear - Force generic transport based linear algorithm");
3524 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = defaultval.d;
3525 tmp_str=NULL;
3526 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
3527 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
3528 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
3529 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
3530 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
3531 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
3532 if (tmp_str != NULL) {
3533 if (0 == strcmp(tmp_str, "auto"))
3534 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_auto;
3535 else if (0 == strcmp(tmp_str, "sched_auto"))
3536 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_sched_auto;
3537 else if (0 == strcmp(tmp_str, "sched_linear"))
3538 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_sched_linear;
3539 else if (0 == strcmp(tmp_str, "gentran_linear"))
3540 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_gentran_linear;
3541 else {
3542 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", tmp_str);
3543 goto fn_fail;
3544 }
3545 }
3546
3547 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM_auto;
3548 MPIR_T_CVAR_REGISTER_STATIC(
3549 MPI_INT,
3550 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM, /* name */
3551 &MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM, /* address */
3552 1, /* count */
3553 MPI_T_VERBOSITY_USER_BASIC,
3554 MPI_T_SCOPE_ALL_EQ,
3555 defaultval,
3556 "COLLECTIVE", /* category */
3557 "Variable to select ineighbor_alltoallv algorithm\
3558 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3559 sched_auto - Internal algorithm selection for sched-based algorithms\
3560 sched_linear - Force linear algorithm\
3561 gentran_linear - Force generic transport based linear algorithm");
3562 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM = defaultval.d;
3563 tmp_str=NULL;
3564 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
3565 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
3566 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
3567 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
3568 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
3569 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
3570 if (tmp_str != NULL) {
3571 if (0 == strcmp(tmp_str, "auto"))
3572 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM_auto;
3573 else if (0 == strcmp(tmp_str, "sched_auto"))
3574 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM_sched_auto;
3575 else if (0 == strcmp(tmp_str, "sched_linear"))
3576 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM_sched_linear;
3577 else if (0 == strcmp(tmp_str, "gentran_linear"))
3578 MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM_gentran_linear;
3579 else {
3580 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALLV_INTER_ALGORITHM", tmp_str);
3581 goto fn_fail;
3582 }
3583 }
3584
3585 defaultval.d = 1;
3586 MPIR_T_CVAR_REGISTER_STATIC(
3587 MPI_INT,
3588 MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE, /* name */
3589 &MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE, /* address */
3590 1, /* count */
3591 MPI_T_VERBOSITY_USER_BASIC,
3592 MPI_T_SCOPE_ALL_EQ,
3593 defaultval,
3594 "COLLECTIVE", /* category */
3595 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ineighbor_alltoallv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3596 MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE = defaultval.d;
3597 rc = MPL_env2bool("MPICH_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
3598 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
3599 rc = MPL_env2bool("MPIR_PARAM_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
3600 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
3601 rc = MPL_env2bool("MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
3602 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
3603
3604 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_auto;
3605 MPIR_T_CVAR_REGISTER_STATIC(
3606 MPI_INT,
3607 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM, /* name */
3608 &MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM, /* address */
3609 1, /* count */
3610 MPI_T_VERBOSITY_USER_BASIC,
3611 MPI_T_SCOPE_ALL_EQ,
3612 defaultval,
3613 "COLLECTIVE", /* category */
3614 "Variable to select ineighbor_alltoallw algorithm\
3615 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3616 sched_auto - Internal algorithm selection for sched-based algorithms\
3617 sched_linear - Force linear algorithm\
3618 gentran_linear - Force generic transport based linear algorithm");
3619 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = defaultval.d;
3620 tmp_str=NULL;
3621 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
3622 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
3623 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
3624 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
3625 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
3626 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
3627 if (tmp_str != NULL) {
3628 if (0 == strcmp(tmp_str, "auto"))
3629 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_auto;
3630 else if (0 == strcmp(tmp_str, "sched_auto"))
3631 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_sched_auto;
3632 else if (0 == strcmp(tmp_str, "sched_linear"))
3633 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_sched_linear;
3634 else if (0 == strcmp(tmp_str, "gentran_linear"))
3635 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_gentran_linear;
3636 else {
3637 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", tmp_str);
3638 goto fn_fail;
3639 }
3640 }
3641
3642 defaultval.d = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM_auto;
3643 MPIR_T_CVAR_REGISTER_STATIC(
3644 MPI_INT,
3645 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM, /* name */
3646 &MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM, /* address */
3647 1, /* count */
3648 MPI_T_VERBOSITY_USER_BASIC,
3649 MPI_T_SCOPE_ALL_EQ,
3650 defaultval,
3651 "COLLECTIVE", /* category */
3652 "Variable to select ineighbor_alltoallw algorithm\
3653 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3654 sched_auto - Internal algorithm selection for sched-based algorithms\
3655 sched_linear - Force linear algorithm\
3656 gentran_linear - Force generic transport based linear algorithm");
3657 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM = defaultval.d;
3658 tmp_str=NULL;
3659 rc = MPL_env2str("MPICH_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
3660 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
3661 rc = MPL_env2str("MPIR_PARAM_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
3662 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
3663 rc = MPL_env2str("MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
3664 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
3665 if (tmp_str != NULL) {
3666 if (0 == strcmp(tmp_str, "auto"))
3667 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM_auto;
3668 else if (0 == strcmp(tmp_str, "sched_auto"))
3669 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM_sched_auto;
3670 else if (0 == strcmp(tmp_str, "sched_linear"))
3671 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM_sched_linear;
3672 else if (0 == strcmp(tmp_str, "gentran_linear"))
3673 MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM_gentran_linear;
3674 else {
3675 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_INEIGHBOR_ALLTOALLW_INTER_ALGORITHM", tmp_str);
3676 goto fn_fail;
3677 }
3678 }
3679
3680 defaultval.d = 1;
3681 MPIR_T_CVAR_REGISTER_STATIC(
3682 MPI_INT,
3683 MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE, /* name */
3684 &MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE, /* address */
3685 1, /* count */
3686 MPI_T_VERBOSITY_USER_BASIC,
3687 MPI_T_SCOPE_ALL_EQ,
3688 defaultval,
3689 "COLLECTIVE", /* category */
3690 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ineighbor_alltoallw will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3691 MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE = defaultval.d;
3692 rc = MPL_env2bool("MPICH_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
3693 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
3694 rc = MPL_env2bool("MPIR_PARAM_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
3695 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
3696 rc = MPL_env2bool("MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
3697 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
3698
3699 defaultval.d = 2;
3700 MPIR_T_CVAR_REGISTER_STATIC(
3701 MPI_INT,
3702 MPIR_CVAR_IREDUCE_TREE_KVAL, /* name */
3703 &MPIR_CVAR_IREDUCE_TREE_KVAL, /* address */
3704 1, /* count */
3705 MPI_T_VERBOSITY_USER_BASIC,
3706 MPI_T_SCOPE_ALL_EQ,
3707 defaultval,
3708 "COLLECTIVE", /* category */
3709 "k value for tree (kary, knomial, etc.) based ireduce");
3710 MPIR_CVAR_IREDUCE_TREE_KVAL = defaultval.d;
3711 rc = MPL_env2int("MPICH_IREDUCE_TREE_KVAL", &(MPIR_CVAR_IREDUCE_TREE_KVAL));
3712 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_TREE_KVAL");
3713 rc = MPL_env2int("MPIR_PARAM_IREDUCE_TREE_KVAL", &(MPIR_CVAR_IREDUCE_TREE_KVAL));
3714 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_TREE_KVAL");
3715 rc = MPL_env2int("MPIR_CVAR_IREDUCE_TREE_KVAL", &(MPIR_CVAR_IREDUCE_TREE_KVAL));
3716 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_TREE_KVAL");
3717
3718 defaultval.str = (const char *) "kary";
3719 MPIR_T_CVAR_REGISTER_STATIC(
3720 MPI_CHAR,
3721 MPIR_CVAR_IREDUCE_TREE_TYPE, /* name */
3722 &MPIR_CVAR_IREDUCE_TREE_TYPE, /* address */
3723 MPIR_CVAR_MAX_STRLEN, /* count */
3724 MPI_T_VERBOSITY_USER_BASIC,
3725 MPI_T_SCOPE_ALL_EQ,
3726 defaultval,
3727 "COLLECTIVE", /* category */
3728 "Tree type for tree based ireduce kary - kary tree knomial_1 - knomial_1 tree knomial_2 - knomial_2 tree");
3729 tmp_str = defaultval.str;
3730 rc = MPL_env2str("MPICH_IREDUCE_TREE_TYPE", &tmp_str);
3731 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_TREE_TYPE");
3732 rc = MPL_env2str("MPIR_PARAM_IREDUCE_TREE_TYPE", &tmp_str);
3733 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_TREE_TYPE");
3734 rc = MPL_env2str("MPIR_CVAR_IREDUCE_TREE_TYPE", &tmp_str);
3735 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_TREE_TYPE");
3736 if (tmp_str != NULL) {
3737 MPIR_CVAR_IREDUCE_TREE_TYPE = MPL_strdup(tmp_str);
3738 MPIR_CVAR_assert(MPIR_CVAR_IREDUCE_TREE_TYPE);
3739 if (MPIR_CVAR_IREDUCE_TREE_TYPE == NULL) {
3740 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_IREDUCE_TREE_TYPE");
3741 goto fn_fail;
3742 }
3743 }
3744 else {
3745 MPIR_CVAR_IREDUCE_TREE_TYPE = NULL;
3746 }
3747
3748 defaultval.d = -1;
3749 MPIR_T_CVAR_REGISTER_STATIC(
3750 MPI_INT,
3751 MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE, /* name */
3752 &MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE, /* address */
3753 1, /* count */
3754 MPI_T_VERBOSITY_USER_BASIC,
3755 MPI_T_SCOPE_ALL_EQ,
3756 defaultval,
3757 "COLLECTIVE", /* category */
3758 "Maximum chunk size (in bytes) for pipelining in tree based ireduce. Default value is 0, that is, no pipelining by default");
3759 MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE = defaultval.d;
3760 rc = MPL_env2int("MPICH_IREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE));
3761 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_TREE_PIPELINE_CHUNK_SIZE");
3762 rc = MPL_env2int("MPIR_PARAM_IREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE));
3763 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_TREE_PIPELINE_CHUNK_SIZE");
3764 rc = MPL_env2int("MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE));
3765 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_TREE_PIPELINE_CHUNK_SIZE");
3766
3767 defaultval.d = 0;
3768 MPIR_T_CVAR_REGISTER_STATIC(
3769 MPI_INT,
3770 MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE, /* name */
3771 &MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE, /* address */
3772 1, /* count */
3773 MPI_T_VERBOSITY_USER_BASIC,
3774 MPI_T_SCOPE_ALL_EQ,
3775 defaultval,
3776 "COLLECTIVE", /* category */
3777 "Maximum chunk size (in bytes) for pipelining in ireduce ring algorithm. Default value is 0, that is, no pipelining by default");
3778 MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE = defaultval.d;
3779 rc = MPL_env2int("MPICH_IREDUCE_RING_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE));
3780 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_RING_CHUNK_SIZE");
3781 rc = MPL_env2int("MPIR_PARAM_IREDUCE_RING_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE));
3782 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_RING_CHUNK_SIZE");
3783 rc = MPL_env2int("MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE", &(MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE));
3784 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_RING_CHUNK_SIZE");
3785
3786 defaultval.d = 0;
3787 MPIR_T_CVAR_REGISTER_STATIC(
3788 MPI_INT,
3789 MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD, /* name */
3790 &MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD, /* address */
3791 1, /* count */
3792 MPI_T_VERBOSITY_USER_BASIC,
3793 MPI_T_SCOPE_ALL_EQ,
3794 defaultval,
3795 "COLLECTIVE", /* category */
3796 "If set to true, a rank in tree algorithms will allocate a dedicated buffer for every child it receives data from. This would mean more memory consumption but it would allow preposting of the receives and hence reduce the number of unexpected messages. If set to false, there is only one buffer that is used to receive the data from all the children. The receives are therefore serialized, that is, only one receive can be posted at a time.");
3797 MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD = defaultval.d;
3798 rc = MPL_env2bool("MPICH_IREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD));
3799 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_TREE_BUFFER_PER_CHILD");
3800 rc = MPL_env2bool("MPIR_PARAM_IREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD));
3801 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_TREE_BUFFER_PER_CHILD");
3802 rc = MPL_env2bool("MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD", &(MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD));
3803 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_TREE_BUFFER_PER_CHILD");
3804
3805 defaultval.d = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_auto;
3806 MPIR_T_CVAR_REGISTER_STATIC(
3807 MPI_INT,
3808 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM, /* name */
3809 &MPIR_CVAR_IREDUCE_INTRA_ALGORITHM, /* address */
3810 1, /* count */
3811 MPI_T_VERBOSITY_USER_BASIC,
3812 MPI_T_SCOPE_ALL_EQ,
3813 defaultval,
3814 "COLLECTIVE", /* category */
3815 "Variable to select ireduce algorithm\
3816 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3817 sched_auto - Internal algorithm selection for sched-based algorithms\
3818 sched_smp - Force smp algorithm\
3819 sched_binomial - Force binomial algorithm\
3820 sched_reduce_scatter_gather - Force reduce scatter gather algorithm\
3821 gentran_tree - Force Generic Transport Tree\
3822 gentran_ring - Force Generic Transport Ring");
3823 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = defaultval.d;
3824 tmp_str=NULL;
3825 rc = MPL_env2str("MPICH_IREDUCE_INTRA_ALGORITHM", &tmp_str);
3826 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_INTRA_ALGORITHM");
3827 rc = MPL_env2str("MPIR_PARAM_IREDUCE_INTRA_ALGORITHM", &tmp_str);
3828 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_INTRA_ALGORITHM");
3829 rc = MPL_env2str("MPIR_CVAR_IREDUCE_INTRA_ALGORITHM", &tmp_str);
3830 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_INTRA_ALGORITHM");
3831 if (tmp_str != NULL) {
3832 if (0 == strcmp(tmp_str, "auto"))
3833 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_auto;
3834 else if (0 == strcmp(tmp_str, "sched_auto"))
3835 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_sched_auto;
3836 else if (0 == strcmp(tmp_str, "sched_smp"))
3837 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_sched_smp;
3838 else if (0 == strcmp(tmp_str, "sched_binomial"))
3839 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_sched_binomial;
3840 else if (0 == strcmp(tmp_str, "sched_reduce_scatter_gather"))
3841 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_sched_reduce_scatter_gather;
3842 else if (0 == strcmp(tmp_str, "gentran_tree"))
3843 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_gentran_tree;
3844 else if (0 == strcmp(tmp_str, "gentran_ring"))
3845 MPIR_CVAR_IREDUCE_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_INTRA_ALGORITHM_gentran_ring;
3846 else {
3847 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_INTRA_ALGORITHM", tmp_str);
3848 goto fn_fail;
3849 }
3850 }
3851
3852 defaultval.d = MPIR_CVAR_IREDUCE_INTER_ALGORITHM_auto;
3853 MPIR_T_CVAR_REGISTER_STATIC(
3854 MPI_INT,
3855 MPIR_CVAR_IREDUCE_INTER_ALGORITHM, /* name */
3856 &MPIR_CVAR_IREDUCE_INTER_ALGORITHM, /* address */
3857 1, /* count */
3858 MPI_T_VERBOSITY_USER_BASIC,
3859 MPI_T_SCOPE_ALL_EQ,
3860 defaultval,
3861 "COLLECTIVE", /* category */
3862 "Variable to select ireduce algorithm\
3863 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3864 sched_auto - Internal algorithm selection for sched-based algorithms\
3865 sched_local_reduce_remote_send - Force local-reduce-remote-send algorithm");
3866 MPIR_CVAR_IREDUCE_INTER_ALGORITHM = defaultval.d;
3867 tmp_str=NULL;
3868 rc = MPL_env2str("MPICH_IREDUCE_INTER_ALGORITHM", &tmp_str);
3869 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_INTER_ALGORITHM");
3870 rc = MPL_env2str("MPIR_PARAM_IREDUCE_INTER_ALGORITHM", &tmp_str);
3871 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_INTER_ALGORITHM");
3872 rc = MPL_env2str("MPIR_CVAR_IREDUCE_INTER_ALGORITHM", &tmp_str);
3873 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_INTER_ALGORITHM");
3874 if (tmp_str != NULL) {
3875 if (0 == strcmp(tmp_str, "auto"))
3876 MPIR_CVAR_IREDUCE_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_INTER_ALGORITHM_auto;
3877 else if (0 == strcmp(tmp_str, "sched_auto"))
3878 MPIR_CVAR_IREDUCE_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_INTER_ALGORITHM_sched_auto;
3879 else if (0 == strcmp(tmp_str, "sched_local_reduce_remote_send"))
3880 MPIR_CVAR_IREDUCE_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_INTER_ALGORITHM_sched_local_reduce_remote_send;
3881 else {
3882 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_INTER_ALGORITHM", tmp_str);
3883 goto fn_fail;
3884 }
3885 }
3886
3887 defaultval.d = 1;
3888 MPIR_T_CVAR_REGISTER_STATIC(
3889 MPI_INT,
3890 MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE, /* name */
3891 &MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE, /* address */
3892 1, /* count */
3893 MPI_T_VERBOSITY_USER_BASIC,
3894 MPI_T_SCOPE_ALL_EQ,
3895 defaultval,
3896 "COLLECTIVE", /* category */
3897 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ireduce will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
3898 MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE = defaultval.d;
3899 rc = MPL_env2bool("MPICH_IREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE));
3900 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_DEVICE_COLLECTIVE");
3901 rc = MPL_env2bool("MPIR_PARAM_IREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE));
3902 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_DEVICE_COLLECTIVE");
3903 rc = MPL_env2bool("MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE));
3904 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_DEVICE_COLLECTIVE");
3905
3906 defaultval.d = 2;
3907 MPIR_T_CVAR_REGISTER_STATIC(
3908 MPI_INT,
3909 MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL, /* name */
3910 &MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL, /* address */
3911 1, /* count */
3912 MPI_T_VERBOSITY_USER_BASIC,
3913 MPI_T_SCOPE_ALL_EQ,
3914 defaultval,
3915 "COLLECTIVE", /* category */
3916 "k value for recursive exchange based ireduce_scatter");
3917 MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL = defaultval.d;
3918 rc = MPL_env2int("MPICH_IREDUCE_SCATTER_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL));
3919 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_RECEXCH_KVAL");
3920 rc = MPL_env2int("MPIR_PARAM_IREDUCE_SCATTER_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL));
3921 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_RECEXCH_KVAL");
3922 rc = MPL_env2int("MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL));
3923 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_RECEXCH_KVAL");
3924
3925 defaultval.d = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_auto;
3926 MPIR_T_CVAR_REGISTER_STATIC(
3927 MPI_INT,
3928 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM, /* name */
3929 &MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM, /* address */
3930 1, /* count */
3931 MPI_T_VERBOSITY_USER_BASIC,
3932 MPI_T_SCOPE_ALL_EQ,
3933 defaultval,
3934 "COLLECTIVE", /* category */
3935 "Variable to select ireduce_scatter algorithm\
3936 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3937 sched_auto - Internal algorithm selection for sched-based algorithms\
3938 sched_noncommutative - Force noncommutative algorithm\
3939 sched_recursive_doubling - Force recursive doubling algorithm\
3940 sched_pairwise - Force pairwise algorithm\
3941 sched_recursive_halving - Force recursive halving algorithm\
3942 gentran_recexch - Force generic transport recursive exchange algorithm");
3943 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = defaultval.d;
3944 tmp_str=NULL;
3945 rc = MPL_env2str("MPICH_IREDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
3946 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_INTRA_ALGORITHM");
3947 rc = MPL_env2str("MPIR_PARAM_IREDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
3948 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_INTRA_ALGORITHM");
3949 rc = MPL_env2str("MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
3950 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM");
3951 if (tmp_str != NULL) {
3952 if (0 == strcmp(tmp_str, "auto"))
3953 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_auto;
3954 else if (0 == strcmp(tmp_str, "sched_auto"))
3955 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_sched_auto;
3956 else if (0 == strcmp(tmp_str, "sched_noncommutative"))
3957 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_sched_noncommutative;
3958 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
3959 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_sched_recursive_doubling;
3960 else if (0 == strcmp(tmp_str, "sched_pairwise"))
3961 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_sched_pairwise;
3962 else if (0 == strcmp(tmp_str, "sched_recursive_halving"))
3963 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_sched_recursive_halving;
3964 else if (0 == strcmp(tmp_str, "gentran_recexch"))
3965 MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM_gentran_recexch;
3966 else {
3967 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_SCATTER_INTRA_ALGORITHM", tmp_str);
3968 goto fn_fail;
3969 }
3970 }
3971
3972 defaultval.d = MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM_auto;
3973 MPIR_T_CVAR_REGISTER_STATIC(
3974 MPI_INT,
3975 MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM, /* name */
3976 &MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM, /* address */
3977 1, /* count */
3978 MPI_T_VERBOSITY_USER_BASIC,
3979 MPI_T_SCOPE_ALL_EQ,
3980 defaultval,
3981 "COLLECTIVE", /* category */
3982 "Variable to select ireduce_scatter algorithm\
3983 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
3984 sched_auto - Internal algorithm selection for sched-based algorithms\
3985 sched_remote_reduce_local_scatterv - Force remote-reduce-local-scatterv algorithm");
3986 MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM = defaultval.d;
3987 tmp_str=NULL;
3988 rc = MPL_env2str("MPICH_IREDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
3989 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_INTER_ALGORITHM");
3990 rc = MPL_env2str("MPIR_PARAM_IREDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
3991 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_INTER_ALGORITHM");
3992 rc = MPL_env2str("MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
3993 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM");
3994 if (tmp_str != NULL) {
3995 if (0 == strcmp(tmp_str, "auto"))
3996 MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM_auto;
3997 else if (0 == strcmp(tmp_str, "sched_auto"))
3998 MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM_sched_auto;
3999 else if (0 == strcmp(tmp_str, "sched_remote_reduce_local_scatterv"))
4000 MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM_sched_remote_reduce_local_scatterv;
4001 else {
4002 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_SCATTER_INTER_ALGORITHM", tmp_str);
4003 goto fn_fail;
4004 }
4005 }
4006
4007 defaultval.d = 1;
4008 MPIR_T_CVAR_REGISTER_STATIC(
4009 MPI_INT,
4010 MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE, /* name */
4011 &MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE, /* address */
4012 1, /* count */
4013 MPI_T_VERBOSITY_USER_BASIC,
4014 MPI_T_SCOPE_ALL_EQ,
4015 defaultval,
4016 "COLLECTIVE", /* category */
4017 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ireduce_scatter will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4018 MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE = defaultval.d;
4019 rc = MPL_env2bool("MPICH_IREDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE));
4020 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_DEVICE_COLLECTIVE");
4021 rc = MPL_env2bool("MPIR_PARAM_IREDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE));
4022 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_DEVICE_COLLECTIVE");
4023 rc = MPL_env2bool("MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE));
4024 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_DEVICE_COLLECTIVE");
4025
4026 defaultval.d = 2;
4027 MPIR_T_CVAR_REGISTER_STATIC(
4028 MPI_INT,
4029 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL, /* name */
4030 &MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL, /* address */
4031 1, /* count */
4032 MPI_T_VERBOSITY_USER_BASIC,
4033 MPI_T_SCOPE_ALL_EQ,
4034 defaultval,
4035 "COLLECTIVE", /* category */
4036 "k value for recursive exchange based ireduce_scatter_block");
4037 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL = defaultval.d;
4038 rc = MPL_env2int("MPICH_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL));
4039 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL");
4040 rc = MPL_env2int("MPIR_PARAM_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL));
4041 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL");
4042 rc = MPL_env2int("MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL));
4043 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_BLOCK_RECEXCH_KVAL");
4044
4045 defaultval.d = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_auto;
4046 MPIR_T_CVAR_REGISTER_STATIC(
4047 MPI_INT,
4048 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM, /* name */
4049 &MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM, /* address */
4050 1, /* count */
4051 MPI_T_VERBOSITY_USER_BASIC,
4052 MPI_T_SCOPE_ALL_EQ,
4053 defaultval,
4054 "COLLECTIVE", /* category */
4055 "Variable to select ireduce_scatter_block algorithm\
4056 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4057 sched_auto - Internal algorithm selection for sched-based algorithms\
4058 sched_noncommutative - Force noncommutative algorithm\
4059 sched_recursive_doubling - Force recursive doubling algorithm\
4060 sched_pairwise - Force pairwise algorithm\
4061 sched_recursive_halving - Force recursive halving algorithm\
4062 gentran_recexch - Force generic transport recursive exchange algorithm");
4063 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = defaultval.d;
4064 tmp_str=NULL;
4065 rc = MPL_env2str("MPICH_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
4066 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
4067 rc = MPL_env2str("MPIR_PARAM_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
4068 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
4069 rc = MPL_env2str("MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
4070 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
4071 if (tmp_str != NULL) {
4072 if (0 == strcmp(tmp_str, "auto"))
4073 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_auto;
4074 else if (0 == strcmp(tmp_str, "sched_auto"))
4075 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_sched_auto;
4076 else if (0 == strcmp(tmp_str, "sched_noncommutative"))
4077 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_sched_noncommutative;
4078 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
4079 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_sched_recursive_doubling;
4080 else if (0 == strcmp(tmp_str, "sched_pairwise"))
4081 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_sched_pairwise;
4082 else if (0 == strcmp(tmp_str, "sched_recursive_halving"))
4083 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_sched_recursive_halving;
4084 else if (0 == strcmp(tmp_str, "gentran_recexch"))
4085 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_gentran_recexch;
4086 else {
4087 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", tmp_str);
4088 goto fn_fail;
4089 }
4090 }
4091
4092 defaultval.d = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM_auto;
4093 MPIR_T_CVAR_REGISTER_STATIC(
4094 MPI_INT,
4095 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM, /* name */
4096 &MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM, /* address */
4097 1, /* count */
4098 MPI_T_VERBOSITY_USER_BASIC,
4099 MPI_T_SCOPE_ALL_EQ,
4100 defaultval,
4101 "COLLECTIVE", /* category */
4102 "Variable to select ireduce_scatter_block algorithm\
4103 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4104 sched_auto - Internal algorithm selection for sched-based algorithms\
4105 sched_remote_reduce_local_scatterv - Force remote-reduce-local-scatterv algorithm");
4106 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM = defaultval.d;
4107 tmp_str=NULL;
4108 rc = MPL_env2str("MPICH_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
4109 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
4110 rc = MPL_env2str("MPIR_PARAM_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
4111 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
4112 rc = MPL_env2str("MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
4113 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
4114 if (tmp_str != NULL) {
4115 if (0 == strcmp(tmp_str, "auto"))
4116 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM_auto;
4117 else if (0 == strcmp(tmp_str, "sched_auto"))
4118 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM_sched_auto;
4119 else if (0 == strcmp(tmp_str, "sched_remote_reduce_local_scatterv"))
4120 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM_sched_remote_reduce_local_scatterv;
4121 else {
4122 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_IREDUCE_SCATTER_BLOCK_INTER_ALGORITHM", tmp_str);
4123 goto fn_fail;
4124 }
4125 }
4126
4127 defaultval.d = 1;
4128 MPIR_T_CVAR_REGISTER_STATIC(
4129 MPI_INT,
4130 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE, /* name */
4131 &MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE, /* address */
4132 1, /* count */
4133 MPI_T_VERBOSITY_USER_BASIC,
4134 MPI_T_SCOPE_ALL_EQ,
4135 defaultval,
4136 "COLLECTIVE", /* category */
4137 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Ireduce_scatter_block will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4138 MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE = defaultval.d;
4139 rc = MPL_env2bool("MPICH_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
4140 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
4141 rc = MPL_env2bool("MPIR_PARAM_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
4142 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
4143 rc = MPL_env2bool("MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
4144 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_IREDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
4145
4146 defaultval.d = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_auto;
4147 MPIR_T_CVAR_REGISTER_STATIC(
4148 MPI_INT,
4149 MPIR_CVAR_ISCAN_INTRA_ALGORITHM, /* name */
4150 &MPIR_CVAR_ISCAN_INTRA_ALGORITHM, /* address */
4151 1, /* count */
4152 MPI_T_VERBOSITY_USER_BASIC,
4153 MPI_T_SCOPE_ALL_EQ,
4154 defaultval,
4155 "COLLECTIVE", /* category */
4156 "Variable to select allgather algorithm\
4157 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4158 sched_auto - Internal algorithm selection for sched-based algorithms\
4159 sched_smp - Force smp algorithm\
4160 sched_recursive_doubling - Force recursive doubling algorithm\
4161 gentran_recursive_doubling - Force generic transport recursive doubling algorithm");
4162 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = defaultval.d;
4163 tmp_str=NULL;
4164 rc = MPL_env2str("MPICH_ISCAN_INTRA_ALGORITHM", &tmp_str);
4165 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCAN_INTRA_ALGORITHM");
4166 rc = MPL_env2str("MPIR_PARAM_ISCAN_INTRA_ALGORITHM", &tmp_str);
4167 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCAN_INTRA_ALGORITHM");
4168 rc = MPL_env2str("MPIR_CVAR_ISCAN_INTRA_ALGORITHM", &tmp_str);
4169 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCAN_INTRA_ALGORITHM");
4170 if (tmp_str != NULL) {
4171 if (0 == strcmp(tmp_str, "auto"))
4172 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_auto;
4173 else if (0 == strcmp(tmp_str, "sched_auto"))
4174 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_sched_auto;
4175 else if (0 == strcmp(tmp_str, "sched_smp"))
4176 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_sched_smp;
4177 else if (0 == strcmp(tmp_str, "sched_recursive_doubling"))
4178 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_sched_recursive_doubling;
4179 else if (0 == strcmp(tmp_str, "gentran_recursive_doubling"))
4180 MPIR_CVAR_ISCAN_INTRA_ALGORITHM = MPIR_CVAR_ISCAN_INTRA_ALGORITHM_gentran_recursive_doubling;
4181 else {
4182 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ISCAN_INTRA_ALGORITHM", tmp_str);
4183 goto fn_fail;
4184 }
4185 }
4186
4187 defaultval.d = 1;
4188 MPIR_T_CVAR_REGISTER_STATIC(
4189 MPI_INT,
4190 MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE, /* name */
4191 &MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE, /* address */
4192 1, /* count */
4193 MPI_T_VERBOSITY_USER_BASIC,
4194 MPI_T_SCOPE_ALL_EQ,
4195 defaultval,
4196 "COLLECTIVE", /* category */
4197 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iscan will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4198 MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE = defaultval.d;
4199 rc = MPL_env2bool("MPICH_ISCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE));
4200 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCAN_DEVICE_COLLECTIVE");
4201 rc = MPL_env2bool("MPIR_PARAM_ISCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE));
4202 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCAN_DEVICE_COLLECTIVE");
4203 rc = MPL_env2bool("MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE));
4204 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCAN_DEVICE_COLLECTIVE");
4205
4206 defaultval.d = MPIR_CVAR_ISCATTER_INTRA_ALGORITHM_auto;
4207 MPIR_T_CVAR_REGISTER_STATIC(
4208 MPI_INT,
4209 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM, /* name */
4210 &MPIR_CVAR_ISCATTER_INTRA_ALGORITHM, /* address */
4211 1, /* count */
4212 MPI_T_VERBOSITY_USER_BASIC,
4213 MPI_T_SCOPE_ALL_EQ,
4214 defaultval,
4215 "COLLECTIVE", /* category */
4216 "Variable to select iscatter algorithm\
4217 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4218 sched_auto - Internal algorithm selection for sched-based algorithms\
4219 sched_binomial - Force binomial algorithm\
4220 gentran_tree - Force genetric transport based tree algorithm");
4221 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM = defaultval.d;
4222 tmp_str=NULL;
4223 rc = MPL_env2str("MPICH_ISCATTER_INTRA_ALGORITHM", &tmp_str);
4224 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTER_INTRA_ALGORITHM");
4225 rc = MPL_env2str("MPIR_PARAM_ISCATTER_INTRA_ALGORITHM", &tmp_str);
4226 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTER_INTRA_ALGORITHM");
4227 rc = MPL_env2str("MPIR_CVAR_ISCATTER_INTRA_ALGORITHM", &tmp_str);
4228 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTER_INTRA_ALGORITHM");
4229 if (tmp_str != NULL) {
4230 if (0 == strcmp(tmp_str, "auto"))
4231 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM = MPIR_CVAR_ISCATTER_INTRA_ALGORITHM_auto;
4232 else if (0 == strcmp(tmp_str, "sched_auto"))
4233 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM = MPIR_CVAR_ISCATTER_INTRA_ALGORITHM_sched_auto;
4234 else if (0 == strcmp(tmp_str, "sched_binomial"))
4235 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM = MPIR_CVAR_ISCATTER_INTRA_ALGORITHM_sched_binomial;
4236 else if (0 == strcmp(tmp_str, "gentran_tree"))
4237 MPIR_CVAR_ISCATTER_INTRA_ALGORITHM = MPIR_CVAR_ISCATTER_INTRA_ALGORITHM_gentran_tree;
4238 else {
4239 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ISCATTER_INTRA_ALGORITHM", tmp_str);
4240 goto fn_fail;
4241 }
4242 }
4243
4244 defaultval.d = 2;
4245 MPIR_T_CVAR_REGISTER_STATIC(
4246 MPI_INT,
4247 MPIR_CVAR_ISCATTER_TREE_KVAL, /* name */
4248 &MPIR_CVAR_ISCATTER_TREE_KVAL, /* address */
4249 1, /* count */
4250 MPI_T_VERBOSITY_USER_BASIC,
4251 MPI_T_SCOPE_ALL_EQ,
4252 defaultval,
4253 "COLLECTIVE", /* category */
4254 "k value for tree based iscatter");
4255 MPIR_CVAR_ISCATTER_TREE_KVAL = defaultval.d;
4256 rc = MPL_env2int("MPICH_ISCATTER_TREE_KVAL", &(MPIR_CVAR_ISCATTER_TREE_KVAL));
4257 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTER_TREE_KVAL");
4258 rc = MPL_env2int("MPIR_PARAM_ISCATTER_TREE_KVAL", &(MPIR_CVAR_ISCATTER_TREE_KVAL));
4259 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTER_TREE_KVAL");
4260 rc = MPL_env2int("MPIR_CVAR_ISCATTER_TREE_KVAL", &(MPIR_CVAR_ISCATTER_TREE_KVAL));
4261 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTER_TREE_KVAL");
4262
4263 defaultval.d = MPIR_CVAR_ISCATTER_INTER_ALGORITHM_auto;
4264 MPIR_T_CVAR_REGISTER_STATIC(
4265 MPI_INT,
4266 MPIR_CVAR_ISCATTER_INTER_ALGORITHM, /* name */
4267 &MPIR_CVAR_ISCATTER_INTER_ALGORITHM, /* address */
4268 1, /* count */
4269 MPI_T_VERBOSITY_USER_BASIC,
4270 MPI_T_SCOPE_ALL_EQ,
4271 defaultval,
4272 "COLLECTIVE", /* category */
4273 "Variable to select iscatter algorithm\
4274 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4275 sched_auto - Internal algorithm selection for sched-based algorithms\
4276 sched_linear - Force linear algorithm\
4277 sched_remote_send_local_scatter - Force remote-send-local-scatter algorithm");
4278 MPIR_CVAR_ISCATTER_INTER_ALGORITHM = defaultval.d;
4279 tmp_str=NULL;
4280 rc = MPL_env2str("MPICH_ISCATTER_INTER_ALGORITHM", &tmp_str);
4281 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTER_INTER_ALGORITHM");
4282 rc = MPL_env2str("MPIR_PARAM_ISCATTER_INTER_ALGORITHM", &tmp_str);
4283 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTER_INTER_ALGORITHM");
4284 rc = MPL_env2str("MPIR_CVAR_ISCATTER_INTER_ALGORITHM", &tmp_str);
4285 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTER_INTER_ALGORITHM");
4286 if (tmp_str != NULL) {
4287 if (0 == strcmp(tmp_str, "auto"))
4288 MPIR_CVAR_ISCATTER_INTER_ALGORITHM = MPIR_CVAR_ISCATTER_INTER_ALGORITHM_auto;
4289 else if (0 == strcmp(tmp_str, "sched_auto"))
4290 MPIR_CVAR_ISCATTER_INTER_ALGORITHM = MPIR_CVAR_ISCATTER_INTER_ALGORITHM_sched_auto;
4291 else if (0 == strcmp(tmp_str, "sched_linear"))
4292 MPIR_CVAR_ISCATTER_INTER_ALGORITHM = MPIR_CVAR_ISCATTER_INTER_ALGORITHM_sched_linear;
4293 else if (0 == strcmp(tmp_str, "sched_remote_send_local_scatter"))
4294 MPIR_CVAR_ISCATTER_INTER_ALGORITHM = MPIR_CVAR_ISCATTER_INTER_ALGORITHM_sched_remote_send_local_scatter;
4295 else {
4296 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ISCATTER_INTER_ALGORITHM", tmp_str);
4297 goto fn_fail;
4298 }
4299 }
4300
4301 defaultval.d = 1;
4302 MPIR_T_CVAR_REGISTER_STATIC(
4303 MPI_INT,
4304 MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE, /* name */
4305 &MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE, /* address */
4306 1, /* count */
4307 MPI_T_VERBOSITY_USER_BASIC,
4308 MPI_T_SCOPE_ALL_EQ,
4309 defaultval,
4310 "COLLECTIVE", /* category */
4311 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iscatter will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4312 MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE = defaultval.d;
4313 rc = MPL_env2bool("MPICH_ISCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE));
4314 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTER_DEVICE_COLLECTIVE");
4315 rc = MPL_env2bool("MPIR_PARAM_ISCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE));
4316 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTER_DEVICE_COLLECTIVE");
4317 rc = MPL_env2bool("MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE));
4318 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTER_DEVICE_COLLECTIVE");
4319
4320 defaultval.d = MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM_auto;
4321 MPIR_T_CVAR_REGISTER_STATIC(
4322 MPI_INT,
4323 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM, /* name */
4324 &MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM, /* address */
4325 1, /* count */
4326 MPI_T_VERBOSITY_USER_BASIC,
4327 MPI_T_SCOPE_ALL_EQ,
4328 defaultval,
4329 "COLLECTIVE", /* category */
4330 "Variable to select iscatterv algorithm\
4331 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4332 sched_auto - Internal algorithm selection for sched-based algorithms\
4333 sched_linear - Force linear algorithm\
4334 gentran_linear - Force generic transport based linear algorithm");
4335 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM = defaultval.d;
4336 tmp_str=NULL;
4337 rc = MPL_env2str("MPICH_ISCATTERV_INTRA_ALGORITHM", &tmp_str);
4338 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTERV_INTRA_ALGORITHM");
4339 rc = MPL_env2str("MPIR_PARAM_ISCATTERV_INTRA_ALGORITHM", &tmp_str);
4340 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTERV_INTRA_ALGORITHM");
4341 rc = MPL_env2str("MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM", &tmp_str);
4342 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM");
4343 if (tmp_str != NULL) {
4344 if (0 == strcmp(tmp_str, "auto"))
4345 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM = MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM_auto;
4346 else if (0 == strcmp(tmp_str, "sched_auto"))
4347 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM = MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM_sched_auto;
4348 else if (0 == strcmp(tmp_str, "sched_linear"))
4349 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM = MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM_sched_linear;
4350 else if (0 == strcmp(tmp_str, "gentran_linear"))
4351 MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM = MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM_gentran_linear;
4352 else {
4353 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ISCATTERV_INTRA_ALGORITHM", tmp_str);
4354 goto fn_fail;
4355 }
4356 }
4357
4358 defaultval.d = MPIR_CVAR_ISCATTERV_INTER_ALGORITHM_auto;
4359 MPIR_T_CVAR_REGISTER_STATIC(
4360 MPI_INT,
4361 MPIR_CVAR_ISCATTERV_INTER_ALGORITHM, /* name */
4362 &MPIR_CVAR_ISCATTERV_INTER_ALGORITHM, /* address */
4363 1, /* count */
4364 MPI_T_VERBOSITY_USER_BASIC,
4365 MPI_T_SCOPE_ALL_EQ,
4366 defaultval,
4367 "COLLECTIVE", /* category */
4368 "Variable to select iscatterv algorithm\
4369 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4370 sched_auto - Internal algorithm selection for sched-based algorithms\
4371 sched_linear - Force linear algorithm");
4372 MPIR_CVAR_ISCATTERV_INTER_ALGORITHM = defaultval.d;
4373 tmp_str=NULL;
4374 rc = MPL_env2str("MPICH_ISCATTERV_INTER_ALGORITHM", &tmp_str);
4375 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTERV_INTER_ALGORITHM");
4376 rc = MPL_env2str("MPIR_PARAM_ISCATTERV_INTER_ALGORITHM", &tmp_str);
4377 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTERV_INTER_ALGORITHM");
4378 rc = MPL_env2str("MPIR_CVAR_ISCATTERV_INTER_ALGORITHM", &tmp_str);
4379 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTERV_INTER_ALGORITHM");
4380 if (tmp_str != NULL) {
4381 if (0 == strcmp(tmp_str, "auto"))
4382 MPIR_CVAR_ISCATTERV_INTER_ALGORITHM = MPIR_CVAR_ISCATTERV_INTER_ALGORITHM_auto;
4383 else if (0 == strcmp(tmp_str, "sched_auto"))
4384 MPIR_CVAR_ISCATTERV_INTER_ALGORITHM = MPIR_CVAR_ISCATTERV_INTER_ALGORITHM_sched_auto;
4385 else if (0 == strcmp(tmp_str, "sched_linear"))
4386 MPIR_CVAR_ISCATTERV_INTER_ALGORITHM = MPIR_CVAR_ISCATTERV_INTER_ALGORITHM_sched_linear;
4387 else {
4388 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ISCATTERV_INTER_ALGORITHM", tmp_str);
4389 goto fn_fail;
4390 }
4391 }
4392
4393 defaultval.d = 1;
4394 MPIR_T_CVAR_REGISTER_STATIC(
4395 MPI_INT,
4396 MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE, /* name */
4397 &MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE, /* address */
4398 1, /* count */
4399 MPI_T_VERBOSITY_USER_BASIC,
4400 MPI_T_SCOPE_ALL_EQ,
4401 defaultval,
4402 "COLLECTIVE", /* category */
4403 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Iscatterv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4404 MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE = defaultval.d;
4405 rc = MPL_env2bool("MPICH_ISCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE));
4406 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ISCATTERV_DEVICE_COLLECTIVE");
4407 rc = MPL_env2bool("MPIR_PARAM_ISCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE));
4408 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ISCATTERV_DEVICE_COLLECTIVE");
4409 rc = MPL_env2bool("MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE));
4410 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ISCATTERV_DEVICE_COLLECTIVE");
4411
4412 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM_auto;
4413 MPIR_T_CVAR_REGISTER_STATIC(
4414 MPI_INT,
4415 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM, /* name */
4416 &MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM, /* address */
4417 1, /* count */
4418 MPI_T_VERBOSITY_USER_BASIC,
4419 MPI_T_SCOPE_ALL_EQ,
4420 defaultval,
4421 "COLLECTIVE", /* category */
4422 "Variable to select ineighbor_allgather algorithm\
4423 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4424 nb - Force nonblocking algorithm");
4425 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM = defaultval.d;
4426 tmp_str=NULL;
4427 rc = MPL_env2str("MPICH_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
4428 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
4429 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
4430 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
4431 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM", &tmp_str);
4432 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM");
4433 if (tmp_str != NULL) {
4434 if (0 == strcmp(tmp_str, "auto"))
4435 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM_auto;
4436 else if (0 == strcmp(tmp_str, "nb"))
4437 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM_nb;
4438 else {
4439 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLGATHER_INTRA_ALGORITHM", tmp_str);
4440 goto fn_fail;
4441 }
4442 }
4443
4444 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM_auto;
4445 MPIR_T_CVAR_REGISTER_STATIC(
4446 MPI_INT,
4447 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM, /* name */
4448 &MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM, /* address */
4449 1, /* count */
4450 MPI_T_VERBOSITY_USER_BASIC,
4451 MPI_T_SCOPE_ALL_EQ,
4452 defaultval,
4453 "COLLECTIVE", /* category */
4454 "Variable to select ineighbor_allgather algorithm\
4455 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4456 nb - Force nonblocking algorithm");
4457 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM = defaultval.d;
4458 tmp_str=NULL;
4459 rc = MPL_env2str("MPICH_NEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
4460 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHER_INTER_ALGORITHM");
4461 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
4462 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHER_INTER_ALGORITHM");
4463 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM", &tmp_str);
4464 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM");
4465 if (tmp_str != NULL) {
4466 if (0 == strcmp(tmp_str, "auto"))
4467 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM_auto;
4468 else if (0 == strcmp(tmp_str, "nb"))
4469 MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM_nb;
4470 else {
4471 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLGATHER_INTER_ALGORITHM", tmp_str);
4472 goto fn_fail;
4473 }
4474 }
4475
4476 defaultval.d = 1;
4477 MPIR_T_CVAR_REGISTER_STATIC(
4478 MPI_INT,
4479 MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE, /* name */
4480 &MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE, /* address */
4481 1, /* count */
4482 MPI_T_VERBOSITY_USER_BASIC,
4483 MPI_T_SCOPE_ALL_EQ,
4484 defaultval,
4485 "COLLECTIVE", /* category */
4486 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Neighbor_allgather will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4487 MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE = defaultval.d;
4488 rc = MPL_env2bool("MPICH_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
4489 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
4490 rc = MPL_env2bool("MPIR_PARAM_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
4491 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
4492 rc = MPL_env2bool("MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE));
4493 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHER_DEVICE_COLLECTIVE");
4494
4495 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_auto;
4496 MPIR_T_CVAR_REGISTER_STATIC(
4497 MPI_INT,
4498 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM, /* name */
4499 &MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM, /* address */
4500 1, /* count */
4501 MPI_T_VERBOSITY_USER_BASIC,
4502 MPI_T_SCOPE_ALL_EQ,
4503 defaultval,
4504 "COLLECTIVE", /* category */
4505 "Variable to select neighbor_allgatherv algorithm\
4506 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4507 nb - Force nb algorithm");
4508 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = defaultval.d;
4509 tmp_str=NULL;
4510 rc = MPL_env2str("MPICH_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
4511 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
4512 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
4513 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
4514 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", &tmp_str);
4515 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM");
4516 if (tmp_str != NULL) {
4517 if (0 == strcmp(tmp_str, "auto"))
4518 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_auto;
4519 else if (0 == strcmp(tmp_str, "nb"))
4520 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM_nb;
4521 else {
4522 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTRA_ALGORITHM", tmp_str);
4523 goto fn_fail;
4524 }
4525 }
4526
4527 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM_auto;
4528 MPIR_T_CVAR_REGISTER_STATIC(
4529 MPI_INT,
4530 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM, /* name */
4531 &MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM, /* address */
4532 1, /* count */
4533 MPI_T_VERBOSITY_USER_BASIC,
4534 MPI_T_SCOPE_ALL_EQ,
4535 defaultval,
4536 "COLLECTIVE", /* category */
4537 "Variable to select neighbor_allgatherv algorithm\
4538 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4539 nb - Force nb algorithm");
4540 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM = defaultval.d;
4541 tmp_str=NULL;
4542 rc = MPL_env2str("MPICH_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
4543 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
4544 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
4545 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
4546 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM", &tmp_str);
4547 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM");
4548 if (tmp_str != NULL) {
4549 if (0 == strcmp(tmp_str, "auto"))
4550 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM_auto;
4551 else if (0 == strcmp(tmp_str, "nb"))
4552 MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM_nb;
4553 else {
4554 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLGATHERV_INTER_ALGORITHM", tmp_str);
4555 goto fn_fail;
4556 }
4557 }
4558
4559 defaultval.d = 1;
4560 MPIR_T_CVAR_REGISTER_STATIC(
4561 MPI_INT,
4562 MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE, /* name */
4563 &MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE, /* address */
4564 1, /* count */
4565 MPI_T_VERBOSITY_USER_BASIC,
4566 MPI_T_SCOPE_ALL_EQ,
4567 defaultval,
4568 "COLLECTIVE", /* category */
4569 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Neighbor_allgatherv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4570 MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE = defaultval.d;
4571 rc = MPL_env2bool("MPICH_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
4572 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
4573 rc = MPL_env2bool("MPIR_PARAM_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
4574 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
4575 rc = MPL_env2bool("MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE));
4576 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLGATHERV_DEVICE_COLLECTIVE");
4577
4578 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM_auto;
4579 MPIR_T_CVAR_REGISTER_STATIC(
4580 MPI_INT,
4581 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM, /* name */
4582 &MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM, /* address */
4583 1, /* count */
4584 MPI_T_VERBOSITY_USER_BASIC,
4585 MPI_T_SCOPE_ALL_EQ,
4586 defaultval,
4587 "COLLECTIVE", /* category */
4588 "Variable to select neighbor_alltoall algorithm\
4589 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4590 nb - Force nb algorithm");
4591 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM = defaultval.d;
4592 tmp_str=NULL;
4593 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
4594 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
4595 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
4596 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
4597 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM", &tmp_str);
4598 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM");
4599 if (tmp_str != NULL) {
4600 if (0 == strcmp(tmp_str, "auto"))
4601 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM_auto;
4602 else if (0 == strcmp(tmp_str, "nb"))
4603 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM_nb;
4604 else {
4605 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALL_INTRA_ALGORITHM", tmp_str);
4606 goto fn_fail;
4607 }
4608 }
4609
4610 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM_auto;
4611 MPIR_T_CVAR_REGISTER_STATIC(
4612 MPI_INT,
4613 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM, /* name */
4614 &MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM, /* address */
4615 1, /* count */
4616 MPI_T_VERBOSITY_USER_BASIC,
4617 MPI_T_SCOPE_ALL_EQ,
4618 defaultval,
4619 "COLLECTIVE", /* category */
4620 "Variable to select neighbor_alltoall algorithm\
4621 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4622 nb - Force nb algorithm");
4623 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM = defaultval.d;
4624 tmp_str=NULL;
4625 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
4626 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALL_INTER_ALGORITHM");
4627 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
4628 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALL_INTER_ALGORITHM");
4629 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM", &tmp_str);
4630 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM");
4631 if (tmp_str != NULL) {
4632 if (0 == strcmp(tmp_str, "auto"))
4633 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM_auto;
4634 else if (0 == strcmp(tmp_str, "nb"))
4635 MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM_nb;
4636 else {
4637 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALL_INTER_ALGORITHM", tmp_str);
4638 goto fn_fail;
4639 }
4640 }
4641
4642 defaultval.d = 1;
4643 MPIR_T_CVAR_REGISTER_STATIC(
4644 MPI_INT,
4645 MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE, /* name */
4646 &MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE, /* address */
4647 1, /* count */
4648 MPI_T_VERBOSITY_USER_BASIC,
4649 MPI_T_SCOPE_ALL_EQ,
4650 defaultval,
4651 "COLLECTIVE", /* category */
4652 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Neighbor_alltoall will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4653 MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE = defaultval.d;
4654 rc = MPL_env2bool("MPICH_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
4655 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
4656 rc = MPL_env2bool("MPIR_PARAM_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
4657 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
4658 rc = MPL_env2bool("MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE));
4659 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALL_DEVICE_COLLECTIVE");
4660
4661 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_auto;
4662 MPIR_T_CVAR_REGISTER_STATIC(
4663 MPI_INT,
4664 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM, /* name */
4665 &MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM, /* address */
4666 1, /* count */
4667 MPI_T_VERBOSITY_USER_BASIC,
4668 MPI_T_SCOPE_ALL_EQ,
4669 defaultval,
4670 "COLLECTIVE", /* category */
4671 "Variable to select neighbor_alltoallv algorithm\
4672 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4673 nb - Force nb algorithm");
4674 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = defaultval.d;
4675 tmp_str=NULL;
4676 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
4677 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
4678 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
4679 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
4680 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", &tmp_str);
4681 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM");
4682 if (tmp_str != NULL) {
4683 if (0 == strcmp(tmp_str, "auto"))
4684 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_auto;
4685 else if (0 == strcmp(tmp_str, "nb"))
4686 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM_nb;
4687 else {
4688 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTRA_ALGORITHM", tmp_str);
4689 goto fn_fail;
4690 }
4691 }
4692
4693 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM_auto;
4694 MPIR_T_CVAR_REGISTER_STATIC(
4695 MPI_INT,
4696 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM, /* name */
4697 &MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM, /* address */
4698 1, /* count */
4699 MPI_T_VERBOSITY_USER_BASIC,
4700 MPI_T_SCOPE_ALL_EQ,
4701 defaultval,
4702 "COLLECTIVE", /* category */
4703 "Variable to select neighbor_alltoallv algorithm\
4704 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4705 nb - Force nb algorithm");
4706 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM = defaultval.d;
4707 tmp_str=NULL;
4708 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
4709 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
4710 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
4711 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
4712 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM", &tmp_str);
4713 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM");
4714 if (tmp_str != NULL) {
4715 if (0 == strcmp(tmp_str, "auto"))
4716 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM_auto;
4717 else if (0 == strcmp(tmp_str, "nb"))
4718 MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM_nb;
4719 else {
4720 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALLV_INTER_ALGORITHM", tmp_str);
4721 goto fn_fail;
4722 }
4723 }
4724
4725 defaultval.d = 1;
4726 MPIR_T_CVAR_REGISTER_STATIC(
4727 MPI_INT,
4728 MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE, /* name */
4729 &MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE, /* address */
4730 1, /* count */
4731 MPI_T_VERBOSITY_USER_BASIC,
4732 MPI_T_SCOPE_ALL_EQ,
4733 defaultval,
4734 "COLLECTIVE", /* category */
4735 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Neighbor_alltoallv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4736 MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE = defaultval.d;
4737 rc = MPL_env2bool("MPICH_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
4738 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
4739 rc = MPL_env2bool("MPIR_PARAM_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
4740 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
4741 rc = MPL_env2bool("MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE));
4742 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLV_DEVICE_COLLECTIVE");
4743
4744 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_auto;
4745 MPIR_T_CVAR_REGISTER_STATIC(
4746 MPI_INT,
4747 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM, /* name */
4748 &MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM, /* address */
4749 1, /* count */
4750 MPI_T_VERBOSITY_USER_BASIC,
4751 MPI_T_SCOPE_ALL_EQ,
4752 defaultval,
4753 "COLLECTIVE", /* category */
4754 "Variable to select neighbor_alltoallw algorithm\
4755 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4756 nb - Force nb algorithm");
4757 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = defaultval.d;
4758 tmp_str=NULL;
4759 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
4760 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
4761 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
4762 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
4763 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", &tmp_str);
4764 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM");
4765 if (tmp_str != NULL) {
4766 if (0 == strcmp(tmp_str, "auto"))
4767 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_auto;
4768 else if (0 == strcmp(tmp_str, "nb"))
4769 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM_nb;
4770 else {
4771 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTRA_ALGORITHM", tmp_str);
4772 goto fn_fail;
4773 }
4774 }
4775
4776 defaultval.d = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM_auto;
4777 MPIR_T_CVAR_REGISTER_STATIC(
4778 MPI_INT,
4779 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM, /* name */
4780 &MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM, /* address */
4781 1, /* count */
4782 MPI_T_VERBOSITY_USER_BASIC,
4783 MPI_T_SCOPE_ALL_EQ,
4784 defaultval,
4785 "COLLECTIVE", /* category */
4786 "Variable to select neighbor_alltoallw algorithm\
4787 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4788 nb - Force nb algorithm");
4789 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM = defaultval.d;
4790 tmp_str=NULL;
4791 rc = MPL_env2str("MPICH_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
4792 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
4793 rc = MPL_env2str("MPIR_PARAM_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
4794 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
4795 rc = MPL_env2str("MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM", &tmp_str);
4796 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM");
4797 if (tmp_str != NULL) {
4798 if (0 == strcmp(tmp_str, "auto"))
4799 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM_auto;
4800 else if (0 == strcmp(tmp_str, "nb"))
4801 MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM = MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM_nb;
4802 else {
4803 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_NEIGHBOR_ALLTOALLW_INTER_ALGORITHM", tmp_str);
4804 goto fn_fail;
4805 }
4806 }
4807
4808 defaultval.d = 1;
4809 MPIR_T_CVAR_REGISTER_STATIC(
4810 MPI_INT,
4811 MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE, /* name */
4812 &MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE, /* address */
4813 1, /* count */
4814 MPI_T_VERBOSITY_USER_BASIC,
4815 MPI_T_SCOPE_ALL_EQ,
4816 defaultval,
4817 "COLLECTIVE", /* category */
4818 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Neighbor_alltoallw will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4819 MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE = defaultval.d;
4820 rc = MPL_env2bool("MPICH_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
4821 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
4822 rc = MPL_env2bool("MPIR_PARAM_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
4823 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
4824 rc = MPL_env2bool("MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE", &(MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE));
4825 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEIGHBOR_ALLTOALLW_DEVICE_COLLECTIVE");
4826
4827 defaultval.d = 2048;
4828 MPIR_T_CVAR_REGISTER_STATIC(
4829 MPI_INT,
4830 MPIR_CVAR_REDUCE_SHORT_MSG_SIZE, /* name */
4831 &MPIR_CVAR_REDUCE_SHORT_MSG_SIZE, /* address */
4832 1, /* count */
4833 MPI_T_VERBOSITY_USER_BASIC,
4834 MPI_T_SCOPE_ALL_EQ,
4835 defaultval,
4836 "COLLECTIVE", /* category */
4837 "the short message algorithm will be used if the send buffer size is <= this value (in bytes)");
4838 MPIR_CVAR_REDUCE_SHORT_MSG_SIZE = defaultval.d;
4839 rc = MPL_env2int("MPICH_REDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_REDUCE_SHORT_MSG_SIZE));
4840 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SHORT_MSG_SIZE");
4841 rc = MPL_env2int("MPIR_PARAM_REDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_REDUCE_SHORT_MSG_SIZE));
4842 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SHORT_MSG_SIZE");
4843 rc = MPL_env2int("MPIR_CVAR_REDUCE_SHORT_MSG_SIZE", &(MPIR_CVAR_REDUCE_SHORT_MSG_SIZE));
4844 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SHORT_MSG_SIZE");
4845
4846 defaultval.d = 0;
4847 MPIR_T_CVAR_REGISTER_STATIC(
4848 MPI_INT,
4849 MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE, /* name */
4850 &MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE, /* address */
4851 1, /* count */
4852 MPI_T_VERBOSITY_USER_BASIC,
4853 MPI_T_SCOPE_ALL_EQ,
4854 defaultval,
4855 "COLLECTIVE", /* category */
4856 "Maximum message size for which SMP-aware reduce is used. A value of '0' uses SMP-aware reduce for all message sizes.");
4857 MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE = defaultval.d;
4858 rc = MPL_env2int("MPICH_MAX_SMP_REDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE));
4859 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_MAX_SMP_REDUCE_MSG_SIZE");
4860 rc = MPL_env2int("MPIR_PARAM_MAX_SMP_REDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE));
4861 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_MAX_SMP_REDUCE_MSG_SIZE");
4862 rc = MPL_env2int("MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE", &(MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE));
4863 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_MAX_SMP_REDUCE_MSG_SIZE");
4864
4865 defaultval.d = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_auto;
4866 MPIR_T_CVAR_REGISTER_STATIC(
4867 MPI_INT,
4868 MPIR_CVAR_REDUCE_INTRA_ALGORITHM, /* name */
4869 &MPIR_CVAR_REDUCE_INTRA_ALGORITHM, /* address */
4870 1, /* count */
4871 MPI_T_VERBOSITY_USER_BASIC,
4872 MPI_T_SCOPE_ALL_EQ,
4873 defaultval,
4874 "COLLECTIVE", /* category */
4875 "Variable to select reduce algorithm\
4876 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4877 binomial - Force binomial algorithm\
4878 nb - Force nonblocking algorithm\
4879 smp - Force smp algorithm\
4880 reduce_scatter_gather - Force reduce scatter gather algorithm");
4881 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = defaultval.d;
4882 tmp_str=NULL;
4883 rc = MPL_env2str("MPICH_REDUCE_INTRA_ALGORITHM", &tmp_str);
4884 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTRA_ALGORITHM");
4885 rc = MPL_env2str("MPIR_PARAM_REDUCE_INTRA_ALGORITHM", &tmp_str);
4886 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTRA_ALGORITHM");
4887 rc = MPL_env2str("MPIR_CVAR_REDUCE_INTRA_ALGORITHM", &tmp_str);
4888 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTRA_ALGORITHM");
4889 if (tmp_str != NULL) {
4890 if (0 == strcmp(tmp_str, "auto"))
4891 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_auto;
4892 else if (0 == strcmp(tmp_str, "binomial"))
4893 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_binomial;
4894 else if (0 == strcmp(tmp_str, "nb"))
4895 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_nb;
4896 else if (0 == strcmp(tmp_str, "smp"))
4897 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_smp;
4898 else if (0 == strcmp(tmp_str, "reduce_scatter_gather"))
4899 MPIR_CVAR_REDUCE_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_INTRA_ALGORITHM_reduce_scatter_gather;
4900 else {
4901 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_INTRA_ALGORITHM", tmp_str);
4902 goto fn_fail;
4903 }
4904 }
4905
4906 defaultval.d = MPIR_CVAR_REDUCE_INTER_ALGORITHM_auto;
4907 MPIR_T_CVAR_REGISTER_STATIC(
4908 MPI_INT,
4909 MPIR_CVAR_REDUCE_INTER_ALGORITHM, /* name */
4910 &MPIR_CVAR_REDUCE_INTER_ALGORITHM, /* address */
4911 1, /* count */
4912 MPI_T_VERBOSITY_USER_BASIC,
4913 MPI_T_SCOPE_ALL_EQ,
4914 defaultval,
4915 "COLLECTIVE", /* category */
4916 "Variable to select reduce algorithm\
4917 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4918 local_reduce_remote_send - Force local-reduce-remote-send algorithm\
4919 nb - Force nonblocking algorithm");
4920 MPIR_CVAR_REDUCE_INTER_ALGORITHM = defaultval.d;
4921 tmp_str=NULL;
4922 rc = MPL_env2str("MPICH_REDUCE_INTER_ALGORITHM", &tmp_str);
4923 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTER_ALGORITHM");
4924 rc = MPL_env2str("MPIR_PARAM_REDUCE_INTER_ALGORITHM", &tmp_str);
4925 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTER_ALGORITHM");
4926 rc = MPL_env2str("MPIR_CVAR_REDUCE_INTER_ALGORITHM", &tmp_str);
4927 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTER_ALGORITHM");
4928 if (tmp_str != NULL) {
4929 if (0 == strcmp(tmp_str, "auto"))
4930 MPIR_CVAR_REDUCE_INTER_ALGORITHM = MPIR_CVAR_REDUCE_INTER_ALGORITHM_auto;
4931 else if (0 == strcmp(tmp_str, "local_reduce_remote_send"))
4932 MPIR_CVAR_REDUCE_INTER_ALGORITHM = MPIR_CVAR_REDUCE_INTER_ALGORITHM_local_reduce_remote_send;
4933 else if (0 == strcmp(tmp_str, "nb"))
4934 MPIR_CVAR_REDUCE_INTER_ALGORITHM = MPIR_CVAR_REDUCE_INTER_ALGORITHM_nb;
4935 else {
4936 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_INTER_ALGORITHM", tmp_str);
4937 goto fn_fail;
4938 }
4939 }
4940
4941 defaultval.d = 1;
4942 MPIR_T_CVAR_REGISTER_STATIC(
4943 MPI_INT,
4944 MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE, /* name */
4945 &MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE, /* address */
4946 1, /* count */
4947 MPI_T_VERBOSITY_USER_BASIC,
4948 MPI_T_SCOPE_ALL_EQ,
4949 defaultval,
4950 "COLLECTIVE", /* category */
4951 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Reduce will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
4952 MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE = defaultval.d;
4953 rc = MPL_env2bool("MPICH_REDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE));
4954 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_DEVICE_COLLECTIVE");
4955 rc = MPL_env2bool("MPIR_PARAM_REDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE));
4956 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_DEVICE_COLLECTIVE");
4957 rc = MPL_env2bool("MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE));
4958 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_DEVICE_COLLECTIVE");
4959
4960 defaultval.d = 524288;
4961 MPIR_T_CVAR_REGISTER_STATIC(
4962 MPI_INT,
4963 MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE, /* name */
4964 &MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE, /* address */
4965 1, /* count */
4966 MPI_T_VERBOSITY_USER_BASIC,
4967 MPI_T_SCOPE_ALL_EQ,
4968 defaultval,
4969 "COLLECTIVE", /* category */
4970 "the long message algorithm will be used if the operation is commutative and the send buffer size is >= this value (in bytes)");
4971 MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE = defaultval.d;
4972 rc = MPL_env2int("MPICH_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE", &(MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE));
4973 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE");
4974 rc = MPL_env2int("MPIR_PARAM_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE", &(MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE));
4975 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE");
4976 rc = MPL_env2int("MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE", &(MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE));
4977 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_COMMUTATIVE_LONG_MSG_SIZE");
4978
4979 defaultval.d = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_auto;
4980 MPIR_T_CVAR_REGISTER_STATIC(
4981 MPI_INT,
4982 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM, /* name */
4983 &MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM, /* address */
4984 1, /* count */
4985 MPI_T_VERBOSITY_USER_BASIC,
4986 MPI_T_SCOPE_ALL_EQ,
4987 defaultval,
4988 "COLLECTIVE", /* category */
4989 "Variable to select reduce_scatter algorithm\
4990 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
4991 nb - Force nonblocking algorithm\
4992 noncommutative - Force noncommutative algorithm\
4993 pairwise - Force pairwise algorithm\
4994 recursive_doubling - Force recursive doubling algorithm\
4995 recursive_halving - Force recursive halving algorithm");
4996 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = defaultval.d;
4997 tmp_str=NULL;
4998 rc = MPL_env2str("MPICH_REDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
4999 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_INTRA_ALGORITHM");
5000 rc = MPL_env2str("MPIR_PARAM_REDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
5001 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_INTRA_ALGORITHM");
5002 rc = MPL_env2str("MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM", &tmp_str);
5003 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM");
5004 if (tmp_str != NULL) {
5005 if (0 == strcmp(tmp_str, "auto"))
5006 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_auto;
5007 else if (0 == strcmp(tmp_str, "nb"))
5008 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_nb;
5009 else if (0 == strcmp(tmp_str, "noncommutative"))
5010 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_noncommutative;
5011 else if (0 == strcmp(tmp_str, "pairwise"))
5012 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_pairwise;
5013 else if (0 == strcmp(tmp_str, "recursive_doubling"))
5014 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_recursive_doubling;
5015 else if (0 == strcmp(tmp_str, "recursive_halving"))
5016 MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM_recursive_halving;
5017 else {
5018 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_SCATTER_INTRA_ALGORITHM", tmp_str);
5019 goto fn_fail;
5020 }
5021 }
5022
5023 defaultval.d = MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM_auto;
5024 MPIR_T_CVAR_REGISTER_STATIC(
5025 MPI_INT,
5026 MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM, /* name */
5027 &MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM, /* address */
5028 1, /* count */
5029 MPI_T_VERBOSITY_USER_BASIC,
5030 MPI_T_SCOPE_ALL_EQ,
5031 defaultval,
5032 "COLLECTIVE", /* category */
5033 "Variable to select reduce_scatter algorithm\
5034 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5035 nb - Force nonblocking algorithm\
5036 remote_reduce_local_scatter - Force remote-reduce-local-scatter algorithm");
5037 MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM = defaultval.d;
5038 tmp_str=NULL;
5039 rc = MPL_env2str("MPICH_REDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
5040 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_INTER_ALGORITHM");
5041 rc = MPL_env2str("MPIR_PARAM_REDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
5042 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_INTER_ALGORITHM");
5043 rc = MPL_env2str("MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM", &tmp_str);
5044 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM");
5045 if (tmp_str != NULL) {
5046 if (0 == strcmp(tmp_str, "auto"))
5047 MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM_auto;
5048 else if (0 == strcmp(tmp_str, "nb"))
5049 MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM_nb;
5050 else if (0 == strcmp(tmp_str, "remote_reduce_local_scatter"))
5051 MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM_remote_reduce_local_scatter;
5052 else {
5053 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_SCATTER_INTER_ALGORITHM", tmp_str);
5054 goto fn_fail;
5055 }
5056 }
5057
5058 defaultval.d = 1;
5059 MPIR_T_CVAR_REGISTER_STATIC(
5060 MPI_INT,
5061 MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE, /* name */
5062 &MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE, /* address */
5063 1, /* count */
5064 MPI_T_VERBOSITY_USER_BASIC,
5065 MPI_T_SCOPE_ALL_EQ,
5066 defaultval,
5067 "COLLECTIVE", /* category */
5068 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Reduce_scatter will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
5069 MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE = defaultval.d;
5070 rc = MPL_env2bool("MPICH_REDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE));
5071 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_DEVICE_COLLECTIVE");
5072 rc = MPL_env2bool("MPIR_PARAM_REDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE));
5073 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_DEVICE_COLLECTIVE");
5074 rc = MPL_env2bool("MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE));
5075 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_DEVICE_COLLECTIVE");
5076
5077 defaultval.d = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_auto;
5078 MPIR_T_CVAR_REGISTER_STATIC(
5079 MPI_INT,
5080 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM, /* name */
5081 &MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM, /* address */
5082 1, /* count */
5083 MPI_T_VERBOSITY_USER_BASIC,
5084 MPI_T_SCOPE_ALL_EQ,
5085 defaultval,
5086 "COLLECTIVE", /* category */
5087 "Variable to select reduce_scatter_block algorithm\
5088 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5089 noncommutative - Force noncommutative algorithm\
5090 recursive_doubling - Force recursive doubling algorithm\
5091 pairwise - Force pairwise algorithm\
5092 recursive_halving - Force recursive halving algorithm\
5093 nb - Force nonblocking algorithm");
5094 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = defaultval.d;
5095 tmp_str=NULL;
5096 rc = MPL_env2str("MPICH_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
5097 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
5098 rc = MPL_env2str("MPIR_PARAM_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
5099 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
5100 rc = MPL_env2str("MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", &tmp_str);
5101 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM");
5102 if (tmp_str != NULL) {
5103 if (0 == strcmp(tmp_str, "auto"))
5104 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_auto;
5105 else if (0 == strcmp(tmp_str, "noncommutative"))
5106 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_noncommutative;
5107 else if (0 == strcmp(tmp_str, "recursive_doubling"))
5108 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_recursive_doubling;
5109 else if (0 == strcmp(tmp_str, "pairwise"))
5110 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_pairwise;
5111 else if (0 == strcmp(tmp_str, "recursive_halving"))
5112 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_recursive_halving;
5113 else if (0 == strcmp(tmp_str, "nb"))
5114 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM_nb;
5115 else {
5116 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTRA_ALGORITHM", tmp_str);
5117 goto fn_fail;
5118 }
5119 }
5120
5121 defaultval.d = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM_auto;
5122 MPIR_T_CVAR_REGISTER_STATIC(
5123 MPI_INT,
5124 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM, /* name */
5125 &MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM, /* address */
5126 1, /* count */
5127 MPI_T_VERBOSITY_USER_BASIC,
5128 MPI_T_SCOPE_ALL_EQ,
5129 defaultval,
5130 "COLLECTIVE", /* category */
5131 "Variable to select reduce_scatter_block algorithm\
5132 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5133 nb - Force nonblocking algorithm\
5134 remote_reduce_local_scatter - Force remote-reduce-local-scatter algorithm");
5135 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM = defaultval.d;
5136 tmp_str=NULL;
5137 rc = MPL_env2str("MPICH_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
5138 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
5139 rc = MPL_env2str("MPIR_PARAM_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
5140 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
5141 rc = MPL_env2str("MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM", &tmp_str);
5142 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM");
5143 if (tmp_str != NULL) {
5144 if (0 == strcmp(tmp_str, "auto"))
5145 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM_auto;
5146 else if (0 == strcmp(tmp_str, "nb"))
5147 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM_nb;
5148 else if (0 == strcmp(tmp_str, "remote_reduce_local_scatter"))
5149 MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM = MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM_remote_reduce_local_scatter;
5150 else {
5151 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_SCATTER_BLOCK_INTER_ALGORITHM", tmp_str);
5152 goto fn_fail;
5153 }
5154 }
5155
5156 defaultval.d = 1;
5157 MPIR_T_CVAR_REGISTER_STATIC(
5158 MPI_INT,
5159 MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE, /* name */
5160 &MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE, /* address */
5161 1, /* count */
5162 MPI_T_VERBOSITY_USER_BASIC,
5163 MPI_T_SCOPE_ALL_EQ,
5164 defaultval,
5165 "COLLECTIVE", /* category */
5166 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Reduce_scatter_block will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
5167 MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE = defaultval.d;
5168 rc = MPL_env2bool("MPICH_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
5169 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
5170 rc = MPL_env2bool("MPIR_PARAM_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
5171 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
5172 rc = MPL_env2bool("MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE", &(MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE));
5173 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_SCATTER_BLOCK_DEVICE_COLLECTIVE");
5174
5175 defaultval.d = MPIR_CVAR_SCAN_INTRA_ALGORITHM_auto;
5176 MPIR_T_CVAR_REGISTER_STATIC(
5177 MPI_INT,
5178 MPIR_CVAR_SCAN_INTRA_ALGORITHM, /* name */
5179 &MPIR_CVAR_SCAN_INTRA_ALGORITHM, /* address */
5180 1, /* count */
5181 MPI_T_VERBOSITY_USER_BASIC,
5182 MPI_T_SCOPE_ALL_EQ,
5183 defaultval,
5184 "COLLECTIVE", /* category */
5185 "Variable to select allgather algorithm\
5186 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5187 nb - Force nonblocking algorithm\
5188 smp - Force smp algorithm\
5189 recursive_doubling - Force recursive doubling algorithm");
5190 MPIR_CVAR_SCAN_INTRA_ALGORITHM = defaultval.d;
5191 tmp_str=NULL;
5192 rc = MPL_env2str("MPICH_SCAN_INTRA_ALGORITHM", &tmp_str);
5193 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCAN_INTRA_ALGORITHM");
5194 rc = MPL_env2str("MPIR_PARAM_SCAN_INTRA_ALGORITHM", &tmp_str);
5195 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCAN_INTRA_ALGORITHM");
5196 rc = MPL_env2str("MPIR_CVAR_SCAN_INTRA_ALGORITHM", &tmp_str);
5197 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCAN_INTRA_ALGORITHM");
5198 if (tmp_str != NULL) {
5199 if (0 == strcmp(tmp_str, "auto"))
5200 MPIR_CVAR_SCAN_INTRA_ALGORITHM = MPIR_CVAR_SCAN_INTRA_ALGORITHM_auto;
5201 else if (0 == strcmp(tmp_str, "nb"))
5202 MPIR_CVAR_SCAN_INTRA_ALGORITHM = MPIR_CVAR_SCAN_INTRA_ALGORITHM_nb;
5203 else if (0 == strcmp(tmp_str, "smp"))
5204 MPIR_CVAR_SCAN_INTRA_ALGORITHM = MPIR_CVAR_SCAN_INTRA_ALGORITHM_smp;
5205 else if (0 == strcmp(tmp_str, "recursive_doubling"))
5206 MPIR_CVAR_SCAN_INTRA_ALGORITHM = MPIR_CVAR_SCAN_INTRA_ALGORITHM_recursive_doubling;
5207 else {
5208 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_SCAN_INTRA_ALGORITHM", tmp_str);
5209 goto fn_fail;
5210 }
5211 }
5212
5213 defaultval.d = 1;
5214 MPIR_T_CVAR_REGISTER_STATIC(
5215 MPI_INT,
5216 MPIR_CVAR_SCAN_DEVICE_COLLECTIVE, /* name */
5217 &MPIR_CVAR_SCAN_DEVICE_COLLECTIVE, /* address */
5218 1, /* count */
5219 MPI_T_VERBOSITY_USER_BASIC,
5220 MPI_T_SCOPE_ALL_EQ,
5221 defaultval,
5222 "COLLECTIVE", /* category */
5223 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Scan will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
5224 MPIR_CVAR_SCAN_DEVICE_COLLECTIVE = defaultval.d;
5225 rc = MPL_env2bool("MPICH_SCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCAN_DEVICE_COLLECTIVE));
5226 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCAN_DEVICE_COLLECTIVE");
5227 rc = MPL_env2bool("MPIR_PARAM_SCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCAN_DEVICE_COLLECTIVE));
5228 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCAN_DEVICE_COLLECTIVE");
5229 rc = MPL_env2bool("MPIR_CVAR_SCAN_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCAN_DEVICE_COLLECTIVE));
5230 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCAN_DEVICE_COLLECTIVE");
5231
5232 defaultval.d = 2048;
5233 MPIR_T_CVAR_REGISTER_STATIC(
5234 MPI_INT,
5235 MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE, /* name */
5236 &MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE, /* address */
5237 1, /* count */
5238 MPI_T_VERBOSITY_USER_BASIC,
5239 MPI_T_SCOPE_ALL_EQ,
5240 defaultval,
5241 "COLLECTIVE", /* category */
5242 "use the short message algorithm for intercommunicator MPI_Scatter if the send buffer size is < this value (in bytes)");
5243 MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE = defaultval.d;
5244 rc = MPL_env2int("MPICH_SCATTER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE));
5245 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTER_INTER_SHORT_MSG_SIZE");
5246 rc = MPL_env2int("MPIR_PARAM_SCATTER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE));
5247 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTER_INTER_SHORT_MSG_SIZE");
5248 rc = MPL_env2int("MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE", &(MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE));
5249 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTER_INTER_SHORT_MSG_SIZE");
5250
5251 defaultval.d = MPIR_CVAR_SCATTER_INTRA_ALGORITHM_auto;
5252 MPIR_T_CVAR_REGISTER_STATIC(
5253 MPI_INT,
5254 MPIR_CVAR_SCATTER_INTRA_ALGORITHM, /* name */
5255 &MPIR_CVAR_SCATTER_INTRA_ALGORITHM, /* address */
5256 1, /* count */
5257 MPI_T_VERBOSITY_USER_BASIC,
5258 MPI_T_SCOPE_ALL_EQ,
5259 defaultval,
5260 "COLLECTIVE", /* category */
5261 "Variable to select scatter algorithm\
5262 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5263 binomial - Force binomial algorithm\
5264 nb - Force nonblocking algorithm");
5265 MPIR_CVAR_SCATTER_INTRA_ALGORITHM = defaultval.d;
5266 tmp_str=NULL;
5267 rc = MPL_env2str("MPICH_SCATTER_INTRA_ALGORITHM", &tmp_str);
5268 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTER_INTRA_ALGORITHM");
5269 rc = MPL_env2str("MPIR_PARAM_SCATTER_INTRA_ALGORITHM", &tmp_str);
5270 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTER_INTRA_ALGORITHM");
5271 rc = MPL_env2str("MPIR_CVAR_SCATTER_INTRA_ALGORITHM", &tmp_str);
5272 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTER_INTRA_ALGORITHM");
5273 if (tmp_str != NULL) {
5274 if (0 == strcmp(tmp_str, "auto"))
5275 MPIR_CVAR_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_SCATTER_INTRA_ALGORITHM_auto;
5276 else if (0 == strcmp(tmp_str, "binomial"))
5277 MPIR_CVAR_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_SCATTER_INTRA_ALGORITHM_binomial;
5278 else if (0 == strcmp(tmp_str, "nb"))
5279 MPIR_CVAR_SCATTER_INTRA_ALGORITHM = MPIR_CVAR_SCATTER_INTRA_ALGORITHM_nb;
5280 else {
5281 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_SCATTER_INTRA_ALGORITHM", tmp_str);
5282 goto fn_fail;
5283 }
5284 }
5285
5286 defaultval.d = MPIR_CVAR_SCATTER_INTER_ALGORITHM_auto;
5287 MPIR_T_CVAR_REGISTER_STATIC(
5288 MPI_INT,
5289 MPIR_CVAR_SCATTER_INTER_ALGORITHM, /* name */
5290 &MPIR_CVAR_SCATTER_INTER_ALGORITHM, /* address */
5291 1, /* count */
5292 MPI_T_VERBOSITY_USER_BASIC,
5293 MPI_T_SCOPE_ALL_EQ,
5294 defaultval,
5295 "COLLECTIVE", /* category */
5296 "Variable to select scatter algorithm\
5297 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5298 linear - Force linear algorithm\
5299 nb - Force nonblocking algorithm\
5300 remote_send_local_scatter - Force remote-send-local-scatter algorithm");
5301 MPIR_CVAR_SCATTER_INTER_ALGORITHM = defaultval.d;
5302 tmp_str=NULL;
5303 rc = MPL_env2str("MPICH_SCATTER_INTER_ALGORITHM", &tmp_str);
5304 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTER_INTER_ALGORITHM");
5305 rc = MPL_env2str("MPIR_PARAM_SCATTER_INTER_ALGORITHM", &tmp_str);
5306 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTER_INTER_ALGORITHM");
5307 rc = MPL_env2str("MPIR_CVAR_SCATTER_INTER_ALGORITHM", &tmp_str);
5308 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTER_INTER_ALGORITHM");
5309 if (tmp_str != NULL) {
5310 if (0 == strcmp(tmp_str, "auto"))
5311 MPIR_CVAR_SCATTER_INTER_ALGORITHM = MPIR_CVAR_SCATTER_INTER_ALGORITHM_auto;
5312 else if (0 == strcmp(tmp_str, "linear"))
5313 MPIR_CVAR_SCATTER_INTER_ALGORITHM = MPIR_CVAR_SCATTER_INTER_ALGORITHM_linear;
5314 else if (0 == strcmp(tmp_str, "nb"))
5315 MPIR_CVAR_SCATTER_INTER_ALGORITHM = MPIR_CVAR_SCATTER_INTER_ALGORITHM_nb;
5316 else if (0 == strcmp(tmp_str, "remote_send_local_scatter"))
5317 MPIR_CVAR_SCATTER_INTER_ALGORITHM = MPIR_CVAR_SCATTER_INTER_ALGORITHM_remote_send_local_scatter;
5318 else {
5319 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_SCATTER_INTER_ALGORITHM", tmp_str);
5320 goto fn_fail;
5321 }
5322 }
5323
5324 defaultval.d = 1;
5325 MPIR_T_CVAR_REGISTER_STATIC(
5326 MPI_INT,
5327 MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE, /* name */
5328 &MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE, /* address */
5329 1, /* count */
5330 MPI_T_VERBOSITY_USER_BASIC,
5331 MPI_T_SCOPE_ALL_EQ,
5332 defaultval,
5333 "COLLECTIVE", /* category */
5334 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Scatter will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
5335 MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE = defaultval.d;
5336 rc = MPL_env2bool("MPICH_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE));
5337 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTER_DEVICE_COLLECTIVE");
5338 rc = MPL_env2bool("MPIR_PARAM_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE));
5339 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTER_DEVICE_COLLECTIVE");
5340 rc = MPL_env2bool("MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE));
5341 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTER_DEVICE_COLLECTIVE");
5342
5343 defaultval.d = MPIR_CVAR_SCATTERV_INTRA_ALGORITHM_auto;
5344 MPIR_T_CVAR_REGISTER_STATIC(
5345 MPI_INT,
5346 MPIR_CVAR_SCATTERV_INTRA_ALGORITHM, /* name */
5347 &MPIR_CVAR_SCATTERV_INTRA_ALGORITHM, /* address */
5348 1, /* count */
5349 MPI_T_VERBOSITY_USER_BASIC,
5350 MPI_T_SCOPE_ALL_EQ,
5351 defaultval,
5352 "COLLECTIVE", /* category */
5353 "Variable to select scatterv algorithm\
5354 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5355 linear - Force linear algorithm\
5356 nb - Force nonblocking algorithm");
5357 MPIR_CVAR_SCATTERV_INTRA_ALGORITHM = defaultval.d;
5358 tmp_str=NULL;
5359 rc = MPL_env2str("MPICH_SCATTERV_INTRA_ALGORITHM", &tmp_str);
5360 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTERV_INTRA_ALGORITHM");
5361 rc = MPL_env2str("MPIR_PARAM_SCATTERV_INTRA_ALGORITHM", &tmp_str);
5362 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTERV_INTRA_ALGORITHM");
5363 rc = MPL_env2str("MPIR_CVAR_SCATTERV_INTRA_ALGORITHM", &tmp_str);
5364 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTERV_INTRA_ALGORITHM");
5365 if (tmp_str != NULL) {
5366 if (0 == strcmp(tmp_str, "auto"))
5367 MPIR_CVAR_SCATTERV_INTRA_ALGORITHM = MPIR_CVAR_SCATTERV_INTRA_ALGORITHM_auto;
5368 else if (0 == strcmp(tmp_str, "linear"))
5369 MPIR_CVAR_SCATTERV_INTRA_ALGORITHM = MPIR_CVAR_SCATTERV_INTRA_ALGORITHM_linear;
5370 else if (0 == strcmp(tmp_str, "nb"))
5371 MPIR_CVAR_SCATTERV_INTRA_ALGORITHM = MPIR_CVAR_SCATTERV_INTRA_ALGORITHM_nb;
5372 else {
5373 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_SCATTERV_INTRA_ALGORITHM", tmp_str);
5374 goto fn_fail;
5375 }
5376 }
5377
5378 defaultval.d = MPIR_CVAR_SCATTERV_INTER_ALGORITHM_auto;
5379 MPIR_T_CVAR_REGISTER_STATIC(
5380 MPI_INT,
5381 MPIR_CVAR_SCATTERV_INTER_ALGORITHM, /* name */
5382 &MPIR_CVAR_SCATTERV_INTER_ALGORITHM, /* address */
5383 1, /* count */
5384 MPI_T_VERBOSITY_USER_BASIC,
5385 MPI_T_SCOPE_ALL_EQ,
5386 defaultval,
5387 "COLLECTIVE", /* category */
5388 "Variable to select scatterv algorithm\
5389 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE)\
5390 linear - Force linear algorithm\
5391 nb - Force nonblocking algorithm");
5392 MPIR_CVAR_SCATTERV_INTER_ALGORITHM = defaultval.d;
5393 tmp_str=NULL;
5394 rc = MPL_env2str("MPICH_SCATTERV_INTER_ALGORITHM", &tmp_str);
5395 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTERV_INTER_ALGORITHM");
5396 rc = MPL_env2str("MPIR_PARAM_SCATTERV_INTER_ALGORITHM", &tmp_str);
5397 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTERV_INTER_ALGORITHM");
5398 rc = MPL_env2str("MPIR_CVAR_SCATTERV_INTER_ALGORITHM", &tmp_str);
5399 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTERV_INTER_ALGORITHM");
5400 if (tmp_str != NULL) {
5401 if (0 == strcmp(tmp_str, "auto"))
5402 MPIR_CVAR_SCATTERV_INTER_ALGORITHM = MPIR_CVAR_SCATTERV_INTER_ALGORITHM_auto;
5403 else if (0 == strcmp(tmp_str, "linear"))
5404 MPIR_CVAR_SCATTERV_INTER_ALGORITHM = MPIR_CVAR_SCATTERV_INTER_ALGORITHM_linear;
5405 else if (0 == strcmp(tmp_str, "nb"))
5406 MPIR_CVAR_SCATTERV_INTER_ALGORITHM = MPIR_CVAR_SCATTERV_INTER_ALGORITHM_nb;
5407 else {
5408 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_SCATTERV_INTER_ALGORITHM", tmp_str);
5409 goto fn_fail;
5410 }
5411 }
5412
5413 defaultval.d = 1;
5414 MPIR_T_CVAR_REGISTER_STATIC(
5415 MPI_INT,
5416 MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE, /* name */
5417 &MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE, /* address */
5418 1, /* count */
5419 MPI_T_VERBOSITY_USER_BASIC,
5420 MPI_T_SCOPE_ALL_EQ,
5421 defaultval,
5422 "COLLECTIVE", /* category */
5423 "This CVAR is only used when MPIR_CVAR_DEVICE_COLLECTIVES is set to \"percoll\". If set to true, MPI_Scatterv will allow the device to override the MPIR-level collective algorithms. The device might still call the MPIR-level algorithms manually. If set to false, the device-override will be disabled.");
5424 MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE = defaultval.d;
5425 rc = MPL_env2bool("MPICH_SCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE));
5426 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SCATTERV_DEVICE_COLLECTIVE");
5427 rc = MPL_env2bool("MPIR_PARAM_SCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE));
5428 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SCATTERV_DEVICE_COLLECTIVE");
5429 rc = MPL_env2bool("MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE", &(MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE));
5430 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SCATTERV_DEVICE_COLLECTIVE");
5431
5432 defaultval.d = MPIR_CVAR_DEVICE_COLLECTIVES_percoll;
5433 MPIR_T_CVAR_REGISTER_STATIC(
5434 MPI_INT,
5435 MPIR_CVAR_DEVICE_COLLECTIVES, /* name */
5436 &MPIR_CVAR_DEVICE_COLLECTIVES, /* address */
5437 1, /* count */
5438 MPI_T_VERBOSITY_USER_BASIC,
5439 MPI_T_SCOPE_ALL_EQ,
5440 defaultval,
5441 "COLLECTIVE", /* category */
5442 "Variable to select whether the device can override the\
5443 MPIR-level collective algorithms.\
5444 all - Always prefer the device collectives\
5445 none - Never pick the device collectives\
5446 percoll - Use the per-collective CVARs to decide");
5447 MPIR_CVAR_DEVICE_COLLECTIVES = defaultval.d;
5448 tmp_str=NULL;
5449 rc = MPL_env2str("MPICH_DEVICE_COLLECTIVES", &tmp_str);
5450 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_DEVICE_COLLECTIVES");
5451 rc = MPL_env2str("MPIR_PARAM_DEVICE_COLLECTIVES", &tmp_str);
5452 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_DEVICE_COLLECTIVES");
5453 rc = MPL_env2str("MPIR_CVAR_DEVICE_COLLECTIVES", &tmp_str);
5454 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_DEVICE_COLLECTIVES");
5455 if (tmp_str != NULL) {
5456 if (0 == strcmp(tmp_str, "all"))
5457 MPIR_CVAR_DEVICE_COLLECTIVES = MPIR_CVAR_DEVICE_COLLECTIVES_all;
5458 else if (0 == strcmp(tmp_str, "none"))
5459 MPIR_CVAR_DEVICE_COLLECTIVES = MPIR_CVAR_DEVICE_COLLECTIVES_none;
5460 else if (0 == strcmp(tmp_str, "percoll"))
5461 MPIR_CVAR_DEVICE_COLLECTIVES = MPIR_CVAR_DEVICE_COLLECTIVES_percoll;
5462 else {
5463 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_DEVICE_COLLECTIVES", tmp_str);
5464 goto fn_fail;
5465 }
5466 }
5467
5468 defaultval.d = MPIR_CVAR_COLLECTIVE_FALLBACK_silent;
5469 MPIR_T_CVAR_REGISTER_STATIC(
5470 MPI_INT,
5471 MPIR_CVAR_COLLECTIVE_FALLBACK, /* name */
5472 &MPIR_CVAR_COLLECTIVE_FALLBACK, /* address */
5473 1, /* count */
5474 MPI_T_VERBOSITY_USER_BASIC,
5475 MPI_T_SCOPE_ALL_EQ,
5476 defaultval,
5477 "COLLECTIVE", /* category */
5478 "Variable to control what the MPI library should do if the\
5479 user-specified collective algorithm does not work for the\
5480 arguments passed in by the user.\
5481 error - throw an error\
5482 print - print an error message and fallback to the internally selected algorithm\
5483 silent - silently fallback to the internally selected algorithm");
5484 MPIR_CVAR_COLLECTIVE_FALLBACK = defaultval.d;
5485 tmp_str=NULL;
5486 rc = MPL_env2str("MPICH_COLLECTIVE_FALLBACK", &tmp_str);
5487 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COLLECTIVE_FALLBACK");
5488 rc = MPL_env2str("MPIR_PARAM_COLLECTIVE_FALLBACK", &tmp_str);
5489 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COLLECTIVE_FALLBACK");
5490 rc = MPL_env2str("MPIR_CVAR_COLLECTIVE_FALLBACK", &tmp_str);
5491 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COLLECTIVE_FALLBACK");
5492 if (tmp_str != NULL) {
5493 if (0 == strcmp(tmp_str, "error"))
5494 MPIR_CVAR_COLLECTIVE_FALLBACK = MPIR_CVAR_COLLECTIVE_FALLBACK_error;
5495 else if (0 == strcmp(tmp_str, "print"))
5496 MPIR_CVAR_COLLECTIVE_FALLBACK = MPIR_CVAR_COLLECTIVE_FALLBACK_print;
5497 else if (0 == strcmp(tmp_str, "silent"))
5498 MPIR_CVAR_COLLECTIVE_FALLBACK = MPIR_CVAR_COLLECTIVE_FALLBACK_silent;
5499 else {
5500 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_COLLECTIVE_FALLBACK", tmp_str);
5501 goto fn_fail;
5502 }
5503 }
5504
5505 defaultval.str = (const char *) "";
5506 MPIR_T_CVAR_REGISTER_STATIC(
5507 MPI_CHAR,
5508 MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE, /* name */
5509 &MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE, /* address */
5510 MPIR_CVAR_MAX_STRLEN, /* count */
5511 MPI_T_VERBOSITY_USER_BASIC,
5512 MPI_T_SCOPE_ALL_EQ,
5513 defaultval,
5514 "COLLECTIVE", /* category */
5515 "Defines the location of tuning file.");
5516 tmp_str = defaultval.str;
5517 rc = MPL_env2str("MPICH_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
5518 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COLL_SELECTION_TUNING_JSON_FILE");
5519 rc = MPL_env2str("MPIR_PARAM_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
5520 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COLL_SELECTION_TUNING_JSON_FILE");
5521 rc = MPL_env2str("MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
5522 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE");
5523 if (tmp_str != NULL) {
5524 MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE = MPL_strdup(tmp_str);
5525 MPIR_CVAR_assert(MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE);
5526 if (MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE == NULL) {
5527 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE");
5528 goto fn_fail;
5529 }
5530 }
5531 else {
5532 MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE = NULL;
5533 }
5534
5535 defaultval.d = 8;
5536 MPIR_T_CVAR_REGISTER_STATIC(
5537 MPI_INT,
5538 MPIR_CVAR_PROGRESS_MAX_COLLS, /* name */
5539 &MPIR_CVAR_PROGRESS_MAX_COLLS, /* address */
5540 1, /* count */
5541 MPI_T_VERBOSITY_USER_BASIC,
5542 MPI_T_SCOPE_ALL_EQ,
5543 defaultval,
5544 "COLLECTIVE", /* category */
5545 "Maximum number of collective operations at a time that the progress engine should make progress on");
5546 MPIR_CVAR_PROGRESS_MAX_COLLS = defaultval.d;
5547 rc = MPL_env2int("MPICH_PROGRESS_MAX_COLLS", &(MPIR_CVAR_PROGRESS_MAX_COLLS));
5548 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PROGRESS_MAX_COLLS");
5549 rc = MPL_env2int("MPIR_PARAM_PROGRESS_MAX_COLLS", &(MPIR_CVAR_PROGRESS_MAX_COLLS));
5550 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PROGRESS_MAX_COLLS");
5551 rc = MPL_env2int("MPIR_CVAR_PROGRESS_MAX_COLLS", &(MPIR_CVAR_PROGRESS_MAX_COLLS));
5552 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PROGRESS_MAX_COLLS");
5553
5554 defaultval.d = 1;
5555 MPIR_T_CVAR_REGISTER_STATIC(
5556 MPI_INT,
5557 MPIR_CVAR_COMM_SPLIT_USE_QSORT, /* name */
5558 &MPIR_CVAR_COMM_SPLIT_USE_QSORT, /* address */
5559 1, /* count */
5560 MPI_T_VERBOSITY_USER_BASIC,
5561 MPI_T_SCOPE_ALL_EQ,
5562 defaultval,
5563 "COMMUNICATOR", /* category */
5564 "Use qsort(3) in the implementation of MPI_Comm_split instead of bubble sort.");
5565 MPIR_CVAR_COMM_SPLIT_USE_QSORT = defaultval.d;
5566 rc = MPL_env2bool("MPICH_COMM_SPLIT_USE_QSORT", &(MPIR_CVAR_COMM_SPLIT_USE_QSORT));
5567 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COMM_SPLIT_USE_QSORT");
5568 rc = MPL_env2bool("MPIR_PARAM_COMM_SPLIT_USE_QSORT", &(MPIR_CVAR_COMM_SPLIT_USE_QSORT));
5569 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COMM_SPLIT_USE_QSORT");
5570 rc = MPL_env2bool("MPIR_CVAR_COMM_SPLIT_USE_QSORT", &(MPIR_CVAR_COMM_SPLIT_USE_QSORT));
5571 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COMM_SPLIT_USE_QSORT");
5572
5573 defaultval.d = 2;
5574 MPIR_T_CVAR_REGISTER_STATIC(
5575 MPI_INT,
5576 MPIR_CVAR_CTXID_EAGER_SIZE, /* name */
5577 &MPIR_CVAR_CTXID_EAGER_SIZE, /* address */
5578 1, /* count */
5579 MPI_T_VERBOSITY_USER_BASIC,
5580 MPI_T_SCOPE_ALL_EQ,
5581 defaultval,
5582 "THREADS", /* category */
5583 "The MPIR_CVAR_CTXID_EAGER_SIZE environment variable allows you to specify how many words in the context ID mask will be set aside for the eager allocation protocol. If the application is running out of context IDs, reducing this value may help.");
5584 MPIR_CVAR_CTXID_EAGER_SIZE = defaultval.d;
5585 rc = MPL_env2int("MPICH_CTXID_EAGER_SIZE", &(MPIR_CVAR_CTXID_EAGER_SIZE));
5586 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CTXID_EAGER_SIZE");
5587 rc = MPL_env2int("MPIR_PARAM_CTXID_EAGER_SIZE", &(MPIR_CVAR_CTXID_EAGER_SIZE));
5588 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CTXID_EAGER_SIZE");
5589 rc = MPL_env2int("MPIR_CVAR_CTXID_EAGER_SIZE", &(MPIR_CVAR_CTXID_EAGER_SIZE));
5590 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CTXID_EAGER_SIZE");
5591
5592 defaultval.d = 1;
5593 MPIR_T_CVAR_REGISTER_STATIC(
5594 MPI_INT,
5595 MPIR_CVAR_DATALOOP_FAST_SEEK, /* name */
5596 &MPIR_CVAR_DATALOOP_FAST_SEEK, /* address */
5597 1, /* count */
5598 MPI_T_VERBOSITY_USER_BASIC,
5599 MPI_T_SCOPE_ALL_EQ,
5600 defaultval,
5601 "DATALOOP", /* category */
5602 "use a datatype-specialized algorithm to shortcut seeking to the correct location in a noncontiguous buffer");
5603 MPIR_CVAR_DATALOOP_FAST_SEEK = defaultval.d;
5604 rc = MPL_env2int("MPICH_DATALOOP_FAST_SEEK", &(MPIR_CVAR_DATALOOP_FAST_SEEK));
5605 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_DATALOOP_FAST_SEEK");
5606 rc = MPL_env2int("MPIR_PARAM_DATALOOP_FAST_SEEK", &(MPIR_CVAR_DATALOOP_FAST_SEEK));
5607 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_DATALOOP_FAST_SEEK");
5608 rc = MPL_env2int("MPIR_CVAR_DATALOOP_FAST_SEEK", &(MPIR_CVAR_DATALOOP_FAST_SEEK));
5609 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_DATALOOP_FAST_SEEK");
5610
5611 defaultval.d = 64;
5612 MPIR_T_CVAR_REGISTER_STATIC(
5613 MPI_INT,
5614 MPIR_CVAR_PROCTABLE_SIZE, /* name */
5615 &MPIR_CVAR_PROCTABLE_SIZE, /* address */
5616 1, /* count */
5617 MPI_T_VERBOSITY_USER_BASIC,
5618 MPI_T_SCOPE_ALL_EQ,
5619 defaultval,
5620 "DEBUGGER", /* category */
5621 "Size of the \"MPIR\" debugger interface proctable (process table).");
5622 MPIR_CVAR_PROCTABLE_SIZE = defaultval.d;
5623 rc = MPL_env2int("MPICH_PROCTABLE_SIZE", &(MPIR_CVAR_PROCTABLE_SIZE));
5624 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PROCTABLE_SIZE");
5625 rc = MPL_env2int("MPIR_PARAM_PROCTABLE_SIZE", &(MPIR_CVAR_PROCTABLE_SIZE));
5626 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PROCTABLE_SIZE");
5627 rc = MPL_env2int("MPIR_CVAR_PROCTABLE_SIZE", &(MPIR_CVAR_PROCTABLE_SIZE));
5628 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PROCTABLE_SIZE");
5629
5630 defaultval.d = 0;
5631 MPIR_T_CVAR_REGISTER_STATIC(
5632 MPI_INT,
5633 MPIR_CVAR_PROCTABLE_PRINT, /* name */
5634 &MPIR_CVAR_PROCTABLE_PRINT, /* address */
5635 1, /* count */
5636 MPI_T_VERBOSITY_USER_BASIC,
5637 MPI_T_SCOPE_ALL_EQ,
5638 defaultval,
5639 "DEBUGGER", /* category */
5640 "If true, dump the proctable entries at MPII_Wait_for_debugger-time.");
5641 MPIR_CVAR_PROCTABLE_PRINT = defaultval.d;
5642 rc = MPL_env2bool("MPICH_PROCTABLE_PRINT", &(MPIR_CVAR_PROCTABLE_PRINT));
5643 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PROCTABLE_PRINT");
5644 rc = MPL_env2bool("MPIR_PARAM_PROCTABLE_PRINT", &(MPIR_CVAR_PROCTABLE_PRINT));
5645 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PROCTABLE_PRINT");
5646 rc = MPL_env2bool("MPIR_CVAR_PROCTABLE_PRINT", &(MPIR_CVAR_PROCTABLE_PRINT));
5647 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PROCTABLE_PRINT");
5648
5649 defaultval.d = 1;
5650 MPIR_T_CVAR_REGISTER_STATIC(
5651 MPI_INT,
5652 MPIR_CVAR_PRINT_ERROR_STACK, /* name */
5653 &MPIR_CVAR_PRINT_ERROR_STACK, /* address */
5654 1, /* count */
5655 MPI_T_VERBOSITY_USER_BASIC,
5656 MPI_T_SCOPE_LOCAL,
5657 defaultval,
5658 "ERROR_HANDLING", /* category */
5659 "If true, print an error stack trace at error handling time.");
5660 MPIR_CVAR_PRINT_ERROR_STACK = defaultval.d;
5661 rc = MPL_env2bool("MPICH_PRINT_ERROR_STACK", &(MPIR_CVAR_PRINT_ERROR_STACK));
5662 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PRINT_ERROR_STACK");
5663 rc = MPL_env2bool("MPIR_PARAM_PRINT_ERROR_STACK", &(MPIR_CVAR_PRINT_ERROR_STACK));
5664 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PRINT_ERROR_STACK");
5665 rc = MPL_env2bool("MPIR_CVAR_PRINT_ERROR_STACK", &(MPIR_CVAR_PRINT_ERROR_STACK));
5666 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PRINT_ERROR_STACK");
5667
5668 defaultval.d = 0;
5669 MPIR_T_CVAR_REGISTER_STATIC(
5670 MPI_INT,
5671 MPIR_CVAR_CHOP_ERROR_STACK, /* name */
5672 &MPIR_CVAR_CHOP_ERROR_STACK, /* address */
5673 1, /* count */
5674 MPI_T_VERBOSITY_USER_BASIC,
5675 MPI_T_SCOPE_LOCAL,
5676 defaultval,
5677 "ERROR_HANDLING", /* category */
5678 "If >0, truncate error stack output lines this many characters wide. If 0, do not truncate, and if <0 use a sensible default.");
5679 MPIR_CVAR_CHOP_ERROR_STACK = defaultval.d;
5680 rc = MPL_env2int("MPICH_CHOP_ERROR_STACK", &(MPIR_CVAR_CHOP_ERROR_STACK));
5681 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CHOP_ERROR_STACK");
5682 rc = MPL_env2int("MPIR_PARAM_CHOP_ERROR_STACK", &(MPIR_CVAR_CHOP_ERROR_STACK));
5683 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CHOP_ERROR_STACK");
5684 rc = MPL_env2int("MPIR_CVAR_CHOP_ERROR_STACK", &(MPIR_CVAR_CHOP_ERROR_STACK));
5685 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CHOP_ERROR_STACK");
5686
5687 defaultval.d = 0;
5688 MPIR_T_CVAR_REGISTER_STATIC(
5689 MPI_INT,
5690 MPIR_CVAR_SUPPRESS_ABORT_MESSAGE, /* name */
5691 &MPIR_CVAR_SUPPRESS_ABORT_MESSAGE, /* address */
5692 1, /* count */
5693 MPI_T_VERBOSITY_USER_BASIC,
5694 MPI_T_SCOPE_ALL_EQ,
5695 defaultval,
5696 "ERROR_HANDLING", /* category */
5697 "Disable printing of abort error message.");
5698 MPIR_CVAR_SUPPRESS_ABORT_MESSAGE = defaultval.d;
5699 rc = MPL_env2bool("MPICH_SUPPRESS_ABORT_MESSAGE", &(MPIR_CVAR_SUPPRESS_ABORT_MESSAGE));
5700 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SUPPRESS_ABORT_MESSAGE");
5701 rc = MPL_env2bool("MPIR_PARAM_SUPPRESS_ABORT_MESSAGE", &(MPIR_CVAR_SUPPRESS_ABORT_MESSAGE));
5702 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SUPPRESS_ABORT_MESSAGE");
5703 rc = MPL_env2bool("MPIR_CVAR_SUPPRESS_ABORT_MESSAGE", &(MPIR_CVAR_SUPPRESS_ABORT_MESSAGE));
5704 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SUPPRESS_ABORT_MESSAGE");
5705
5706 defaultval.str = (const char *) "MPI_THREAD_SINGLE";
5707 MPIR_T_CVAR_REGISTER_STATIC(
5708 MPI_CHAR,
5709 MPIR_CVAR_DEFAULT_THREAD_LEVEL, /* name */
5710 &MPIR_CVAR_DEFAULT_THREAD_LEVEL, /* address */
5711 MPIR_CVAR_MAX_STRLEN, /* count */
5712 MPI_T_VERBOSITY_USER_BASIC,
5713 MPI_T_SCOPE_ALL_EQ,
5714 defaultval,
5715 "THREADS", /* category */
5716 "Sets the default thread level to use when using MPI_INIT. This variable is case-insensitive.");
5717 tmp_str = defaultval.str;
5718 rc = MPL_env2str("MPICH_DEFAULT_THREAD_LEVEL", &tmp_str);
5719 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_DEFAULT_THREAD_LEVEL");
5720 rc = MPL_env2str("MPIR_PARAM_DEFAULT_THREAD_LEVEL", &tmp_str);
5721 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_DEFAULT_THREAD_LEVEL");
5722 rc = MPL_env2str("MPIR_CVAR_DEFAULT_THREAD_LEVEL", &tmp_str);
5723 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_DEFAULT_THREAD_LEVEL");
5724 if (tmp_str != NULL) {
5725 MPIR_CVAR_DEFAULT_THREAD_LEVEL = MPL_strdup(tmp_str);
5726 MPIR_CVAR_assert(MPIR_CVAR_DEFAULT_THREAD_LEVEL);
5727 if (MPIR_CVAR_DEFAULT_THREAD_LEVEL == NULL) {
5728 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_DEFAULT_THREAD_LEVEL");
5729 goto fn_fail;
5730 }
5731 }
5732 else {
5733 MPIR_CVAR_DEFAULT_THREAD_LEVEL = NULL;
5734 }
5735
5736 defaultval.d = 0;
5737 MPIR_T_CVAR_REGISTER_STATIC(
5738 MPI_INT,
5739 MPIR_CVAR_ASYNC_PROGRESS, /* name */
5740 &MPIR_CVAR_ASYNC_PROGRESS, /* address */
5741 1, /* count */
5742 MPI_T_VERBOSITY_USER_BASIC,
5743 MPI_T_SCOPE_ALL_EQ,
5744 defaultval,
5745 "THREADS", /* category */
5746 "If set to true, MPICH will initiate an additional thread to make asynchronous progress on all communication operations including point-to-point, collective, one-sided operations and I/O. Setting this variable will automatically increase the thread-safety level to MPI_THREAD_MULTIPLE. While this improves the progress semantics, it might cause a small amount of performance overhead for regular MPI operations. The user is encouraged to leave one or more hardware threads vacant in order to prevent contention between the application threads and the progress thread(s). The impact of oversubscription is highly system dependent but may be substantial in some cases, hence this recommendation.");
5747 MPIR_CVAR_ASYNC_PROGRESS = defaultval.d;
5748 rc = MPL_env2bool("MPICH_ASYNC_PROGRESS", &(MPIR_CVAR_ASYNC_PROGRESS));
5749 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ASYNC_PROGRESS");
5750 rc = MPL_env2bool("MPIR_PARAM_ASYNC_PROGRESS", &(MPIR_CVAR_ASYNC_PROGRESS));
5751 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ASYNC_PROGRESS");
5752 rc = MPL_env2bool("MPIR_CVAR_ASYNC_PROGRESS", &(MPIR_CVAR_ASYNC_PROGRESS));
5753 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ASYNC_PROGRESS");
5754
5755 defaultval.d = 0;
5756 MPIR_T_CVAR_REGISTER_STATIC(
5757 MPI_INT,
5758 MPIR_CVAR_DEBUG_HOLD, /* name */
5759 &MPIR_CVAR_DEBUG_HOLD, /* address */
5760 1, /* count */
5761 MPI_T_VERBOSITY_USER_BASIC,
5762 MPI_T_SCOPE_ALL_EQ,
5763 defaultval,
5764 "DEBUGGER", /* category */
5765 "If true, causes processes to wait in MPI_Init and MPI_Initthread for a debugger to be attached. Once the debugger has attached, the variable 'hold' should be set to 0 in order to allow the process to continue (e.g., in gdb, \"set hold=0\").");
5766 MPIR_CVAR_DEBUG_HOLD = defaultval.d;
5767 rc = MPL_env2bool("MPICH_DEBUG_HOLD", &(MPIR_CVAR_DEBUG_HOLD));
5768 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_DEBUG_HOLD");
5769 rc = MPL_env2bool("MPIR_PARAM_DEBUG_HOLD", &(MPIR_CVAR_DEBUG_HOLD));
5770 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_DEBUG_HOLD");
5771 rc = MPL_env2bool("MPIR_CVAR_DEBUG_HOLD", &(MPIR_CVAR_DEBUG_HOLD));
5772 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_DEBUG_HOLD");
5773
5774 defaultval.d = 1;
5775 MPIR_T_CVAR_REGISTER_STATIC(
5776 MPI_INT,
5777 MPIR_CVAR_ERROR_CHECKING, /* name */
5778 &MPIR_CVAR_ERROR_CHECKING, /* address */
5779 1, /* count */
5780 MPI_T_VERBOSITY_USER_BASIC,
5781 MPI_T_SCOPE_LOCAL,
5782 defaultval,
5783 "ERROR_HANDLING", /* category */
5784 "If true, perform checks for errors, typically to verify valid inputs to MPI routines. Only effective when MPICH is configured with --enable-error-checking=runtime .");
5785 MPIR_CVAR_ERROR_CHECKING = defaultval.d;
5786 rc = MPL_env2bool("MPICH_ERROR_CHECKING", &(MPIR_CVAR_ERROR_CHECKING));
5787 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ERROR_CHECKING");
5788 rc = MPL_env2bool("MPIR_PARAM_ERROR_CHECKING", &(MPIR_CVAR_ERROR_CHECKING));
5789 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ERROR_CHECKING");
5790 rc = MPL_env2bool("MPIR_CVAR_ERROR_CHECKING", &(MPIR_CVAR_ERROR_CHECKING));
5791 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ERROR_CHECKING");
5792
5793 defaultval.d = 1;
5794 MPIR_T_CVAR_REGISTER_STATIC(
5795 MPI_INT,
5796 MPIR_CVAR_MEMDUMP, /* name */
5797 &MPIR_CVAR_MEMDUMP, /* address */
5798 1, /* count */
5799 MPI_T_VERBOSITY_MPIDEV_DETAIL,
5800 MPI_T_SCOPE_LOCAL,
5801 defaultval,
5802 "DEVELOPER", /* category */
5803 "If true, list any memory that was allocated by MPICH and that remains allocated when MPI_Finalize completes.");
5804 MPIR_CVAR_MEMDUMP = defaultval.d;
5805 rc = MPL_env2bool("MPICH_MEMDUMP", &(MPIR_CVAR_MEMDUMP));
5806 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_MEMDUMP");
5807 rc = MPL_env2bool("MPIR_PARAM_MEMDUMP", &(MPIR_CVAR_MEMDUMP));
5808 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_MEMDUMP");
5809 rc = MPL_env2bool("MPIR_CVAR_MEMDUMP", &(MPIR_CVAR_MEMDUMP));
5810 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_MEMDUMP");
5811
5812 defaultval.d = 0;
5813 MPIR_T_CVAR_REGISTER_STATIC(
5814 MPI_INT,
5815 MPIR_CVAR_MEM_CATEGORY_INFORMATION, /* name */
5816 &MPIR_CVAR_MEM_CATEGORY_INFORMATION, /* address */
5817 1, /* count */
5818 MPI_T_VERBOSITY_MPIDEV_DETAIL,
5819 MPI_T_SCOPE_LOCAL,
5820 defaultval,
5821 "DEVELOPER", /* category */
5822 "If true, print a summary of memory allocation by category. The category definitions are found in mpl_trmem.h.");
5823 MPIR_CVAR_MEM_CATEGORY_INFORMATION = defaultval.d;
5824 rc = MPL_env2bool("MPICH_MEM_CATEGORY_INFORMATION", &(MPIR_CVAR_MEM_CATEGORY_INFORMATION));
5825 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_MEM_CATEGORY_INFORMATION");
5826 rc = MPL_env2bool("MPIR_PARAM_MEM_CATEGORY_INFORMATION", &(MPIR_CVAR_MEM_CATEGORY_INFORMATION));
5827 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_MEM_CATEGORY_INFORMATION");
5828 rc = MPL_env2bool("MPIR_CVAR_MEM_CATEGORY_INFORMATION", &(MPIR_CVAR_MEM_CATEGORY_INFORMATION));
5829 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_MEM_CATEGORY_INFORMATION");
5830
5831 defaultval.d = 0;
5832 MPIR_T_CVAR_REGISTER_STATIC(
5833 MPI_INT,
5834 MPIR_CVAR_DIMS_VERBOSE, /* name */
5835 &MPIR_CVAR_DIMS_VERBOSE, /* address */
5836 1, /* count */
5837 MPI_T_VERBOSITY_MPIDEV_DETAIL,
5838 MPI_T_SCOPE_ALL_EQ,
5839 defaultval,
5840 "DIMS", /* category */
5841 "If true, enable verbose output about the actions of the implementation of MPI_Dims_create.");
5842 MPIR_CVAR_DIMS_VERBOSE = defaultval.d;
5843 rc = MPL_env2bool("MPICH_DIMS_VERBOSE", &(MPIR_CVAR_DIMS_VERBOSE));
5844 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_DIMS_VERBOSE");
5845 rc = MPL_env2bool("MPIR_PARAM_DIMS_VERBOSE", &(MPIR_CVAR_DIMS_VERBOSE));
5846 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_DIMS_VERBOSE");
5847 rc = MPL_env2bool("MPIR_CVAR_DIMS_VERBOSE", &(MPIR_CVAR_DIMS_VERBOSE));
5848 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_DIMS_VERBOSE");
5849
5850 defaultval.str = (const char *) NULL;
5851 MPIR_T_CVAR_REGISTER_STATIC(
5852 MPI_CHAR,
5853 MPIR_CVAR_NAMESERV_FILE_PUBDIR, /* name */
5854 &MPIR_CVAR_NAMESERV_FILE_PUBDIR, /* address */
5855 MPIR_CVAR_MAX_STRLEN, /* count */
5856 MPI_T_VERBOSITY_USER_BASIC,
5857 MPI_T_SCOPE_ALL_EQ,
5858 defaultval,
5859 "PROCESS_MANAGER", /* category */
5860 "Sets the directory to use for MPI service publishing in the file nameserv implementation. Allows the user to override where the publish and lookup information is placed for connect/accept based applications.");
5861 tmp_str = defaultval.str;
5862 rc = MPL_env2str("MPICH_NAMEPUB_DIR", &tmp_str);
5863 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NAMEPUB_DIR");
5864 rc = MPL_env2str("MPIR_PARAM_NAMEPUB_DIR", &tmp_str);
5865 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NAMEPUB_DIR");
5866 rc = MPL_env2str("MPIR_CVAR_NAMEPUB_DIR", &tmp_str);
5867 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NAMEPUB_DIR");
5868 rc = MPL_env2str("MPICH_NAMESERV_FILE_PUBDIR", &tmp_str);
5869 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NAMESERV_FILE_PUBDIR");
5870 rc = MPL_env2str("MPIR_PARAM_NAMESERV_FILE_PUBDIR", &tmp_str);
5871 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NAMESERV_FILE_PUBDIR");
5872 rc = MPL_env2str("MPIR_CVAR_NAMESERV_FILE_PUBDIR", &tmp_str);
5873 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NAMESERV_FILE_PUBDIR");
5874 if (tmp_str != NULL) {
5875 MPIR_CVAR_NAMESERV_FILE_PUBDIR = MPL_strdup(tmp_str);
5876 MPIR_CVAR_assert(MPIR_CVAR_NAMESERV_FILE_PUBDIR);
5877 if (MPIR_CVAR_NAMESERV_FILE_PUBDIR == NULL) {
5878 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_NAMESERV_FILE_PUBDIR");
5879 goto fn_fail;
5880 }
5881 }
5882 else {
5883 MPIR_CVAR_NAMESERV_FILE_PUBDIR = NULL;
5884 }
5885
5886 defaultval.d = 0;
5887 MPIR_T_CVAR_REGISTER_STATIC(
5888 MPI_INT,
5889 MPIR_CVAR_ABORT_ON_LEAKED_HANDLES, /* name */
5890 &MPIR_CVAR_ABORT_ON_LEAKED_HANDLES, /* address */
5891 1, /* count */
5892 MPI_T_VERBOSITY_USER_BASIC,
5893 MPI_T_SCOPE_ALL_EQ,
5894 defaultval,
5895 "MEMORY", /* category */
5896 "If true, MPI will call MPI_Abort at MPI_Finalize if any MPI object handles have been leaked. For example, if MPI_Comm_dup is called without calling a corresponding MPI_Comm_free. For uninteresting reasons, enabling this option may prevent all known object leaks from being reported. MPICH must have been configure with \"--enable-g=handlealloc\" or better in order for this functionality to work.");
5897 MPIR_CVAR_ABORT_ON_LEAKED_HANDLES = defaultval.d;
5898 rc = MPL_env2bool("MPICH_ABORT_ON_LEAKED_HANDLES", &(MPIR_CVAR_ABORT_ON_LEAKED_HANDLES));
5899 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ABORT_ON_LEAKED_HANDLES");
5900 rc = MPL_env2bool("MPIR_PARAM_ABORT_ON_LEAKED_HANDLES", &(MPIR_CVAR_ABORT_ON_LEAKED_HANDLES));
5901 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ABORT_ON_LEAKED_HANDLES");
5902 rc = MPL_env2bool("MPIR_CVAR_ABORT_ON_LEAKED_HANDLES", &(MPIR_CVAR_ABORT_ON_LEAKED_HANDLES));
5903 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ABORT_ON_LEAKED_HANDLES");
5904
5905 defaultval.str = (const char *) "auto";
5906 MPIR_T_CVAR_REGISTER_STATIC(
5907 MPI_CHAR,
5908 MPIR_CVAR_NETLOC_NODE_FILE, /* name */
5909 &MPIR_CVAR_NETLOC_NODE_FILE, /* address */
5910 MPIR_CVAR_MAX_STRLEN, /* count */
5911 MPI_T_VERBOSITY_USER_BASIC,
5912 MPI_T_SCOPE_LOCAL,
5913 defaultval,
5914 "DEBUGGER", /* category */
5915 "Subnet json file");
5916 tmp_str = defaultval.str;
5917 rc = MPL_env2str("MPICH_NETLOC_NODE_FILE", &tmp_str);
5918 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NETLOC_NODE_FILE");
5919 rc = MPL_env2str("MPIR_PARAM_NETLOC_NODE_FILE", &tmp_str);
5920 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NETLOC_NODE_FILE");
5921 rc = MPL_env2str("MPIR_CVAR_NETLOC_NODE_FILE", &tmp_str);
5922 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NETLOC_NODE_FILE");
5923 if (tmp_str != NULL) {
5924 MPIR_CVAR_NETLOC_NODE_FILE = MPL_strdup(tmp_str);
5925 MPIR_CVAR_assert(MPIR_CVAR_NETLOC_NODE_FILE);
5926 if (MPIR_CVAR_NETLOC_NODE_FILE == NULL) {
5927 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_NETLOC_NODE_FILE");
5928 goto fn_fail;
5929 }
5930 }
5931 else {
5932 MPIR_CVAR_NETLOC_NODE_FILE = NULL;
5933 }
5934
5935 defaultval.d = 0;
5936 MPIR_T_CVAR_REGISTER_STATIC(
5937 MPI_INT,
5938 MPIR_CVAR_NOLOCAL, /* name */
5939 &MPIR_CVAR_NOLOCAL, /* address */
5940 1, /* count */
5941 MPI_T_VERBOSITY_USER_BASIC,
5942 MPI_T_SCOPE_ALL_EQ,
5943 defaultval,
5944 "NODEMAP", /* category */
5945 "If true, force all processes to operate as though all processes are located on another node. For example, this disables shared memory communication hierarchical collectives.");
5946 MPIR_CVAR_NOLOCAL = defaultval.d;
5947 rc = MPL_env2bool("MPICH_NO_LOCAL", &(MPIR_CVAR_NOLOCAL));
5948 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NO_LOCAL");
5949 rc = MPL_env2bool("MPIR_PARAM_NO_LOCAL", &(MPIR_CVAR_NOLOCAL));
5950 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NO_LOCAL");
5951 rc = MPL_env2bool("MPIR_CVAR_NO_LOCAL", &(MPIR_CVAR_NOLOCAL));
5952 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NO_LOCAL");
5953 rc = MPL_env2bool("MPICH_NOLOCAL", &(MPIR_CVAR_NOLOCAL));
5954 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NOLOCAL");
5955 rc = MPL_env2bool("MPIR_PARAM_NOLOCAL", &(MPIR_CVAR_NOLOCAL));
5956 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NOLOCAL");
5957 rc = MPL_env2bool("MPIR_CVAR_NOLOCAL", &(MPIR_CVAR_NOLOCAL));
5958 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NOLOCAL");
5959
5960 defaultval.d = 0;
5961 MPIR_T_CVAR_REGISTER_STATIC(
5962 MPI_INT,
5963 MPIR_CVAR_ODD_EVEN_CLIQUES, /* name */
5964 &MPIR_CVAR_ODD_EVEN_CLIQUES, /* address */
5965 1, /* count */
5966 MPI_T_VERBOSITY_USER_BASIC,
5967 MPI_T_SCOPE_ALL_EQ,
5968 defaultval,
5969 "NODEMAP", /* category */
5970 "If true, odd procs on a node are seen as local to each other, and even procs on a node are seen as local to each other. Used for debugging on a single machine. Deprecated in favor of MPIR_CVAR_NUM_CLIQUES.");
5971 MPIR_CVAR_ODD_EVEN_CLIQUES = defaultval.d;
5972 rc = MPL_env2bool("MPICH_EVEN_ODD_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5973 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_EVEN_ODD_CLIQUES");
5974 rc = MPL_env2bool("MPIR_PARAM_EVEN_ODD_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5975 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_EVEN_ODD_CLIQUES");
5976 rc = MPL_env2bool("MPIR_CVAR_EVEN_ODD_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5977 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_EVEN_ODD_CLIQUES");
5978 rc = MPL_env2bool("MPICH_ODD_EVEN_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5979 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ODD_EVEN_CLIQUES");
5980 rc = MPL_env2bool("MPIR_PARAM_ODD_EVEN_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5981 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ODD_EVEN_CLIQUES");
5982 rc = MPL_env2bool("MPIR_CVAR_ODD_EVEN_CLIQUES", &(MPIR_CVAR_ODD_EVEN_CLIQUES));
5983 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ODD_EVEN_CLIQUES");
5984
5985 defaultval.d = 1;
5986 MPIR_T_CVAR_REGISTER_STATIC(
5987 MPI_INT,
5988 MPIR_CVAR_NUM_CLIQUES, /* name */
5989 &MPIR_CVAR_NUM_CLIQUES, /* address */
5990 1, /* count */
5991 MPI_T_VERBOSITY_USER_BASIC,
5992 MPI_T_SCOPE_ALL_EQ,
5993 defaultval,
5994 "NODEMAP", /* category */
5995 "Specify the number of cliques that should be used to partition procs on a local node. Procs with the same clique number are seen as local to each other. Used for debugging on a single machine.");
5996 MPIR_CVAR_NUM_CLIQUES = defaultval.d;
5997 rc = MPL_env2int("MPICH_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
5998 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NUM_CLIQUES");
5999 rc = MPL_env2int("MPIR_PARAM_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
6000 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NUM_CLIQUES");
6001 rc = MPL_env2int("MPIR_CVAR_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
6002 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NUM_CLIQUES");
6003 rc = MPL_env2int("MPICH_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
6004 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NUM_CLIQUES");
6005 rc = MPL_env2int("MPIR_PARAM_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
6006 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NUM_CLIQUES");
6007 rc = MPL_env2int("MPIR_CVAR_NUM_CLIQUES", &(MPIR_CVAR_NUM_CLIQUES));
6008 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NUM_CLIQUES");
6009
6010 defaultval.d = 1;
6011 MPIR_T_CVAR_REGISTER_STATIC(
6012 MPI_INT,
6013 MPIR_CVAR_COLL_ALIAS_CHECK, /* name */
6014 &MPIR_CVAR_COLL_ALIAS_CHECK, /* address */
6015 1, /* count */
6016 MPI_T_VERBOSITY_USER_BASIC,
6017 MPI_T_SCOPE_ALL_EQ,
6018 defaultval,
6019 "COLLECTIVE", /* category */
6020 "Enable checking of aliasing in collective operations");
6021 MPIR_CVAR_COLL_ALIAS_CHECK = defaultval.d;
6022 rc = MPL_env2int("MPICH_COLL_ALIAS_CHECK", &(MPIR_CVAR_COLL_ALIAS_CHECK));
6023 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COLL_ALIAS_CHECK");
6024 rc = MPL_env2int("MPIR_PARAM_COLL_ALIAS_CHECK", &(MPIR_CVAR_COLL_ALIAS_CHECK));
6025 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COLL_ALIAS_CHECK");
6026 rc = MPL_env2int("MPIR_CVAR_COLL_ALIAS_CHECK", &(MPIR_CVAR_COLL_ALIAS_CHECK));
6027 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COLL_ALIAS_CHECK");
6028
6029 defaultval.d = 1;
6030 MPIR_T_CVAR_REGISTER_STATIC(
6031 MPI_INT,
6032 MPIR_CVAR_ENABLE_GPU, /* name */
6033 &MPIR_CVAR_ENABLE_GPU, /* address */
6034 1, /* count */
6035 MPI_T_VERBOSITY_USER_BASIC,
6036 MPI_T_SCOPE_ALL_EQ,
6037 defaultval,
6038 "GPU", /* category */
6039 "Control MPICH GPU support. If set to 0, all GPU support is disabled and we do not query the buffer type internally because we assume no GPU buffer is use.");
6040 MPIR_CVAR_ENABLE_GPU = defaultval.d;
6041 rc = MPL_env2int("MPICH_ENABLE_GPU", &(MPIR_CVAR_ENABLE_GPU));
6042 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ENABLE_GPU");
6043 rc = MPL_env2int("MPIR_PARAM_ENABLE_GPU", &(MPIR_CVAR_ENABLE_GPU));
6044 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ENABLE_GPU");
6045 rc = MPL_env2int("MPIR_CVAR_ENABLE_GPU", &(MPIR_CVAR_ENABLE_GPU));
6046 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ENABLE_GPU");
6047
6048 defaultval.d = 8;
6049 MPIR_T_CVAR_REGISTER_STATIC(
6050 MPI_INT,
6051 MPIR_CVAR_REQUEST_POLL_FREQ, /* name */
6052 &MPIR_CVAR_REQUEST_POLL_FREQ, /* address */
6053 1, /* count */
6054 MPI_T_VERBOSITY_USER_BASIC,
6055 MPI_T_SCOPE_LOCAL,
6056 defaultval,
6057 "REQUEST", /* category */
6058 "How frequent to poll during completion calls (wait/test) in terms of number of processed requests before polling.");
6059 MPIR_CVAR_REQUEST_POLL_FREQ = defaultval.d;
6060 rc = MPL_env2int("MPICH_REQUEST_POLL_FREQ", &(MPIR_CVAR_REQUEST_POLL_FREQ));
6061 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REQUEST_POLL_FREQ");
6062 rc = MPL_env2int("MPIR_PARAM_REQUEST_POLL_FREQ", &(MPIR_CVAR_REQUEST_POLL_FREQ));
6063 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REQUEST_POLL_FREQ");
6064 rc = MPL_env2int("MPIR_CVAR_REQUEST_POLL_FREQ", &(MPIR_CVAR_REQUEST_POLL_FREQ));
6065 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REQUEST_POLL_FREQ");
6066
6067 defaultval.d = 64;
6068 MPIR_T_CVAR_REGISTER_STATIC(
6069 MPI_INT,
6070 MPIR_CVAR_REQUEST_BATCH_SIZE, /* name */
6071 &MPIR_CVAR_REQUEST_BATCH_SIZE, /* address */
6072 1, /* count */
6073 MPI_T_VERBOSITY_USER_BASIC,
6074 MPI_T_SCOPE_LOCAL,
6075 defaultval,
6076 "REQUEST", /* category */
6077 "The number of requests to make completion as a batch in MPI_Waitall and MPI_Testall implementation. A large number is likely to cause more cache misses.");
6078 MPIR_CVAR_REQUEST_BATCH_SIZE = defaultval.d;
6079 rc = MPL_env2int("MPICH_REQUEST_BATCH_SIZE", &(MPIR_CVAR_REQUEST_BATCH_SIZE));
6080 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REQUEST_BATCH_SIZE");
6081 rc = MPL_env2int("MPIR_PARAM_REQUEST_BATCH_SIZE", &(MPIR_CVAR_REQUEST_BATCH_SIZE));
6082 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REQUEST_BATCH_SIZE");
6083 rc = MPL_env2int("MPIR_CVAR_REQUEST_BATCH_SIZE", &(MPIR_CVAR_REQUEST_BATCH_SIZE));
6084 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REQUEST_BATCH_SIZE");
6085
6086 defaultval.d = 1000;
6087 MPIR_T_CVAR_REGISTER_STATIC(
6088 MPI_INT,
6089 MPIR_CVAR_POLLS_BEFORE_YIELD, /* name */
6090 &MPIR_CVAR_POLLS_BEFORE_YIELD, /* address */
6091 1, /* count */
6092 MPI_T_VERBOSITY_USER_BASIC,
6093 MPI_T_SCOPE_ALL_EQ,
6094 defaultval,
6095 "NEMESIS", /* category */
6096 "When MPICH is in a busy waiting loop, it will periodically call a function to yield the processor. This cvar sets the number of loops before the yield function is called. A value of 0 disables yielding.");
6097 MPIR_CVAR_POLLS_BEFORE_YIELD = defaultval.d;
6098 rc = MPL_env2int("MPICH_POLLS_BEFORE_YIELD", &(MPIR_CVAR_POLLS_BEFORE_YIELD));
6099 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_POLLS_BEFORE_YIELD");
6100 rc = MPL_env2int("MPIR_PARAM_POLLS_BEFORE_YIELD", &(MPIR_CVAR_POLLS_BEFORE_YIELD));
6101 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_POLLS_BEFORE_YIELD");
6102 rc = MPL_env2int("MPIR_CVAR_POLLS_BEFORE_YIELD", &(MPIR_CVAR_POLLS_BEFORE_YIELD));
6103 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_POLLS_BEFORE_YIELD");
6104
6105 defaultval.str = (const char *) NULL;
6106 MPIR_T_CVAR_REGISTER_STATIC(
6107 MPI_CHAR,
6108 MPIR_CVAR_OFI_USE_PROVIDER, /* name */
6109 &MPIR_CVAR_OFI_USE_PROVIDER, /* address */
6110 MPIR_CVAR_MAX_STRLEN, /* count */
6111 MPI_T_VERBOSITY_MPIDEV_DETAIL,
6112 MPI_T_SCOPE_LOCAL,
6113 defaultval,
6114 "DEVELOPER", /* category */
6115 "If non-null, choose an OFI provider by name. If using with the CH4 device and using an older libfabric installation than the recommended version to accompany this MPICH version, unexpected results may occur.");
6116 tmp_str = defaultval.str;
6117 rc = MPL_env2str("MPICH_OFI_USE_PROVIDER", &tmp_str);
6118 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_OFI_USE_PROVIDER");
6119 rc = MPL_env2str("MPIR_PARAM_OFI_USE_PROVIDER", &tmp_str);
6120 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_OFI_USE_PROVIDER");
6121 rc = MPL_env2str("MPIR_CVAR_OFI_USE_PROVIDER", &tmp_str);
6122 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_OFI_USE_PROVIDER");
6123 if (tmp_str != NULL) {
6124 MPIR_CVAR_OFI_USE_PROVIDER = MPL_strdup(tmp_str);
6125 MPIR_CVAR_assert(MPIR_CVAR_OFI_USE_PROVIDER);
6126 if (MPIR_CVAR_OFI_USE_PROVIDER == NULL) {
6127 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_OFI_USE_PROVIDER");
6128 goto fn_fail;
6129 }
6130 }
6131 else {
6132 MPIR_CVAR_OFI_USE_PROVIDER = NULL;
6133 }
6134
6135 defaultval.str = (const char *) NULL;
6136 MPIR_T_CVAR_REGISTER_STATIC(
6137 MPI_CHAR,
6138 MPIR_CVAR_CH3_INTERFACE_HOSTNAME, /* name */
6139 &MPIR_CVAR_CH3_INTERFACE_HOSTNAME, /* address */
6140 MPIR_CVAR_MAX_STRLEN, /* count */
6141 MPI_T_VERBOSITY_USER_BASIC,
6142 MPI_T_SCOPE_LOCAL,
6143 defaultval,
6144 "CH3", /* category */
6145 "If non-NULL, this cvar specifies the IP address that other processes should use when connecting to this process. This cvar is mutually exclusive with the MPIR_CVAR_CH3_NETWORK_IFACE cvar and it is an error to set them both.");
6146 tmp_str = defaultval.str;
6147 rc = MPL_env2str("MPICH_INTERFACE_HOSTNAME", &tmp_str);
6148 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_INTERFACE_HOSTNAME");
6149 rc = MPL_env2str("MPIR_PARAM_INTERFACE_HOSTNAME", &tmp_str);
6150 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_INTERFACE_HOSTNAME");
6151 rc = MPL_env2str("MPIR_CVAR_INTERFACE_HOSTNAME", &tmp_str);
6152 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_INTERFACE_HOSTNAME");
6153 rc = MPL_env2str("MPICH_CH3_INTERFACE_HOSTNAME", &tmp_str);
6154 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_INTERFACE_HOSTNAME");
6155 rc = MPL_env2str("MPIR_PARAM_CH3_INTERFACE_HOSTNAME", &tmp_str);
6156 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_INTERFACE_HOSTNAME");
6157 rc = MPL_env2str("MPIR_CVAR_CH3_INTERFACE_HOSTNAME", &tmp_str);
6158 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_INTERFACE_HOSTNAME");
6159 if (tmp_str != NULL) {
6160 MPIR_CVAR_CH3_INTERFACE_HOSTNAME = MPL_strdup(tmp_str);
6161 MPIR_CVAR_assert(MPIR_CVAR_CH3_INTERFACE_HOSTNAME);
6162 if (MPIR_CVAR_CH3_INTERFACE_HOSTNAME == NULL) {
6163 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH3_INTERFACE_HOSTNAME");
6164 goto fn_fail;
6165 }
6166 }
6167 else {
6168 MPIR_CVAR_CH3_INTERFACE_HOSTNAME = NULL;
6169 }
6170
6171 defaultval.range = (MPIR_T_cvar_range_value_t) {0,0};
6172 MPIR_T_CVAR_REGISTER_STATIC(
6173 MPI_INT,
6174 MPIR_CVAR_CH3_PORT_RANGE, /* name */
6175 &MPIR_CVAR_CH3_PORT_RANGE, /* address */
6176 2, /* count */
6177 MPI_T_VERBOSITY_USER_BASIC,
6178 MPI_T_SCOPE_ALL_EQ,
6179 defaultval,
6180 "CH3", /* category */
6181 "The MPIR_CVAR_CH3_PORT_RANGE environment variable allows you to specify the range of TCP ports to be used by the process manager and the MPICH library. The format of this variable is <low>:<high>. To specify any available port, use 0:0.");
6182 MPIR_CVAR_CH3_PORT_RANGE = defaultval.range;
6183 rc = MPL_env2range("MPICH_PORTRANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6184 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PORTRANGE");
6185 rc = MPL_env2range("MPICH_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6186 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_PORT_RANGE");
6187 rc = MPL_env2range("MPIR_PARAM_PORTRANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6188 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PORTRANGE");
6189 rc = MPL_env2range("MPIR_PARAM_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6190 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_PORT_RANGE");
6191 rc = MPL_env2range("MPIR_CVAR_PORTRANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6192 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PORTRANGE");
6193 rc = MPL_env2range("MPIR_CVAR_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6194 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_PORT_RANGE");
6195 rc = MPL_env2range("MPICH_CH3_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6196 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_PORT_RANGE");
6197 rc = MPL_env2range("MPIR_PARAM_CH3_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6198 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_PORT_RANGE");
6199 rc = MPL_env2range("MPIR_CVAR_CH3_PORT_RANGE", &(MPIR_CVAR_CH3_PORT_RANGE.low), &(MPIR_CVAR_CH3_PORT_RANGE.high));
6200 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_PORT_RANGE");
6201
6202 defaultval.str = (const char *) NULL;
6203 MPIR_T_CVAR_REGISTER_STATIC(
6204 MPI_CHAR,
6205 MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, /* name */
6206 &MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, /* address */
6207 MPIR_CVAR_MAX_STRLEN, /* count */
6208 MPI_T_VERBOSITY_USER_BASIC,
6209 MPI_T_SCOPE_ALL_EQ,
6210 defaultval,
6211 "NEMESIS", /* category */
6212 "If non-NULL, this cvar specifies which pseudo-ethernet interface the tcp netmod should use (e.g., \"eth1\", \"ib0\"). Note, this is a Linux-specific cvar. This cvar is mutually exclusive with the MPIR_CVAR_CH3_INTERFACE_HOSTNAME cvar and it is an error to set them both.");
6213 tmp_str = defaultval.str;
6214 rc = MPL_env2str("MPICH_NETWORK_IFACE", &tmp_str);
6215 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NETWORK_IFACE");
6216 rc = MPL_env2str("MPIR_PARAM_NETWORK_IFACE", &tmp_str);
6217 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NETWORK_IFACE");
6218 rc = MPL_env2str("MPIR_CVAR_NETWORK_IFACE", &tmp_str);
6219 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NETWORK_IFACE");
6220 rc = MPL_env2str("MPICH_NEMESIS_TCP_NETWORK_IFACE", &tmp_str);
6221 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_TCP_NETWORK_IFACE");
6222 rc = MPL_env2str("MPIR_PARAM_NEMESIS_TCP_NETWORK_IFACE", &tmp_str);
6223 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_TCP_NETWORK_IFACE");
6224 rc = MPL_env2str("MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE", &tmp_str);
6225 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE");
6226 if (tmp_str != NULL) {
6227 MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE = MPL_strdup(tmp_str);
6228 MPIR_CVAR_assert(MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
6229 if (MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE == NULL) {
6230 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE");
6231 goto fn_fail;
6232 }
6233 }
6234 else {
6235 MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE = NULL;
6236 }
6237
6238 defaultval.d = 10;
6239 MPIR_T_CVAR_REGISTER_STATIC(
6240 MPI_INT,
6241 MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES, /* name */
6242 &MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES, /* address */
6243 1, /* count */
6244 MPI_T_VERBOSITY_USER_BASIC,
6245 MPI_T_SCOPE_ALL_EQ,
6246 defaultval,
6247 "NEMESIS", /* category */
6248 "This cvar controls the number of times to retry the gethostbyname() function before giving up.");
6249 MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES = defaultval.d;
6250 rc = MPL_env2int("MPICH_NEMESIS_TCP_HOST_LOOKUP_RETRIES", &(MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES));
6251 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_TCP_HOST_LOOKUP_RETRIES");
6252 rc = MPL_env2int("MPIR_PARAM_NEMESIS_TCP_HOST_LOOKUP_RETRIES", &(MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES));
6253 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_TCP_HOST_LOOKUP_RETRIES");
6254 rc = MPL_env2int("MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES", &(MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES));
6255 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_TCP_HOST_LOOKUP_RETRIES");
6256
6257 defaultval.d = 0;
6258 MPIR_T_CVAR_REGISTER_STATIC(
6259 MPI_INT,
6260 MPIR_CVAR_NEMESIS_ENABLE_CKPOINT, /* name */
6261 &MPIR_CVAR_NEMESIS_ENABLE_CKPOINT, /* address */
6262 1, /* count */
6263 MPI_T_VERBOSITY_USER_BASIC,
6264 MPI_T_SCOPE_ALL_EQ,
6265 defaultval,
6266 "NEMESIS", /* category */
6267 "If true, enables checkpointing support and returns an error if checkpointing library cannot be initialized.");
6268 MPIR_CVAR_NEMESIS_ENABLE_CKPOINT = defaultval.d;
6269 rc = MPL_env2bool("MPICH_NEMESIS_ENABLE_CKPOINT", &(MPIR_CVAR_NEMESIS_ENABLE_CKPOINT));
6270 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_ENABLE_CKPOINT");
6271 rc = MPL_env2bool("MPIR_PARAM_NEMESIS_ENABLE_CKPOINT", &(MPIR_CVAR_NEMESIS_ENABLE_CKPOINT));
6272 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_ENABLE_CKPOINT");
6273 rc = MPL_env2bool("MPIR_CVAR_NEMESIS_ENABLE_CKPOINT", &(MPIR_CVAR_NEMESIS_ENABLE_CKPOINT));
6274 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_ENABLE_CKPOINT");
6275
6276 defaultval.d = -1;
6277 MPIR_T_CVAR_REGISTER_STATIC(
6278 MPI_INT,
6279 MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ, /* name */
6280 &MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ, /* address */
6281 1, /* count */
6282 MPI_T_VERBOSITY_USER_BASIC,
6283 MPI_T_SCOPE_ALL_EQ,
6284 defaultval,
6285 "NEMESIS", /* category */
6286 "This cvar controls the message size at which Nemesis switches from eager to rendezvous mode for shared memory. If this cvar is set to -1, then Nemesis will choose an appropriate value.");
6287 MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ = defaultval.d;
6288 rc = MPL_env2int("MPICH_NEMESIS_SHM_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ));
6289 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_SHM_EAGER_MAX_SZ");
6290 rc = MPL_env2int("MPIR_PARAM_NEMESIS_SHM_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ));
6291 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_SHM_EAGER_MAX_SZ");
6292 rc = MPL_env2int("MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ));
6293 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_SHM_EAGER_MAX_SZ");
6294
6295 defaultval.d = -2;
6296 MPIR_T_CVAR_REGISTER_STATIC(
6297 MPI_INT,
6298 MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ, /* name */
6299 &MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ, /* address */
6300 1, /* count */
6301 MPI_T_VERBOSITY_USER_BASIC,
6302 MPI_T_SCOPE_ALL_EQ,
6303 defaultval,
6304 "NEMESIS", /* category */
6305 "This cvar controls the message size at which Nemesis switches from eager to rendezvous mode for ready-send messages. If this cvar is set to -1, then ready messages will always be sent eagerly. If this cvar is set to -2, then Nemesis will choose an appropriate value.");
6306 MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ = defaultval.d;
6307 rc = MPL_env2int("MPICH_NEMESIS_SHM_READY_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ));
6308 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_SHM_READY_EAGER_MAX_SZ");
6309 rc = MPL_env2int("MPIR_PARAM_NEMESIS_SHM_READY_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ));
6310 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_SHM_READY_EAGER_MAX_SZ");
6311 rc = MPL_env2int("MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ", &(MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ));
6312 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_SHM_READY_EAGER_MAX_SZ");
6313
6314 defaultval.d = 0;
6315 MPIR_T_CVAR_REGISTER_STATIC(
6316 MPI_INT,
6317 MPIR_CVAR_ENABLE_FT, /* name */
6318 &MPIR_CVAR_ENABLE_FT, /* address */
6319 1, /* count */
6320 MPI_T_VERBOSITY_USER_BASIC,
6321 MPI_T_SCOPE_ALL_EQ,
6322 defaultval,
6323 "FT", /* category */
6324 "Enable fault tolerance functions");
6325 MPIR_CVAR_ENABLE_FT = defaultval.d;
6326 rc = MPL_env2bool("MPICH_ENABLE_FT", &(MPIR_CVAR_ENABLE_FT));
6327 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ENABLE_FT");
6328 rc = MPL_env2bool("MPIR_PARAM_ENABLE_FT", &(MPIR_CVAR_ENABLE_FT));
6329 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ENABLE_FT");
6330 rc = MPL_env2bool("MPIR_CVAR_ENABLE_FT", &(MPIR_CVAR_ENABLE_FT));
6331 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ENABLE_FT");
6332
6333 defaultval.str = (const char *) "";
6334 MPIR_T_CVAR_REGISTER_STATIC(
6335 MPI_CHAR,
6336 MPIR_CVAR_NEMESIS_NETMOD, /* name */
6337 &MPIR_CVAR_NEMESIS_NETMOD, /* address */
6338 MPIR_CVAR_MAX_STRLEN, /* count */
6339 MPI_T_VERBOSITY_USER_BASIC,
6340 MPI_T_SCOPE_ALL_EQ,
6341 defaultval,
6342 "NEMESIS", /* category */
6343 "If non-empty, this cvar specifies which network module should be used for communication. This variable is case-insensitive.");
6344 tmp_str = defaultval.str;
6345 rc = MPL_env2str("MPICH_NEMESIS_NETMOD", &tmp_str);
6346 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_NEMESIS_NETMOD");
6347 rc = MPL_env2str("MPIR_PARAM_NEMESIS_NETMOD", &tmp_str);
6348 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_NEMESIS_NETMOD");
6349 rc = MPL_env2str("MPIR_CVAR_NEMESIS_NETMOD", &tmp_str);
6350 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_NEMESIS_NETMOD");
6351 if (tmp_str != NULL) {
6352 MPIR_CVAR_NEMESIS_NETMOD = MPL_strdup(tmp_str);
6353 MPIR_CVAR_assert(MPIR_CVAR_NEMESIS_NETMOD);
6354 if (MPIR_CVAR_NEMESIS_NETMOD == NULL) {
6355 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_NEMESIS_NETMOD");
6356 goto fn_fail;
6357 }
6358 }
6359 else {
6360 MPIR_CVAR_NEMESIS_NETMOD = NULL;
6361 }
6362
6363 defaultval.d = 0;
6364 MPIR_T_CVAR_REGISTER_STATIC(
6365 MPI_INT,
6366 MPIR_CVAR_CH3_ENABLE_HCOLL, /* name */
6367 &MPIR_CVAR_CH3_ENABLE_HCOLL, /* address */
6368 1, /* count */
6369 MPI_T_VERBOSITY_USER_BASIC,
6370 MPI_T_SCOPE_ALL_EQ,
6371 defaultval,
6372 "CH3", /* category */
6373 "If true, enable HCOLL collectives.");
6374 MPIR_CVAR_CH3_ENABLE_HCOLL = defaultval.d;
6375 rc = MPL_env2bool("MPICH_CH3_ENABLE_HCOLL", &(MPIR_CVAR_CH3_ENABLE_HCOLL));
6376 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_ENABLE_HCOLL");
6377 rc = MPL_env2bool("MPIR_PARAM_CH3_ENABLE_HCOLL", &(MPIR_CVAR_CH3_ENABLE_HCOLL));
6378 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_ENABLE_HCOLL");
6379 rc = MPL_env2bool("MPIR_CVAR_CH3_ENABLE_HCOLL", &(MPIR_CVAR_CH3_ENABLE_HCOLL));
6380 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_ENABLE_HCOLL");
6381
6382 defaultval.d = 180;
6383 MPIR_T_CVAR_REGISTER_STATIC(
6384 MPI_INT,
6385 MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT, /* name */
6386 &MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT, /* address */
6387 1, /* count */
6388 MPI_T_VERBOSITY_USER_BASIC,
6389 MPI_T_SCOPE_GROUP_EQ,
6390 defaultval,
6391 "CH3", /* category */
6392 "The default time out period in seconds for a connection attempt to the server communicator where the named port exists but no pending accept. User can change the value for a specified connection through its info argument.");
6393 MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT = defaultval.d;
6394 rc = MPL_env2int("MPICH_CH3_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT));
6395 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_COMM_CONNECT_TIMEOUT");
6396 rc = MPL_env2int("MPIR_PARAM_CH3_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT));
6397 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_COMM_CONNECT_TIMEOUT");
6398 rc = MPL_env2int("MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT));
6399 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_COMM_CONNECT_TIMEOUT");
6400
6401 defaultval.d = 65536;
6402 MPIR_T_CVAR_REGISTER_STATIC(
6403 MPI_INT,
6404 MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE, /* name */
6405 &MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE, /* address */
6406 1, /* count */
6407 MPI_T_VERBOSITY_USER_BASIC,
6408 MPI_T_SCOPE_ALL_EQ,
6409 defaultval,
6410 "CH3", /* category */
6411 "Specify the threshold of data size of a RMA operation which can be piggybacked with a LOCK message. It is always a positive value and should not be smaller than MPIDI_RMA_IMMED_BYTES. If user sets it as a small value, for middle and large data size, we will lose performance because of always waiting for round-trip of LOCK synchronization; if user sets it as a large value, we need to consume more memory on target side to buffer this lock request when lock is not satisfied.");
6412 MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE = defaultval.d;
6413 rc = MPL_env2int("MPICH_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE", &(MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE));
6414 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE");
6415 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE", &(MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE));
6416 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE");
6417 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE", &(MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE));
6418 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_OP_PIGGYBACK_LOCK_DATA_SIZE");
6419
6420 defaultval.d = 65536;
6421 MPIR_T_CVAR_REGISTER_STATIC(
6422 MPI_INT,
6423 MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD, /* name */
6424 &MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD, /* address */
6425 1, /* count */
6426 MPI_T_VERBOSITY_USER_BASIC,
6427 MPI_T_SCOPE_ALL_EQ,
6428 defaultval,
6429 "CH3", /* category */
6430 "Threshold of number of active requests to trigger blocking waiting in operation routines. When the value is negative, we never blockingly wait in operation routines. When the value is zero, we always trigger blocking waiting in operation routines to wait until no. of active requests becomes zero. When the value is positive, we do blocking waiting in operation routines to wait until no. of active requests being reduced to this value.");
6431 MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD = defaultval.d;
6432 rc = MPL_env2int("MPICH_CH3_RMA_ACTIVE_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD));
6433 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_ACTIVE_REQ_THRESHOLD");
6434 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_ACTIVE_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD));
6435 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_ACTIVE_REQ_THRESHOLD");
6436 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD));
6437 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_ACTIVE_REQ_THRESHOLD");
6438
6439 defaultval.d = 128;
6440 MPIR_T_CVAR_REGISTER_STATIC(
6441 MPI_INT,
6442 MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD, /* name */
6443 &MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD, /* address */
6444 1, /* count */
6445 MPI_T_VERBOSITY_USER_BASIC,
6446 MPI_T_SCOPE_ALL_EQ,
6447 defaultval,
6448 "CH3", /* category */
6449 "Threshold at which the RMA implementation attempts to complete requests while completing RMA operations and while using the lazy synchonization approach. Change this value if programs fail because they run out of requests or other internal resources");
6450 MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD = defaultval.d;
6451 rc = MPL_env2int("MPICH_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD));
6452 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD");
6453 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD));
6454 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD");
6455 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD", &(MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD));
6456 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD");
6457
6458 defaultval.d = 1024;
6459 MPIR_T_CVAR_REGISTER_STATIC(
6460 MPI_INT,
6461 MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM, /* name */
6462 &MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM, /* address */
6463 1, /* count */
6464 MPI_T_VERBOSITY_USER_BASIC,
6465 MPI_T_SCOPE_ALL_EQ,
6466 defaultval,
6467 "CH3", /* category */
6468 "Specify the threshold of switching the algorithm used in FENCE from the basic algorithm to the scalable algorithm. The value can be nagative, zero or positive. When the number of processes is larger than or equal to this value, FENCE will use a scalable algorithm which do not use O(P) data structure; when the number of processes is smaller than the value, FENCE will use a basic but fast algorithm which requires an O(P) data structure.");
6469 MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM = defaultval.d;
6470 rc = MPL_env2int("MPICH_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM", &(MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM));
6471 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM");
6472 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM", &(MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM));
6473 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM");
6474 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM", &(MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM));
6475 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_SCALABLE_FENCE_PROCESS_NUM");
6476
6477 defaultval.d = 0;
6478 MPIR_T_CVAR_REGISTER_STATIC(
6479 MPI_INT,
6480 MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING, /* name */
6481 &MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING, /* address */
6482 1, /* count */
6483 MPI_T_VERBOSITY_USER_BASIC,
6484 MPI_T_SCOPE_ALL_EQ,
6485 defaultval,
6486 "CH3", /* category */
6487 "Specify if delay issuing of RMA operations for piggybacking LOCK/UNLOCK/FLUSH is enabled. It can be either 0 or 1. When it is set to 1, the issuing of LOCK message is delayed until origin process see the first RMA operation and piggyback LOCK with that operation, and the origin process always keeps the current last operation until the ending synchronization call in order to piggyback UNLOCK/FLUSH with that operation. When it is set to 0, in WIN_LOCK/UNLOCK case, the LOCK message is sent out as early as possible, in WIN_LOCK_ALL/UNLOCK_ALL case, the origin process still tries to piggyback LOCK message with the first operation; for UNLOCK/FLUSH message, the origin process no longer keeps the current last operation but only piggyback UNLOCK/FLUSH if there is an operation avaliable in the ending synchronization call.");
6488 MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING = defaultval.d;
6489 rc = MPL_env2int("MPICH_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING", &(MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING));
6490 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING");
6491 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING", &(MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING));
6492 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING");
6493 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING", &(MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING));
6494 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_DELAY_ISSUING_FOR_PIGGYBACKING");
6495
6496 defaultval.d = 262144;
6497 MPIR_T_CVAR_REGISTER_STATIC(
6498 MPI_INT,
6499 MPIR_CVAR_CH3_RMA_SLOTS_SIZE, /* name */
6500 &MPIR_CVAR_CH3_RMA_SLOTS_SIZE, /* address */
6501 1, /* count */
6502 MPI_T_VERBOSITY_USER_BASIC,
6503 MPI_T_SCOPE_ALL_EQ,
6504 defaultval,
6505 "CH3", /* category */
6506 "Number of RMA slots during window creation. Each slot contains a linked list of target elements. The distribution of ranks among slots follows a round-robin pattern. Requires a positive value.");
6507 MPIR_CVAR_CH3_RMA_SLOTS_SIZE = defaultval.d;
6508 rc = MPL_env2int("MPICH_CH3_RMA_SLOTS_SIZE", &(MPIR_CVAR_CH3_RMA_SLOTS_SIZE));
6509 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_SLOTS_SIZE");
6510 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_SLOTS_SIZE", &(MPIR_CVAR_CH3_RMA_SLOTS_SIZE));
6511 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_SLOTS_SIZE");
6512 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_SLOTS_SIZE", &(MPIR_CVAR_CH3_RMA_SLOTS_SIZE));
6513 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_SLOTS_SIZE");
6514
6515 defaultval.d = 655360;
6516 MPIR_T_CVAR_REGISTER_STATIC(
6517 MPI_INT,
6518 MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES, /* name */
6519 &MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES, /* address */
6520 1, /* count */
6521 MPI_T_VERBOSITY_USER_BASIC,
6522 MPI_T_SCOPE_ALL_EQ,
6523 defaultval,
6524 "CH3", /* category */
6525 "Size (in bytes) of available lock data this window can provided. If current buffered lock data is more than this value, the process will drop the upcoming operation data. Requires a positive calue.");
6526 MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES = defaultval.d;
6527 rc = MPL_env2int("MPICH_CH3_RMA_TARGET_LOCK_DATA_BYTES", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES));
6528 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_TARGET_LOCK_DATA_BYTES");
6529 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_TARGET_LOCK_DATA_BYTES", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES));
6530 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_TARGET_LOCK_DATA_BYTES");
6531 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES));
6532 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_TARGET_LOCK_DATA_BYTES");
6533
6534 defaultval.d = 131072;
6535 MPIR_T_CVAR_REGISTER_STATIC(
6536 MPI_INT,
6537 MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE, /* name */
6538 &MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE, /* address */
6539 1, /* count */
6540 MPI_T_VERBOSITY_USER_BASIC,
6541 MPI_T_SCOPE_ALL_EQ,
6542 defaultval,
6543 "CH3", /* category */
6544 "This cvar controls the message size at which CH3 switches from eager to rendezvous mode.");
6545 MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE = defaultval.d;
6546 rc = MPL_env2int("MPICH_CH3_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE));
6547 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_EAGER_MAX_MSG_SIZE");
6548 rc = MPL_env2int("MPIR_PARAM_CH3_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE));
6549 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_EAGER_MAX_MSG_SIZE");
6550 rc = MPL_env2int("MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE));
6551 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_EAGER_MAX_MSG_SIZE");
6552
6553 defaultval.d = 0;
6554 MPIR_T_CVAR_REGISTER_STATIC(
6555 MPI_INT,
6556 MPIR_CVAR_CH3_PG_VERBOSE, /* name */
6557 &MPIR_CVAR_CH3_PG_VERBOSE, /* address */
6558 1, /* count */
6559 MPI_T_VERBOSITY_USER_BASIC,
6560 MPI_T_SCOPE_GROUP_EQ,
6561 defaultval,
6562 "CH3", /* category */
6563 "If set, print the PG state on finalize.");
6564 MPIR_CVAR_CH3_PG_VERBOSE = defaultval.d;
6565 rc = MPL_env2bool("MPICH_CH3_PG_VERBOSE", &(MPIR_CVAR_CH3_PG_VERBOSE));
6566 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_PG_VERBOSE");
6567 rc = MPL_env2bool("MPIR_PARAM_CH3_PG_VERBOSE", &(MPIR_CVAR_CH3_PG_VERBOSE));
6568 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_PG_VERBOSE");
6569 rc = MPL_env2bool("MPIR_CVAR_CH3_PG_VERBOSE", &(MPIR_CVAR_CH3_PG_VERBOSE));
6570 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_PG_VERBOSE");
6571
6572 defaultval.d = 256;
6573 MPIR_T_CVAR_REGISTER_STATIC(
6574 MPI_INT,
6575 MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE, /* name */
6576 &MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE, /* address */
6577 1, /* count */
6578 MPI_T_VERBOSITY_USER_BASIC,
6579 MPI_T_SCOPE_ALL_EQ,
6580 defaultval,
6581 "CH3", /* category */
6582 "Size of the window-private RMA operations pool (in number of operations) that stores information about RMA operations that could not be issued immediately. Requires a positive value.");
6583 MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE = defaultval.d;
6584 rc = MPL_env2int("MPICH_CH3_RMA_OP_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE));
6585 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_OP_WIN_POOL_SIZE");
6586 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_OP_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE));
6587 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_OP_WIN_POOL_SIZE");
6588 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE));
6589 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_OP_WIN_POOL_SIZE");
6590
6591 defaultval.d = 16384;
6592 MPIR_T_CVAR_REGISTER_STATIC(
6593 MPI_INT,
6594 MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE, /* name */
6595 &MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE, /* address */
6596 1, /* count */
6597 MPI_T_VERBOSITY_USER_BASIC,
6598 MPI_T_SCOPE_ALL_EQ,
6599 defaultval,
6600 "CH3", /* category */
6601 "Size of the Global RMA operations pool (in number of operations) that stores information about RMA operations that could not be issued immediatly. Requires a positive value.");
6602 MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE = defaultval.d;
6603 rc = MPL_env2int("MPICH_CH3_RMA_OP_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE));
6604 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_OP_GLOBAL_POOL_SIZE");
6605 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_OP_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE));
6606 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_OP_GLOBAL_POOL_SIZE");
6607 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE));
6608 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_OP_GLOBAL_POOL_SIZE");
6609
6610 defaultval.d = 256;
6611 MPIR_T_CVAR_REGISTER_STATIC(
6612 MPI_INT,
6613 MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE, /* name */
6614 &MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE, /* address */
6615 1, /* count */
6616 MPI_T_VERBOSITY_USER_BASIC,
6617 MPI_T_SCOPE_ALL_EQ,
6618 defaultval,
6619 "CH3", /* category */
6620 "Size of the window-private RMA target pool (in number of targets) that stores information about RMA targets that could not be issued immediately. Requires a positive value.");
6621 MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE = defaultval.d;
6622 rc = MPL_env2int("MPICH_CH3_RMA_TARGET_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE));
6623 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_TARGET_WIN_POOL_SIZE");
6624 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_TARGET_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE));
6625 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_TARGET_WIN_POOL_SIZE");
6626 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE));
6627 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_TARGET_WIN_POOL_SIZE");
6628
6629 defaultval.d = 16384;
6630 MPIR_T_CVAR_REGISTER_STATIC(
6631 MPI_INT,
6632 MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE, /* name */
6633 &MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE, /* address */
6634 1, /* count */
6635 MPI_T_VERBOSITY_USER_BASIC,
6636 MPI_T_SCOPE_ALL_EQ,
6637 defaultval,
6638 "CH3", /* category */
6639 "Size of the Global RMA targets pool (in number of targets) that stores information about RMA targets that could not be issued immediatly. Requires a positive value.");
6640 MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE = defaultval.d;
6641 rc = MPL_env2int("MPICH_CH3_RMA_TARGET_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE));
6642 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_TARGET_GLOBAL_POOL_SIZE");
6643 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_TARGET_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE));
6644 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_TARGET_GLOBAL_POOL_SIZE");
6645 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE));
6646 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_TARGET_GLOBAL_POOL_SIZE");
6647
6648 defaultval.d = 256;
6649 MPIR_T_CVAR_REGISTER_STATIC(
6650 MPI_INT,
6651 MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE, /* name */
6652 &MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE, /* address */
6653 1, /* count */
6654 MPI_T_VERBOSITY_USER_BASIC,
6655 MPI_T_SCOPE_ALL_EQ,
6656 defaultval,
6657 "CH3", /* category */
6658 "Size of the window-private RMA lock entries pool (in number of lock entries) that stores information about RMA lock requests that could not be satisfied immediatly. Requires a positive value.");
6659 MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE = defaultval.d;
6660 rc = MPL_env2int("MPICH_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE));
6661 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE");
6662 rc = MPL_env2int("MPIR_PARAM_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE));
6663 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE");
6664 rc = MPL_env2int("MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE", &(MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE));
6665 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH3_RMA_TARGET_LOCK_ENTRY_WIN_POOL_SIZE");
6666
6667 defaultval.d = 69632;
6668 MPIR_T_CVAR_REGISTER_STATIC(
6669 MPI_INT,
6670 MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE, /* name */
6671 &MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE, /* address */
6672 1, /* count */
6673 MPI_T_VERBOSITY_USER_BASIC,
6674 MPI_T_SCOPE_LOCAL,
6675 defaultval,
6676 "CH4", /* category */
6677 "Specifies the number of buffers for packing/unpacking active messages in each block of the pool. The size here should be greater or equal to the max of the eager buffer limit of SHM and NETMOD.");
6678 MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE = defaultval.d;
6679 rc = MPL_env2int("MPICH_CH4_AM_PACK_BUFFER_SIZE", &(MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE));
6680 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_AM_PACK_BUFFER_SIZE");
6681 rc = MPL_env2int("MPIR_PARAM_CH4_AM_PACK_BUFFER_SIZE", &(MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE));
6682 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_AM_PACK_BUFFER_SIZE");
6683 rc = MPL_env2int("MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE", &(MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE));
6684 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_AM_PACK_BUFFER_SIZE");
6685
6686 defaultval.d = 16;
6687 MPIR_T_CVAR_REGISTER_STATIC(
6688 MPI_INT,
6689 MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK, /* name */
6690 &MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK, /* address */
6691 1, /* count */
6692 MPI_T_VERBOSITY_USER_BASIC,
6693 MPI_T_SCOPE_LOCAL,
6694 defaultval,
6695 "CH4", /* category */
6696 "Specifies the number of buffers for packing/unpacking active messages in each block of the pool.");
6697 MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK = defaultval.d;
6698 rc = MPL_env2int("MPICH_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK));
6699 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK");
6700 rc = MPL_env2int("MPIR_PARAM_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK));
6701 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK");
6702 rc = MPL_env2int("MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK));
6703 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_NUM_AM_PACK_BUFFERS_PER_CHUNK");
6704
6705 defaultval.d = 8388608;
6706 MPIR_T_CVAR_REGISTER_STATIC(
6707 MPI_INT,
6708 MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE, /* name */
6709 &MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE, /* address */
6710 1, /* count */
6711 MPI_T_VERBOSITY_USER_BASIC,
6712 MPI_T_SCOPE_LOCAL,
6713 defaultval,
6714 "CH4", /* category */
6715 "Specifies the max number of buffers for packing/unpacking active messages in the pool.");
6716 MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE = defaultval.d;
6717 rc = MPL_env2int("MPICH_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE", &(MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE));
6718 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE");
6719 rc = MPL_env2int("MPIR_PARAM_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE", &(MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE));
6720 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE");
6721 rc = MPL_env2int("MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE", &(MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE));
6722 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_MAX_AM_UNEXPECTED_PACK_BUFFERS_SIZE_BYTE");
6723
6724 defaultval.d = 0;
6725 MPIR_T_CVAR_REGISTER_STATIC(
6726 MPI_INT,
6727 MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE, /* name */
6728 &MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE, /* address */
6729 1, /* count */
6730 MPI_T_VERBOSITY_USER_BASIC,
6731 MPI_T_SCOPE_LOCAL,
6732 defaultval,
6733 "DEVELOPER", /* category */
6734 "For long message to be sent using pipeline rather than default RDMA read.");
6735 MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE = defaultval.d;
6736 rc = MPL_env2bool("MPICH_CH4_OFI_AM_LONG_FORCE_PIPELINE", &(MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE));
6737 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_AM_LONG_FORCE_PIPELINE");
6738 rc = MPL_env2bool("MPIR_PARAM_CH4_OFI_AM_LONG_FORCE_PIPELINE", &(MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE));
6739 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_AM_LONG_FORCE_PIPELINE");
6740 rc = MPL_env2bool("MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE", &(MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE));
6741 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_AM_LONG_FORCE_PIPELINE");
6742
6743 defaultval.d = 0;
6744 MPIR_T_CVAR_REGISTER_STATIC(
6745 MPI_INT,
6746 MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG, /* name */
6747 &MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG, /* address */
6748 1, /* count */
6749 MPI_T_VERBOSITY_USER_BASIC,
6750 MPI_T_SCOPE_LOCAL,
6751 defaultval,
6752 "CH4_OFI", /* category */
6753 "Prints out the configuration of each capability selected via the capability sets interface.");
6754 MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG = defaultval.d;
6755 rc = MPL_env2int("MPICH_CH4_OFI_CAPABILITY_SETS_DEBUG", &(MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG));
6756 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_CAPABILITY_SETS_DEBUG");
6757 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_CAPABILITY_SETS_DEBUG", &(MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG));
6758 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_CAPABILITY_SETS_DEBUG");
6759 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG", &(MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG));
6760 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_CAPABILITY_SETS_DEBUG");
6761
6762 defaultval.d = 1;
6763 MPIR_T_CVAR_REGISTER_STATIC(
6764 MPI_INT,
6765 MPIR_CVAR_OFI_SKIP_IPV6, /* name */
6766 &MPIR_CVAR_OFI_SKIP_IPV6, /* address */
6767 1, /* count */
6768 MPI_T_VERBOSITY_USER_BASIC,
6769 MPI_T_SCOPE_LOCAL,
6770 defaultval,
6771 "DEVELOPER", /* category */
6772 "Skip IPv6 providers.");
6773 MPIR_CVAR_OFI_SKIP_IPV6 = defaultval.d;
6774 rc = MPL_env2bool("MPICH_OFI_SKIP_IPV6", &(MPIR_CVAR_OFI_SKIP_IPV6));
6775 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_OFI_SKIP_IPV6");
6776 rc = MPL_env2bool("MPIR_PARAM_OFI_SKIP_IPV6", &(MPIR_CVAR_OFI_SKIP_IPV6));
6777 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_OFI_SKIP_IPV6");
6778 rc = MPL_env2bool("MPIR_CVAR_OFI_SKIP_IPV6", &(MPIR_CVAR_OFI_SKIP_IPV6));
6779 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_OFI_SKIP_IPV6");
6780
6781 defaultval.d = -1;
6782 MPIR_T_CVAR_REGISTER_STATIC(
6783 MPI_INT,
6784 MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE, /* name */
6785 &MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE, /* address */
6786 1, /* count */
6787 MPI_T_VERBOSITY_USER_BASIC,
6788 MPI_T_SCOPE_LOCAL,
6789 defaultval,
6790 "CH4_OFI", /* category */
6791 "If true, the OFI addressing information will be stored with an FI_AV_TABLE. If false, an FI_AV_MAP will be used.");
6792 MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE = defaultval.d;
6793 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_AV_TABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE));
6794 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_AV_TABLE");
6795 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_AV_TABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE));
6796 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_AV_TABLE");
6797 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE));
6798 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_AV_TABLE");
6799
6800 defaultval.d = -1;
6801 MPIR_T_CVAR_REGISTER_STATIC(
6802 MPI_INT,
6803 MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS, /* name */
6804 &MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS, /* address */
6805 1, /* count */
6806 MPI_T_VERBOSITY_USER_BASIC,
6807 MPI_T_SCOPE_LOCAL,
6808 defaultval,
6809 "CH4_OFI", /* category */
6810 "If true, use OFI scalable endpoints.");
6811 MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS = defaultval.d;
6812 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS));
6813 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS");
6814 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS));
6815 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS");
6816 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS));
6817 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_SCALABLE_ENDPOINTS");
6818
6819 defaultval.d = 0;
6820 MPIR_T_CVAR_REGISTER_STATIC(
6821 MPI_INT,
6822 MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS, /* name */
6823 &MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS, /* address */
6824 1, /* count */
6825 MPI_T_VERBOSITY_USER_BASIC,
6826 MPI_T_SCOPE_LOCAL,
6827 defaultval,
6828 "CH4_OFI", /* category */
6829 "If set to false (zero), MPICH does not use OFI shared contexts. If set to -1, it is determined by the OFI capability sets based on the provider. Otherwise, MPICH tries to use OFI shared contexts. If they are unavailable, it'll fall back to the mode without shared contexts.");
6830 MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS = defaultval.d;
6831 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_SHARED_CONTEXTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS));
6832 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_SHARED_CONTEXTS");
6833 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_SHARED_CONTEXTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS));
6834 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_SHARED_CONTEXTS");
6835 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS", &(MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS));
6836 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_SHARED_CONTEXTS");
6837
6838 defaultval.d = -1;
6839 MPIR_T_CVAR_REGISTER_STATIC(
6840 MPI_INT,
6841 MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE, /* name */
6842 &MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE, /* address */
6843 1, /* count */
6844 MPI_T_VERBOSITY_USER_BASIC,
6845 MPI_T_SCOPE_LOCAL,
6846 defaultval,
6847 "CH4_OFI", /* category */
6848 "This variable is only provided for backward compatibility. When using OFI versions 1.5+, use the other memory region variables. If true, MR_SCALABLE for OFI memory regions. If false, MR_BASIC for OFI memory regions.");
6849 MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE = defaultval.d;
6850 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_MR_SCALABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE));
6851 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_MR_SCALABLE");
6852 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_MR_SCALABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE));
6853 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_MR_SCALABLE");
6854 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE));
6855 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_MR_SCALABLE");
6856
6857 defaultval.d = -1;
6858 MPIR_T_CVAR_REGISTER_STATIC(
6859 MPI_INT,
6860 MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS, /* name */
6861 &MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS, /* address */
6862 1, /* count */
6863 MPI_T_VERBOSITY_USER_BASIC,
6864 MPI_T_SCOPE_LOCAL,
6865 defaultval,
6866 "CH4_OFI", /* category */
6867 "If true, enable virtual addressing for OFI memory regions. This variable is only meaningful for OFI versions 1.5+. It is equivelent to using FI_MR_BASIC in versions of OFI older than 1.5.");
6868 MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS = defaultval.d;
6869 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_MR_VIRT_ADDRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS));
6870 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_MR_VIRT_ADDRESS");
6871 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_MR_VIRT_ADDRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS));
6872 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_MR_VIRT_ADDRESS");
6873 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS));
6874 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_MR_VIRT_ADDRESS");
6875
6876 defaultval.d = -1;
6877 MPIR_T_CVAR_REGISTER_STATIC(
6878 MPI_INT,
6879 MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED, /* name */
6880 &MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED, /* address */
6881 1, /* count */
6882 MPI_T_VERBOSITY_USER_BASIC,
6883 MPI_T_SCOPE_LOCAL,
6884 defaultval,
6885 "CH4_OFI", /* category */
6886 "If true, require all OFI memory regions must be backed by physical memory pages at the time the registration call is made. This variable is only meaningful for OFI versions 1.5+. It is equivelent to using FI_MR_BASIC in versions of OFI older than 1.5.");
6887 MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED = defaultval.d;
6888 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_MR_ALLOCATED", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED));
6889 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_MR_ALLOCATED");
6890 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_MR_ALLOCATED", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED));
6891 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_MR_ALLOCATED");
6892 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED));
6893 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_MR_ALLOCATED");
6894
6895 defaultval.d = -1;
6896 MPIR_T_CVAR_REGISTER_STATIC(
6897 MPI_INT,
6898 MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY, /* name */
6899 &MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY, /* address */
6900 1, /* count */
6901 MPI_T_VERBOSITY_USER_BASIC,
6902 MPI_T_SCOPE_LOCAL,
6903 defaultval,
6904 "CH4_OFI", /* category */
6905 "If true, enable provider supplied key for OFI memory regions. This variable is only meaningful for OFI versions 1.5+. It is equivelent to using FI_MR_BASIC in versions of OFI older than 1.5.");
6906 MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY = defaultval.d;
6907 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_MR_PROV_KEY", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY));
6908 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_MR_PROV_KEY");
6909 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_MR_PROV_KEY", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY));
6910 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_MR_PROV_KEY");
6911 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY", &(MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY));
6912 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_MR_PROV_KEY");
6913
6914 defaultval.d = -1;
6915 MPIR_T_CVAR_REGISTER_STATIC(
6916 MPI_INT,
6917 MPIR_CVAR_CH4_OFI_ENABLE_TAGGED, /* name */
6918 &MPIR_CVAR_CH4_OFI_ENABLE_TAGGED, /* address */
6919 1, /* count */
6920 MPI_T_VERBOSITY_USER_BASIC,
6921 MPI_T_SCOPE_LOCAL,
6922 defaultval,
6923 "CH4_OFI", /* category */
6924 "If true, use tagged message transmission functions in OFI.");
6925 MPIR_CVAR_CH4_OFI_ENABLE_TAGGED = defaultval.d;
6926 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_TAGGED", &(MPIR_CVAR_CH4_OFI_ENABLE_TAGGED));
6927 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_TAGGED");
6928 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_TAGGED", &(MPIR_CVAR_CH4_OFI_ENABLE_TAGGED));
6929 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_TAGGED");
6930 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_TAGGED", &(MPIR_CVAR_CH4_OFI_ENABLE_TAGGED));
6931 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_TAGGED");
6932
6933 defaultval.d = -1;
6934 MPIR_T_CVAR_REGISTER_STATIC(
6935 MPI_INT,
6936 MPIR_CVAR_CH4_OFI_ENABLE_AM, /* name */
6937 &MPIR_CVAR_CH4_OFI_ENABLE_AM, /* address */
6938 1, /* count */
6939 MPI_T_VERBOSITY_USER_BASIC,
6940 MPI_T_SCOPE_LOCAL,
6941 defaultval,
6942 "CH4_OFI", /* category */
6943 "If true, enable OFI active message support.");
6944 MPIR_CVAR_CH4_OFI_ENABLE_AM = defaultval.d;
6945 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_AM", &(MPIR_CVAR_CH4_OFI_ENABLE_AM));
6946 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_AM");
6947 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_AM", &(MPIR_CVAR_CH4_OFI_ENABLE_AM));
6948 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_AM");
6949 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_AM", &(MPIR_CVAR_CH4_OFI_ENABLE_AM));
6950 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_AM");
6951
6952 defaultval.d = -1;
6953 MPIR_T_CVAR_REGISTER_STATIC(
6954 MPI_INT,
6955 MPIR_CVAR_CH4_OFI_ENABLE_RMA, /* name */
6956 &MPIR_CVAR_CH4_OFI_ENABLE_RMA, /* address */
6957 1, /* count */
6958 MPI_T_VERBOSITY_USER_BASIC,
6959 MPI_T_SCOPE_LOCAL,
6960 defaultval,
6961 "CH4_OFI", /* category */
6962 "If true, enable OFI RMA support for MPI RMA operations. OFI support for basic RMA is always required to implement large messgage transfers in the active message code path.");
6963 MPIR_CVAR_CH4_OFI_ENABLE_RMA = defaultval.d;
6964 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_RMA", &(MPIR_CVAR_CH4_OFI_ENABLE_RMA));
6965 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_RMA");
6966 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_RMA", &(MPIR_CVAR_CH4_OFI_ENABLE_RMA));
6967 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_RMA");
6968 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_RMA", &(MPIR_CVAR_CH4_OFI_ENABLE_RMA));
6969 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_RMA");
6970
6971 defaultval.d = -1;
6972 MPIR_T_CVAR_REGISTER_STATIC(
6973 MPI_INT,
6974 MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS, /* name */
6975 &MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS, /* address */
6976 1, /* count */
6977 MPI_T_VERBOSITY_USER_BASIC,
6978 MPI_T_SCOPE_LOCAL,
6979 defaultval,
6980 "CH4_OFI", /* category */
6981 "If true, enable OFI Atomics support.");
6982 MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS = defaultval.d;
6983 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_ATOMICS", &(MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS));
6984 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_ATOMICS");
6985 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_ATOMICS", &(MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS));
6986 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_ATOMICS");
6987 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS", &(MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS));
6988 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_ATOMICS");
6989
6990 defaultval.d = -1;
6991 MPIR_T_CVAR_REGISTER_STATIC(
6992 MPI_INT,
6993 MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS, /* name */
6994 &MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS, /* address */
6995 1, /* count */
6996 MPI_T_VERBOSITY_USER_BASIC,
6997 MPI_T_SCOPE_LOCAL,
6998 defaultval,
6999 "CH4_OFI", /* category */
7000 "Specifies the maximum number of iovecs that can be used by the OFI provider for fetch_atomic operations. The default value is -1, indicating that no value is set.");
7001 MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS = defaultval.d;
7002 rc = MPL_env2int("MPICH_CH4_OFI_FETCH_ATOMIC_IOVECS", &(MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS));
7003 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_FETCH_ATOMIC_IOVECS");
7004 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_FETCH_ATOMIC_IOVECS", &(MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS));
7005 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_FETCH_ATOMIC_IOVECS");
7006 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS", &(MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS));
7007 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_FETCH_ATOMIC_IOVECS");
7008
7009 defaultval.d = -1;
7010 MPIR_T_CVAR_REGISTER_STATIC(
7011 MPI_INT,
7012 MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS, /* name */
7013 &MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS, /* address */
7014 1, /* count */
7015 MPI_T_VERBOSITY_USER_BASIC,
7016 MPI_T_SCOPE_LOCAL,
7017 defaultval,
7018 "CH4_OFI", /* category */
7019 "If true, enable MPI data auto progress.");
7020 MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS = defaultval.d;
7021 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS));
7022 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS");
7023 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS));
7024 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS");
7025 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS));
7026 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_DATA_AUTO_PROGRESS");
7027
7028 defaultval.d = -1;
7029 MPIR_T_CVAR_REGISTER_STATIC(
7030 MPI_INT,
7031 MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS, /* name */
7032 &MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS, /* address */
7033 1, /* count */
7034 MPI_T_VERBOSITY_USER_BASIC,
7035 MPI_T_SCOPE_LOCAL,
7036 defaultval,
7037 "CH4_OFI", /* category */
7038 "If true, enable MPI control auto progress.");
7039 MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS = defaultval.d;
7040 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS));
7041 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS");
7042 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS));
7043 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS");
7044 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS", &(MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS));
7045 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_CONTROL_AUTO_PROGRESS");
7046
7047 defaultval.d = -1;
7048 MPIR_T_CVAR_REGISTER_STATIC(
7049 MPI_INT,
7050 MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK, /* name */
7051 &MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK, /* address */
7052 1, /* count */
7053 MPI_T_VERBOSITY_USER_BASIC,
7054 MPI_T_SCOPE_LOCAL,
7055 defaultval,
7056 "CH4_OFI", /* category */
7057 "If true, enable iovec for pt2pt.");
7058 MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK = defaultval.d;
7059 rc = MPL_env2int("MPICH_CH4_OFI_ENABLE_PT2PT_NOPACK", &(MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK));
7060 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_ENABLE_PT2PT_NOPACK");
7061 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_ENABLE_PT2PT_NOPACK", &(MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK));
7062 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_ENABLE_PT2PT_NOPACK");
7063 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK", &(MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK));
7064 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_ENABLE_PT2PT_NOPACK");
7065
7066 defaultval.d = -1;
7067 MPIR_T_CVAR_REGISTER_STATIC(
7068 MPI_INT,
7069 MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS, /* name */
7070 &MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS, /* address */
7071 1, /* count */
7072 MPI_T_VERBOSITY_USER_BASIC,
7073 MPI_T_SCOPE_LOCAL,
7074 defaultval,
7075 "CH4_OFI", /* category */
7076 "Specifies the number of bits that will be used for matching the context ID. The default value is -1, indicating that no value is set and that the default will be defined in the ofi_types.h file.");
7077 MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS = defaultval.d;
7078 rc = MPL_env2int("MPICH_CH4_OFI_CONTEXT_ID_BITS", &(MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS));
7079 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_CONTEXT_ID_BITS");
7080 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_CONTEXT_ID_BITS", &(MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS));
7081 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_CONTEXT_ID_BITS");
7082 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS", &(MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS));
7083 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_CONTEXT_ID_BITS");
7084
7085 defaultval.d = -1;
7086 MPIR_T_CVAR_REGISTER_STATIC(
7087 MPI_INT,
7088 MPIR_CVAR_CH4_OFI_RANK_BITS, /* name */
7089 &MPIR_CVAR_CH4_OFI_RANK_BITS, /* address */
7090 1, /* count */
7091 MPI_T_VERBOSITY_USER_BASIC,
7092 MPI_T_SCOPE_LOCAL,
7093 defaultval,
7094 "CH4_OFI", /* category */
7095 "Specifies the number of bits that will be used for matching the MPI rank. The default value is -1, indicating that no value is set and that the default will be defined in the ofi_types.h file.");
7096 MPIR_CVAR_CH4_OFI_RANK_BITS = defaultval.d;
7097 rc = MPL_env2int("MPICH_CH4_OFI_RANK_BITS", &(MPIR_CVAR_CH4_OFI_RANK_BITS));
7098 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_RANK_BITS");
7099 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_RANK_BITS", &(MPIR_CVAR_CH4_OFI_RANK_BITS));
7100 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_RANK_BITS");
7101 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_RANK_BITS", &(MPIR_CVAR_CH4_OFI_RANK_BITS));
7102 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_RANK_BITS");
7103
7104 defaultval.d = -1;
7105 MPIR_T_CVAR_REGISTER_STATIC(
7106 MPI_INT,
7107 MPIR_CVAR_CH4_OFI_TAG_BITS, /* name */
7108 &MPIR_CVAR_CH4_OFI_TAG_BITS, /* address */
7109 1, /* count */
7110 MPI_T_VERBOSITY_USER_BASIC,
7111 MPI_T_SCOPE_LOCAL,
7112 defaultval,
7113 "CH4_OFI", /* category */
7114 "Specifies the number of bits that will be used for matching the user tag. The default value is -1, indicating that no value is set and that the default will be defined in the ofi_types.h file.");
7115 MPIR_CVAR_CH4_OFI_TAG_BITS = defaultval.d;
7116 rc = MPL_env2int("MPICH_CH4_OFI_TAG_BITS", &(MPIR_CVAR_CH4_OFI_TAG_BITS));
7117 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_TAG_BITS");
7118 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_TAG_BITS", &(MPIR_CVAR_CH4_OFI_TAG_BITS));
7119 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_TAG_BITS");
7120 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_TAG_BITS", &(MPIR_CVAR_CH4_OFI_TAG_BITS));
7121 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_TAG_BITS");
7122
7123 defaultval.d = -1;
7124 MPIR_T_CVAR_REGISTER_STATIC(
7125 MPI_INT,
7126 MPIR_CVAR_CH4_OFI_MAJOR_VERSION, /* name */
7127 &MPIR_CVAR_CH4_OFI_MAJOR_VERSION, /* address */
7128 1, /* count */
7129 MPI_T_VERBOSITY_USER_BASIC,
7130 MPI_T_SCOPE_LOCAL,
7131 defaultval,
7132 "CH4_OFI", /* category */
7133 "Specifies the major version of the OFI library. The default is the major version of the OFI library used with MPICH. If using this CVAR, it is recommended that the user also specifies a specific OFI provider.");
7134 MPIR_CVAR_CH4_OFI_MAJOR_VERSION = defaultval.d;
7135 rc = MPL_env2int("MPICH_CH4_OFI_MAJOR_VERSION", &(MPIR_CVAR_CH4_OFI_MAJOR_VERSION));
7136 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MAJOR_VERSION");
7137 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MAJOR_VERSION", &(MPIR_CVAR_CH4_OFI_MAJOR_VERSION));
7138 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MAJOR_VERSION");
7139 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MAJOR_VERSION", &(MPIR_CVAR_CH4_OFI_MAJOR_VERSION));
7140 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MAJOR_VERSION");
7141
7142 defaultval.d = -1;
7143 MPIR_T_CVAR_REGISTER_STATIC(
7144 MPI_INT,
7145 MPIR_CVAR_CH4_OFI_MINOR_VERSION, /* name */
7146 &MPIR_CVAR_CH4_OFI_MINOR_VERSION, /* address */
7147 1, /* count */
7148 MPI_T_VERBOSITY_USER_BASIC,
7149 MPI_T_SCOPE_LOCAL,
7150 defaultval,
7151 "CH4_OFI", /* category */
7152 "Specifies the major version of the OFI library. The default is the minor version of the OFI library used with MPICH. If using this CVAR, it is recommended that the user also specifies a specific OFI provider.");
7153 MPIR_CVAR_CH4_OFI_MINOR_VERSION = defaultval.d;
7154 rc = MPL_env2int("MPICH_CH4_OFI_MINOR_VERSION", &(MPIR_CVAR_CH4_OFI_MINOR_VERSION));
7155 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MINOR_VERSION");
7156 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MINOR_VERSION", &(MPIR_CVAR_CH4_OFI_MINOR_VERSION));
7157 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MINOR_VERSION");
7158 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MINOR_VERSION", &(MPIR_CVAR_CH4_OFI_MINOR_VERSION));
7159 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MINOR_VERSION");
7160
7161 defaultval.d = 0;
7162 MPIR_T_CVAR_REGISTER_STATIC(
7163 MPI_INT,
7164 MPIR_CVAR_CH4_OFI_MAX_VNIS, /* name */
7165 &MPIR_CVAR_CH4_OFI_MAX_VNIS, /* address */
7166 1, /* count */
7167 MPI_T_VERBOSITY_USER_BASIC,
7168 MPI_T_SCOPE_LOCAL,
7169 defaultval,
7170 "CH4_OFI", /* category */
7171 "If set to positive, this CVAR specifies the maximum number of CH4 VNIs that OFI netmod exposes. If set to 0 (the default) or bigger than MPIR_CVAR_CH4_NUM_VCIS, the number of exposed VNIs is set to MPIR_CVAR_CH4_NUM_VCIS.");
7172 MPIR_CVAR_CH4_OFI_MAX_VNIS = defaultval.d;
7173 rc = MPL_env2int("MPICH_CH4_OFI_MAX_VNIS", &(MPIR_CVAR_CH4_OFI_MAX_VNIS));
7174 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MAX_VNIS");
7175 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MAX_VNIS", &(MPIR_CVAR_CH4_OFI_MAX_VNIS));
7176 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MAX_VNIS");
7177 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MAX_VNIS", &(MPIR_CVAR_CH4_OFI_MAX_VNIS));
7178 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MAX_VNIS");
7179
7180 defaultval.d = 0;
7181 MPIR_T_CVAR_REGISTER_STATIC(
7182 MPI_INT,
7183 MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX, /* name */
7184 &MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX, /* address */
7185 1, /* count */
7186 MPI_T_VERBOSITY_USER_BASIC,
7187 MPI_T_SCOPE_LOCAL,
7188 defaultval,
7189 "CH4_OFI", /* category */
7190 "If set to positive, this CVAR specifies the maximum number of transmit contexts RMA can utilize in a scalable endpoint. This value is effective only when scalable endpoint is available, otherwise it will be ignored.");
7191 MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX = defaultval.d;
7192 rc = MPL_env2int("MPICH_CH4_OFI_MAX_RMA_SEP_CTX", &(MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX));
7193 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MAX_RMA_SEP_CTX");
7194 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MAX_RMA_SEP_CTX", &(MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX));
7195 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MAX_RMA_SEP_CTX");
7196 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX", &(MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX));
7197 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MAX_RMA_SEP_CTX");
7198
7199 defaultval.d = -1;
7200 MPIR_T_CVAR_REGISTER_STATIC(
7201 MPI_INT,
7202 MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY, /* name */
7203 &MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY, /* address */
7204 1, /* count */
7205 MPI_T_VERBOSITY_USER_BASIC,
7206 MPI_T_SCOPE_LOCAL,
7207 defaultval,
7208 "CH4_OFI", /* category */
7209 "If set to positive, this CVAR specifies the maximum number of retries of an ofi operations before returning MPIX_ERR_EAGAIN. This value is effective only when the communicator has the MPI_OFI_set_eagain info hint set to true.");
7210 MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY = defaultval.d;
7211 rc = MPL_env2int("MPICH_CH4_OFI_MAX_EAGAIN_RETRY", &(MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY));
7212 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MAX_EAGAIN_RETRY");
7213 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MAX_EAGAIN_RETRY", &(MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY));
7214 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MAX_EAGAIN_RETRY");
7215 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY", &(MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY));
7216 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MAX_EAGAIN_RETRY");
7217
7218 defaultval.d = -1;
7219 MPIR_T_CVAR_REGISTER_STATIC(
7220 MPI_INT,
7221 MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS, /* name */
7222 &MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS, /* address */
7223 1, /* count */
7224 MPI_T_VERBOSITY_USER_BASIC,
7225 MPI_T_SCOPE_LOCAL,
7226 defaultval,
7227 "CH4_OFI", /* category */
7228 "Specifies the number of buffers for receiving active messages.");
7229 MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS = defaultval.d;
7230 rc = MPL_env2int("MPICH_CH4_OFI_NUM_AM_BUFFERS", &(MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS));
7231 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_NUM_AM_BUFFERS");
7232 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_NUM_AM_BUFFERS", &(MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS));
7233 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_NUM_AM_BUFFERS");
7234 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS", &(MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS));
7235 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_NUM_AM_BUFFERS");
7236
7237 defaultval.d = 100;
7238 MPIR_T_CVAR_REGISTER_STATIC(
7239 MPI_INT,
7240 MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL, /* name */
7241 &MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL, /* address */
7242 1, /* count */
7243 MPI_T_VERBOSITY_USER_BASIC,
7244 MPI_T_SCOPE_LOCAL,
7245 defaultval,
7246 "CH4_OFI", /* category */
7247 "Specifies the interval for manually flushing RMA operations when automatic progress is not enabled. It the underlying OFI provider supports auto data progress, this value is ignored. If the value is -1, this optimization will be turned off.");
7248 MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL = defaultval.d;
7249 rc = MPL_env2int("MPICH_CH4_OFI_RMA_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL));
7250 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_RMA_PROGRESS_INTERVAL");
7251 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_RMA_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL));
7252 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_RMA_PROGRESS_INTERVAL");
7253 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL));
7254 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_RMA_PROGRESS_INTERVAL");
7255
7256 defaultval.d = 16384;
7257 MPIR_T_CVAR_REGISTER_STATIC(
7258 MPI_INT,
7259 MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX, /* name */
7260 &MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX, /* address */
7261 1, /* count */
7262 MPI_T_VERBOSITY_USER_BASIC,
7263 MPI_T_SCOPE_LOCAL,
7264 defaultval,
7265 "CH4_OFI", /* category */
7266 "Specifies the maximum number of iovecs to allocate for RMA operations to/from noncontiguous buffers.");
7267 MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX = defaultval.d;
7268 rc = MPL_env2int("MPICH_CH4_OFI_RMA_IOVEC_MAX", &(MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX));
7269 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_RMA_IOVEC_MAX");
7270 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_RMA_IOVEC_MAX", &(MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX));
7271 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_RMA_IOVEC_MAX");
7272 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX", &(MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX));
7273 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_RMA_IOVEC_MAX");
7274
7275 defaultval.d = 16;
7276 MPIR_T_CVAR_REGISTER_STATIC(
7277 MPI_INT,
7278 MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK, /* name */
7279 &MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK, /* address */
7280 1, /* count */
7281 MPI_T_VERBOSITY_USER_BASIC,
7282 MPI_T_SCOPE_LOCAL,
7283 defaultval,
7284 "CH4_OFI", /* category */
7285 "Specifies the number of buffers for packing/unpacking messages in each block of the pool.");
7286 MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK = defaultval.d;
7287 rc = MPL_env2int("MPICH_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK));
7288 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK");
7289 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK));
7290 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK");
7291 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK", &(MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK));
7292 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_NUM_PACK_BUFFERS_PER_CHUNK");
7293
7294 defaultval.d = 256;
7295 MPIR_T_CVAR_REGISTER_STATIC(
7296 MPI_INT,
7297 MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS, /* name */
7298 &MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS, /* address */
7299 1, /* count */
7300 MPI_T_VERBOSITY_USER_BASIC,
7301 MPI_T_SCOPE_LOCAL,
7302 defaultval,
7303 "CH4_OFI", /* category */
7304 "Specifies the max number of buffers for packing/unpacking messages in the pool.");
7305 MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS = defaultval.d;
7306 rc = MPL_env2int("MPICH_CH4_OFI_MAX_NUM_PACK_BUFFERS", &(MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS));
7307 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_MAX_NUM_PACK_BUFFERS");
7308 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_MAX_NUM_PACK_BUFFERS", &(MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS));
7309 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_MAX_NUM_PACK_BUFFERS");
7310 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS", &(MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS));
7311 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_MAX_NUM_PACK_BUFFERS");
7312
7313 defaultval.d = -1;
7314 MPIR_T_CVAR_REGISTER_STATIC(
7315 MPI_INT,
7316 MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE, /* name */
7317 &MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE, /* address */
7318 1, /* count */
7319 MPI_T_VERBOSITY_USER_BASIC,
7320 MPI_T_SCOPE_LOCAL,
7321 defaultval,
7322 "CH4_OFI", /* category */
7323 "This cvar controls the message size at which OFI native path switches from eager to rendezvous mode. It does not affect the AM path eager limit. Having this gives a way to reliably test native non-path. If the number is positive, OFI will init the MPIDI_OFI_global.max_msg_size to the value of cvar. If the number is negative, OFI will init the MPIDI_OFI_globa.max_msg_size using whatever provider gives (which might be unlimited for socket provider).");
7324 MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE = defaultval.d;
7325 rc = MPL_env2int("MPICH_CH4_OFI_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE));
7326 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_OFI_EAGER_MAX_MSG_SIZE");
7327 rc = MPL_env2int("MPIR_PARAM_CH4_OFI_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE));
7328 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_OFI_EAGER_MAX_MSG_SIZE");
7329 rc = MPL_env2int("MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE", &(MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE));
7330 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_OFI_EAGER_MAX_MSG_SIZE");
7331
7332 defaultval.d = 0;
7333 MPIR_T_CVAR_REGISTER_STATIC(
7334 MPI_INT,
7335 MPIR_CVAR_CH4_UCX_MAX_VNIS, /* name */
7336 &MPIR_CVAR_CH4_UCX_MAX_VNIS, /* address */
7337 1, /* count */
7338 MPI_T_VERBOSITY_USER_BASIC,
7339 MPI_T_SCOPE_LOCAL,
7340 defaultval,
7341 "CH4_UCX", /* category */
7342 "If set to positive, this CVAR specifies the maximum number of CH4 VNIs that UCX netmod exposes. If set to 0 (the default) or bigger than MPIR_CVAR_CH4_NUM_VCIS, the number of exposed VNIs is set to MPIR_CVAR_CH4_NUM_VCIS.");
7343 MPIR_CVAR_CH4_UCX_MAX_VNIS = defaultval.d;
7344 rc = MPL_env2int("MPICH_CH4_UCX_MAX_VNIS", &(MPIR_CVAR_CH4_UCX_MAX_VNIS));
7345 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_UCX_MAX_VNIS");
7346 rc = MPL_env2int("MPIR_PARAM_CH4_UCX_MAX_VNIS", &(MPIR_CVAR_CH4_UCX_MAX_VNIS));
7347 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_UCX_MAX_VNIS");
7348 rc = MPL_env2int("MPIR_CVAR_CH4_UCX_MAX_VNIS", &(MPIR_CVAR_CH4_UCX_MAX_VNIS));
7349 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_UCX_MAX_VNIS");
7350
7351 defaultval.d = 1;
7352 MPIR_T_CVAR_REGISTER_STATIC(
7353 MPI_INT,
7354 MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE, /* name */
7355 &MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE, /* address */
7356 1, /* count */
7357 MPI_T_VERBOSITY_USER_BASIC,
7358 MPI_T_SCOPE_ALL_EQ,
7359 defaultval,
7360 "CH4", /* category */
7361 "By default, we will cache ipc handle. To manually disable ipc handle cache, user can set this variable to 0.");
7362 MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE = defaultval.d;
7363 rc = MPL_env2int("MPICH_CH4_IPC_GPU_HANDLE_CACHE", &(MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE));
7364 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_IPC_GPU_HANDLE_CACHE");
7365 rc = MPL_env2int("MPIR_PARAM_CH4_IPC_GPU_HANDLE_CACHE", &(MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE));
7366 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_IPC_GPU_HANDLE_CACHE");
7367 rc = MPL_env2int("MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE", &(MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE));
7368 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_IPC_GPU_HANDLE_CACHE");
7369
7370 defaultval.d = 32768;
7371 MPIR_T_CVAR_REGISTER_STATIC(
7372 MPI_INT,
7373 MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD, /* name */
7374 &MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD, /* address */
7375 1, /* count */
7376 MPI_T_VERBOSITY_USER_BASIC,
7377 MPI_T_SCOPE_ALL_EQ,
7378 defaultval,
7379 "CH4", /* category */
7380 "If a send message size is greater than or equal to MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD (in bytes), then enable GPU-based single copy protocol for intranode communication. The environment variable is valid only when then GPU IPC shmmod is enabled.");
7381 MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD = defaultval.d;
7382 rc = MPL_env2int("MPICH_CH4_IPC_GPU_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD));
7383 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_IPC_GPU_P2P_THRESHOLD");
7384 rc = MPL_env2int("MPIR_PARAM_CH4_IPC_GPU_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD));
7385 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_IPC_GPU_P2P_THRESHOLD");
7386 rc = MPL_env2int("MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD));
7387 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_IPC_GPU_P2P_THRESHOLD");
7388
7389 defaultval.d = 1;
7390 MPIR_T_CVAR_REGISTER_STATIC(
7391 MPI_INT,
7392 MPIR_CVAR_CH4_XPMEM_ENABLE, /* name */
7393 &MPIR_CVAR_CH4_XPMEM_ENABLE, /* address */
7394 1, /* count */
7395 MPI_T_VERBOSITY_USER_BASIC,
7396 MPI_T_SCOPE_ALL_EQ,
7397 defaultval,
7398 "CH4", /* category */
7399 "To manually disable XPMEM set to 0. The environment variable is valid only when the XPMEM submodule is enabled.");
7400 MPIR_CVAR_CH4_XPMEM_ENABLE = defaultval.d;
7401 rc = MPL_env2int("MPICH_CH4_XPMEM_ENABLE", &(MPIR_CVAR_CH4_XPMEM_ENABLE));
7402 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_XPMEM_ENABLE");
7403 rc = MPL_env2int("MPIR_PARAM_CH4_XPMEM_ENABLE", &(MPIR_CVAR_CH4_XPMEM_ENABLE));
7404 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_XPMEM_ENABLE");
7405 rc = MPL_env2int("MPIR_CVAR_CH4_XPMEM_ENABLE", &(MPIR_CVAR_CH4_XPMEM_ENABLE));
7406 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_XPMEM_ENABLE");
7407
7408 defaultval.d = 4096;
7409 MPIR_T_CVAR_REGISTER_STATIC(
7410 MPI_INT,
7411 MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD, /* name */
7412 &MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD, /* address */
7413 1, /* count */
7414 MPI_T_VERBOSITY_USER_BASIC,
7415 MPI_T_SCOPE_ALL_EQ,
7416 defaultval,
7417 "CH4", /* category */
7418 "If a send message size is greater than or equal to MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD (in bytes), then enable XPMEM-based single copy protocol for intranode communication. The environment variable is valid only when the XPMEM submodule is enabled.");
7419 MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD = defaultval.d;
7420 rc = MPL_env2int("MPICH_CH4_IPC_XPMEM_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD));
7421 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_IPC_XPMEM_P2P_THRESHOLD");
7422 rc = MPL_env2int("MPIR_PARAM_CH4_IPC_XPMEM_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD));
7423 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_IPC_XPMEM_P2P_THRESHOLD");
7424 rc = MPL_env2int("MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD", &(MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD));
7425 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_IPC_XPMEM_P2P_THRESHOLD");
7426
7427 defaultval.d = MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM_auto;
7428 MPIR_T_CVAR_REGISTER_STATIC(
7429 MPI_INT,
7430 MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM, /* name */
7431 &MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM, /* address */
7432 1, /* count */
7433 MPI_T_VERBOSITY_USER_BASIC,
7434 MPI_T_SCOPE_ALL_EQ,
7435 defaultval,
7436 "COLLECTIVE", /* category */
7437 "Variable to select algorithm for intra-node bcast\
7438 mpir - Fallback to MPIR collectives\
7439 release_gather - Force shm optimized algo using release, gather primitives\
7440 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE)");
7441 MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM = defaultval.d;
7442 tmp_str=NULL;
7443 rc = MPL_env2str("MPICH_BCAST_POSIX_INTRA_ALGORITHM", &tmp_str);
7444 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_POSIX_INTRA_ALGORITHM");
7445 rc = MPL_env2str("MPIR_PARAM_BCAST_POSIX_INTRA_ALGORITHM", &tmp_str);
7446 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_POSIX_INTRA_ALGORITHM");
7447 rc = MPL_env2str("MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM", &tmp_str);
7448 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM");
7449 if (tmp_str != NULL) {
7450 if (0 == strcmp(tmp_str, "mpir"))
7451 MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM_mpir;
7452 else if (0 == strcmp(tmp_str, "release_gather"))
7453 MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM_release_gather;
7454 else if (0 == strcmp(tmp_str, "auto"))
7455 MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM_auto;
7456 else {
7457 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BCAST_POSIX_INTRA_ALGORITHM", tmp_str);
7458 goto fn_fail;
7459 }
7460 }
7461
7462 defaultval.d = MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM_auto;
7463 MPIR_T_CVAR_REGISTER_STATIC(
7464 MPI_INT,
7465 MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM, /* name */
7466 &MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM, /* address */
7467 1, /* count */
7468 MPI_T_VERBOSITY_USER_BASIC,
7469 MPI_T_SCOPE_ALL_EQ,
7470 defaultval,
7471 "COLLECTIVE", /* category */
7472 "Variable to select algorithm for intra-node reduce\
7473 mpir - Fallback to MPIR collectives\
7474 release_gather - Force shm optimized algo using release, gather primitives\
7475 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE)");
7476 MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM = defaultval.d;
7477 tmp_str=NULL;
7478 rc = MPL_env2str("MPICH_REDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7479 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_POSIX_INTRA_ALGORITHM");
7480 rc = MPL_env2str("MPIR_PARAM_REDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7481 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_POSIX_INTRA_ALGORITHM");
7482 rc = MPL_env2str("MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7483 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM");
7484 if (tmp_str != NULL) {
7485 if (0 == strcmp(tmp_str, "mpir"))
7486 MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM_mpir;
7487 else if (0 == strcmp(tmp_str, "release_gather"))
7488 MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM_release_gather;
7489 else if (0 == strcmp(tmp_str, "auto"))
7490 MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM_auto;
7491 else {
7492 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_REDUCE_POSIX_INTRA_ALGORITHM", tmp_str);
7493 goto fn_fail;
7494 }
7495 }
7496
7497 defaultval.d = MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM_auto;
7498 MPIR_T_CVAR_REGISTER_STATIC(
7499 MPI_INT,
7500 MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM, /* name */
7501 &MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM, /* address */
7502 1, /* count */
7503 MPI_T_VERBOSITY_USER_BASIC,
7504 MPI_T_SCOPE_ALL_EQ,
7505 defaultval,
7506 "COLLECTIVE", /* category */
7507 "Variable to select algorithm for intra-node allreduce\
7508 mpir - Fallback to MPIR collectives\
7509 release_gather - Force shm optimized algo using release, gather primitives\
7510 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE)");
7511 MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM = defaultval.d;
7512 tmp_str=NULL;
7513 rc = MPL_env2str("MPICH_ALLREDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7514 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ALLREDUCE_POSIX_INTRA_ALGORITHM");
7515 rc = MPL_env2str("MPIR_PARAM_ALLREDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7516 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ALLREDUCE_POSIX_INTRA_ALGORITHM");
7517 rc = MPL_env2str("MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM", &tmp_str);
7518 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM");
7519 if (tmp_str != NULL) {
7520 if (0 == strcmp(tmp_str, "mpir"))
7521 MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM_mpir;
7522 else if (0 == strcmp(tmp_str, "release_gather"))
7523 MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM_release_gather;
7524 else if (0 == strcmp(tmp_str, "auto"))
7525 MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM = MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM_auto;
7526 else {
7527 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_ALLREDUCE_POSIX_INTRA_ALGORITHM", tmp_str);
7528 goto fn_fail;
7529 }
7530 }
7531
7532 defaultval.d = MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_auto;
7533 MPIR_T_CVAR_REGISTER_STATIC(
7534 MPI_INT,
7535 MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM, /* name */
7536 &MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM, /* address */
7537 1, /* count */
7538 MPI_T_VERBOSITY_USER_BASIC,
7539 MPI_T_SCOPE_ALL_EQ,
7540 defaultval,
7541 "COLLECTIVE", /* category */
7542 "Variable to select algorithm for intra-node barrier\
7543 mpir - Fallback to MPIR collectives\
7544 release_gather - Force shm optimized algo using release, gather primitives\
7545 auto - Internal algorithm selection (can be overridden with MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE)");
7546 MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM = defaultval.d;
7547 tmp_str=NULL;
7548 rc = MPL_env2str("MPICH_BARRIER_POSIX_INTRA_ALGORITHM", &tmp_str);
7549 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BARRIER_POSIX_INTRA_ALGORITHM");
7550 rc = MPL_env2str("MPIR_PARAM_BARRIER_POSIX_INTRA_ALGORITHM", &tmp_str);
7551 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BARRIER_POSIX_INTRA_ALGORITHM");
7552 rc = MPL_env2str("MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM", &tmp_str);
7553 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM");
7554 if (tmp_str != NULL) {
7555 if (0 == strcmp(tmp_str, "mpir"))
7556 MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_mpir;
7557 else if (0 == strcmp(tmp_str, "release_gather"))
7558 MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_release_gather;
7559 else if (0 == strcmp(tmp_str, "auto"))
7560 MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM = MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_auto;
7561 else {
7562 mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, __func__, __LINE__,MPI_ERR_OTHER, "**cvar_val", "**cvar_val %s %s", "MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM", tmp_str);
7563 goto fn_fail;
7564 }
7565 }
7566
7567 defaultval.d = 5;
7568 MPIR_T_CVAR_REGISTER_STATIC(
7569 MPI_INT,
7570 MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD, /* name */
7571 &MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD, /* address */
7572 1, /* count */
7573 MPI_T_VERBOSITY_USER_BASIC,
7574 MPI_T_SCOPE_ALL_EQ,
7575 defaultval,
7576 "COLLECTIVE", /* category */
7577 "Use posix optimized collectives (release_gather) only when the total number of Bcast, Reduce, Barrier, and Allreduce calls on the node level communicator is more than this threshold.");
7578 MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD = defaultval.d;
7579 rc = MPL_env2int("MPICH_POSIX_NUM_COLLS_THRESHOLD", &(MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD));
7580 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_POSIX_NUM_COLLS_THRESHOLD");
7581 rc = MPL_env2int("MPIR_PARAM_POSIX_NUM_COLLS_THRESHOLD", &(MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD));
7582 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_POSIX_NUM_COLLS_THRESHOLD");
7583 rc = MPL_env2int("MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD", &(MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD));
7584 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_POSIX_NUM_COLLS_THRESHOLD");
7585
7586 defaultval.str = (const char *) "";
7587 MPIR_T_CVAR_REGISTER_STATIC(
7588 MPI_CHAR,
7589 MPIR_CVAR_CH4_SHM_POSIX_EAGER, /* name */
7590 &MPIR_CVAR_CH4_SHM_POSIX_EAGER, /* address */
7591 MPIR_CVAR_MAX_STRLEN, /* count */
7592 MPI_T_VERBOSITY_USER_BASIC,
7593 MPI_T_SCOPE_ALL_EQ,
7594 defaultval,
7595 "CH4", /* category */
7596 "If non-empty, this cvar specifies which shm posix eager module to use");
7597 tmp_str = defaultval.str;
7598 rc = MPL_env2str("MPICH_CH4_SHM_POSIX_EAGER", &tmp_str);
7599 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_SHM_POSIX_EAGER");
7600 rc = MPL_env2str("MPIR_PARAM_CH4_SHM_POSIX_EAGER", &tmp_str);
7601 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_SHM_POSIX_EAGER");
7602 rc = MPL_env2str("MPIR_CVAR_CH4_SHM_POSIX_EAGER", &tmp_str);
7603 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_SHM_POSIX_EAGER");
7604 if (tmp_str != NULL) {
7605 MPIR_CVAR_CH4_SHM_POSIX_EAGER = MPL_strdup(tmp_str);
7606 MPIR_CVAR_assert(MPIR_CVAR_CH4_SHM_POSIX_EAGER);
7607 if (MPIR_CVAR_CH4_SHM_POSIX_EAGER == NULL) {
7608 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_SHM_POSIX_EAGER");
7609 goto fn_fail;
7610 }
7611 }
7612 else {
7613 MPIR_CVAR_CH4_SHM_POSIX_EAGER = NULL;
7614 }
7615
7616 defaultval.str = (const char *) "";
7617 MPIR_T_CVAR_REGISTER_STATIC(
7618 MPI_CHAR,
7619 MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE, /* name */
7620 &MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE, /* address */
7621 MPIR_CVAR_MAX_STRLEN, /* count */
7622 MPI_T_VERBOSITY_USER_BASIC,
7623 MPI_T_SCOPE_ALL_EQ,
7624 defaultval,
7625 "COLLECTIVE", /* category */
7626 "Defines the location of tuning file.");
7627 tmp_str = defaultval.str;
7628 rc = MPL_env2str("MPICH_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
7629 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE");
7630 rc = MPL_env2str("MPIR_PARAM_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
7631 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE");
7632 rc = MPL_env2str("MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
7633 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE");
7634 if (tmp_str != NULL) {
7635 MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE = MPL_strdup(tmp_str);
7636 MPIR_CVAR_assert(MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE);
7637 if (MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE == NULL) {
7638 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE");
7639 goto fn_fail;
7640 }
7641 }
7642 else {
7643 MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE = NULL;
7644 }
7645
7646 defaultval.d = 64;
7647 MPIR_T_CVAR_REGISTER_STATIC(
7648 MPI_INT,
7649 MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS, /* name */
7650 &MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS, /* address */
7651 1, /* count */
7652 MPI_T_VERBOSITY_USER_BASIC,
7653 MPI_T_SCOPE_ALL_EQ,
7654 defaultval,
7655 "CH4", /* category */
7656 "The number of cells used for the depth of the iqueue.");
7657 MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS = defaultval.d;
7658 rc = MPL_env2int("MPICH_CH4_SHM_POSIX_IQUEUE_NUM_CELLS", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS));
7659 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_SHM_POSIX_IQUEUE_NUM_CELLS");
7660 rc = MPL_env2int("MPIR_PARAM_CH4_SHM_POSIX_IQUEUE_NUM_CELLS", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS));
7661 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_SHM_POSIX_IQUEUE_NUM_CELLS");
7662 rc = MPL_env2int("MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS));
7663 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_NUM_CELLS");
7664
7665 defaultval.d = 69632;
7666 MPIR_T_CVAR_REGISTER_STATIC(
7667 MPI_INT,
7668 MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE, /* name */
7669 &MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE, /* address */
7670 1, /* count */
7671 MPI_T_VERBOSITY_USER_BASIC,
7672 MPI_T_SCOPE_ALL_EQ,
7673 defaultval,
7674 "CH4", /* category */
7675 "Size of each cell. 4KB * 17 is default to avoid a cache aliasing issue.");
7676 MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE = defaultval.d;
7677 rc = MPL_env2int("MPICH_CH4_SHM_POSIX_IQUEUE_CELL_SIZE", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE));
7678 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_SHM_POSIX_IQUEUE_CELL_SIZE");
7679 rc = MPL_env2int("MPIR_PARAM_CH4_SHM_POSIX_IQUEUE_CELL_SIZE", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE));
7680 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_SHM_POSIX_IQUEUE_CELL_SIZE");
7681 rc = MPL_env2int("MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE", &(MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE));
7682 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_SHM_POSIX_IQUEUE_CELL_SIZE");
7683
7684 defaultval.d = 65536;
7685 MPIR_T_CVAR_REGISTER_STATIC(
7686 MPI_INT,
7687 MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE, /* name */
7688 &MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE, /* address */
7689 1, /* count */
7690 MPI_T_VERBOSITY_USER_BASIC,
7691 MPI_T_SCOPE_ALL_EQ,
7692 defaultval,
7693 "COLLECTIVE", /* category */
7694 "Maximum shared memory created per node for optimized intra-node collectives (in KB)");
7695 MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE = defaultval.d;
7696 rc = MPL_env2int("MPICH_COLL_SHM_LIMIT_PER_NODE", &(MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE));
7697 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COLL_SHM_LIMIT_PER_NODE");
7698 rc = MPL_env2int("MPIR_PARAM_COLL_SHM_LIMIT_PER_NODE", &(MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE));
7699 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COLL_SHM_LIMIT_PER_NODE");
7700 rc = MPL_env2int("MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE", &(MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE));
7701 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COLL_SHM_LIMIT_PER_NODE");
7702
7703 defaultval.d = 32768;
7704 MPIR_T_CVAR_REGISTER_STATIC(
7705 MPI_INT,
7706 MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE, /* name */
7707 &MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE, /* address */
7708 1, /* count */
7709 MPI_T_VERBOSITY_USER_BASIC,
7710 MPI_T_SCOPE_ALL_EQ,
7711 defaultval,
7712 "COLLECTIVE", /* category */
7713 "Total size of the bcast buffer (in bytes)");
7714 MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE = defaultval.d;
7715 rc = MPL_env2int("MPICH_BCAST_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE));
7716 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTRANODE_BUFFER_TOTAL_SIZE");
7717 rc = MPL_env2int("MPIR_PARAM_BCAST_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE));
7718 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTRANODE_BUFFER_TOTAL_SIZE");
7719 rc = MPL_env2int("MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE));
7720 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTRANODE_BUFFER_TOTAL_SIZE");
7721
7722 defaultval.d = 4;
7723 MPIR_T_CVAR_REGISTER_STATIC(
7724 MPI_INT,
7725 MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS, /* name */
7726 &MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS, /* address */
7727 1, /* count */
7728 MPI_T_VERBOSITY_USER_BASIC,
7729 MPI_T_SCOPE_ALL_EQ,
7730 defaultval,
7731 "COLLECTIVE", /* category */
7732 "Number of cells the bcast buffer is divided into");
7733 MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS = defaultval.d;
7734 rc = MPL_env2int("MPICH_BCAST_INTRANODE_NUM_CELLS", &(MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS));
7735 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTRANODE_NUM_CELLS");
7736 rc = MPL_env2int("MPIR_PARAM_BCAST_INTRANODE_NUM_CELLS", &(MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS));
7737 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTRANODE_NUM_CELLS");
7738 rc = MPL_env2int("MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS", &(MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS));
7739 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTRANODE_NUM_CELLS");
7740
7741 defaultval.d = 32768;
7742 MPIR_T_CVAR_REGISTER_STATIC(
7743 MPI_INT,
7744 MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE, /* name */
7745 &MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE, /* address */
7746 1, /* count */
7747 MPI_T_VERBOSITY_USER_BASIC,
7748 MPI_T_SCOPE_ALL_EQ,
7749 defaultval,
7750 "COLLECTIVE", /* category */
7751 "Total size of the reduce buffer per rank (in bytes)");
7752 MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE = defaultval.d;
7753 rc = MPL_env2int("MPICH_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE));
7754 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE");
7755 rc = MPL_env2int("MPIR_PARAM_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE));
7756 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE");
7757 rc = MPL_env2int("MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE", &(MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE));
7758 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTRANODE_BUFFER_TOTAL_SIZE");
7759
7760 defaultval.d = 4;
7761 MPIR_T_CVAR_REGISTER_STATIC(
7762 MPI_INT,
7763 MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS, /* name */
7764 &MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS, /* address */
7765 1, /* count */
7766 MPI_T_VERBOSITY_USER_BASIC,
7767 MPI_T_SCOPE_ALL_EQ,
7768 defaultval,
7769 "COLLECTIVE", /* category */
7770 "Number of cells the reduce buffer is divided into, for each rank");
7771 MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS = defaultval.d;
7772 rc = MPL_env2int("MPICH_REDUCE_INTRANODE_NUM_CELLS", &(MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS));
7773 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTRANODE_NUM_CELLS");
7774 rc = MPL_env2int("MPIR_PARAM_REDUCE_INTRANODE_NUM_CELLS", &(MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS));
7775 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTRANODE_NUM_CELLS");
7776 rc = MPL_env2int("MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS", &(MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS));
7777 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTRANODE_NUM_CELLS");
7778
7779 defaultval.d = 64;
7780 MPIR_T_CVAR_REGISTER_STATIC(
7781 MPI_INT,
7782 MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL, /* name */
7783 &MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL, /* address */
7784 1, /* count */
7785 MPI_T_VERBOSITY_USER_BASIC,
7786 MPI_T_SCOPE_ALL_EQ,
7787 defaultval,
7788 "COLLECTIVE", /* category */
7789 "K value for the kary/knomial tree for intra-node bcast");
7790 MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL = defaultval.d;
7791 rc = MPL_env2int("MPICH_BCAST_INTRANODE_TREE_KVAL", &(MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL));
7792 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTRANODE_TREE_KVAL");
7793 rc = MPL_env2int("MPIR_PARAM_BCAST_INTRANODE_TREE_KVAL", &(MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL));
7794 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTRANODE_TREE_KVAL");
7795 rc = MPL_env2int("MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL", &(MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL));
7796 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTRANODE_TREE_KVAL");
7797
7798 defaultval.str = (const char *) "kary";
7799 MPIR_T_CVAR_REGISTER_STATIC(
7800 MPI_CHAR,
7801 MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE, /* name */
7802 &MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE, /* address */
7803 MPIR_CVAR_MAX_STRLEN, /* count */
7804 MPI_T_VERBOSITY_USER_BASIC,
7805 MPI_T_SCOPE_ALL_EQ,
7806 defaultval,
7807 "COLLECTIVE", /* category */
7808 "Tree type for intra-node bcast tree kary - kary tree type knomial_1 - knomial_1 tree type (ranks are added in order from the left side) knomial_2 - knomial_2 tree type (ranks are added in order from the right side)");
7809 tmp_str = defaultval.str;
7810 rc = MPL_env2str("MPICH_BCAST_INTRANODE_TREE_TYPE", &tmp_str);
7811 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_BCAST_INTRANODE_TREE_TYPE");
7812 rc = MPL_env2str("MPIR_PARAM_BCAST_INTRANODE_TREE_TYPE", &tmp_str);
7813 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_BCAST_INTRANODE_TREE_TYPE");
7814 rc = MPL_env2str("MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE", &tmp_str);
7815 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE");
7816 if (tmp_str != NULL) {
7817 MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE = MPL_strdup(tmp_str);
7818 MPIR_CVAR_assert(MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE);
7819 if (MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE == NULL) {
7820 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE");
7821 goto fn_fail;
7822 }
7823 }
7824 else {
7825 MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE = NULL;
7826 }
7827
7828 defaultval.d = 4;
7829 MPIR_T_CVAR_REGISTER_STATIC(
7830 MPI_INT,
7831 MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL, /* name */
7832 &MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL, /* address */
7833 1, /* count */
7834 MPI_T_VERBOSITY_USER_BASIC,
7835 MPI_T_SCOPE_ALL_EQ,
7836 defaultval,
7837 "COLLECTIVE", /* category */
7838 "K value for the kary/knomial tree for intra-node reduce");
7839 MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL = defaultval.d;
7840 rc = MPL_env2int("MPICH_REDUCE_INTRANODE_TREE_KVAL", &(MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL));
7841 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTRANODE_TREE_KVAL");
7842 rc = MPL_env2int("MPIR_PARAM_REDUCE_INTRANODE_TREE_KVAL", &(MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL));
7843 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTRANODE_TREE_KVAL");
7844 rc = MPL_env2int("MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL", &(MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL));
7845 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTRANODE_TREE_KVAL");
7846
7847 defaultval.str = (const char *) "kary";
7848 MPIR_T_CVAR_REGISTER_STATIC(
7849 MPI_CHAR,
7850 MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE, /* name */
7851 &MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE, /* address */
7852 MPIR_CVAR_MAX_STRLEN, /* count */
7853 MPI_T_VERBOSITY_USER_BASIC,
7854 MPI_T_SCOPE_ALL_EQ,
7855 defaultval,
7856 "COLLECTIVE", /* category */
7857 "Tree type for intra-node reduce tree kary - kary tree type knomial_1 - knomial_1 tree type (ranks are added in order from the left side) knomial_2 - knomial_2 tree type (ranks are added in order from the right side)");
7858 tmp_str = defaultval.str;
7859 rc = MPL_env2str("MPICH_REDUCE_INTRANODE_TREE_TYPE", &tmp_str);
7860 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_REDUCE_INTRANODE_TREE_TYPE");
7861 rc = MPL_env2str("MPIR_PARAM_REDUCE_INTRANODE_TREE_TYPE", &tmp_str);
7862 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_REDUCE_INTRANODE_TREE_TYPE");
7863 rc = MPL_env2str("MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE", &tmp_str);
7864 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE");
7865 if (tmp_str != NULL) {
7866 MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE = MPL_strdup(tmp_str);
7867 MPIR_CVAR_assert(MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE);
7868 if (MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE == NULL) {
7869 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE");
7870 goto fn_fail;
7871 }
7872 }
7873 else {
7874 MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE = NULL;
7875 }
7876
7877 defaultval.d = 1;
7878 MPIR_T_CVAR_REGISTER_STATIC(
7879 MPI_INT,
7880 MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES, /* name */
7881 &MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES, /* address */
7882 1, /* count */
7883 MPI_T_VERBOSITY_USER_BASIC,
7884 MPI_T_SCOPE_ALL_EQ,
7885 defaultval,
7886 "COLLECTIVE", /* category */
7887 "Enable collective specific intra-node trees which leverage the memory hierarchy of a machine. Depends on hwloc to extract the binding information of each rank. Pick a leader rank per package (socket), then create a per_package tree for ranks on a same package, package leaders tree for package leaders. For Bcast - Assemble the per_package and package_leaders tree in such a way that leaders interact among themselves first before interacting with package local ranks. Both the package_leaders and per_package trees are left skewed (children are added from left to right, first child to be added is the first one to be processed in traversal) For Reduce - Assemble the per_package and package_leaders tree in such a way that a leader rank interacts with its package local ranks first, then with the other package leaders. Both the per_package and package_leaders tree is right skewed (children are added in reverse order, first child to be added is the last one to be processed in traversal) The tree radix and tree type of package_leaders and per_package tree is MPIR_CVAR_BCAST{REDUCE}_INTRANODE_TREE_KVAL and MPIR_CVAR_BCAST{REDUCE}_INTRANODE_TREE_TYPE respectively for bast and reduce. But of as now topology aware trees are only kary. knomial is to be implemented.");
7888 MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES = defaultval.d;
7889 rc = MPL_env2int("MPICH_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES", &(MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES));
7890 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES");
7891 rc = MPL_env2int("MPIR_PARAM_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES", &(MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES));
7892 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES");
7893 rc = MPL_env2int("MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES", &(MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES));
7894 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ENABLE_INTRANODE_TOPOLOGY_AWARE_TREES");
7895
7896 defaultval.str = (const char *) "";
7897 MPIR_T_CVAR_REGISTER_STATIC(
7898 MPI_CHAR,
7899 MPIR_CVAR_CH4_NETMOD, /* name */
7900 &MPIR_CVAR_CH4_NETMOD, /* address */
7901 MPIR_CVAR_MAX_STRLEN, /* count */
7902 MPI_T_VERBOSITY_USER_BASIC,
7903 MPI_T_SCOPE_ALL_EQ,
7904 defaultval,
7905 "CH4", /* category */
7906 "If non-empty, this cvar specifies which network module to use");
7907 tmp_str = defaultval.str;
7908 rc = MPL_env2str("MPICH_CH4_NETMOD", &tmp_str);
7909 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_NETMOD");
7910 rc = MPL_env2str("MPIR_PARAM_CH4_NETMOD", &tmp_str);
7911 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_NETMOD");
7912 rc = MPL_env2str("MPIR_CVAR_CH4_NETMOD", &tmp_str);
7913 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_NETMOD");
7914 if (tmp_str != NULL) {
7915 MPIR_CVAR_CH4_NETMOD = MPL_strdup(tmp_str);
7916 MPIR_CVAR_assert(MPIR_CVAR_CH4_NETMOD);
7917 if (MPIR_CVAR_CH4_NETMOD == NULL) {
7918 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_NETMOD");
7919 goto fn_fail;
7920 }
7921 }
7922 else {
7923 MPIR_CVAR_CH4_NETMOD = NULL;
7924 }
7925
7926 defaultval.str = (const char *) "";
7927 MPIR_T_CVAR_REGISTER_STATIC(
7928 MPI_CHAR,
7929 MPIR_CVAR_CH4_SHM, /* name */
7930 &MPIR_CVAR_CH4_SHM, /* address */
7931 MPIR_CVAR_MAX_STRLEN, /* count */
7932 MPI_T_VERBOSITY_USER_BASIC,
7933 MPI_T_SCOPE_ALL_EQ,
7934 defaultval,
7935 "CH4", /* category */
7936 "If non-empty, this cvar specifies which shm module to use");
7937 tmp_str = defaultval.str;
7938 rc = MPL_env2str("MPICH_CH4_SHM", &tmp_str);
7939 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_SHM");
7940 rc = MPL_env2str("MPIR_PARAM_CH4_SHM", &tmp_str);
7941 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_SHM");
7942 rc = MPL_env2str("MPIR_CVAR_CH4_SHM", &tmp_str);
7943 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_SHM");
7944 if (tmp_str != NULL) {
7945 MPIR_CVAR_CH4_SHM = MPL_strdup(tmp_str);
7946 MPIR_CVAR_assert(MPIR_CVAR_CH4_SHM);
7947 if (MPIR_CVAR_CH4_SHM == NULL) {
7948 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_SHM");
7949 goto fn_fail;
7950 }
7951 }
7952 else {
7953 MPIR_CVAR_CH4_SHM = NULL;
7954 }
7955
7956 defaultval.d = 0;
7957 MPIR_T_CVAR_REGISTER_STATIC(
7958 MPI_INT,
7959 MPIR_CVAR_CH4_ROOTS_ONLY_PMI, /* name */
7960 &MPIR_CVAR_CH4_ROOTS_ONLY_PMI, /* address */
7961 1, /* count */
7962 MPI_T_VERBOSITY_USER_BASIC,
7963 MPI_T_SCOPE_LOCAL,
7964 defaultval,
7965 "CH4", /* category */
7966 "Enables an optimized business card exchange over PMI for node root processes only.");
7967 MPIR_CVAR_CH4_ROOTS_ONLY_PMI = defaultval.d;
7968 rc = MPL_env2bool("MPICH_CH4_ROOTS_ONLY_PMI", &(MPIR_CVAR_CH4_ROOTS_ONLY_PMI));
7969 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_ROOTS_ONLY_PMI");
7970 rc = MPL_env2bool("MPIR_PARAM_CH4_ROOTS_ONLY_PMI", &(MPIR_CVAR_CH4_ROOTS_ONLY_PMI));
7971 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_ROOTS_ONLY_PMI");
7972 rc = MPL_env2bool("MPIR_CVAR_CH4_ROOTS_ONLY_PMI", &(MPIR_CVAR_CH4_ROOTS_ONLY_PMI));
7973 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_ROOTS_ONLY_PMI");
7974
7975 defaultval.d = 0;
7976 MPIR_T_CVAR_REGISTER_STATIC(
7977 MPI_INT,
7978 MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG, /* name */
7979 &MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG, /* address */
7980 1, /* count */
7981 MPI_T_VERBOSITY_USER_BASIC,
7982 MPI_T_SCOPE_ALL_EQ,
7983 defaultval,
7984 "CH4", /* category */
7985 "If enabled, CH4-level runtime configurations are printed out");
7986 MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG = defaultval.d;
7987 rc = MPL_env2bool("MPICH_CH4_RUNTIME_CONF_DEBUG", &(MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG));
7988 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_RUNTIME_CONF_DEBUG");
7989 rc = MPL_env2bool("MPIR_PARAM_CH4_RUNTIME_CONF_DEBUG", &(MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG));
7990 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_RUNTIME_CONF_DEBUG");
7991 rc = MPL_env2bool("MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG", &(MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG));
7992 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_RUNTIME_CONF_DEBUG");
7993
7994 defaultval.str = (const char *) "";
7995 MPIR_T_CVAR_REGISTER_STATIC(
7996 MPI_CHAR,
7997 MPIR_CVAR_CH4_MT_MODEL, /* name */
7998 &MPIR_CVAR_CH4_MT_MODEL, /* address */
7999 MPIR_CVAR_MAX_STRLEN, /* count */
8000 MPI_T_VERBOSITY_USER_BASIC,
8001 MPI_T_SCOPE_ALL_EQ,
8002 defaultval,
8003 "CH4", /* category */
8004 "Specifies the CH4 multi-threading model. Possible values are: direct (default) handoff");
8005 tmp_str = defaultval.str;
8006 rc = MPL_env2str("MPICH_CH4_MT_MODEL", &tmp_str);
8007 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_MT_MODEL");
8008 rc = MPL_env2str("MPIR_PARAM_CH4_MT_MODEL", &tmp_str);
8009 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_MT_MODEL");
8010 rc = MPL_env2str("MPIR_CVAR_CH4_MT_MODEL", &tmp_str);
8011 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_MT_MODEL");
8012 if (tmp_str != NULL) {
8013 MPIR_CVAR_CH4_MT_MODEL = MPL_strdup(tmp_str);
8014 MPIR_CVAR_assert(MPIR_CVAR_CH4_MT_MODEL);
8015 if (MPIR_CVAR_CH4_MT_MODEL == NULL) {
8016 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_MT_MODEL");
8017 goto fn_fail;
8018 }
8019 }
8020 else {
8021 MPIR_CVAR_CH4_MT_MODEL = NULL;
8022 }
8023
8024 defaultval.d = 1;
8025 MPIR_T_CVAR_REGISTER_STATIC(
8026 MPI_INT,
8027 MPIR_CVAR_CH4_NUM_VCIS, /* name */
8028 &MPIR_CVAR_CH4_NUM_VCIS, /* address */
8029 1, /* count */
8030 MPI_T_VERBOSITY_USER_BASIC,
8031 MPI_T_SCOPE_LOCAL,
8032 defaultval,
8033 "CH4", /* category */
8034 "Sets the number of VCIs that user needs (should be a subset of MPIDI_CH4_MAX_VCIS).");
8035 MPIR_CVAR_CH4_NUM_VCIS = defaultval.d;
8036 rc = MPL_env2int("MPICH_CH4_NUM_VCIS", &(MPIR_CVAR_CH4_NUM_VCIS));
8037 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_NUM_VCIS");
8038 rc = MPL_env2int("MPIR_PARAM_CH4_NUM_VCIS", &(MPIR_CVAR_CH4_NUM_VCIS));
8039 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_NUM_VCIS");
8040 rc = MPL_env2int("MPIR_CVAR_CH4_NUM_VCIS", &(MPIR_CVAR_CH4_NUM_VCIS));
8041 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_NUM_VCIS");
8042
8043 defaultval.str = (const char *) "";
8044 MPIR_T_CVAR_REGISTER_STATIC(
8045 MPI_CHAR,
8046 MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE, /* name */
8047 &MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE, /* address */
8048 MPIR_CVAR_MAX_STRLEN, /* count */
8049 MPI_T_VERBOSITY_USER_BASIC,
8050 MPI_T_SCOPE_ALL_EQ,
8051 defaultval,
8052 "COLLECTIVE", /* category */
8053 "Defines the location of tuning file.");
8054 tmp_str = defaultval.str;
8055 rc = MPL_env2str("MPICH_CH4_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
8056 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_COLL_SELECTION_TUNING_JSON_FILE");
8057 rc = MPL_env2str("MPIR_PARAM_CH4_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
8058 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_COLL_SELECTION_TUNING_JSON_FILE");
8059 rc = MPL_env2str("MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE", &tmp_str);
8060 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE");
8061 if (tmp_str != NULL) {
8062 MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE = MPL_strdup(tmp_str);
8063 MPIR_CVAR_assert(MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE);
8064 if (MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE == NULL) {
8065 MPIR_CHKMEM_SETERR(mpi_errno, strlen(tmp_str), "dup of string for MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE");
8066 goto fn_fail;
8067 }
8068 }
8069 else {
8070 MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE = NULL;
8071 }
8072
8073 defaultval.d = 16384;
8074 MPIR_T_CVAR_REGISTER_STATIC(
8075 MPI_INT,
8076 MPIR_CVAR_CH4_IOV_DENSITY_MIN, /* name */
8077 &MPIR_CVAR_CH4_IOV_DENSITY_MIN, /* address */
8078 1, /* count */
8079 MPI_T_VERBOSITY_USER_BASIC,
8080 MPI_T_SCOPE_LOCAL,
8081 defaultval,
8082 "CH4", /* category */
8083 "Defines the threshold of high-density datatype. The density is calculated by (datatype_size / datatype_num_contig_blocks).");
8084 MPIR_CVAR_CH4_IOV_DENSITY_MIN = defaultval.d;
8085 rc = MPL_env2int("MPICH_CH4_IOV_DENSITY_MIN", &(MPIR_CVAR_CH4_IOV_DENSITY_MIN));
8086 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_IOV_DENSITY_MIN");
8087 rc = MPL_env2int("MPIR_PARAM_CH4_IOV_DENSITY_MIN", &(MPIR_CVAR_CH4_IOV_DENSITY_MIN));
8088 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_IOV_DENSITY_MIN");
8089 rc = MPL_env2int("MPIR_CVAR_CH4_IOV_DENSITY_MIN", &(MPIR_CVAR_CH4_IOV_DENSITY_MIN));
8090 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_IOV_DENSITY_MIN");
8091
8092 defaultval.d = 180;
8093 MPIR_T_CVAR_REGISTER_STATIC(
8094 MPI_INT,
8095 MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT, /* name */
8096 &MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT, /* address */
8097 1, /* count */
8098 MPI_T_VERBOSITY_USER_BASIC,
8099 MPI_T_SCOPE_GROUP_EQ,
8100 defaultval,
8101 "CH4", /* category */
8102 "The default time out period in seconds for a connection attempt to the server communicator where the named port exists but no pending accept. User can change the value for a specified connection through its info argument.");
8103 MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT = defaultval.d;
8104 rc = MPL_env2int("MPICH_CH4_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT));
8105 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_COMM_CONNECT_TIMEOUT");
8106 rc = MPL_env2int("MPIR_PARAM_CH4_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT));
8107 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_COMM_CONNECT_TIMEOUT");
8108 rc = MPL_env2int("MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT", &(MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT));
8109 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_COMM_CONNECT_TIMEOUT");
8110
8111 defaultval.d = 0;
8112 MPIR_T_CVAR_REGISTER_STATIC(
8113 MPI_INT,
8114 MPIR_CVAR_CH4_RMA_MEM_EFFICIENT, /* name */
8115 &MPIR_CVAR_CH4_RMA_MEM_EFFICIENT, /* address */
8116 1, /* count */
8117 MPI_T_VERBOSITY_USER_BASIC,
8118 MPI_T_SCOPE_GROUP_EQ,
8119 defaultval,
8120 "CH4", /* category */
8121 "If true, memory-saving mode is on, per-target object is released at the epoch end call. If false, performance-efficient mode is on, all allocated target objects are cached and freed at win_finalize.");
8122 MPIR_CVAR_CH4_RMA_MEM_EFFICIENT = defaultval.d;
8123 rc = MPL_env2bool("MPICH_CH4_RMA_MEM_EFFICIENT", &(MPIR_CVAR_CH4_RMA_MEM_EFFICIENT));
8124 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_RMA_MEM_EFFICIENT");
8125 rc = MPL_env2bool("MPIR_PARAM_CH4_RMA_MEM_EFFICIENT", &(MPIR_CVAR_CH4_RMA_MEM_EFFICIENT));
8126 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_RMA_MEM_EFFICIENT");
8127 rc = MPL_env2bool("MPIR_CVAR_CH4_RMA_MEM_EFFICIENT", &(MPIR_CVAR_CH4_RMA_MEM_EFFICIENT));
8128 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_RMA_MEM_EFFICIENT");
8129
8130 defaultval.d = 0;
8131 MPIR_T_CVAR_REGISTER_STATIC(
8132 MPI_INT,
8133 MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS, /* name */
8134 &MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS, /* address */
8135 1, /* count */
8136 MPI_T_VERBOSITY_USER_BASIC,
8137 MPI_T_SCOPE_LOCAL,
8138 defaultval,
8139 "CH4", /* category */
8140 "If true, allows RMA synchronization calls to dynamically reduce the frequency of internal progress polling for incoming RMA active messages received on the target process. The RMA synchronization call initially polls progress with a low frequency (defined by MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL) to reduce synchronization overhead. Once any RMA active message has been received, it will always poll progress once at every synchronization call to ensure prompt target-side progress. Effective only for passive target synchronization MPI_Win_flush{_all} and MPI_Win_flush_local{_all}.");
8141 MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS = defaultval.d;
8142 rc = MPL_env2bool("MPICH_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS", &(MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS));
8143 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS");
8144 rc = MPL_env2bool("MPIR_PARAM_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS", &(MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS));
8145 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS");
8146 rc = MPL_env2bool("MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS", &(MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS));
8147 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS");
8148
8149 defaultval.d = 1;
8150 MPIR_T_CVAR_REGISTER_STATIC(
8151 MPI_INT,
8152 MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL, /* name */
8153 &MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL, /* address */
8154 1, /* count */
8155 MPI_T_VERBOSITY_USER_BASIC,
8156 MPI_T_SCOPE_LOCAL,
8157 defaultval,
8158 "CH4", /* category */
8159 "Specifies a static interval of progress polling for incoming RMA active messages received on the target process. Effective only for passive-target synchronization MPI_Win_flush{_all} and MPI_Win_flush_local{_all}. Interval indicates the number of performed flush calls before polling. It is counted globally across all windows. Invalid when MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS is true.");
8160 MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL = defaultval.d;
8161 rc = MPL_env2int("MPICH_CH4_RMA_AM_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL));
8162 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_RMA_AM_PROGRESS_INTERVAL");
8163 rc = MPL_env2int("MPIR_PARAM_CH4_RMA_AM_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL));
8164 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_RMA_AM_PROGRESS_INTERVAL");
8165 rc = MPL_env2int("MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL));
8166 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_RMA_AM_PROGRESS_INTERVAL");
8167
8168 defaultval.d = 100;
8169 MPIR_T_CVAR_REGISTER_STATIC(
8170 MPI_INT,
8171 MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL, /* name */
8172 &MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL, /* address */
8173 1, /* count */
8174 MPI_T_VERBOSITY_USER_BASIC,
8175 MPI_T_SCOPE_LOCAL,
8176 defaultval,
8177 "CH4", /* category */
8178 "Specifies the interval of progress polling with low frequency for incoming RMA active message received on the target process. Effective only for passive-target synchronization MPI_Win_flush{_all} and MPI_Win_flush_local{_all}. Interval indicates the number of performed flush calls before polling. It is counted globally across all windows. Used when MPIR_CVAR_CH4_RMA_ENABLE_DYNAMIC_AM_PROGRESS is true.");
8179 MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL = defaultval.d;
8180 rc = MPL_env2int("MPICH_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL));
8181 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL");
8182 rc = MPL_env2int("MPIR_PARAM_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL));
8183 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL");
8184 rc = MPL_env2int("MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL", &(MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL));
8185 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_CH4_RMA_AM_PROGRESS_LOW_FREQ_INTERVAL");
8186
8187 defaultval.d = 0;
8188 MPIR_T_CVAR_REGISTER_STATIC(
8189 MPI_INT,
8190 MPIR_CVAR_ENABLE_HCOLL, /* name */
8191 &MPIR_CVAR_ENABLE_HCOLL, /* address */
8192 1, /* count */
8193 MPI_T_VERBOSITY_USER_BASIC,
8194 MPI_T_SCOPE_LOCAL,
8195 defaultval,
8196 "COLLECTIVE", /* category */
8197 "Enable hcoll collective support.");
8198 MPIR_CVAR_ENABLE_HCOLL = defaultval.d;
8199 rc = MPL_env2bool("MPICH_ENABLE_HCOLL", &(MPIR_CVAR_ENABLE_HCOLL));
8200 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_ENABLE_HCOLL");
8201 rc = MPL_env2bool("MPIR_PARAM_ENABLE_HCOLL", &(MPIR_CVAR_ENABLE_HCOLL));
8202 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_ENABLE_HCOLL");
8203 rc = MPL_env2bool("MPIR_CVAR_ENABLE_HCOLL", &(MPIR_CVAR_ENABLE_HCOLL));
8204 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_ENABLE_HCOLL");
8205
8206 defaultval.d = 0;
8207 MPIR_T_CVAR_REGISTER_STATIC(
8208 MPI_INT,
8209 MPIR_CVAR_COLL_SCHED_DUMP, /* name */
8210 &MPIR_CVAR_COLL_SCHED_DUMP, /* address */
8211 1, /* count */
8212 MPI_T_VERBOSITY_USER_BASIC,
8213 MPI_T_SCOPE_ALL_EQ,
8214 defaultval,
8215 "COLLECTIVE", /* category */
8216 "Print schedule data for nonblocking collective operations.");
8217 MPIR_CVAR_COLL_SCHED_DUMP = defaultval.d;
8218 rc = MPL_env2bool("MPICH_COLL_SCHED_DUMP", &(MPIR_CVAR_COLL_SCHED_DUMP));
8219 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_COLL_SCHED_DUMP");
8220 rc = MPL_env2bool("MPIR_PARAM_COLL_SCHED_DUMP", &(MPIR_CVAR_COLL_SCHED_DUMP));
8221 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_COLL_SCHED_DUMP");
8222 rc = MPL_env2bool("MPIR_CVAR_COLL_SCHED_DUMP", &(MPIR_CVAR_COLL_SCHED_DUMP));
8223 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_COLL_SCHED_DUMP");
8224
8225 defaultval.d = 100;
8226 MPIR_T_CVAR_REGISTER_STATIC(
8227 MPI_INT,
8228 MPIR_CVAR_SHM_RANDOM_ADDR_RETRY, /* name */
8229 &MPIR_CVAR_SHM_RANDOM_ADDR_RETRY, /* address */
8230 1, /* count */
8231 MPI_T_VERBOSITY_USER_BASIC,
8232 MPI_T_SCOPE_GROUP,
8233 defaultval,
8234 "MEMORY", /* category */
8235 "The default number of retries for generating a random address. A retrying involves only local operations.");
8236 MPIR_CVAR_SHM_RANDOM_ADDR_RETRY = defaultval.d;
8237 rc = MPL_env2int("MPICH_SHM_RANDOM_ADDR_RETRY", &(MPIR_CVAR_SHM_RANDOM_ADDR_RETRY));
8238 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SHM_RANDOM_ADDR_RETRY");
8239 rc = MPL_env2int("MPIR_PARAM_SHM_RANDOM_ADDR_RETRY", &(MPIR_CVAR_SHM_RANDOM_ADDR_RETRY));
8240 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SHM_RANDOM_ADDR_RETRY");
8241 rc = MPL_env2int("MPIR_CVAR_SHM_RANDOM_ADDR_RETRY", &(MPIR_CVAR_SHM_RANDOM_ADDR_RETRY));
8242 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SHM_RANDOM_ADDR_RETRY");
8243
8244 defaultval.d = 100;
8245 MPIR_T_CVAR_REGISTER_STATIC(
8246 MPI_INT,
8247 MPIR_CVAR_SHM_SYMHEAP_RETRY, /* name */
8248 &MPIR_CVAR_SHM_SYMHEAP_RETRY, /* address */
8249 1, /* count */
8250 MPI_T_VERBOSITY_USER_BASIC,
8251 MPI_T_SCOPE_GROUP,
8252 defaultval,
8253 "MEMORY", /* category */
8254 "The default number of retries for allocating a symmetric heap in shared memory. A retrying involves collective communication over the group in the shared memory.");
8255 MPIR_CVAR_SHM_SYMHEAP_RETRY = defaultval.d;
8256 rc = MPL_env2int("MPICH_SHM_SYMHEAP_RETRY", &(MPIR_CVAR_SHM_SYMHEAP_RETRY));
8257 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPICH_SHM_SYMHEAP_RETRY");
8258 rc = MPL_env2int("MPIR_PARAM_SHM_SYMHEAP_RETRY", &(MPIR_CVAR_SHM_SYMHEAP_RETRY));
8259 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_PARAM_SHM_SYMHEAP_RETRY");
8260 rc = MPL_env2int("MPIR_CVAR_SHM_SYMHEAP_RETRY", &(MPIR_CVAR_SHM_SYMHEAP_RETRY));
8261 MPIR_ERR_CHKANDJUMP1((-1 == rc),mpi_errno,MPI_ERR_OTHER,"**envvarparse","**envvarparse %s","MPIR_CVAR_SHM_SYMHEAP_RETRY");
8262
8263 fn_exit:
8264 return mpi_errno;
8265 fn_fail:
8266 goto fn_exit;
8267 }
8268
MPIR_T_cvar_finalize(void)8269 int MPIR_T_cvar_finalize(void)
8270 {
8271 int mpi_errno = MPI_SUCCESS;
8272
8273 MPL_free((char *)MPIR_CVAR_IALLREDUCE_TREE_TYPE);
8274 MPIR_CVAR_IALLREDUCE_TREE_TYPE = NULL;
8275
8276 MPL_free((char *)MPIR_CVAR_IBCAST_TREE_TYPE);
8277 MPIR_CVAR_IBCAST_TREE_TYPE = NULL;
8278
8279 MPL_free((char *)MPIR_CVAR_IREDUCE_TREE_TYPE);
8280 MPIR_CVAR_IREDUCE_TREE_TYPE = NULL;
8281
8282 MPL_free((char *)MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE);
8283 MPIR_CVAR_COLL_SELECTION_TUNING_JSON_FILE = NULL;
8284
8285 MPL_free((char *)MPIR_CVAR_DEFAULT_THREAD_LEVEL);
8286 MPIR_CVAR_DEFAULT_THREAD_LEVEL = NULL;
8287
8288 MPL_free((char *)MPIR_CVAR_NAMESERV_FILE_PUBDIR);
8289 MPIR_CVAR_NAMESERV_FILE_PUBDIR = NULL;
8290
8291 MPL_free((char *)MPIR_CVAR_NETLOC_NODE_FILE);
8292 MPIR_CVAR_NETLOC_NODE_FILE = NULL;
8293
8294 MPL_free((char *)MPIR_CVAR_OFI_USE_PROVIDER);
8295 MPIR_CVAR_OFI_USE_PROVIDER = NULL;
8296
8297 MPL_free((char *)MPIR_CVAR_CH3_INTERFACE_HOSTNAME);
8298 MPIR_CVAR_CH3_INTERFACE_HOSTNAME = NULL;
8299
8300 MPL_free((char *)MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
8301 MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE = NULL;
8302
8303 MPL_free((char *)MPIR_CVAR_NEMESIS_NETMOD);
8304 MPIR_CVAR_NEMESIS_NETMOD = NULL;
8305
8306 MPL_free((char *)MPIR_CVAR_CH4_SHM_POSIX_EAGER);
8307 MPIR_CVAR_CH4_SHM_POSIX_EAGER = NULL;
8308
8309 MPL_free((char *)MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE);
8310 MPIR_CVAR_CH4_POSIX_COLL_SELECTION_TUNING_JSON_FILE = NULL;
8311
8312 MPL_free((char *)MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE);
8313 MPIR_CVAR_BCAST_INTRANODE_TREE_TYPE = NULL;
8314
8315 MPL_free((char *)MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE);
8316 MPIR_CVAR_REDUCE_INTRANODE_TREE_TYPE = NULL;
8317
8318 MPL_free((char *)MPIR_CVAR_CH4_NETMOD);
8319 MPIR_CVAR_CH4_NETMOD = NULL;
8320
8321 MPL_free((char *)MPIR_CVAR_CH4_SHM);
8322 MPIR_CVAR_CH4_SHM = NULL;
8323
8324 MPL_free((char *)MPIR_CVAR_CH4_MT_MODEL);
8325 MPIR_CVAR_CH4_MT_MODEL = NULL;
8326
8327 MPL_free((char *)MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE);
8328 MPIR_CVAR_CH4_COLL_SELECTION_TUNING_JSON_FILE = NULL;
8329
8330 return mpi_errno;
8331 }
8332
MPIR_MPIR_CVAR_GROUP_COLL_ALGO_from_str(const char * s)8333 int MPIR_MPIR_CVAR_GROUP_COLL_ALGO_from_str(const char *s) {
8334 if (strcmp(s, " MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_mpir")==0) return MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_mpir;
8335 else if (strcmp(s, " MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_release_gather")==0) return MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_release_gather;
8336 else if (strcmp(s, " MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_auto")==0) return MPIR_CVAR_BARRIER_POSIX_INTRA_ALGORITHM_auto;
8337 else return -1;
8338 }
8339