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.