Skip to content
Jeff Squyres edited this page Sep 3, 2014 · 1 revision

MTT News for 9 May, 2007

MTT version ([milestone:v2.1 2.1]) allows MTT to be run against developer workspaces. Visit this page for tips on how to test your workspace using MTT. Additionally, various and sundry other goodies have been added (see below).

New INI parameters

Several new parameters have been added to the INI file:

  • In the [MTT] section
    • scratch (override using --scratch on the command line)
    • mttdatabase_hostname (override the hostname field sent to the MTT database); the default value is the return from the hostname(1) command
  • In the [MPI Install] section
    • Many of the MPI Install INI fields using the OMPI module were renamed to have an ompi_* prefix. All the old names still exist and work, but are deprecated and will be removed in a future version. Here is what the new fields are (the old fields are simply these without the ompi_* prefix):
ompi_vpath_mode = none
ompi_make_all_arguments = -j 8
ompi_make_check = 1
ompi_compiler_name = gnu
ompi_compiler_version = &get_gcc_version()
ompi_configure_arguments = "CFLAGS=-g -pipe"

New funclets

Many new funclets are now available:

  • &mpi_get_name(), &mpi_install_name(), &test_get_name(),&test_build_name(), &test_run_name(), &mpi_details_name(): These funclets give the name of the section being executed (when used in the appropriate context). For example, in an Test Build section, &mpi_get_name() will return the name of the section of the MPI Get that the Test Build is currently being run against.
  • &weekday_name(), &weekday_index(): Returns the all lowercase 3-character string name of the weekday of today (e.g., "sun", "mon", ...) and the index of the day of week of today (Sunday = 0, or whatever Perl's localtime() function returns on your system)
  • &getenv(): Takes one argument, the string name of the environment variable to return.
  • &null(): A safe way to have an empty string without causing extra expansion -- returns "undef" in Perl parlance.
  • &env_hosts(): Returns a comma-delimited list of hosts that are used in this environment (including duplicates if multiple processes are supposed to be run on a single machine).
  • &get_pathcc_version(): Returns the version of the Pathscale compiler.
  • cmd_* (see r657) :
    • &cmd_wifexited(): Returns 1 if the last command executed exited normally, 0 otherwise.
    • &cmd_wexitstatus(): Returns the argument to exit() (or return value from main()) from the last command executed. Only meaningful if &cmd_wifexited() returns 1.
    • &cmd_wifsignaled(): Returns 1 if the last command executed exited via signal.
    • &cmd_termsig(): Returns the signal number that terminated the last command. Only meaningful if&cmd_wifsignaled() returns 1.

NOTE: We strongly advise updating your INI file to use the new &cmd_*() funclets for pass and fail criteria. For example, here's a good value for pass and skipped in many Test Run sections:

pass = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 0))
skipped = &and(&cmd_wifexited(), &eq(&cmd_wexitstatus(), 77))

New modules

  • MPI get module: AlreadyInstalled. Meant to be used by developers to run MTT on their SVN checkouts / local workspaces. See this wiki page for more details on how to use AlreadyInstalled.
[MPI get: foo]
...
installdir = /your/installation/dir
module = AlreadyInstalled
  • MPI get module: LAM_Snapshot. Meant for use with LAM/MPI nightly snapshot tarballs (yes, that's right -- MTT can now handle more than just Open MPI!).
[MPI get: lam-nightly-trunk]
...
module = LAM_Snapshot
lam_snapshot_url = http://www.lam-mpi.org/download/files/nightly
  • MPI install module: LAM. Meant to compile LAM/MPI. Note the new field names that accompany this module (see below).
[MPI install: LAM/GNU]
...
module = LAM
lam_vpath_mode = none
lam_make_all_arguments = -j 8
lam_compiler_name = gnu
lam_compiler_version = &get_gcc_version()
lam_configure_arguments = "CFLAGS=-g -pipe" --with-boot-tm=/opt/pbs
  • Analyze::OMPI. This module is meant for use with AlreadyInstalled (i.e., it analyzes the current environment to find out what was already installed).
[MPI install: foo]
...
module = Analyze::OMPI

Miscellaneous

MTT now compresses its database submissions. E.g., an Intel run with 9 variants expands to 4800 test runs, used to entail a 5.3MB upload (it now zips to 500KB). This is good for both submissions that go through a web proxy and for the target web servers.