skip to main content
research-article

Synchronization via scheduling: techniques for efficiently managing shared state

Published:04 June 2011Publication History
Skip Abstract Section

Abstract

Shared state access conflicts are one of the greatest sources of error for fine grained parallelism in any domain. Notoriously hard to debug, these conflicts reduce reliability and increase development time. The standard task graph model dictates that tasks with potential conflicting accesses to shared state must be linked by a dependency, even if there is no explicit logical ordering on their execution. In cases where it is difficult to understand if such implicit dependencies exist, the programmer often creates more dependencies than needed, which results in constrained graphs with large monolithic tasks and limited parallelism.

We propose a new technique, Synchronization via Scheduling (SvS), that uses the results of static and dynamic code analysis to manage potential shared state conflicts by exposing the data accesses of each task to the scheduler. We present an in-depth performance analysis of SvS via examples from video games, our target domain, and show that SvS performs well in comparison to software transactional memory (TM) and fine grained mutexes.

References

  1. Parallel futures of a game engine http://publications.dice.se/attachments/Sthlm10_ParallelFutures_Final.ppt.Google ScholarGoogle Scholar
  2. Cal3d character animation library http://home.gna.org/cal3d/.Google ScholarGoogle Scholar
  3. Intel ct http://software.intel.com/en-us/data-parallel/.Google ScholarGoogle Scholar
  4. The openmp specification for parallel programming http://www.openmp.org.Google ScholarGoogle Scholar
  5. The quest for more processing power:part two: Multi-core and multi-threaded gaming http://www.anandtech.com/show/1645/3,.Google ScholarGoogle Scholar
  6. Thread building blocks www.threadingbuildingblocks.org.Google ScholarGoogle Scholar
  7. M. D. Allen et al. Serialization sets: a dynamic dependence-based parallel execution model. In PPoPP '09, pages 85--96. ACM, 2009. ISBN 978-1-60558-397-6. http://doi.acm.org/10.1145/1504176.1504190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. O. Andersen. Program analysis and specialization for the c programming language. Technical report, 1994.Google ScholarGoogle Scholar
  9. U. K. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, MA, USA, 1988. ISBN 0898382890. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Bienia et al. The parsec benchmark suite: characterization and architectural implications. PACT '08, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. B. H. Bloom. Space/time trade-offs in hash coding with allowable errors. Commun. ACM, 13 (7): 422--426, 1970. ISSN 0001-0782. http://doi.acm.org/10.1145/362686.362692. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. D. Blumofe et al. Cilk: An efficient multithreaded runtime system. In J. of Parallel and Dist. Comp., pages 207--216, 1995. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.3175.Google ScholarGoogle Scholar
  13. B. L. Chamberlain et al. Parallel programmability and the chapel language. Intl. J. of High Perf. Computing Applications, 21: 291--312, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Felber et al. Transactifying applications using an open compiler framework. In TRANSACT, August 2007.Google ScholarGoogle Scholar
  15. J. Jenista et al. Disjointness analysis for java-like languages. Technical Report UCI- ISR-09-1, 2009.Google ScholarGoogle Scholar
  16. J. C. Jenista et al. Ooojava: An out-of-order approach to parallel programming. In HotPar '10, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Kulkarni et al. Scheduling strategies for optimistic parallel execution of irregular programs. In SPAA '08, pages 217--228. ACM, 2008. ISBN 978-1-59593-973-9. http://doi.acm.org/10.1145/1378533.1378575. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Lupei et al. Transactional memory support for scalable and transparent parallelization of multiplayer games. EuroSys '10, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Marron et al. Sharing analysis of arrays, collections, and recursive structures. In PASTE '08, pages 43--49. ACM, 2008. ISBN 978-1-60558-382-2. http://doi.acm.org/10.1145/1512475.1512485. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. D. McCool. Structured parallel programming with deterministic patterns. In Proceedings of the 2nd USENIX conference on Hot topics in parallelism, HotPar'10, pages 5--5, Berkeley, CA, USA, 2010. USENIX Association. URL http://portal.acm.org/citation.cfm?id=1863086.1863091. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. Pugh et al. Constraint-based array dependence analysis. ACM Trans. Program. Lang. Syst., pages 635--678, 1998. ISSN 0164-0925. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of jade. ACM Trans. Program. Lang. Syst., 20 (3): 483--545, 1998. ISSN 0164-0925. http://doi.acm.org/10.1145/291889.291893. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Roback et al. Gossamer: A lightweight programming framework for multicore machines. In HotPar '10, 2010. URL http://www.usenix.org/event/hotpar10/tech/full_papers/Roback.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Sanchez et al. Flexible architectural support for fine-grain scheduling. SIGARCH Comput. Archit. News, 38 (1): 311--322, 2010. ISSN 0163-5964. http://doi.acm.org/10.1145/1735970.1736055. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. N. Shavit et al. Software transactional memory. In PODC '95, pages 204--213. ACM, 1995. ISBN 0-89791-710-3. http://doi.acm.org/10.1145/224964.224987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Valve. Dragged kicking and screaming: Source multicore. In Game Developers Conference, 2007. URL http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf.Google ScholarGoogle Scholar
  27. R. M. Yoo and H. S. Lee. Adaptive transaction scheduling for transactional memory systems. In Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures, SPAA '08, pages 169--178, New York, NY, USA, 2008. ACM. ISBN 978-1-59593-973-9. http://doi.acm.org/10.1145/1378533.1378564. URL http://doi.acm.org/10.1145/1378533.1378564. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Synchronization via scheduling: techniques for efficiently managing shared state

        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

        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!