Programming Unreliable Hardware

Michael Carbin, Sasa Misailovic

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

Emerging high-performance architectures are anticipated to contain unreliable components that may exhibit soft errors, which silently corrupt the results of computations. Full detection and masking of soft errors is challenging, expensive and, for some applications, unnecessary. For example, approximate computing applications (such as multimedia processing, machine learning and big data analytics) can often naturally tolerate soft errors.In this chapter, we demonstrate how a programming language, Rely, enables developers to reason about and verify the quantitative reliability of an application – namely, the probability that it produces the correct result when executed on unreliable hardware. Rely leverages a static quantitative reliability analysis that verifies quantitative requirements on the reliability of an application, enabling a developer to perform sound and verified reliability engineering.

Original languageEnglish (US)
Title of host publicationFoundations of Probabilistic Programming
PublisherCambridge University Press
Pages533-568
Number of pages36
ISBN (Electronic)9781108770750
ISBN (Print)9781108488518
DOIs
StatePublished - Jan 1 2020

Keywords

  • Probabilistic verification
  • Reliability
  • Unreliable hardware

ASJC Scopus subject areas

  • General Computer Science

Fingerprint

Dive into the research topics of 'Programming Unreliable Hardware'. Together they form a unique fingerprint.

Cite this