OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

params.h
1 /*
2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2005 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * Copyright (c) 2007 Los Alamos National Security, LLC. All rights
13 * reserved.
14 * Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved.
15 * Copyright (c) 2010-2012 Oak Ridge National Labs. All rights reserved.
16 * $COPYRIGHT$
17 *
18 * Additional copyrights may follow
19 *
20 * $HEADER$
21 */
22
23 #ifndef OMPI_RUNTIME_PARAMS_H
24 #define OMPI_RUNTIME_PARAMS_H
25
26 #include "ompi_config.h"
27
28 BEGIN_C_DECLS
29
30 /*
31 * Global variables
32 */
33
34 /**
35 * Whether or not to check the parameters of top-level MPI API
36 * functions or not.
37 *
38 * This variable should never be checked directly; the macro
39 * MPI_PARAM_CHECK should be used instead. This allows multiple
40 * levels of MPI function parameter checking:
41 *
42 * #- Disable all parameter checking at configure/compile time
43 * #- Enable all parameter checking at configure/compile time
44 * #- Disable all parameter checking at run time
45 * #- Enable all parameter checking at run time
46 *
47 * Hence, the MPI_PARAM_CHECK macro will either be "0", "1", or
48 * "ompi_mpi_param_check".
49 */
50 OMPI_DECLSPEC extern bool ompi_mpi_param_check;
51
52 /**
53 * Whether or not to check for MPI handle leaks during MPI_FINALIZE.
54 * If enabled, each MPI handle type will display a summary of the
55 * handles that are still allocated during MPI_FINALIZE.
56 *
57 * This is good debugging for user applications to find out if they
58 * are inadvertantly orphaning MPI handles.
59 */
60 OMPI_DECLSPEC extern bool ompi_debug_show_handle_leaks;
61
62 /**
63 * If > 0, show that many MPI_ALLOC_MEM leaks during MPI_FINALIZE. If
64 * enabled, memory that was returned via MPI_ALLOC_MEM but was never
65 * freed via MPI_FREE_MEM will be displayed during MPI_FINALIZE.
66 *
67 * This is good debugging for user applications to find out if they
68 * are inadvertantly orphaning MPI "special" memory.
69 */
70 OMPI_DECLSPEC extern int ompi_debug_show_mpi_alloc_mem_leaks;
71
72 /**
73 * Whether or not to actually free MPI handles when their
74 * corresponding destructor is invoked. If enabled, Open MPI will not
75 * free handles, but will rather simply mark them as "freed". Any
76 * attempt to use them will result in an MPI exception.
77 *
78 * This is good debugging for user applications to find out if they
79 * are inadvertantly using MPI handles after they have been freed.
80 */
81 OMPI_DECLSPEC extern bool ompi_debug_no_free_handles;
82
83 /**
84 * Whether or not to print MCA parameters on MPI_INIT
85 *
86 * This is good debugging for user applications to see exactly which
87 * MCA parameters are being used in the current program execution.
88 */
89 OMPI_DECLSPEC extern bool ompi_mpi_show_mca_params;
90
91 /**
92 * Whether or not to print the MCA parameters to a file or to stdout
93 *
94 * If this argument is set then it is used when parameters are dumped
95 * when the mpi_show_mca_params is set.
96 */
97 OMPI_DECLSPEC extern char * ompi_mpi_show_mca_params_file;
98
99 /**
100 * Whether we should keep the string hostnames of all the MPI
101 * process peers around or not (eats up a good bit of memory).
102 */
103 OMPI_DECLSPEC extern bool ompi_mpi_keep_peer_hostnames;
104
105 /**
106 * Whether an MPI_ABORT should print out a stack trace or not.
107 */
108 OMPI_DECLSPEC extern bool ompi_mpi_abort_print_stack;
109
110 /**
111 * Whether MPI_ABORT should print out an identifying message
112 * (e.g., hostname and PID) and loop waiting for a debugger to
113 * attach. The value of the integer is how many seconds to wait:
114 *
115 * 0 = do not print the message and do not loop
116 * negative value = print the message and loop forever
117 * positive value = print the message and delay for that many seconds
118 */
119 OMPI_DECLSPEC extern int ompi_mpi_abort_delay;
120
121 /**
122 * Whether to use the "leave pinned" protocol or not (0 = no, 1 = yes,
123 * -1 = determine at runtime).
124 */
125 OMPI_DECLSPEC extern int ompi_mpi_leave_pinned;
126
127 /**
128 * Whether to use the "leave pinned pipeline" protocol or not.
129 */
130 OMPI_DECLSPEC extern bool ompi_mpi_leave_pinned_pipeline;
131
132 /**
133 * Whether sparse MPI group storage formats are supported or not.
134 */
135 OMPI_DECLSPEC extern bool ompi_have_sparse_group_storage;
136
137 /**
138 * Whether sparse MPI group storage formats should be used or not.
139 */
140 OMPI_DECLSPEC extern bool ompi_use_sparse_group_storage;
141
142 /**
143 * Whether we should send notifications during MPI_INIT and
144 * MPI_FINALIZE or not.
145 */
146 OMPI_DECLSPEC extern bool ompi_notify_init_finalize;
147
148 #if OPAL_ENABLE_FT_MPI
149 OMPI_DECLSPEC extern int ompi_ftmpi_output_handle;
150 OMPI_DECLSPEC extern bool ompi_ftmpi_enabled;
151 #endif
152
153 /**
154 * Register MCA parameters used by the MPI layer.
155 *
156 * @returns OMPI_SUCCESS
157 *
158 * Registers several MCA parameters and initializes corresponding
159 * global variables to the values obtained from the MCA system.
160 */
161 OMPI_DECLSPEC int ompi_mpi_register_params(void);
162
163 /**
164 * Display all MCA parameters used
165 *
166 * @returns OMPI_SUCCESS
167 *
168 * Displays in key = value format
169 */
170 int ompi_show_all_mca_params(int32_t, int, char *);
171
172 END_C_DECLS
173
174 #endif /* OMPI_RUNTIME_PARAMS_H */