Not until next week's meeting, but I would guess we would simply prepend the rank. The issue will be how often to tag the output since we write it in fragments to avoid blocking - so do we tag the fragment, look for newlines and tag each line, etc.
We'll figure something out... ;-) On 7/11/08 7:52 AM, "Mark Dobossy" <mdobo...@princeton.edu> wrote: > That sounds great Ralph! Do you have any more details about how the > process rank would be added? > > And thanks for the other suggestions from Ashley and Galen. Both > methods look like they would work great, and are probably a little > nicer than my current setup. > > -Mark > > > On Jul 11, 2008, at 9:46 AM, Ralph H Castain wrote: > >> Adding the ability to tag stdout/err with the process rank is fairly >> simple. >> We are going to talk about this next week at a design meeting - we >> have >> several different tagging schemes that people have requested, so we >> want to >> define a way to meet them all that doesn't create too much ugliness >> in the >> code. >> >> Will get back to you on this one. Regardless, the earliest version >> it could >> show up in would be 1.3 (which is a tight question given current >> release >> plans). >> >> >> On 6/24/08 9:36 AM, "Ashley Pittman" <apittman@concurrent- >> thinking.com> >> wrote: >> >>> >>> If you are using the openmpi mpirun then you can put the following >>> in a >>> wrapper script which will prefix stdout in a manner similar to what >>> you >>> appear to want. Simply add the wrapper script before the name of >>> your >>> application. >>> >>> Is this the kind of thing you were aiming for? I'm quite surprised >>> mpirun doesn't have an option for this actually, it's a fairly common >>> thing to want. >>> >>> Ashley Pittman. >>> >>> #!/bin/sh >>> >>> $@ | sed "s/^/\[rk:$OMPI_MCA_ns_nds_vpid,sz: >>> $OMPI_MCA_ns_nds_num_procs >>> \]/" >>> >>> On Tue, 2008-06-24 at 11:06 -0400, Mark Dobossy wrote: >>>> Lately I have been doing a great deal of MPI debugging. I have, >>>> on an >>>> occasion or two, fallen into the trap of "Well, that error MUST be >>>> coming from rank X. There is no way it could be coming from any >>>> other >>>> rank..." Then proceeding to debug what's happening at rank X, >>>> only to >>>> find out a few frustrating hours later that rank Y is throwing the >>>> output (I'm sure no one else out there has fallen into this >>>> trap). It >>>> was at that point, I decided to write up some code to automatically >>>> (sort of) output the rank and size of my domain with every >>>> output. I >>>> write mostly in C++, and this is what I came up with: >>>> >>>> #include <iostream> >>>> #include <mpi.h> >>>> >>>> std::ostream &mpi_info(std::ostream &s) { >>>> int rank, size; >>>> rank = MPI::COMM_WORLD.Get_rank(); >>>> size = MPI::COMM_WORLD.Get_size(); >>>> s << "[rk:" << rank << ",sz:" << size << "]: "; >>>> return s; >>>> } >>>> >>>> Then in my code, I have changed: >>>> >>>> std::cerr << "blah" << std::endl; >>>> >>>> to: >>>> >>>> std::cerr << mpi_info << "blah" << std::endl; >>>> >>>> (or cout, or file stream, etc...) >>>> >>>> where "blah" is some amazingly informative error message. >>>> >>>> Are there other ways people do this? Simpler ways perhaps? >>>> >>>> -Mark >>>> _______________________________________________ >>>> 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 > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users