Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Handling output of processes
From: jody (jody.xha_at_[hidden])
Date: 2009-01-26 15:20:42


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?
>
> 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 <rhc_at_[hidden]> 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
>>>>> users_at_[hidden]
>>>>> 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
>>>> users_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>
>> <run_gdb.sh><run_vg.sh><run_sh.sh>_______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>