On Thu, 2006-08-03 at 22:56 +0200, Oleg Morajko wrote:
> Hi there,
>
> I am looking for a general solution that would allow for attaching
> extra informacion to every MPI message sent and access this data after
> receive. I mean a kind of out-out-bound (or urgent) data as in TCP/IP
> protocol. The goal is to track sender callpoint address in a receiver
> process in order to correlate sends and receives down to file/line in
> source code.
>
> The requirement is not to modify a MPI-based application source code,
> but rather modify MPI implementation (or create a kind-of wrapper for
> MPI calls) that could do that. It's enough to pass just one integer
> value (tag field cannot be used for that purpose). I'm using dynamic
> instrumentation (DynInst) and have the ability to introduce run-time
> modifications. The ideal solution would be the ability add some extra
> integer to message envelope (in a reserved field for example) but
> without recompiling the MPI implementation - so that 2 implementations
> (instrumented one and normal one) could cooperate without problems.
>
> Any ideas how to do that?
With LAM/MPI, it's not possible to do what you're asking -- there's no
place to stash a single integer for each message. One possible option
would be to use the profiling layer to intercept the send/receive calls
and create a ghost communicator inside the profiling layer and send the
out of band data on that communicator (if you always send with the same
arguments (except for communicator), you should be able to make things
work. You'll have to be a bit careful with receives and anysource, but
I think it could be made to work.
Hope this helps,
Brian
|