From: Ethan Mallove (ethan.mallove_at_[hidden])
Date: 2006-11-03 16:19:30


I don't think MTT iterates over MPI Details sections the way
you expect. To run all the MPI Details sections, I think you
can factor down all those MPI Details sections to ''one''
using &enumerate():

exec = mpirun @hosts@ -mca
  &enumerate("btl tcp,self", "btl
  mx,self", "btl mvapi,self") -np &test_np() --prefix
  &test_prefix() &test_executable() &test_argv()

On Fri, Nov/03/2006 02:25:11PM, Josh Hursey wrote:
> I have an INI File that looks something like what is enclose at the
> end of this message.
>
> So I have multiple MPI Details sections. It seems like only the first
> one is running. Do I have to list them out somewhere?
>
> As a side question:
> Instead of using multiple MPI Details sections, if I use a single MPI
> Details section and told MTT to iterate over the parameters to mpirun
> at what point in the aggregation chain does this happen?
> Meaning will I see something like:
>
> Building trunk
> Running trivial
> Runing mpirun -mca btl tcp,self
> Runing mpirun -mca btl mx,self
> Runing mpirun -mca btl mvapi,self
> Running intel
> Runing mpirun -mca btl tcp,self
> Runing mpirun -mca btl mx,self
> Runing mpirun -mca btl mvapi,self
>
> or will I see
>
> Building trunk
> Runing mpirun -mca btl tcp,self
> Running trivial
> Running intel
> Runing mpirun -mca btl mx,self
> Running trivial
> Running intel
> Runing mpirun -mca btl mvapi,self
> Running trivial
> Running intel
>
>
> I would actually prefer the last because if something is broken with
> the IB interconnect it doesn't slow down the other tests from
> reporting. E.g. I can prioritize a bit in the INI file.

I do not think the last is possible at the moment, since
that would require iteration over a series of MPI Details
sections.

-Ethan

>
> Cheers,
> Josh
>
> mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
> #======================================================================
> # Overall configuration
> #======================================================================
>
> [MTT]
>
> hostfile =
> hostlist =
> max_np =
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # MPI get phase
> #======================================================================
>
> [MPI get: ompi-nightly-trunk]
> mpi_details = Open MPI
>
> module = OMPI_Snapshot
> ompi_snapshot_url = http://www.open-mpi.org/nightly/trunk
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # Install MPI phase
> #======================================================================
>
> [MPI install: odin 32 bit gcc]
> mpi_get = ompi-nightly-trunk
> save_stdout_on_success = 1
> merge_stdout_stderr = 1
> vpath_mode = none
>
> make_all_arguments = -j 6
> make_check = 1
>
> compiler_name = gnu
> compiler_version = &shell("gcc --version | head -n 1 | awk '{ print \
> $3 }'")
> configure_arguments = \
> FCFLAGS=-m32 FFLAGS=-m32 CFLAGS=-m32 CXXFLAGS=-m32 \
> --with-wrapper-cflags=-m32 --with-wrapper-cxxflags=-m32 --with-
> wrapper-fflags=-m32 --with-wrapper-fcflags=-m32
>
> module = OMPI
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # MPI run details
> #======================================================================
>
> [MPI Details: Open MPI tcp sm]
> exec = mpirun @hosts@ -mca btl tcp,sm,self -np &test_np() --prefix
> &test_prefix() &test_executable() &test_argv()
>
> # Yes, all these quotes are necessary. Don't mess with them!
> hosts = &if(&have_hostfile(), "&join("--hostfile ", "&hostfile()")", \
> "&if(&have_hostlist(), "&join("--host ", "&hostlist
> ()")", "")")
>
> after_each_exec = <<EOT
> if test "$MTT_TEST_HOSTFILE" != ""; then
> args="--hostfile $MTT_TEST_HOSTFILE"
> elif test "$MTT_TEST_HOSTLIST" != ""; then
> args="--host $MTT_TEST_HOSTLIST"
> fi
> orterun $args -np $MTT_TEST_NP --prefix $MTT_TEST_PREFIX
> mtt_ompi_cleanup.pl
> EOT
>
> #----------------------------------------------------------------------
>
> [MPI Details: Open MPI mx sm]
> exec = mpirun @hosts@ -mca btl mx,sm,self -np &test_np() --prefix
> &test_prefix() &test_executable() &test_argv()
>
> # Yes, all these quotes are necessary. Don't mess with them!
> hosts = &if(&have_hostfile(), "&join("--hostfile ", "&hostfile()")", \
> "&if(&have_hostlist(), "&join("--host ", "&hostlist
> ()")", "")")
>
> after_each_exec = <<EOT
> if test "$MTT_TEST_HOSTFILE" != ""; then
> args="--hostfile $MTT_TEST_HOSTFILE"
> elif test "$MTT_TEST_HOSTLIST" != ""; then
> args="--host $MTT_TEST_HOSTLIST"
> fi
> orterun $args -np $MTT_TEST_NP --prefix $MTT_TEST_PREFIX
> mtt_ompi_cleanup.pl
> EOT
>
> #----------------------------------------------------------------------
>
> [MPI Details: Open MPI mvapi sm]
> exec = mpirun @hosts@ -mca btl mvapi,sm,self -np &test_np() --prefix
> &test_prefix() &test_executable() &test_argv()
>
> # Yes, all these quotes are necessary. Don't mess with them!
> hosts = &if(&have_hostfile(), "&join("--hostfile ", "&hostfile()")", \
> "&if(&have_hostlist(), "&join("--host ", "&hostlist
> ()")", "")")
>
> after_each_exec = <<EOT
> if test "$MTT_TEST_HOSTFILE" != ""; then
> args="--hostfile $MTT_TEST_HOSTFILE"
> elif test "$MTT_TEST_HOSTLIST" != ""; then
> args="--host $MTT_TEST_HOSTLIST"
> fi
> orterun $args -np $MTT_TEST_NP --prefix $MTT_TEST_PREFIX
> mtt_ompi_cleanup.pl
> EOT
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # Test get phase
> #======================================================================
>
> [Test get: trivial]
> module = Trivial
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # Test build phase
> #======================================================================
>
> [Test build: trivial]
> test_get = trivial
> save_stdout_on_success = 1
> merge_stdout_stderr = 1
> stderr_save_lines = -1
>
> module = Trivial
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # Test Run phase
> #======================================================================
>
> [Test run: trivial]
> test_build = trivial
> pass = &eq(&test_exit_status(), 0)
> timeout = &multiply(2, test_np())
> save_stdout_on_pass = 1
> merge_stdout_stderr = 1
> stdout_save_lines = 100
> np = &env_max_procs()
>
> module = Simple
> simple_only:tests = &find_executables(".")
>
> #----------------------------------------------------------------------
>
> #======================================================================
> # Reporter phase
> #======================================================================
>
> [Reporter: IU database]
> module = MTTDatabase
>
> mttdatabase_realm = OMPI
> mttdatabase_url = https://www.open-mpi.org/mtt/submit/
> # OMPI Core: Change this to be the username and password for your
> # submit user. Get this from the OMPI MTT administrator.
> mttdatabase_username = XX
> mttdatabase_password = XX
> # OMPI Core: Change this to be some short string identifying your
> # cluster.
> mttdatabase_platform = IU - Thor - TESTING
>
> #----------------------------------------------------------------------
>
> # This is a backup for while debugging MTT; it also writes results to
> # a local text file
> [Reporter: text file backup]
> module = TextFile
>
> textfile_filename = mtt-debug-report-2-$phase-$section-$mpi_name-
> $mpi_version.txt
> textfile_separator =
> >>>>----------------------------------------------------------<<<<
>
>
> #----------------------------------------------------------------------
>
> _______________________________________________
> mtt-users mailing list
> mtt-users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users