The Java message-passing library mpiJava discussed in the remainder of this dissertation is part of a larger environment called HPJava.
Early in the last decade, two groups formed for developing standards for parallel programming. The first, the High Performance Fortran Forum was formed by many leading industrial and academic groups in 1992. They established a language standard called High Performance Fortran (HPF) that allows programmers to easily write data-parallel programs. About a year later, the second group, the Message Passing Interface Forum, with participation from over 40 organizations, collected ideas from many previous message-passing systems and put them into a standard called MPI.
HPF provide a simple programming model in which all processors execute a single, logical thread of control that performs high-level operations on distributed arrays. In contrast, MPI provide multiple, logical threads of control that excute their own tasks in their own processors. HPF is compiler-based and MPI is library-based.
MPI has been quite successful and widely used for programming parallel system. On the other hand, HPF has been less successful, and many companies have abandoned their HPF projects. One of the failings is that HPF is not easily compatible with SPMD programming using MPI or many other similar libraries
Unlike HPF, our HPJava environment is based on an HPspmd model that is designed to facilitate direct calls to established SPMD libraries, including message-passing libraries, for parallel programming. To increase the flexibility of the system, and make it more attractive to programmers accustomed to the direct message-passing style, an interface to MPI is clearly essential.
The main emphasis is of this dissertation is mpiJava. mpiJava itself does not depend on any special language extension. For completeness, however, this chapter will review the language model of the full HPJava environment.