[mpich-discuss] mpiexec ignoring host setting in configfile

Alexander Rast alex.rast.technical at gmail.com
Thu Jun 22 11:16:31 CDT 2017


On Thu, Jun 22, 2017 at 4:14 PM, Kenneth Raffenetti <raffenet at mcs.anl.gov>
wrote:

> -host(s) is a global option. You can only specify it once.
>

? This doesn't make sense to me. Example 8.13 from the MPI specification
has:

mpiexec myprog infile1 : myprog infile2 : myprog infile3, corresponding to
Form A

mpiexec {<above arguments>} : {...} : {...} : ... : { ...}

which invokes potentially multiple programs with different arguments (of
which host is one)

and then mentions that Form B: mpiexec -configfile <filename> has lines of
the form separated by the colons in Form A.

So there's no reason, I would think, that a Form B file can't have multiple
lines with different hosts specified for the same executable.


> Further, your configfile does not make much sense since your are using the
> same program on both lines. You could rather just do:
>
>   mpiexec -n 4 -ppn 2 -hosts Shakespeare,Burns ./mpi_io_test
>

I have not seen the -ppn switch listed anywhere. What does this do? Is this
intended to be a 'limit number of processes to n on the hosts specified?
Notwithstanding this isn't what is needed anyway, because what if I want
specifically to run at most 2 processes on Shakespeare but 5 on Burns
(imagine, for example, that Shakespeare is already loaded with other
processes, so I need to limit it for the executable in concern)?

In any case the point is, using the same program on both lines to me seems
straightforward enough given that there are numerous instances (as ex. 8.13
above) where various switches and options might be different.

I note also that -hosts is different from the -host switch listed as
pre-defined for mpiexec.

In my case we have a system where the objective is to direct specific
instances of an application or possibly several to specific hosts - so that
the mapping can be fixed. In the limit this might consist of -n 1 -host <x>
<executable> lines, each directing a specific instance of the executable to
a specific host.


>
> Ken
>
> On 06/22/2017 09:55 AM, Alexander Rast wrote:
>
>> I'm getting a very suprising result with the attached application and
>> configfile. As you can see, I'm asking MPI to run 2 processes on
>> Shakespeare, and 2 on Burns. But when I ran the program using mpiexec
>> -configfile ./MPI_config.txt what I actually get is the output shown in
>> MPI_IO_Test.txt. Furthermore I can confirm that this is genuine: I shut
>> down Burns altogether and the same result ensues. It's as if mpiexec is
>> taking the -host field as advisory but not required, that is, it might
>> execute on the host asked for, but then again if it decides not to, it
>> doesn't interpret the -host field as a requirement. I get the distinct
>> impression, indeed, that instead of interpreting the host as a requirement,
>> it uses a greedy process allocation: if it can spawn all of the processes
>> on the invoking host (the one that ran mpiexec) it does so, and only once
>> the resources there are exhausted does it look at other possible hosts.
>>
>> Clearly if you specify a -host the intention is that the process should
>> be placed there. This looks like a bug in mpiexec.
>>
>>
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20170622/3d9f0c24/attachment.html>


More information about the discuss mailing list