Thanks Jeff.

Given that this is an intended behavior, I have a couple of follow up questions:


1.       What is the purpose of the directory “1” that gets created currently? 
(in <log directory>/app.log/1/rank.<i>/stdout ) Is this hard-coded to “1” or 
could be something else?

2.       Mpirun also has an option “—merge-stderr-to-stdout”, that allows us to 
merge the stderr into stdout, so we are left with only 1 file (‘stdout’). Are 
there any future change that we need to worry about in using this option to 
merge the 2 streams?

Regards,
Vipul


From: Jeff Squyres (jsquyres) [mailto:jsquy...@cisco.com]
Sent: Tuesday, October 29, 2019 9:07 PM
To: Open MPI User's List <users@lists.open-mpi.org>
Cc: Kulshrestha, Vipul <vipul_kulshres...@mentor.com>
Subject: Re: [OMPI users] mpirun --output-filename behavior

On Oct 29, 2019, at 7:30 PM, Kulshrestha, Vipul via users 
<users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>> wrote:

Hi,

We recently shifted from openMPI 2.0.1 to 4.0.1 and are seeing an important 
behavior change with respect to above option.

We invoke mpirun as

% mpirun –output-filename <log directory>/app.log –np <n> <application command 
line>

With 2.0.1, the above produced <log directory>/app.log.<i> file for stdout of 
the application, where <i> is the rank of the process. However, with 4.0.1, the 
above produces <log directory>/app.log/1/rank.<i>/stdout

Is this intentional change? The documentation does not seem to indicate any 
expected changes in the behavior. How do I get 4.0.1 to get log files as seen 
in 2.0.1?

This was reported recently here:

     https://github.com/open-mpi/ompi/issues/7095

It looks like we changed this behavior quite some time ago, and neglected to 
update the documentation.  :-\

Further, earlier, mpirun had no output on stdout, except to indicate, when all 
the child process had completed. However, now the mpirun also spews out all the 
application stdout messages (from each rank process) on its stdout. How do I 
stop that?

Oh, did the prior behavior *only* output to the file and not to stdout/stderr?  
Huh.

I guess a workaround for that would be:

    mpirun  ... > /dev/null

--
Jeff Squyres
jsquy...@cisco.com<mailto:jsquy...@cisco.com>

Reply via email to