Verifying Quantitative Reliability of Programs That Execute on Unreliable Hardware
Name
MIT-CSAIL-TR-2013-014.pdf
Size
391.51 KB
Format
Adobe PDF
Checksum (MD5)
f3fab9a0b96b64cd682e24d7765045c8
Download all files submitted through automated deposit
Author(s) • •
Carbin, Michael
Misailovic, Sasa
Rinard, Martin
Advisor(s)
Martin Rinard
Date Issued
June 19, 2013
Series/Report no.
MIT-CSAIL-TR-2013-014
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 recovery from 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 paper we present Rely, a programming language that enables developers to reason about the quantitative reliability of an application -- namely, the probability that it produces the correct result when executed on unreliable hardware. Rely allows developers to specify the reliability requirements for each value that a function produces. We present 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. The analysis takes a Rely program with a reliability specification and a hardware specification, that characterizes the reliability of the underlying hardware components, and verifies that the program satisfies its reliability specification when executed on the underlying unreliable hardware platform. We demonstrate the application of quantitative reliability analysis on six computations implemented in Rely.
Subjects
unreliable hardware, probabilistic semantics, quantitative reliability
Persistent DSpace Link