From: dougger@ERC.MsState.Edu (Douglas Meyer)
Newsgroups: fj.mail-lists.parallel
Subject: analysis tools for parallel algorithms/programs... HELP PLEASE!!!
Date: 20 Aug 92 12:23:33 GMT
Distribution: fj

This is Douglas Meyer at the Engineering Research Center for
Computational Field Simulation at Mississippi State University.  I'm
currently involved in researching methods for evaluating parallel
algorithms and programs for basic performance issues.  Please bear
with me as I describe this effort.  Please forgive the length of this
post.  I'm constantly accused of not being brief. :)

I'm currently trying to find simulation/analysis tools which will
allow parallel algorithm/program developers cull through a number of
solution options without:

  1.  having to write codes for real machines
  2.  having to write complete codes (ie. to shorted the culling 
         process, it would be preferable to write skeletal codes
         which describe the general communications and computation
         behaviors)

The focus is intended to be a rough, qualitative analysis of
"skeletal" programs (programs that do not have the mathematical guts,
but rather approximate the guts with a library function call which
simply indicates how many floating point operations would be done in
critical sections, etc.).  These analyses are only required to account
for very basic, first-order effects, and would probably only permit
the engineer to eliminate those algorithms that are blatantly bad.
Metrics of interest would be things like CPU time, "Real" time, and
average message latency.  The focus is on the SPMD paradigm, with
message passing constrained to a family of "global" or "systematic"
communications patterns (eg. everybody send to the right, everybody
broadcast, global sum, etc. such as is found in the Intel iPSC
library).

So you can see, that these answers are not terribly detailed, and the
people running this project don't want detailed answers.. just answers
that provide general guidance.  The individual who "invented" this
project thought that it would be nice for Aerospace and Computational
Engineers to be able to use what boils down to a parallel machine
simulator to "guesstimate" the performance of an algorithm.  By doing
this one could cull out the programs which are obviously pathetic.

-----------------OK, description over----------------------------

I am convinced, through the little bit of reading and research I've
done in the last couple days that there are a fair number of tools
already developed and reasonably mature.  PVM and HeNCE clearly are
for running codes on real machines, Express is similar although some
of its analysis abilities are close.  As far as I can tell, they are
more complex (and less speicific) than what is needed.  It may be like
killing an ant with a ICBM.  (So motivating their use may be tough.)

Reading a paper on Pablo (The Pablo Performance Analysis Environment)
pointed out some important facts about motivating the user, and
providing extensibility and usefulness.  I am convinced that tools
exist which either already do what we need, or that our need requires
re-thinking.  There is a sensibility to the Pablo approach which is
very appealing.  I have a difficult time justifying asking algorithm
developers to learn to use a tool to write very simple parallel
algorithms for a "simulation tool" (which would take as long to write
for a real machine) only to learn qualitatively about them (and that
only roughly) so that they can eliminate a few really awful choices
(which would probably be intuitively obvious after getting some
experience) and then being forced to code all the others for the real
machine to figure out what's best.  It seems superfluous right now.

So what I'm wondering, from all of you interested folks (and maybe
this is also a worthy comp.parallel philosophical discussion) is:

  - Are you aware of any tools currently available which will
    perform the simple tasks we require?  

  - What about the Pablo/Picasso stuff - do you think that it has
    merit for us?  We have been involved in writing a parallel
    object-oriented Fortran.... how difficult would it be to
    incorporate Pablo (or other intrusive performance monitoring
    devices) into our portable parallel environment?

  - In general, what is the utility of playing with very basic
    algorithms in a simulated environment versus just writing the
    code for a real parallel machine?


I deeply appreciate you thoughts, advice, and direction.

--
Douglas Brent Meyer
Research Assistant
Engineering Research Center for Computational Field Simulation
Box 6176
Mississippi State, MS  39759
                                    "In short, there are three things
Office: (601)-325-2477               that last:  faith, hope and love; 
FAX:    (601)-325-7692               and the greatest of these is love."

E-Mail Address:  dougger@erc.msstate.edu