next up previous contents
Next: CCDD/CCDMI Up: Cooperating Systems Report Previous: Cooperating Systems Report   Contents

HPJava

CSC also contributed significantly to the development of PCRC's HPJava white paper, and has produced prototype runtime systems implementing parallel arrays in Java, using a thread-per-subgrid abstraction to provide parallel speedups on shared-memory platforms.

CSC initially proposed two variants on Java language extensions for high performance: extensions via class libraries, and extensions to the language itself. The initial prediction, which proved to be accurate, was that language extension would be made impossible by the difficulty of providing and maintaining derived Java compilers and/or preprocessors. To date, Java's lack of operator overloading and templates has not proven to be a significant impediment to high performance code. Simultaneously, other features (notably serialization, reflection, and inner classes) have provided unexpectedly rich sources of support for distributed-memory programming and idioms for iteration over very large data structures.

CSC has continued to develop high-performance libraries in Java, focusing on complex calculations that take advantage of Java's OO strengths (such as aggregation/deaggregation within simulations of complex systems). This approach makes more sense (commercially and technically) than attempting to compete head-to-head with HPF and HPC++ in supporting parallel array-based computation. A more extensive discussions of directions for HPJava development can be found in a paper presented at the PCRC-sponsored workshop on Java for Computational Science and Engineering [47].


next up previous contents
Next: CCDD/CCDMI Up: Cooperating Systems Report Previous: Cooperating Systems Report   Contents
Bryan Carpenter 2002-07-12