Speculation for Parallelizing Runtime Checks

  • Authors:
  • Martin Süßkraut;Stefan Weigert;Ute Schiffel;Thomas Knauth;Martin Nowack;Diogo Becker Brum;Christof Fetzer

  • Affiliations:
  • Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,;Computer Science Department, TU Dresden,

  • Venue:
  • SSS '09 Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present and evaluate a framework, ParExC , to reduce the runtime penalties of compiler generated runtime checks. An obvious approach is to use idle cores of modern multi-core CPUs to parallelize the runtime checks. This could be accomplished by (a) parallelizing the application and in this way, implicitly parallelizing the checks, or (b) by parallelizing the checks only. Parallelizing an application is rarely easy and frameworks that simplify the parallelization, e.g., like software transactional memory (STM), can introduce considerable overhead. ParExC is based on alternative (b). We compare it with an approach using a transactional memory-based alternative. Our experience shows that ParExC is not only more efficient than the STM-based solution but the manual effort for an application developer to integrate ParExC is lower. ParExC has --- in contrast to similar frameworks --- two noteworthy features that permit a more efficient parallelization of checks: (1) speculative variables, and (2) the ability to add checks by static instrumentation.