Subject: Profilers etc.

From: [email-masked] (James Cownie)
Date: Mon, 4 Jan 93 14:32:28 GMT

Gentlepeople,

I have an implementation issue which I would like to raise in the MPI
forum, since it is unclear where it fits into the sub-committee
structure I have mailed to both mpi-pt2pt and mpi-lang. Apologies to
those of you who receive this message twice.

Issue
=====
The major objective of MPI1 is to achieve portability of applications.
This has major benefits for us all (not least in legitimising and
therefore growing the MPP marketplace). 

One of the benefits which it would also be nice to achieve would be
the wide availability of different tools which support programming in
the MPI1 model. The most immediately obvious such tools (to me at
least !) are

1) HPF to Fortran + MPI1 translators
2) Performance monitoring/tuning tools
3) Debuggers

Support for the first is easy (since it just requires what we're
already doing). 

Portable support for the second is not so trivial, since the
collection of useful performance information is much more intrusive.

Portable support for the third is harder still, and I won't discuss it
further. 

Options
=======
We have various possible options which we can take.

1) Ignore the problem
   Provide no support for portable performance monitoring tools, and
   leave each tool provider with a large porting problem.

   I don't like this solution, it loses some of the benefit of the
   standard, which should be attracting people to build tools.

2) Document specific implementation hooks as part of MPI1. 
   In effect these would be callbacks from the library to profiling
   code which could then do whatever it liked.

3) As 2, but without REQUIRING that a conforming implementation
   provide the functions. They're there as a recommendation, rather
   than being mandatory. 

I think we should be concerned about this, and I'd like us at least to
make some recommendation. Personally I'd probably implement two
separate interface to the library, one of which provided the hooks,
and the other of which didn't so that you don't pay the cost of
checking the profiling hooks unless you asked to.

Of course even if we do nothing it's not too hard to escape (using
horrible macros) in C, but Fortran doesn't always have macros, so a
properly specified internal solution is definitely preferable.

Thoughts ???
Flame me at Dallas. I'm travelling tomorrow. When are we having a
meeting in Europe ???

-- Jim
James Cownie 
Meiko Limited
650 Aztec West
Bristol BS12 4SD
England

Phone : +44 454 616171
FAX   : +44 454 618188
E-Mail: [email-masked] or [email-masked]