next up previous
Next: High-Performance Grid-Enabled Environments Up: HPJava: Programming Support for Previous: HPJava: Programming Support for


Introduction

HPJava is an environment for parallel and scientific programming with Java, developed by the present authors [14]. It provides a programming model with various similarities to--and some notable differences from--the programming model of High Performance Fortran, (HPF) [13,19]. In comparison with HPF, HPJava has a stronger emphasis on the role of libraries that operate on distributed data. This emphasis sits naturally with the object-oriented features of the base language--Java rather than Fortran2. In other respects HPJava provides a lower-level programming model than HPF--with multiple SPMD threads of control. But it retains important distributed data abstractions from HPF. It is most specifically aimed at distributed memory architectures, although of course HPJava can also run on shared memory computers. We call our general programming model the HPspmd model--so HPJava is a realization of the HPspmd model.

An initial release of the HPJava environment was placed in the public domain last year (2003). This includes a reasonably sophisticated translator implementing the full HPJava language (which includes the full Java language as a subset), and a set of supporting libraries. In earlier publications we argued that HPJava should eventually provide acceptable performance, making it a practical tool for HPC [7,8]. We showed in [20] that HPJava node performance is quite reasonable, compared with C, Fortran, and ordinary Java: in particular on many platforms Java is no longer much slower than C or Fortran. Thus we verified our library-based HPspmd programming language extensions can be implemented quite efficiently in the context of Java.

In part because the SPMD programming model is relatively loosely coupled (compared with HPF), and in part because of its foundation in a ubiquitous Internet programming language (Java), we can make the case that our HPspmd programming model provides promising programming support for high-performance grid-enabled environments. This paper begins with an interpretation of what ``grid computing'' means, why it is needed, and how our HPspmd programming model can be adapted to this end--shifting the focus from high-performance computing to high-performance grid-enabled environments. We then review some features of HPJava including run-time library and compilation strategies, and optimization schemes. We present some experiments on simple HPJava programs, comparing against Fortran and ordinary Java programs. We hope to demonstrate a promising future for HPJava, which can be used ``anywhere''--not only for high-performance parallel computing, but also for grid-enabled applications.


next up previous
Next: High-Performance Grid-Enabled Environments Up: HPJava: Programming Support for Previous: HPJava: Programming Support for
Bryan Carpenter 2004-04-24