Synchronization via scheduling: techniques for efficiently managing shared state

  • Authors:
  • Micah J. Best;Shane Mottishaw;Craig Mustard;Mark Roth;Alexandra Fedorova;Andrew Brownsword

  • Affiliations:
  • University of British Columbia, Vancouver, Canada;Simon Fraser University, Vancouver, Canada;Simon Fraser University, Vancouver, Canada;Simon Fraser University, Vancouver, Canada;Simon Fraser University, Vancouver, Canada;Electronic Arts, Inc, Vancouver, Canada

  • Venue:
  • Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

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.