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.
- Parallel futures of a game engine http://publications.dice.se/attachments/Sthlm10_ParallelFutures_Final.ppt.Google Scholar
- Cal3d character animation library http://home.gna.org/cal3d/.Google Scholar
- Intel ct http://software.intel.com/en-us/data-parallel/.Google Scholar
- The openmp specification for parallel programming http://www.openmp.org.Google Scholar
- The quest for more processing power:part two: Multi-core and multi-threaded gaming http://www.anandtech.com/show/1645/3,.Google Scholar
- Thread building blocks www.threadingbuildingblocks.org.Google Scholar
- 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 Scholar
Digital Library
- L. O. Andersen. Program analysis and specialization for the c programming language. Technical report, 1994.Google Scholar
- U. K. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Norwell, MA, USA, 1988. ISBN 0898382890. Google Scholar
Digital Library
- C. Bienia et al. The parsec benchmark suite: characterization and architectural implications. PACT '08, 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- B. L. Chamberlain et al. Parallel programmability and the chapel language. Intl. J. of High Perf. Computing Applications, 21: 291--312, 2007. Google Scholar
Digital Library
- P. Felber et al. Transactifying applications using an open compiler framework. In TRANSACT, August 2007.Google Scholar
- J. Jenista et al. Disjointness analysis for java-like languages. Technical Report UCI- ISR-09-1, 2009.Google Scholar
- J. C. Jenista et al. Ooojava: An out-of-order approach to parallel programming. In HotPar '10, 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Lupei et al. Transactional memory support for scalable and transparent parallelization of multiplayer games. EuroSys '10, 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- W. Pugh et al. Constraint-based array dependence analysis. ACM Trans. Program. Lang. Syst., pages 635--678, 1998. ISSN 0164-0925. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Valve. Dragged kicking and screaming: Source multicore. In Game Developers Conference, 2007. URL http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf.Google Scholar
- 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 Scholar
Digital Library
Index Terms
Synchronization via scheduling: techniques for efficiently managing shared state
Recommendations
Synchronization via scheduling: techniques for efficiently managing shared state
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationShared 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 ...
The theory of deadlock avoidance via discrete control
POPL '09Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in ...
The theory of deadlock avoidance via discrete control
POPL '09: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDeadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in ...







Comments