Abstract

Runtime Optimizations for a Java DSM Implementation
Ronald Veldema - Vrije Universiteit Amsterdam
Rutger Hofman - Vrije Universiteit Amsterdam
Raoul Bhoedjang - Cornell University
Henri Bal - Vrije Universiteit Amsterdam
Jackal is a fine-grained distributed shared memory implementation
of the Java programming language.
Jackal implements Java's memory model and allows multithreaded Java
programs to run unmodified on distributed-memory systems.

This paper focuses on Jackal's runtime system, which implements a
multiple-writer, home-based consistency protocol.
Protocol actions are triggered by software access checks that
Jackal's compiler inserts before object and array references.

We describe optimizations for Jackal's runtime system, which mainly consist of
discovering opportunities to dispense with flushing of cached data.
We give performance results for different runtime optimizations,
and compare their impact with the impact of one compiler ptimization.
We find that our runtime optimizations are necessary for good Jackal
performance, but only in conjunction with the Jackal compiler optimizations.
As a yardstick, we compare the performance of Java applications run on Jackal
with the performance of equivalent applications that use a fast implementation
of Java's Remote Method Invocation (RMI) instead of shared memory.