next up previous contents
Next: Importance of Node Performance Up: Towards Efficient Compilation of Previous: Discussion   Contents


Benchmarking HPJava, Part I:
Node Performance

Now we have reviewed compilation and optimization strategies for HPJava, it is time to see the performance of the HPJava system. Compared to competitors, the HPJava system has various advantages. For example, HPJava is totally implemented in Java. This means that once coded, it can be run anywhere. However, this could turn to a disadvantage of HPJava, since many applications are designed and implemented for specific systems in order to gain performance advantage. Even though JDK 1.4 introduced performance features[*], do we expect Java to be the most people's favorite in terms of performance? One of the main goals of this dissertation is to benchmark the HPJava system, and to prove its promising performance. In this chapter, we will benchmark scientific and engineering applications (e.g. a direct matrix multiplication program, and partial differential equations, such as the Laplace equation using red-black relaxation and the 3-dimensional diffusion equation) and a local dependency index application, called Q3 index, with a large set of data and iterations. In this chapter, for each benchmark program, we will benchmark on a Linux machine. The performance of HPJava on a single processor node is as critical as the performance on multi-processors. Moreover, benchmarking sequential Java programs is as important as benchmarking HPJava programs because we can't ignore the close relation of HPJava with Java. We will be particularly interested in the effectiveness of the optimization schemes introduced in the last chapter. Typically we experiment with two different optimization levels described there: simple PRE and the augmented HPJOPT2 scheme. The benchmarks in this chapter will be performed on the following machine: In addition to HPJava and sequential Java programs, we also benchmark C and Fortran programs on each machine to compare the performance. The table 6.1 lists the compilers and optimization options used on each machine. This chapter is based on our earlier publication [29].


Table 6.1: Compilers and optimization options lists used on Linux machine.
HPJava Java C Fortran
IBM Developer kit IBM Developer kit
1.4 (JIT) with -O 1.4 (JIT) with -O gcc -O5 g77 -O5



Subsections
next up previous contents
Next: Importance of Node Performance Up: Towards Efficient Compilation of Previous: Discussion   Contents
Bryan Carpenter 2004-06-09