passert: A Tool for Debugging Parallel Programs

  • Daniel Schwartz-Narbonne
  • Feng Liu
  • David August
  • Sharad Malik
Conference paper

DOI: 10.1007/978-3-642-31424-7_60

Part of the Lecture Notes in Computer Science book series (LNCS, volume 7358)
Cite this paper as:
Schwartz-Narbonne D., Liu F., August D., Malik S. (2012) passert: A Tool for Debugging Parallel Programs. In: Madhusudan P., Seshia S.A. (eds) Computer Aided Verification. CAV 2012. Lecture Notes in Computer Science, vol 7358. Springer, Berlin, Heidelberg

Abstract

passert is a new debugging tool for parallel programs which allows programmers to express correctness criteria using a simple, expressive assertion language. We demonstrate how these parallel assertions allow the detection and diagnosis of real world concurrency bugs, detecting 14/17 bugs in an independently selected set of bugs from open source software. We describe a runtime checker which allows automatic checking of parallel assertions in C and C++ programs, with a geometric mean of 6.6× overhead on a set of PARSEC benchmarks. We improve performance by introducing a relaxed timing semantics for parallel assertions, which better reflects real memory models, and exposes more bugs with less overhead (geometric mean overhead 3.5×).

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Daniel Schwartz-Narbonne
    • 1
  • Feng Liu
    • 1
  • David August
    • 1
  • Sharad Malik
    • 1
  1. 1.Princeton UniversityUSA

Personalised recommendations