PCRC Home Page
Partners
|
|
NPAC
Maryland
Indiana
Rochester
Texas, Austin
CSC
Rice
Florida
|
PCRC at NPAC
|
|
Kernel runtime
HPF compiler
HPJava/mpiJava
WebTop computing
Team
|
Documents
Software
|
Approach
The Parallel Compiler Runtime Consortium includes several leading
research groups working on parallel runtime systems and compilers.
Most partners brought into the project pre-existing software for
run-time management of communication and computation in data parallel
languages. Such libraries have disparate representations of
distributed data, but all provide methods for partitioning and
accessing array elements or remapping arrays. They all make some
optimizations for reducing data movement costs, such as
message-blocking, collective data movement, message coallescing,
aggregration, and so on.
In the course of the project new runtime software packages have been
developed. The NPAC kernel runtime is built on technologies pioneered
in the earlier packages, founded on a common descriptor for distributed
arrays, and captured in an object-oriented framework. The kernel
library can be called from various languages (currently Fortran, C++
and Java) through language-specific interfaces. Three high-performance
language translators that use this runtime software exist or are
under active development. A separate package developed at Maryland
supports interoperability between pre-existing libraries by allowing
distributed arrays to be transferred seamlessly from one package to
another. Other partners have developed run-time libraries for more
specific problem areas.
In the later phases of the project the workplan was strongly influenced
by the emergence of Java. Early in 1996, participants of the
project issued a draft white paper on the implications of Java for
HPCC, and subsequently organized a series of workshops on the theme of
Java for Computational Science and Engineering. This series spawned
the Java Grande Forum -- a group of academic and industrial partners
aiming to promote Java standards for communication and compute
intensive applications.
|