mpirun has an option for this (check the mpirun man page):
Tag each line of output to stdout, stderr, and
stddiag with [jobid, rank]<stdxxx> indicating the process jobid and
rank that generated the
output, and the channel which generated it.
Using this you can filter the entire output by grepping for the required rank.
Another possibility is to use the option
-xterm, --xterm <ranks>
Display the specified ranks in separate xterm windows.
The ranks are specified as a comma-separated list of ranges, with a -1
A separate window will be created for each specified
rank. Note: In some environments, xterm may require that the
executable be in the users
path, or be specified in absolute or relative terms.
Thus, it may be necessary to specify a local executable as "./foo"
instead of just "foo".
If xterm fails to find the executable, mpirun will hang,
but still respond correctly to a ctrl-c. If this happens, please
check that the exe-
cutable is being specified correctly and try again.
That way you can open a single terminal window for the process you are
On Thu, May 20, 2010 at 1:28 AM, Sang Chul Choi <goshng_at_[hidden]> wrote:
> I am wondering if there is a way to run a particular process among multiple processes on the console of a linux cluster.
> I want to see the screen output (standard output) of a particular process (using a particular ID of a process) on the console screen while the MPI program is running. I think that if I run a MPI program on a linux cluster using Sun Grid Engine, the particular process that prints out to standard output could run on the console or computing node. And, it would be hard to see screen output of the particular process. Is there a way to to set one process aside and to run it on the console in Sun Grid Engine?
> When I run the MPI program on my desktop with quad cores, I can set aside one process using an ID to print information that I need. I do not know how I could do that in much larger scale like using Sun Grid Engine. I could let one process print out in a file and then I could see it. I do not know how I could let one process to print out on the console screen by setting it to run on the console using Sun Grid Engine or any other similar thing such as PBS. I doubt that a cluster would allow jobs to run on the console because then others users would have to be in trouble in submitting jobs. If this is the case, there seem no way to print out on the console. Then, do I have to have a separate (non-MPI) program that can communicate with MPI program using TCP/IP by running the separate program on the master node of a cluster? This separate non-MPI program may then communicate sporadically with the MPI program. I do not know if this is a general approach or a peculiar way.
> I will appreciate any of input.
> Thank you,
> Sang Chul
> users mailing list