next up previous contents
Next: Environments for Parallel and Up: Introduction Previous: Features of HPJava   Contents

Organization of the Dissertation

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 up previous contents
Next: Environments for Parallel and Up: Introduction Previous: Features of HPJava   Contents
Bryan Carpenter 2004-06-09