As probably most of you know, we have been actively rewriting the I/O
forwarding subsystem to reduce its complexity (so it is easier to
maintain), and to enable some new features. This work has been
completed and will be committed to the trunk later today.
NOTE: it will -not- be included in the 1.3 distribution, but is
intended for 1.4.
Some of the new features include:
1. ability to tag output using process name and stream (stdout,
stderr) using a new mpirun cmd line option --tag-output
2. ability to direct stdin to any specified rank, or to all ranks, or
to no ranks using a new mpirun cmd line option --stdin. This defaults
to rank=0t o preserve today's behavior
3. addition of a new MPI_Info key "ompi_stdin_target" that allows
comm_spawn'd jobs the same ability as described in #2. This defaults
to "none" to preserve today's behavior
4. a new tool "orte-iof" that takes cmd line options indicating the
pid of the mpirun you want to get stdout/err from, and the rank of the
procs from which you want that info. The tool then connects to that
mpirun and prints the requested info to its own stdout/err. Again, the
--tag-output cmd line option is available.
You will hopefully find the code much less complex than the earlier
version. In addition, we have completely eliminated IOF-related wireup
communications. We retain flow-control for stdin to help constrain
orted memory footprint - this is now done via an xon/xoff protocol as
opposed to the prior technique of exchanging an "ack" after every
I have tested the new IOF on several systems and it appears to be
functioning fine. However, I do not promise that we won't see a hiccup
or two once this is introduced into the system.
Please keep me advised of any issues you observe. Hopefully, this will