Safe parallel programming using dynamic dependence hints

  • Authors:
  • Chuanle Ke;Lei Liu;Chao Zhang;Tongxin Bai;Bryan Jacobs;Chen Ding

  • Affiliations:
  • Institute of Computing Technology, Chinese Academy of Sciences, Beijing, NY, USA;Institute of Computing Technology, Chinese Academy of Sciences, Beijing, NY, USA;Intel Labs, China, Beijing, NY, USA;University of Rochester, Rochester, NY, USA;University of Rochester, Rochester, NY, USA;University of Rochester, Rochester, NY, USA

  • Venue:
  • Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Speculative parallelization divides a sequential program into possibly parallel tasks and permits these tasks to run in parallel if and only if they show no dependences with each other. The parallelization is safe in that a speculative execution always produces the same output as the sequential execution. In this paper, we present the dependence hint, an interface for a user to specify possible dependences between possibly parallel tasks. Dependence hints may be incorrect or incomplete but they do not change the program output. The interface extends Cytron's do-across and recent OpenMP ordering primitives and makes them safe and safely composable. We use it to express conditional and partial parallelism and to parallelize large-size legacy code. The prototype system is implemented as a software library. It is used to improve performance by nearly 10 times on average on current multicore machines for 8 programs including 5 SPEC benchmarks.