InstantCheck: Checking the determinism of parallel programs using on-the-fly incremental hashing

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

Abstract

Developing multithreaded programs in shared-memory systems is difficult. One key reason is the nondeterminism of thread interaction, which may result in one code input producing different outputs in different runs. Unfortunately, enforcing determinism by construction typically comes at a performance, hardware, or programmability cost. An alternative is to check during testing whether code is deterministic. This paper presents InstantCheck, a novel technique that checks determinism with a very small runtime overhead while requiring only a minor hardware extension. During code testing, Instant-Check can check whether the code under test ends up in a deterministic state in various runs. The idea is to compute a 64-bit hash of the memory state and compare the hashes of different test runs that have the same input. If two runs have different hashes, Instant-Check reports state nondeterminism. For efficient operation, InstantCheck uses on-the-fly incremental hashing in hardware. The hash is kept in a per-core 64-bit register, which trivially supports virtualization, migration, and context switching. We use InstantCheck to understand the determinism properties of 17 popular applications, including Sphinx3, PBZip2, PARSEC, and SPLASH-2. InstantCheck incurs a negligible average runtime overhead of 0.3% over native testing runs. We also show how using InstantCheck programmers can find bugs and discuss other applications of fast memory-state hashing. While using InstantCheck, we found a real bug in the widely used PARSEC benchmark.

Original languageEnglish (US)
Title of host publicationProceedings - 43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2010
Pages251-262
Number of pages12
DOIs
StatePublished - 2010
Event43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2010 - Atlanta, GA, United States
Duration: Dec 4 2010Dec 8 2010

Publication series

NameProceedings of the Annual International Symposium on Microarchitecture, MICRO
ISSN (Print)1072-4451

Other

Other43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2010
Country/TerritoryUnited States
CityAtlanta, GA
Period12/4/1012/8/10

ASJC Scopus subject areas

  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'InstantCheck: Checking the determinism of parallel programs using on-the-fly incremental hashing'. Together they form a unique fingerprint.

Cite this