skip to main content
research-article

JANUS: exploiting parallelism via hindsight

Published:11 June 2012Publication History
Skip Abstract Section

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.

References

  1. The chord analysis framework. http://code.google.com/p/jchord/.Google ScholarGoogle Scholar
  2. The jfilesync utility. http://jfilesync.sourceforge.net.Google ScholarGoogle Scholar
  3. The jgrapht java graph library. http://www.jgrapht.org.Google ScholarGoogle Scholar
  4. Pmd java source code scanner. http://pmd.sourceforge.net.Google ScholarGoogle Scholar
  5. The sat4j sat solver. http://www.sat4j.org/.Google ScholarGoogle Scholar
  6. The sourceforge code repository. http://sourceforge.net/.Google ScholarGoogle Scholar
  7. The weka machine-learning library. http://weka.sourceforge.net.Google ScholarGoogle Scholar
  8. A. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers, pages 757--762, 1966.Google ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Felber, V. Gramoli, and R. Guerraoui. Elastic transactions. In DISC, pages 93--107, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Harris and S. Stipic. Abstract nested transactions. The 2nd ACM SIGPLAN Workshop on Transactional Computing, 2007.Google ScholarGoogle Scholar
  14. M. Herlihy and E. Koskinen. Transactional boosting: a methodology for highly-concurrent transactional objects. In PPoPP. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Herlihy and J.E.B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. E. Koskinen and M. Herlihy. Checkpoints and continuations instead of nested transactions. In SPAA, pages 160--168, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E. Koskinen, M. J. Parkinson, and M. Herlihy. Coarse-grained transactions. In POPL, pages 19--30, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Kulkarni, D. Nguyen, D. Prountzos, X. Sui, and K. Pingali. Exploiting the commutativity lattice. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. E. Ramadan, I. Roy, M. Herlihy, and E. Witchel. Committing conflicting transactions in an stm. In PPOPP, pages 163--172, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. O. Tripp, R. Manevich, J. Field, and M. Sagiv. JANUS: Exploiting parallelism via hindsight. Technical report, Tel Aviv University, 2012.Google ScholarGoogle Scholar
  23. O. Tripp, G. Yorsh, J. Field, and M. Sagiv. Hawkeye: effective discovery of dataflow impediments to parallelization. In OOPSLA, pages 207--224, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Whaley. Joeq: A virtual machine and compiler infrastructure. Sci. Comput. Program., 57:339--356, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. JANUS: exploiting parallelism via hindsight

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 47, Issue 6
        PLDI '12
        June 2012
        534 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2345156
        Issue’s Table of Contents
        • cover image ACM Conferences
          PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
          June 2012
          572 pages
          ISBN:9781450312059
          DOI:10.1145/2254064

        Copyright © 2012 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2012

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!