Parallelizing sequential programs with statistical accuracy tests

Sasa Misailovic, Deokhwan Kim, Martin Rinard

Research output: Contribution to journalArticlepeer-review

Abstract

We present QuickStep, a novel system for parallelizing sequential programs. Unlike standard parallelizing compilers (which are designed to preserve the semantics of the original sequential computation), QuickStep is instead designed to generate (potentially nondeterministic) parallel programs that produce acceptably accurate results acceptably often. The freedom to generate parallel programs whose output may differ (within statistical accuracy bounds) from the output of the sequential program enables a dramatic simplification of the compiler, a dramatic increase in the range of applications that it can parallelize, and a significant expansion in the range of parallel programs that it can legally generate. Results from our benchmark set of applications show that QuickStep can automatically generate acceptably accurate and efficient parallel programs-the automatically generated parallel versions of five of our six benchmark applications run between 5.0 and 7.8 times faster on eight cores than the original sequential versions. These applications and parallelizations contain features (such as the use of modern object-oriented programming constructs or desirable parallelizations with infrequent but acceptable data races) that place them inherently beyond the reach of standard approaches.

Original languageEnglish (US)
Article number88
JournalTransactions on Embedded Computing Systems
Volume12
Issue number2 SUPPL.
DOIs
StatePublished - May 2013
Externally publishedYes

Keywords

  • Accuracy
  • Interactive
  • Parallelization
  • Trade-off

ASJC Scopus subject areas

  • Software
  • Hardware and Architecture

Fingerprint Dive into the research topics of 'Parallelizing sequential programs with statistical accuracy tests'. Together they form a unique fingerprint.

Cite this