97 строки
3.3 KiB
Plaintext
97 строки
3.3 KiB
Plaintext
This should be in a design document but....
|
|
|
|
Random thoughts on stdio redirection.
|
|
|
|
- stdin redirection should be buffered (i.e. fragment-based). stdin
|
|
should go to process 0. Any need to broadcast stdin?
|
|
- stdout/stderr also buffered. Fragment headers: to indicate origin,
|
|
and to handle out of order delivery in future distributed situations.
|
|
- pipes or ptys from ompid to processes. Fairly portable pty code is
|
|
in src/util/pty.c. Goal: wrap up selection of pipes vs ptys in a
|
|
transparent fashion for easy selection at compile- or run-time (MCA
|
|
parameter-based I guess). Note ptys are typically necessary when stdin
|
|
is a tty so that interactive input is possible.
|
|
- stdin redirection: base this on LA-MPI's rts/cts fragment-based
|
|
approach.
|
|
- Consider basing ompid -> mpirun stdout/stderr redirection on FTMPI
|
|
libcio/sio ported to use oob framework (tcp component for non-blocking
|
|
operation).
|
|
|
|
|
|
|
|
In this directory:
|
|
|
|
libcio/sio are the client and server parts of the FTMPI stdout and
|
|
stderr I/O forwarding.
|
|
|
|
snipe_lite is a close analog of our OOB
|
|
|
|
|
|
|
|
|
|
|
|
Explanatory email from Thara:
|
|
|
|
From: angskun@cs.utk.edu
|
|
Subject: Re: libsio, libcio
|
|
Date: August 13, 2004 13:11:14 MDT
|
|
To: ddd@lanl.gov
|
|
Cc: fagg@cs.utk.edu
|
|
|
|
Dear David,
|
|
|
|
Everything in snipe_lite directory is for basic connection management
|
|
in FT-MPI. The libcio/sio use the snipe_lite for communication.
|
|
You may replace it with socket or OpenMPI communication library.
|
|
|
|
cioapp.c : client/console/ application example
|
|
sioapp.c : server/daemon application example
|
|
libcio.*, libsio.* : the library and include file
|
|
|
|
Example:
|
|
*** client/console machine ***
|
|
[angskun@torc0 ~/ioapp]$ ./cioapp 3
|
|
Port is 6781
|
|
[0:stdout] Hi world, my name is foo 1/5 [bar code is 0 (pid 19409)]
|
|
Hi world, my name is foo 2/5 [bar code is 0 (pid 19409)]
|
|
Hi world, my name is foo 3/5 [bar code is 0 (pid 19409)]
|
|
Hi world, my name is foo 4/5 [bar code is 0 (pid 19409)]
|
|
Hi world, my name is foo 5/5 [bar code is 0 (pid 19409)]
|
|
[1:stdout] Hi world, my name is foo 1/5 [bar code is 1 (pid 19410)]
|
|
Hi world, my name is foo 2/5 [bar code is 1 (pid 19410)]
|
|
Hi world, my name is foo 3/5 [bar code is 1 (pid 19410)]
|
|
Hi world, my name is foo 4/5 [bar code is 1 (pid 19410)]
|
|
Hi world, my name is foo 5/5 [bar code is 1 (pid 19410)]
|
|
[2:stdout] Hi world, my name is foo 1/5 [bar code is 2 (pid 19411)]
|
|
Hi world, my name is foo 2/5 [bar code is 2 (pid 19411)]
|
|
Hi world, my name is foo 3/5 [bar code is 2 (pid 19411)]
|
|
Hi world, my name is foo 4/5 [bar code is 2 (pid 19411)]
|
|
Hi world, my name is foo 5/5 [bar code is 2 (pid 19411)]
|
|
[angskun@torc0 ~/ioapp]$
|
|
|
|
*** server / daemon machine ***
|
|
$./sioapp torc0 6781 3
|
|
|
|
Best Regards,
|
|
Thara
|
|
|
|
----- Original Message -----
|
|
From: "David Daniel" <ddd@lanl.gov>
|
|
To: "THara Angskun" <angskun@cs.utk.edu>
|
|
Cc: "Graham E Fagg" <fagg@cs.utk.edu>
|
|
Sent: Friday, August 13, 2004 2:09 PM
|
|
Subject: libsio, libcio
|
|
|
|
Thara
|
|
|
|
I'm looking at using libcio/sio as a starting point for standard I/O
|
|
redirection in Open MPI.
|
|
|
|
Graham mentioned that you had some tests for testing them on their own.
|
|
If you could let me have a copy that would be very helpful.
|
|
|
|
Thanks, David
|
|
--
|
|
David Daniel <ddd@lanl.gov> +1-505-667-0883
|
|
Advanced Computing Laboratory, LANL, MS-B287, Los Alamos NM 87545, USA
|