[comp.parallel] Statistics on parallel programs

sam@lfcs.edinburgh.ac.uk (S. Manoharan) (05/26/89)

I am interested in getting some statistics on real parallel
programs. Particularly, given a dependency graph of a
parallel program, I want to know:
   1) the times spent in executing the nodes, and
   2) the amounts of information (say, in bytes) transmitted to 
	 the successor nodes upon completion.
A compiler can be made to generate such information, at least
for the programs that do not depend on runtime data.

I would like to know whether someone could help me getting
data of this kind, or a compiler/parser to generate such data.
All pointers are welcome.
Thanks.

eugene@eos.arc.nasa.gov (Eugene Miya) (05/31/89)

In article <5605@hubcap.clemson.edu> sam@lfcs.edinburgh.ac.uk (S. Manoharan) writes:
>I am interested in getting some statistics on real parallel
>programs.

Wow!  You aren't asking too much ;).  Lots of open research questions
here (what constitutes a stat? do you want the data flow graph?
the control flow graph, dependences, etc.).  A Lot of stuff and we
really don't know how to interpret it either.  You should post your
findings (be they negative or positive) for the general net.  Good luck!

--eugene

cline@sun.soe.clarkson.edu (Marshall Cline) (06/09/89)

In article <5605@hubcap.clemson.edu> sam@lfcs.edinburgh.ac.uk (S. Manoharan) writes:
>I am interested in getting some statistics on real parallel
>programs. Particularly, given a dependency graph of a
>parallel program, I want to know:
>   1) the times spent in executing the nodes, and
>   2) the amounts of information (say, in bytes) transmitted to 
>	 the successor nodes upon completion.
>A compiler can be made to generate such information, at least
>for the programs that do not depend on runtime data.

Check out last month's (May 1989) IEEE Transactions on Computers:
	Helmar Burkhart & Roland Millen,
	"Performance-Measurement Tools in a Multiprocessor Environment",
	IEEE Trans Computers, 38,5 (May 1989), 725-737.

The authors describe a multiprocessor (as opposed to multicomputer)
environment for which they have built/are building performance measuring
tools.  The introduction is quite long, such that the paper doesn't assume
a vast amount of previous knowledge on the subject.  Their tools measure
the performance loss due to a number of factors, including contention over
the system bus (remember: theirs is a multi_PROCESSOR_ system), idle
processor loss, access conflict over shared resources, access avoidance
even in the absence of conflict requires additional overhead, "braking"
loss (time spent waiting for other processors to halt when I've already
finished the problem), etc, etc.

Hope this helps!
Marshall

--
	________________________________________________________________
	Marshall P. Cline	ARPA:	cline@sun.soe.clarkson.edu
	ECE Department		UseNet:	uunet!sun.soe.clarkson.edu!cline
	Clarkson University	BitNet:	BH0W@CLUTX
	Potsdam, NY  13676	AT&T:	(315) 268-6591