Next: Environments for Parallel and
Up: Introduction
Previous: Features of HPJava
Contents
This dissertation discusses in detail a particular environment under
development at Florida State University and Indiana University called HPJava.
The idea behind HPJava is not only to use Java for
scientific computing. It is also to demonstrate a specific programming model
for parallel computing that we call the HPspmd model. The HPspmd model
itself is independent of the choice of Java as base language, but the two
go together well.
One goal of this dissertation is as a foundation for research and
development on the HPJava environment. In particular the dissertation
concentrates on issues related to the development of efficient
run time support software for a class of parallel languages extending
an underlying object-oriented language.
So the dissertation emphasizes aspects most relevant to this
topic--aspects like high performance interprocessor communication.
A review of interesting related research and systems is given first.
We will be especially interested in technologies developed in
recent years by participants of bodies like the Java Grande Forum and the
Global Grid Forum.
We start with reviews of general parallel and distributed computing
environments for Java including JavaParty, Javelin, and Jini.
We discuss communication approaches relevant to parallel
computing including Java RMI and Message passing libraries for Java.
As an example of distributed computing, we review Peer-to-Peer (P2P)
computing and Java enterprise computing. We review SETI@home as a
characteristic example of P2P. As examples of P2P in Java, we briefly review
Parabon, and discuss JXTA in more detail. We also briefly review
contemporary, Java-specific
enterprise distributed computing technology, like the Java Message Service
and Enterprise JavaBeans.
Java as language support for parallel and scientific computing is compared with
C++ and C#.
The dissertation continues with the HPJava design and its features.
Motivation of HPJava and its syntax features are described in this chapter.
An existing runtime library, mpiJava, is also discussed.
The mpiJava library, an object-oriented Java interface to MPI, has been
developed as part of HPJava. Its usage in HPJava will be described.
Discussion of detailed detailed implementation issues for our high-level
communication library follows.
New syntax features of HPJava omitted from previous chapters are also
illustrated in this chapter.
Implementation of a characteristic collective communication function is
described in depth.
Complete API of Adlib library methods are presented in an appendix.
In this appendix we describes complete API, effect, pre-requirements, and
restrictions of each method in the Adlib library.
Detailed description of a low-level communication library, mpjdev, is follows.
We start with requirements of mpjdev. Its Message buffer API and
communication API are described. We describe how a message will be formatted,
sent, and received among the processes.
Four different implementations of mpjdev are also described.
The following chapter presents applications and analyzes performance of HPJava
programs.
A full application of HPJava is discussed first
to illustrate how HPJava can be used as a tool for complex problems.
Some partial differential equations are developed and analyzed for
the performance using HPJava.
We describe computational fluid dynamics simulation into a grapical user
interface using HPJava.
We also have performance test and evaluation of a platform-specific, LAPI-based
implementation of the libraries.
The final chapter, the conclusion and the directions for future work are
discussed.
Next: Environments for Parallel and
Up: Introduction
Previous: Features of HPJava
Contents
Bryan Carpenter
2004-06-09