Next: The HPJava Language
Up: Collective Communication for the
Previous: Collective Communication for the
HPJava [5,9,10] is the authors' environment
for parallel programming--especially data-parallel scientific
programming--in Java. It includes a set of syntax extensions to Java
for dealing with multi-dimensional distributed arrays, plus a set of
communication libraries. The HPJava language has been described in several
earlier papers. So has our message passing library mpiJava [7],
which can be used for low-level SPMD programming in HPJava. This paper will
concentrate more on the high-level collective library that is currently
the preferred mechanism for communicating in data-parallel Java programs.
This library, called Adlib [11,15], was originally
implemented in C++ and used in compilation of High Performance Fortran
programs. In HPJava it is made available as an application level library.
In this paper we will illustrate how Adlib can be used as an
application-level communication library in various example programs, and
describe how it can naturally be implemented in terms of the primitives
of the HPJava language. We also introduce a low-level Java messaging
platform called mpjdev, which has the potential to be used as a common
API for implementing libraries like Adlib, and mpiJava and its relatives.
Section 2 briefly reviews the HPJava language and
includes a few illustrative programming fragments. As further motivation
for use of this kind collective communication in HPJava, Section
3 describes a larger scale multigrid application
using HPJava and Adlib. Section 4 discusses various
issues in the object-oriented Java implementation of
the Adlib communication schedules. Section 5 briefly
describes features of the lower-level API mpjdev.
Some benchmark results are discussed in Section 6.
Conclusions are drawn together in Section 7.
Next: The HPJava Language
Up: Collective Communication for the
Previous: Collective Communication for the
Bryan Carpenter
2003-01-23