** Next:** Partial Redundancy Elimination
** Up:** Towards Efficient Compilation of
** Previous:** Discussion
** Contents**

#

Optimization Strategies for HPJava

In the previous chapters, we have reviewed the HPspmd programming
model, the HPJava language, and its compilation strategies. In the
section 4.5, we have seen the basic translation
scheme for the current HPJava compiler. We will sometimes call the
basic translation scheme, *naive translation*. That is, any
optimizations are not yet applied. Thus in this chapter we will
introduce some optimization strategies suitable for speeding up the
current naive translation of HPJava.
Based on observations for parallel algorithms such as direct
matrix multiplication from Figure 3.13, Laplace
equation using red-black relaxation from Figure 3.11,
Laplace equation using Jacobi relaxation from Figure 3.7,
etc, the majority of multiarray element accesses are generally located
inside innermost `overall` loops.
The main target of our optimization strategies is the complexity of
the associated terms in the subscript expression of a multiarray
element access, and the cost of HPJava compiler-generated method
calls (`localBlock()`, etc).
The following optimization strategies should remove overheads of
the naive translation scheme (especially for the `overall`
construct), and speed up HPJava.

**Subsections**

** Next:** Partial Redundancy Elimination
** Up:** Towards Efficient Compilation of
** Previous:** Discussion
** Contents**
Bryan Carpenter
2004-06-09