weaver@ncar.UCAR.EDU (Robert P. Weaver) (10/30/90)
I am at the University of Colorado. Our group works with
languages designed to support numerical computation on distributed
memory machines. In particular, we have been working with static,
array-based, data-parallel languages. I have been looking at extending
some of our ideas to "dynamic" parallel languages for numerical
computation -- that is, languages where some aspect of the virtual
parallelism (the parallelism that the programmer perceives) is
determined or changes during the execution of the program.
In particular, I have been exploring the idea of using a
pointer based structure (graph of some kind) as the basic
"distributed" data structure and providing a virtual processor for
every node in the graph (and some more complicated ideas along these
lines). These structures are dynamic (using my definition) in two
senses -- you don't know the size of your virtual machine until
run-time because it is data dependent, and we want to be able to add
nodes, delete nodes, and change connections during execution.
What I am looking for are actual applications that might use
pointer based data structures as a basis for their program. Real
applications are (in my opinion) a far better sieve to run your
preliminary ideas through than the toy applications that we may create
in isolation. I have looked at a few in C and in FORTRAN (I translate
these into C so I actually have pointer based structures) ranging from
3000 to 30000 lines of code.
Most useful would be applications of this nature already
parallelized for distributed memory machines. But I am also
interested in looking at some designed for shared memory machines or
simply serial code. I find it most helpful if I have (1) some
high-level description of the program, (2) access to the actual code,
and (3) some one I can ask a few questions of if I can't figure it all
out myself. If anyone has such a beast and is willing to share it,
send me mail at weaver@boulder.colorado.edu.
Thanks in advance.
Bob Weaver