Next: Parallel arrays and collective
Up: Experiments with ``HPJava''
Previous: Derived data types and
The most comprehensive statement of the data parallel model of
computation is the High Performance Fortran standard
[13, 23]. That document is supposed to embody much of
the collective experience of the scientific parallel programming
community. Presumably, then, any attempt to incorporate data
parallelism into Java should build on the HPF model wherever possible.
The HPF definition consists of a large set of directives that can be
used to annotate a standard Fortran program, a small handful of
language extensions, and a library of new functions for operating on
arrays. An initial data-parallel Java may well be implemented through a
class-library. This library would assume the röles of the
directives and language extensions in HPF as well as the HPF library.
We will loosely distinguish two different levels at which a library
implementation of the HPF semantics can operate.
-
The first is the level of the so-called run-time libraries
[1, 8, 9, 6]. This kind of library
provides functions for scheduling and executing specific patterns of
collective communication already identified by a compiler (in the
HPF case) or else by an application programmer using the library directly.
Such a library may also provide functions for translating between
global subscripts and local, node-level subscripts--ie, for computing
the mapping of a distributed array into the address spaces of
individual processors.
-
Alternatively, a library can operate at a higher level that conceals
all aspects of data localization and transfer from the user. The only
responsibility of the user is to specify the distribution format of
arrays when they are declared. Subsequently the user just tells the
library to do particular operations on particular distributed arrays.
It is left to the library to work out whether or not a communication is
implied. In effect the library is operating at the same level as
the HPF language. An example of such a library is A++/P++
[26].
In either case a class library version is likely to include
classes to describe the elements of the HPF data model, such as
processor arrangements and the distributed arrays themselves.
Next: Parallel arrays and collective
Up: Experiments with ``HPJava''
Previous: Derived data types and
Geoffrey Fox, Northeast Parallel Architectures Center at Syracuse University, gcf@npac.syr.edu