next up previous contents
Next: Processes and Arrays Up: Parallel Programming in HPJava Previous: Contents   Contents

Introduction

HPJava is a language for parallel programming. It extends the Java language with some syntax for manipulating a new kind of parallel data structure--the distributed array. The specific extensions evolved out of work on Fortran 90 and High Performance Fortran (HPF), but the programming model of HPJava is different to HPF. The HPJava model is one of explicitly cooperating processes. It is an implementation of of the Single Program, Multiple Data (SPMD) model. All processes execute the same program, but the components of data structures--in our case the elements of distributed arrays--are divided across processes. Individual processes operate on the locally owned segment of an entire array. At some points in the computation processes usually need access to elements owned by their peers. Explicit communications are needed to permit this access.

This general scheme has been very successful in realistic programs. It is probably no exaggeration to say that most successful applications of parallel computing to large scientific and numerical problems are programmed in this style. So HPJava is attempting to add some extra support at the language level for established practises of programmers.


next up previous contents
Next: Processes and Arrays Up: Parallel Programming in HPJava Previous: Contents   Contents
Bryan Carpenter 2002-07-12