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