Abstract
This paper addresses the problem of reducing unnecessary conflicts in optimistic synchronization. Optimistic synchronization must ensure that any two concurrently executing transactions that commit are properly synchronized. Conflict detection is an approximate check for this condition. For efficiency, the traditional approach to conflict detection conservatively checks that the memory locations mutually accessed by two concurrent transactions are accessed only for reading.
We present JANUS, a parallelization system that performs conflict detection by considering sequences of operations and their composite effect on the system's state. This is done efficiently, such that the runtime overhead due to conflict detection is on a par with that of write-conflict-based detection. In certain common scenarios, this mode of refinement dramatically improves the precision of conflict detection, thereby reducing the number of false conflicts.
Our empirical evaluation of JANUS shows that this precision gain reduces the abort rate by an order of magnitude (22x on average), and achieves a speedup of up to 2.5x, on a suite of real-world benchmarks where no parallelism is exploited by the standard approach.
- The chord analysis framework. http://code.google.com/p/jchord/.Google Scholar
- The jfilesync utility. http://jfilesync.sourceforge.net.Google Scholar
- The jgrapht java graph library. http://www.jgrapht.org.Google Scholar
- Pmd java source code scanner. http://pmd.sourceforge.net.Google Scholar
- The sat4j sat solver. http://www.sat4j.org/.Google Scholar
- The sourceforge code repository. http://sourceforge.net/.Google Scholar
- The weka machine-learning library. http://weka.sourceforge.net.Google Scholar
- A. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers, pages 757--762, 1966.Google Scholar
Cross Ref
- S. Chiba and M. Nishizawa. An easy-to-use toolkit for efficient java bytecode translators. In Proceedings of the 2nd international conference on Generative programming and component engineering, pages 364--376, 2003. Google Scholar
Digital Library
- J. R. Driscoll, N. Sarnak, D. D. Sleator, and R. E. Tarjan. Making data structures persistent. J. Comput. Syst. Sci., 38:86--124, 1989. Google Scholar
Digital Library
- P. Felber, V. Gramoli, and R. Guerraoui. Elastic transactions. In DISC, pages 93--107, 2009. Google Scholar
Digital Library
- T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 48--60, 2005. Google Scholar
Digital Library
- T. Harris and S. Stipic. Abstract nested transactions. The 2nd ACM SIGPLAN Workshop on Transactional Computing, 2007.Google Scholar
- M. Herlihy and E. Koskinen. Transactional boosting: a methodology for highly-concurrent transactional objects. In PPoPP. ACM, 2008. Google Scholar
Digital Library
- M. Herlihy, V. Luchangco, P. A. Martin, and M. Moir. Nonblocking memory management support for dynamic-sized data structures. ACM Trans. Comput. Syst., 23(2):146--196, 2005. Google Scholar
Digital Library
- M. Herlihy and J.E.B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA, 1993. Google Scholar
Digital Library
- E. Koskinen and M. Herlihy. Checkpoints and continuations instead of nested transactions. In SPAA, pages 160--168, 2008. Google Scholar
Digital Library
- E. Koskinen, M. J. Parkinson, and M. Herlihy. Coarse-grained transactions. In POPL, pages 19--30, 2010. Google Scholar
Digital Library
- M. Kulkarni, D. Nguyen, D. Prountzos, X. Sui, and K. Pingali. Exploiting the commutativity lattice. In PLDI, 2011. Google Scholar
Digital Library
- M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI, 2007. Google Scholar
Digital Library
- H. E. Ramadan, I. Roy, M. Herlihy, and E. Witchel. Committing conflicting transactions in an stm. In PPOPP, pages 163--172, 2009. Google Scholar
Digital Library
- O. Tripp, R. Manevich, J. Field, and M. Sagiv. JANUS: Exploiting parallelism via hindsight. Technical report, Tel Aviv University, 2012.Google Scholar
- O. Tripp, G. Yorsh, J. Field, and M. Sagiv. Hawkeye: effective discovery of dataflow impediments to parallelization. In OOPSLA, pages 207--224, 2011. Google Scholar
Digital Library
- A. Udupa, K. Rajan, and W. Thies. Alter: exploiting breakable dependences for parallelization. In Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation, pages 480--491, 2011. Google Scholar
Digital Library
- J. Whaley. Joeq: A virtual machine and compiler infrastructure. Sci. Comput. Program., 57:339--356, 2005. Google Scholar
Digital Library
Index Terms
JANUS: exploiting parallelism via hindsight
Recommendations
JANUS: exploiting parallelism via hindsight
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationThis paper addresses the problem of reducing unnecessary conflicts in optimistic synchronization. Optimistic synchronization must ensure that any two concurrently executing transactions that commit are properly synchronized. Conflict detection is an ...
Transactional Read-Modify-Write Without Aborts
Language-level transactions are said to provide “atomicity,” implying that the order of operations within a transaction should be invisible to concurrent transactions and thus that independent operations within a transaction should be safe to execute in ...
On the impact of serializing contention management on STM performance
Transactional memory (TM) is an emerging concurrent programming abstraction. Numerous software-based transactional memory (STM) implementations have been developed in recent years. STM implementations must guarantee transaction atomicity and isolation. ...







Comments