2014 23rd International Conference on Parallel Architecture and Compilation (PACT) (2014)
Aug. 23, 2014 to Aug. 27, 2014
Santosh Pande , Georgia Institute of Technology, Atlanta, Georgia, USA
Ada Gavrilovska , Georgia Institute of Technology, Atlanta, Georgia, USA
Kaushik Ravichandran , Georgia Institute of Technology, Atlanta, Georgia, USA
Non-determinism has long been recognized as one of the key challenges which restrict parallel programmer productivity by complicating several phases of application development. While Software Transactional Memory (STM) systems have greatly improved the productivity of programmers developing parallel applications in a host of areas they still exhibit non-deterministic behavior leading to decreased productivity. While determinism in parallel applications which use traditional synchronization primitives (such as locks) has been relatively well studied, its interplay with STMs has not. In this paper we present DeSTM, a deterministic STM, which allows programmers to leverage determinism through the implementation, debugging and testing phases of application development. In this work we first adapt techniques which introduce determinism in applications which use traditional synchronization (such as locks) to work in conjunction with certain STMs. As one would expect, this does lead to performance degradation over a non-deterministic execution. Next we present, DeSTM, which uses novel techniques exploiting the properties of these STMs to dramatically improve the performance of deterministic executions. Further, DeSTM allows programmers to randomly change the deterministic schedule in a controlled fashion giving programmers access to a wide variety of execution schedules during application development. We demonstrate our approach on the STAMP benchmark suite. We first study the overheads that determinism introduces in STM applications and then demonstrate how DeSTM is able to improve performance of deterministic execution significantly, by over 50% in some applications and on average by about 35%. DeSTM also actually helped us detect, what we believe is a bug, in one of the benchmarks. Further, our approach is programmer friendly requiring no changes to application code.
Benchmark testing, Debugging, Productivity, Synchronization, Schedules, Computer bugs
Santosh Pande, Ada Gavrilovska, Kaushik Ravichandran, "DeSTM: Harnessing determinism in STMs for application development", 2014 23rd International Conference on Parallel Architecture and Compilation (PACT), vol. 00, no. , pp. 213-224, 2014, doi:10.1145/2628071.2628094