From: Josh Hursey (jjhursey_at_[hidden])
Date: 2006-09-10 08:39:51


On Sep 8, 2006, at 4:25 PM, Jeff Squyres wrote:

> On 9/8/06 2:02 PM, "Josh Hursey" <jjhursey_at_[hidden]> wrote:
>
>> Is there a way to separate the Compile Phase with the Testing
>> Phase? I
>> thought there was but it's not obvious to me how to do that.
>
> Yes. You can specify various switches on the mtt command line (see
> "mtt
> --help"). More below.
>
>> Say I want to build 2 branches (trunk, v1.2) on an allocation of 1
>> node.
>> Once that is complete then I want to run the tests on an
>> allocation of N
>> nodes.
>
> You can do something like:
>
> mtt --mpi-get --mpi-install --test-get --test-build --file
> ...whatever... --scratch ...whatever...
>
> This will download the MPI, install the MPI, get any test sources,
> and build
> them all against all the MPI's. Alternatively, you can do:
>
> mtt --no-test-run --file ... --scratch ...
>
> Because really you want to do everything *except* run the tests
> (right?).

Awesome that's what I needed. Seems to be working great.
>
> The only problem with this is that MTT does not yet support
> chaining well;
> so there's no real notification that the builds have all finished
> other than
> the mtt client finishes.

That level of granularity is fine. I was able to script around it
properly.

>
>> How to I tell the tests what branches to iterate over and where
>> they are
>> located?
>
> Right now, MTT will do everything in the INI file -- you can't say
> "only do
> MPI installs A, B, and C" (and assumedly skip some other sections,
> such as
> D, E, and F). So it would probably be a PITA, but you could have
> different
> INI files with different configurations if you need finer-grained
> control.

Yea that's what I currently have, I was just wondering if there was a
more elegant way.

>
>> The script I am trying to create would essentually do the following:
>> srun -N 1 -b mtt-build-phase
>> wait for it to complete
>> srun -N 16 -b mtt-testing-phase
>>
>> or something to that effect so we don't allocate all 16 machines
>> and let
>> them idle while the tests are building.
>
> Yes. The only bummer is that we currently provide no assistance on
> the
> "wait for it to complete" step. :-\

That's alright, some simple locks and some other logic did the trick
here.

Another question or two.

- Does MTT support Multiple clients running over the same build tree?
For example I have a script that does:
   <snip>
   srun -N 1 -b mtt-build-phase
   wait for it to complete
   srun -N 8 -b mtt-testing-phase
   srun -N 16 -b mtt-testing-phase
   srun -N 32 -b mtt-testing-phase
   </snip>
   I assume it doesn't, but thought I would ask.

- Also does MTT support the serialization of the above script? As in:
   <snip>
   srun -N 1 -b mtt-build-phase
   wait for it to complete
   srun -N 8 -b mtt-testing-phase
   wait for it to complete
   srun -N 16 -b mtt-testing-phase
   wait for it to complete
   srun -N 32 -b mtt-testing-phase
   wait for it to complete
   </snip>

Thanks for all your help,
Josh

>
> --
> Jeff Squyres
> Server Virtualization Business Unit
> Cisco Systems

----
Josh Hursey
jjhursey_at_[hidden]
http://www.open-mpi.org/