File: params.h

package info (click to toggle)
openmpi 5.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 202,312 kB
  • sloc: ansic: 612,441; makefile: 42,495; sh: 11,230; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,154; python: 1,856; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (228 lines) | stat: -rw-r--r-- 7,370 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
 *                         University Research and Technology
 *                         Corporation.  All rights reserved.
 * Copyright (c) 2004-2020 The University of Tennessee and The University
 *                         of Tennessee Research Foundation.  All rights
 *                         reserved.
 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
 *                         University of Stuttgart.  All rights reserved.
 * Copyright (c) 2004-2005 The Regents of the University of California.
 *                         All rights reserved.
 * Copyright (c) 2007-2015 Los Alamos National Security, LLC.  All rights
 *                         reserved.
 * Copyright (c) 2006-2015 Cisco Systems, Inc.  All rights reserved.
 * Copyright (c) 2010-2012 Oak Ridge National Labs.  All rights reserved.
 * Copyright (c) 2013      NVIDIA Corporation.  All rights reserved.
 * Copyright (c) 2013      Intel, Inc. All rights reserved
 * Copyright (c) 2018-2024 Triad National Security, LLC. All rights
 *                         reserved.
 * Copyright (c) 2021      Nanook Consulting.  All rights reserved.
 * $COPYRIGHT$
 *
 * Additional copyrights may follow
 *
 * $HEADER$
 */

#ifndef OMPI_RUNTIME_PARAMS_H
#define OMPI_RUNTIME_PARAMS_H

#include "ompi_config.h"

#include "ompi/runtime/mpiruntime.h"

BEGIN_C_DECLS

/*
 * Global variables
 */

/**
 * Whether or not to check the parameters of top-level MPI API
 * functions or not.
 *
 * This variable should never be checked directly; the macro
 * MPI_PARAM_CHECK should be used instead.  This allows multiple
 * levels of MPI function parameter checking:
 *
 * #- Disable all parameter checking at configure/compile time
 * #- Enable all parameter checking at configure/compile time
 * #- Disable all parameter checking at run time
 * #- Enable all parameter checking at run time
 *
 * Hence, the MPI_PARAM_CHECK macro will either be "0", "1", or
 * "ompi_mpi_param_check".
 */
OMPI_DECLSPEC extern bool ompi_mpi_param_check;

/**
 * Whether or not to check for MPI handle leaks during MPI_FINALIZE.
 * If enabled, each MPI handle type will display a summary of the
 * handles that are still allocated during MPI_FINALIZE.
 *
 * This is good debugging for user applications to find out if they
 * are inadvertently orphaning MPI handles.
 */
OMPI_DECLSPEC extern bool ompi_debug_show_handle_leaks;

/**
 * If > 0, show that many MPI_ALLOC_MEM leaks during MPI_FINALIZE.  If
 * enabled, memory that was returned via MPI_ALLOC_MEM but was never
 * freed via MPI_FREE_MEM will be displayed during MPI_FINALIZE.
 *
 * This is good debugging for user applications to find out if they
 * are inadvertently orphaning MPI "special" memory.
 */
OMPI_DECLSPEC extern int ompi_debug_show_mpi_alloc_mem_leaks;

/**
 * Whether or not to actually free MPI handles when their
 * corresponding destructor is invoked.  If enabled, Open MPI will not
 * free handles, but will rather simply mark them as "freed".  Any
 * attempt to use them will result in an MPI error.
 *
 * This is good debugging for user applications to find out if they
 * are inadvertently using MPI handles after they have been freed.
 */
OMPI_DECLSPEC extern bool ompi_debug_no_free_handles;

/**
 * Whether or not to print MCA parameters on MPI_INIT
 *
 * This is good debugging for user applications to see exactly which
 * MCA parameters are being used in the current program execution.
 */
OMPI_DECLSPEC extern bool ompi_mpi_show_mca_params;

/**
 * Whether or not to print the MCA parameters to a file or to stdout
 *
 * If this argument is set then it is used when parameters are dumped
 * when the mpi_show_mca_params is set.
 */
OMPI_DECLSPEC extern char * ompi_mpi_show_mca_params_file;

/**
 * Whether an MPI_ABORT should print out a stack trace or not.
 */
OMPI_DECLSPEC extern bool ompi_mpi_abort_print_stack;

/**
 * Whether  MPI_ABORT  should  print  out an  identifying  message
 * (e.g., hostname  and PID)  and loop waiting  for a  debugger to
 * attach.  The value of the integer is how many seconds to wait:
 *
 * 0 = do not print the message and do not loop
 * negative value = print the message and loop forever
 * positive value = print the message and delay for that many seconds
 */
OMPI_DECLSPEC extern int ompi_mpi_abort_delay;

/**
 * Whether we operate in MPI3 compatibility, or MPI4 mode (default).
 *
 * true: use MPI3 compatibility (default)
 * false: use MPI4 compatibility
 *
 * Behavioral changes:
 *   - errors in operations without a handle are raised on MPI_COMM_WORLD (MPI-3 behavior) or MPI_COMM_SELF (MPI-4 behavior)
 *
 */
OMPI_DECLSPEC extern bool ompi_mpi_compat_mpi3;

/**
 * Whether sparse MPI group storage formats are supported or not.
 */
OMPI_DECLSPEC extern bool ompi_have_sparse_group_storage;

/**
 * Whether sparse MPI group storage formats should be used or not.
 */
OMPI_DECLSPEC extern bool ompi_use_sparse_group_storage;

/**
 * Cutoff point for calling add_procs for all processes
 */
OMPI_DECLSPEC extern uint32_t ompi_add_procs_cutoff;

/**
 * Whether anything in the code base has disabled MPI dynamic process
 * functionality or not
 */
OMPI_DECLSPEC extern bool ompi_mpi_dynamics_enabled;

/* EXPERIMENTAL: do not perform an RTE barrier at the end of MPI_Init */
OMPI_DECLSPEC extern bool ompi_async_mpi_init;

/* EXPERIMENTAL: do not perform an RTE barrier at the beginning of MPI_Finalize */
OMPI_DECLSPEC extern bool ompi_async_mpi_finalize;

#if OPAL_ENABLE_FT_MPI
OMPI_DECLSPEC extern int ompi_ftmpi_output_handle;
OMPI_DECLSPEC extern bool ompi_ftmpi_enabled;
#endif /* OPAL_ENABLE_FT_MPI */

/**
 * A comma delimited list of SPC counters to turn on or 'attach'.  To turn
 * all counters on, the string can be simply "all".  An empty string will
 * keep all counters turned off.
 */
OMPI_DECLSPEC extern char * ompi_mpi_spc_attach_string;

/**
 * A boolean value that determines whether or not to dump the SPC counter
 * values in MPI_Finalize.  A value of true dumps the counters and false does not.
 */
OMPI_DECLSPEC extern bool ompi_mpi_spc_dump_enabled;

/**
 * Timeout for calls to PMIx_Connect(default 0, no timeout)
 */
OMPI_DECLSPEC extern uint32_t ompi_pmix_connect_timeout;

 /**
 * A boolean value that determines whether or not to enable runtime timing of
 * init and finalize.
 */
OMPI_DECLSPEC extern bool ompi_enable_timing;

OMPI_DECLSPEC extern int ompi_mpi_event_tick_rate;
OMPI_DECLSPEC extern bool ompi_mpi_yield_when_idle;

 /**
 * An integer value specifying verbosity level for communicator management
 * subsystem.
 */
OMPI_DECLSPEC extern int ompi_comm_verbose_level;

/**
 * Register MCA parameters used by the MPI layer.
 *
 * @returns OMPI_SUCCESS
 *
 * Registers several MCA parameters and initializes corresponding
 * global variables to the values obtained from the MCA system.
 */
OMPI_DECLSPEC int ompi_mpi_register_params(void);


/**
 * Display all MCA parameters used
 *
 * @returns OMPI_SUCCESS
 *
 * Displays in key = value format
 */
int ompi_show_all_mca_params(int32_t, int, char *);

/**
 * Set by checking PMIx to see if we are running in an oversubscribed
 * environment or not.
 */
OMPI_DECLSPEC extern bool ompi_mpi_oversubscribed;

END_C_DECLS

#endif /* OMPI_RUNTIME_PARAMS_H */