[mvapich-discuss] wrapping calls to polling functions in MVAPICH2

Alexander Breslow abreslow at cs.ucsd.edu
Mon Aug 12 16:29:56 EDT 2013


Hi Jeff,

The problem is that I don't want to explicitly time high-level functions
defined in mpi.h but low-level ones; in particular, I'm not directly
concerned about the duration of say an MPI_Send or MPI_Recv but what
percentage of total execution time was spent polling waiting to do useful
work for each MPI process.  For asynchronous calls such MPI_Isend, I assume
that this can be relatively easily captured by timing MPI_Wait and all its
derivatives.  However, I am also interested in timing the waiting that
occurs in blocking calls such as MPI_Recv.

I realize that this is likely highly implementation dependent, but I am
okay with that.

-Alex


On Mon, Aug 12, 2013 at 12:55 PM, Jeff Hammond <jeff.science at gmail.com>wrote:

> polling and profiling are different things.  your example is for
> profiling and PMPI is the right way to do that.  you should avoid
> reinventing the wheel and look at mpiP, TAU, etc. though.
>
> if you want to implement asynchrony via polling, then it would help if
> you gave a clear example of what you want in that respect.
>
> jeff
>
> On Mon, Aug 12, 2013 at 2:36 PM, Alexander Breslow <abreslow at cs.ucsd.edu>
> wrote:
> > Hi,
> >
> > I was wondering if there is a single low-level function within MVAPICH2
> that
> > implements the polling functionality.  I have seen that polling is
> > adjustable via the MV2 CM SPIN COUNT environment variable.  My goal is
> to be
> > able to time all spinning explicitly.
> >
> > If this spinning is implemented by a call to a single function F, I would
> > like to intercept all calls to that function, and redirect those calls to
> > another function G that times the duration of each invocation of F.
> >
> > G would be something like the following:
> >
> > G(args){
> >
> > t1 = get_time_ns();
> > F(args);
> > t2 = get_time_ns();
> > register(t2,t1);  // Enqueue for post processing
> >
> > }
> >
> > This seems feasible via the PMPI interface or by writing a library that
> uses
> > DYLD functionality if the spinning/polling function appears in the symbol
> > table of the respective MVAPICH2 object files.  If this is not possible,
> > could you please tell me which source files that I would have to modify
> in
> > order to achieve what I desire?
> >
> > Thanks in advance for your time,
> > Alex
> >
> >
> > _______________________________________________
> > mvapich-discuss mailing list
> > mvapich-discuss at cse.ohio-state.edu
> > http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
> >
>
>
>
> --
> Jeff Hammond
> jeff.science at gmail.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.cse.ohio-state.edu/pipermail/mvapich-discuss/attachments/20130812/46834bf5/attachment.html


More information about the mvapich-discuss mailing list