next up previous
Next: The HPJava Language Up: Collective Communication for the Previous: Collective Communication for the

Introduction

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 up previous
Next: The HPJava Language Up: Collective Communication for the Previous: Collective Communication for the
Bryan Carpenter 2003-01-23