forked from open-mpi/mtt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
278 lines (227 loc) · 10.8 KB
/
CHANGES
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
-*- text -*-
To announce to OMPI core testers:
- New funclets:
- &hostlist - not new but 2 new parameters were added:
$1 - delimiter that used between hostnames
$2 - number of hosts that we want to get from the list
- &perl(): MANY more things are possible now!
- ®exp()
- &check_ipoib_connectivity()
- ?&check_ib_connectivty()?
- &verbose(), &debug(), &print()
- &env_hosts() can be uniq-ified
- &SSH::refresh_ssh_known_hosts_file() - updates a stale
~/.ssh/known_hosts file. CAUTION: use of this funclet
is only advisable in unstable (yet secure)
environments (e.g., lab networks).
- &scratch_root() returns the directory name of the scratch tree
- &strstr(), like strstr(3)
- &preq_replace(), like
http://www.php.net/manual/en/function.preg-replace.php
- &MPI::OMPI::find_mpirun_params() and &MPI::OMPI::find_network()
- &get_version() for the below MPIs:
- &MPI::OMPI::get_version()
- &MPI::HPMPI::get_version()
- &MPI::CrayMPI::get_version()
- &MPI::IntelMPI::get_version()
- &MPI::ScaliMPI::get_version()
- &MPI::OMPI::get_mpicc_compiler_name() - get compiler version found in
ompi_info "C absolute compiler"
- &MPI::OMPI::get_mpicc_compiler_version() - get compiler name found in
ompi_info "C absolute compiler"
- &test_command_line()
- &split() now takes optional 2nd param to specify token
- &find(regexp, directory list)
- &rm_name() -- close to, but slightly different than &env_name()
- &prime(min,max) - return prime numbers between min and max
- &env_max_hosts()
- &get_<compiler>_version() funclets now take optional parameter
specifying the argv[0] to use.
- ¤t_phase() - returns name of currently executing phase (e.g., "MPI
install")
- ¤t_section() - returns the name of currently executing INI section
(e.g., "Test build: intel")
- &pwd() - like the shell command of the same name
- &cwd() - alias for &pwd()
- &which() - like the shell command of the same name
- &get_mpi_get_names() - return a csv list of all cached MPI get names
matching a pattern
- &SVN::get_r_number() - return the revision number of an SVN workspace
- &search_and_replace() - perform a search and replace
operation on a specified file
- &mpi_details() - pass arbitrary values from test run sections
to the mpi details section, indexed by string
- &get_processor_count() - return the number of CPUs on the localhost
- &vampir_trace_files_exist() - return true if VampirTrace trace files
are found in the cwd()
- &random_string(n) - return a random string "n" characters long
- &temp_filename() - call File::Temp::tempfile() and return the filename
- &increment(n) - increment the integer or character by "n"
- &decrement(n) - decrement the integer or character by "n"
- &get_compiler_vendor() - Determine the compiler vendor using
predefined compiler C macros
- &cmd_pid() - return pid of last DoCommand::Cmd
- Allow mpi_get_name, test_get_name, and test_build_name fields to
accept the special value "all", meaning that they'll use all
corresponding sections that are found (vs. needing to list every
section explicitly)
- Added export for MTT_TEST_EXECUTABLE, may be used for clean up after
mpi process : pkill -9 $MTT_TEST_EXECUTABLE
- See https://svn.open-mpi.org/trac/mtt/changeset/863:
- re-wrote funclet parser; MUST edit INI file and remove excess
quoting
- new MPI details fields: launcher, parameters, network,
resource_manager
- Can escape &, ', " in INI files
- Added optional delimiter parameter to &hostlist() and &hostlist_hosts()
- --section: beware of section names with spaces! s/ /./g in --section
arguments if you have spaces in your section names.
- --clean-start: remove MTT sources, installations, and metadata out of
the scratch directory before running
- --print-cmd-time: Display the amount of time taken in each command
- --print-phases-time: Display the amount of time taken in each phase
- --print-time|-p: Alias for --print-phases-time --print-cmd-time
- @variable@ expansion *everywhere* in ini files (not just in "exec")
- MTT lock server.
- MTT IRC reporter.
- SCM module with the below backend scm_module's:
- SVN
- SVK
- Mercurial
- Unknown (basically run a shell command)
--> Users will get warnings but the old "SVN" module will still work
--> Users encouraged to convert to the new SCM module
- terminate_files field in MTT section. Defaults to $HOME/mtt-stop
and &scratch_root()/mtt-stop. Causes MTT to stop after the current
test and report all of its results.
- pause_files field in MTT section. Defaults to $HOME/mtt-pause and
&scratch_root()/mtt-pause. Causes MTT to "pause" after the current
test. MTT will resume once the pause file has been removed.
- delete_fast_scratch field in MTT section. Defaults to 1, but can be
overridden to 0. If 1, the "fast scratch" tree will be completely
removed at the end of the run.
- save_fast_scratch_files field in the MTT section. A comma-delimited
list of files that are saved from the fast scratch area before it is
deleted.
- Added support for MPICH2 (and therefore MVAPICH2) and LAM/MPI
- Added support for the ClusterTools package installer
- Renamed the MPI install phase field names:
compiler_name -> ompi_compiler_name (etc.)
Need to check for backward compatibility
- Fix the mpi_details logic. We now follow 5 specific steps to look for
the Right MPI Details section to use:
1. Look for an mpi_details field in the current MPI Install phase
that matches a valid MPI Details section
2. Look for an mpi_details field in the current MPI Get phase that
matches a valid MPI Details section
3. Look for an mpi_install field is any MPI Details section that
matches the current MPI Install phase
4. Look for an mpi_get field is any MPI Details section that matches
the current MPI Get phase
5. If we didn't find anything above, take the first MPI Details
section we find
- Cluster description strings for the below fields can be overridden
in the [MPI Install] and [MTT] INI sections
- platform_type
- platform_hardware
- os_name
- os_version
- Added "description" field in MTT, MPI install, Test build, and Test
run sections. If not set in MPI Install/Test build/Test run
sections, will use the value from the MTT section.
- Added "log_file" field in [MTT] section
- Added "funclet_files" field into [MTT] section, allowing a
comma-delimited list of .pm files to add more funclets to MTT.
- Allow timeouts to be specified in [HH:[MM:]]SS format in the ini file.
- before_any, before_each, after_any, and after_each steps can be set to
funclets
- Added "INI_NAME" as a predefined INI parameter (a la Perl's $PROGRAM_NAME)
- Added "PROGRAM_NAME" as a predefined INI parameter (a la Perl's
$PROGRAM_NAME)
- Added several performance stdout analyzers:
- NBC Bench
- OSU benchmarks
- SKaMPI
- IMB
- NetPIPE
- Added include_section. include_section takes a CSV of INI section names and
interpolates those sections into the current INI section, allowing the user
to factor down an INI file. Note: --section filtering is performed *after*
the interpolation, so there is no need to supply "include" sections to the
--section option. (See samples/perl/ompi-core-template.ini for examples)
- New options:
- --no-force
- --no-reporter
- --fast-scratch (currently used by the MPI install section)
- New MPI install INI params used to do *stuff* before and/or after an MPI
Install (e.g., create a tarball, install on cluster):
- before_install
- before_install_timeout
- after_install
- after_install_timeout
- GNU Install before/after step parameters
- before_configure
- after_configure
- before_make_all
- after_make_all
- before_make_check
- after_make_check
- before_make_install
- after_make_install
- include_file(s) INI parameter - just like pre-processor "#include"
directives
- trivial_tests_languages - comma separated list of languages to use
for trivial tests (default: "c,c++,f77,f90").
- trivial_tests_mpicc - override default mpicc for Trivial test build
- trivial_tests_mpicxx - override default mpicxx for Trivial test build
- trivial_tests_mpif77 - override default mpif77 for Trivial test build
- trivial_tests_mpif90 - override default mpif90 for Trivial test build
- added parameter to Simple specify module: do_not_run. If set to 1
for a specific subsection (and the subsection is exclusive), then
those tests will not be run. Handy for explicitly specifying tests
that exist but should *not* be run.
- added parameter alreadyinstalled_mpi_type. Defaults to "OMPI", but
can also be "MVAPICH".
- Added Functions::MPI::MVAPICH.pm.
- Added "skip_section" INI parameter. If it evaluates to true, the section
is skipped.
- Added the below "threshold" INI parameters for Test run sections. Acceptable
in the following formats where "D" is an integer: D% (percentage), D/D
fraction, .D (decimal), and DD (integer count of number of tests). The first
thershold to break, *breaks* out of the RunEngine loop of mpirun commands.
- break_threshold_pass
- break_threshold_fail
- break_threshold_skipped
- break_threshold_timeout
- Test run INI parameters
- submit_results_after_each INI parameter - directs MTT to submit results after
each test. (Useful to ensure *some* test results get submitted in case the
scheduler kills the MTT run.)
- submit_results_after_n_results - directs MTT to submit results after
"n" tests
- "sge" aliases for "n1ge" funclets
- sge_job
- sge_max_procs
- sge_hosts
- Accept the below environment INI params in Reporter sections:
- setenv
- unsetenv
- prepend_path
- append_path
- MTTDatabase now respects the TMPDIR environment variable
- Added intel_ompi_tests_make_arguments
- Added "disk_free_min" to [MTT] section - pause MTT progress if free disk
space falls below a certain percentage (e.g., 5%)
- Added "disk_free_min_wait" to [MTT] section - number of minutes to wait for
the user to remedy the situation if the "disk_free_min" threshold is broken
- Added env_importer. Works similarly to env_module, only it accepts shell
environment importer files (sh, bash, csh, sh, ksh, zsh, and tcsh)
- Timeout notification
- docommand_timeout_notify_file - file name to touch and check while waiting
for user to investigate a possibly hanging test
- docommand_timeout_notify_email - CSV of email receipients to send timeout
notification to
- docommand_timeout_notify_timeout - time to wait for user to remove "notify
file" before moving on to other tests
- docommand_timeout_backtrace_program - use either "padb" or "gdb" to collect
stack traces of timed out tests