Abstract

This article proposes a new speculative multi-threading execution model for object-oriented programs. Using this model, sequential object-oriented programs are partitioned into multiple speculative object threads according to their structure and semantics by compiler and runtime system. Object threads that serve as the basic unit of the parallel target code are dynamically mapped onto thread units of the target machine. However, synchronous message passing between objects in a source program prevents parallel execution of object threads in the target code at synchronous points. By speculating the execution of message passing in object-oriented programs, we can convert synchronous message passing into speculative asynchronous message passing. This enables us to decrease synchronization overhead in runtime and to exploit greater parallelism for such programs. The runtime system verifies speculative asynchronous message passing by comparing it with non-speculative synchronous message passing so that parallel execution remains predictable and deterministic. This model was implemented as a prototype system, Rope, for evaluation. Experiments with a Java version of the Olden benchmark suite showed that the proposed model exhibits excellent accelerating effects for object-oriented programs.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call