Next: Bibliography
Up: Benchmarking HPJava: Prospects for
Previous: Case Study 2: Red-Black
HPJava is an instance of what we call the HPspmd model:
arguably it is not exactly a high-level parallel programming language
in the ordinary sense, but rather a tool to assist parallel
programmers in writing SPMD code. In this respect the closest recent
language we are familiar with is probably Co-Array Fortran [6],
but HPJava and Co-Array Fortran have many obvious differences.
In Co-Array Fortran, array subscripting is local by default, or
involves a combination of local subscripts and explicit process
ids. There is no analogue of global subscripts, or HPF-like
distribution formats. In Co-Array Fortran the logical model of
communication is built into the language--remote memory access with
intrinsics for synchronization. In HPJava, there are no communication
primitives in the language itself. We follow the MPI philosophy of
providing communication through separate libraries.
The main purpose of this paper was to verify if our
library-based HPspmd language extensions can be implemented
efficiently in the context of Java. The underlying communication
libraries and parallelization strategies have been proven in other
domains of application (e.g. [7]). Thus, the emphasis
is on demonstrating that a simple translation scheme for HPJava can
produce efficient node code. Although we are still a little
way from realizing this efficient scheme in our actual translator,
the results here are encouraging.
Next: Bibliography
Up: Benchmarking HPJava: Prospects for
Previous: Case Study 2: Red-Black
Bryan Carpenter
2004-04-24