A two-phase escape analysis for parallel java programs
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Practical escape analyses: how good are they?
Proceedings of the 3rd international conference on Virtual execution environments
Evaluating the impact of thread escape analysis on a memory consistency model-aware compiler
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Hi-index | 0.00 |
The widespread popularity of languages allowing explicitly parallel, multi-threaded programming, e.g. Java and C#, have focused attention on the issue of memory model design. The Pensieve Project is building a compiler that will enable both language designers to prototype different memory models; and optimizing compilers to adapt to different memory models. Among the key analyses required to implement this system are thread escape analysis, i.e. detecting when a referenced object is accessible by more than one thread, synchronization analysis, and delay set analysis. This thesis describes the overall Pensieve compiler and presents in detail its thread escape analysis as well as experimental results showing the effectiveness of the compiler when the target code is following the sequentially consistent memory model. On both single-threaded and multi-threaded programs the performance is up to 100% of the performance of the same programs executing under a relaxed memory model.