From: Harvey Richardson <Harvey.Richardson@uk.sun.com>
Newsgroups: comp.parallel.mpi
Subject: MPI Profiling Interface hassle
Date: Mon, 14 Jun 1999 15:24:00 +0100
Organization: Sun Microsystems
Message-Id: <37651080.BE3BD2EC@uk.sun.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Xref: ukc comp.parallel.mpi:5194


I would welcome comments on how one is supposed to use the MPI profiling
interface to keep counts of message sizes.

I have a profiling library which uses the MPI profiling interface.
It can collect statistics on bytes transferred for the point-to-point
routines (it has more functionality but that is not relevant to
this discussion).

The problem I have is with attributing communication to the 
nonblocking operations.  For I*send operations I keep counts
per routine.  For Irecv I can record the count argument but
this may not match what is received.

So the way forward is to profile the Wait/Test routines. However,
this is where the problem arises since there is no way to
distinguish between send and receive unless I record all request
object handles from I*send and Irecv calls.

Only for a receive can I get a count.

It would have been helpful if MPI had allowed a way for a profile
library to simply test if a request relates to a receive.  Without
this you probably need to store all the send request handles.

Harvey

