On Jan 26, 2009, at 1:20 PM, jody wrote:
Hi Brian
I would rather not have mpirun doing an xhost command - I think
that is
beyond our comfort zone. Frankly, if someone wants to do this, it
is up to
them to have things properly setup on their machine - as a rule, we
don't
mess with your machine's configuration. Makes sys admins upset :-)
So what you mean is that the user must do the xhost before using the
xceren feature?
If not, how else can i have xterms from another machine display
locally?
That is correct. I don't think that is -too- odious a requirement -
I'm just not comfortable modifying access controls from within OMPI
since xhost persists after OMPI is done with the job.
However, I can check to ensure that the DISPLAY value is locally
set and
automatically export it for you (so you don't have to do the -x
DISPLAY
option). What I have done is provided a param whereby you can tell
us what
command to use to generate the new screen, with it defaulting to
"xterm -e".
I also allow you to specify which ranks you want displayed this way
- you
can specify "all" by giving it a "-1".
Cool!
Will hopefully have this done today or tomorrow. It will be in the
OMPI
trunk repo for now. I'll send out a note pointing to it so people
can check
all these options out - I would really appreciate the help to
ensure things
are working across as many platforms as possible before we put it
in the
official release!
I'll be happy to test these new features!
Jody
Hi
I have written some shell scripts which ease the output
to an xterm for each processor for normal execution(run_sh.sh),
gdb (run_gdb.sh), and valgrind (run_vg.sh).
In order for the xterms to be shown on your machine,
you have to set the DISPLAY variable on every host
(if this is not done by ssh)
export DISPLAY=myhost:0.0
on myhost you may have to allow access:
do
xhost +<host-name>
for each machine in your hostfile.
Then start
mpirun -np 12 -x DISPLAY run_gdb.sh myApp arg1 arg2 arg3
I've attached these little scripts to this mail.
Feel free to use them.
I've started working on my "complicated" way, i.e.
wrappers redirecting output via sockets to a server.
Jody
On Sun, Jan 25, 2009 at 1:20 PM, Ralph Castain <r...@lanl.gov> wrote:
For those of you following this thread:
I have been impressed by the various methods used to grab the
output from
processes. Since this is clearly something of interest to a broad
audience,
I would like to try and make this easier to do by adding some
options to
mpirun. Coming in 1.3.1 will be --tag-output, which will
automatically
tag
each line of output with the rank of the process - this was
already in
the
works, but obviously doesn't meet the needs expressed here.
I have done some prelim work on a couple of options based on this
thread:
1. spawn a screen and redirect process output to it, with the
ability to
request separate screens for each specified rank. Obviously,
specifying
all
ranks would be the equivalent of replacing "my_app" on the mpirun
cmd
line
with "xterm my_app". However, there are cases where you only need
to see
the
output from a subset of the ranks, and that is the intent of this
option.
2. redirect output of specified processes to files using the
provided
filename appended with ".rank". You can do this for all ranks, or a
specified subset of them.
3. timestamp output
Is there anything else people would like to see?
It is also possible to write a dedicated app such as Jody
described, but
that is outside my purview for now due to priorities. However, I
can
provide
technical advice to such an effort, so feel free to ask.
Ralph
On Jan 23, 2009, at 12:19 PM, Gijsbert Wiesenekker wrote:
jody wrote:
Hi
I have a small cluster consisting of 9 computers (8x2 CPUs, 1x4
CPUs).
I would like to be able to observe the output of the processes
separately during an mpirun.
What i currently do is to apply the mpirun to a shell script
which
opens a xterm for each process,
which then starts the actual application.
This works, but is a bit complicated, e.g. finding the window
you're
interested in among 19 others.
So i was wondering is there a possibility to capture the
processes'
outputs separately, so
i can make an application in which i can switch between the
different
processor outputs?
I could imagine that could be done by wrapper applications which
redirect the output over a TCP
socket to a server application.
But perhaps there is an easier way, or something like this
alread does
exist?
Thank You
Jody
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
For C I use a printf wrapper function that writes the output to a
logfile.
I derive the name of the logfile from the mpi_id. It prefixes
the lines
with
a time-stamp, so you also get some basic profile information. I
can send
you
the source code if you like.
Regards,
Gijsbert
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
<
run_gdb
.sh
>
<
run_vg.sh><run_sh.sh>_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users