Abstract

This paper proposes a new speculative multithreading execution model which is suitable 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 cooperated compiler and runtime system. Object threads as the basic units of parallel target code are mapped onto thread units of target machine dynamically. However, synchronous message passing between objects in source program prevents object threads in target code from execution in parallel at its synchronous points. By speculating the execution of message passing in object-oriented programs, we can convert synchronous message passing into speculative asynchronous message passing, then we can not only decrease the synchronization overhead in runtime but also exploit more parallelism for such programs. The runtime system verifies speculative asynchronous message passing by comparing it with non-speculative synchronous message passing in order to keep the parallel execution predicable and deterministic. This model is implemented as a prototype system Rope for evaluation. Experiments with Java version of Olden benchmark suite show that this model takes a good accelerating effect 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