Andrew L Wendelborn
Dr Andrew L Wendelborn
Department of Computer Science
University of Adelaide, SA 5005
Distributed high performance computing
Parallel (functional) programming
Data flow computation
Programming language design
Some current research
[This section is under development]
Distributed Process Networks Project
(Process networks (Kahn semantics) and metacomputing)
This is work carried out currently with my PhD student, Darren Webb, and
a visiting INRIA researcher, Julien Vayssiere.
To give the general idea, here is an abstract
of a talk I've given recently at INRIA Sophia Antipolis, Uni California
at Berkeley, Uni of Southern California, and at the Workshop on Java for
Parallel and Distributed Computing (IPPS, Puerto Rico, Apr 1999).
The system described above was implemented by Darren as his Honours
project (1997-98). It is now called PAGIS (the name Jade was taken!).
We are now refining the implementation. We're looking especially at
representation of process and channel, optimal (dynamic) placement in the
distributed system of channel data structures, and scheduling aspects.
We use Kahn's process network model as the formal foundation of our work
-- we utilize a variety of implementation strategies; by ensuring that
each is consistent with this semantics, we can be confident that overall
behaviour is independent of implementation strategy. We are undertaking
experiments to compare the structure, behaviour and performance of implementations
using standard RMI, and using the ProActive
Java library for parallel, distributed, and concurrent computing.
Some of the more general issues we are exploring:include:
Here is a recent Summary of Progress and Directions.
reconfiguration of a PN to adapt to environmental factors (such as presence
of high speed network links);
hierarchy in PNs (for example, a node of a PN representing a metacomputing
application might itself be a PN, but with a different "computational engine");
modes of evaluation of the PN, following some of my earlier work on data-driven,
demand-driven, and hybrid evaluation schemes, including the use of lenient
(non-strict data driven) structures to represent not-yet-computed portions
of a result, especially comparison of this notion with the concept of "future"
JavaF: value-oriented programming in Java
A Java interface beneath which objects represent values, with copy semantics;
we use reification to enforce such behaviour transparently. JavaF programs
are (compared to full Java) more amenable to analysis, optimization and
highly parallel execution; we hope that this will facilitate high performance
computation in Java.
more to follow ...