Parallel assertions for debugging parallel programs

Daniel Schwartz-Narbonne, Feng Liu, Tarun Pondicherry, David August, Sharad Malik

Research output: Chapter in Book/Report/Conference proceedingConference contribution

7 Scopus citations

Abstract

A parallel program must execute correctly even in the presence of unpredictable thread interleavings. This interleaving makes it hard to write correct parallel programs, and also makes it hard to find bugs in incorrect parallel programs. A range of tools have been developed to help debug parallel programs, ranging from atomicity-violation and data-race detectors to model-checkers and theorem provers. One technique that has been successful for debugging sequential programs, but less effective for parallel programs, is running the program using assertion predicates provided by the developer. These assertions allow programmers to specify and check their assumptions. In a multi-threaded program, the programmer's assumptions include both the current state, and any actions (e.g. access to shared memory) that other, parallel executing threads might take. We introduce parallel assertions which allow programmers to express these assumptions for parallel programs using simple and intuitive syntax and semantics. We present a proof-of-concept implementation, and demonstrate its value by testing a number of benchmark programs using parallel assertions.

Original languageEnglish (US)
Title of host publication9th ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2011
Pages181-190
Number of pages10
DOIs
StatePublished - 2011
Event9th ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2011 - Cambridge, United Kingdom
Duration: Jul 11 2011Jul 13 2011

Publication series

Name9th ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2011

Other

Other9th ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2011
Country/TerritoryUnited Kingdom
CityCambridge
Period7/11/117/13/11

All Science Journal Classification (ASJC) codes

  • Computational Theory and Mathematics
  • Modeling and Simulation

Fingerprint

Dive into the research topics of 'Parallel assertions for debugging parallel programs'. Together they form a unique fingerprint.

Cite this