Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures

Many modern computations (such as video and audio encoders, Monte Carlo simulations, and machine learning algorithms) are designed to trade off accuracy in return for increased performance. To date, such computations typically use ad-hoc, domain-specific techniques developed specifically for the com...

Full description

Bibliographic Details
Main Authors: Hoffmann, Henry, Misailovic, Sasa, Sidiroglou, Stelios, Agarwal, Anant, Rinard, Martin
Other Authors: Martin Rinard
Published: 2009
Online Access:http://hdl.handle.net/1721.1/46709
_version_ 1826202646478848000
author Hoffmann, Henry
Misailovic, Sasa
Sidiroglou, Stelios
Agarwal, Anant
Rinard, Martin
author2 Martin Rinard
author_facet Martin Rinard
Hoffmann, Henry
Misailovic, Sasa
Sidiroglou, Stelios
Agarwal, Anant
Rinard, Martin
author_sort Hoffmann, Henry
collection MIT
description Many modern computations (such as video and audio encoders, Monte Carlo simulations, and machine learning algorithms) are designed to trade off accuracy in return for increased performance. To date, such computations typically use ad-hoc, domain-specific techniques developed specifically for the computation at hand. We present a new general technique, code perforation, for automatically augmenting existing computations with the capability of trading off accuracy in return for performance. In contrast to existing approaches, which typically require the manual development of new algorithms, our implemented SpeedPress compiler can automatically apply code perforation to existing computations with no developer intervention whatsoever. The result is a transformed computation that can respond almost immediately to a range of increased performancedemands while keeping any resulting output distortion within acceptable user-defined bounds. We have used SpeedPress to automatically apply code perforation to applications from the PARSEC benchmark suite. The results show that the transformed applications can run as much as two to three times faster than the original applications while distorting the output by less than 10%. Because the transformed applications can operate successfully at many points in the performance/accuracy tradeoff space, they can (dynamically and on demand) navigate the tradeoff space to either maximize performance subject to a given accuracy constraint, or maximize accuracy subject to a given performance constraint. We also demonstrate the SpeedGuard runtime system which uses code perforation to enable applications to automatically adapt to challenging execution environments such as multicore machines that suffer core failures or machines that dynamically adjust the clock speed to reduce power consumption or to protect the machine from overheating.
first_indexed 2024-09-23T12:12:30Z
id mit-1721.1/46709
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T12:12:30Z
publishDate 2009
record_format dspace
spelling mit-1721.1/467092019-04-12T14:36:05Z Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures Hoffmann, Henry Misailovic, Sasa Sidiroglou, Stelios Agarwal, Anant Rinard, Martin Martin Rinard Computer Architecture Many modern computations (such as video and audio encoders, Monte Carlo simulations, and machine learning algorithms) are designed to trade off accuracy in return for increased performance. To date, such computations typically use ad-hoc, domain-specific techniques developed specifically for the computation at hand. We present a new general technique, code perforation, for automatically augmenting existing computations with the capability of trading off accuracy in return for performance. In contrast to existing approaches, which typically require the manual development of new algorithms, our implemented SpeedPress compiler can automatically apply code perforation to existing computations with no developer intervention whatsoever. The result is a transformed computation that can respond almost immediately to a range of increased performancedemands while keeping any resulting output distortion within acceptable user-defined bounds. We have used SpeedPress to automatically apply code perforation to applications from the PARSEC benchmark suite. The results show that the transformed applications can run as much as two to three times faster than the original applications while distorting the output by less than 10%. Because the transformed applications can operate successfully at many points in the performance/accuracy tradeoff space, they can (dynamically and on demand) navigate the tradeoff space to either maximize performance subject to a given accuracy constraint, or maximize accuracy subject to a given performance constraint. We also demonstrate the SpeedGuard runtime system which uses code perforation to enable applications to automatically adapt to challenging execution environments such as multicore machines that suffer core failures or machines that dynamically adjust the clock speed to reduce power consumption or to protect the machine from overheating. 2009-09-04T15:45:14Z 2009-09-04T15:45:14Z 2009-09-03 http://hdl.handle.net/1721.1/46709 MIT-CSAIL-TR-2009-042 19 p. application/pdf application/postscript
spellingShingle Hoffmann, Henry
Misailovic, Sasa
Sidiroglou, Stelios
Agarwal, Anant
Rinard, Martin
Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title_full Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title_fullStr Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title_full_unstemmed Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title_short Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures
title_sort using code perforation to improve performance reduce energy consumption and respond to failures
url http://hdl.handle.net/1721.1/46709
work_keys_str_mv AT hoffmannhenry usingcodeperforationtoimproveperformancereduceenergyconsumptionandrespondtofailures
AT misailovicsasa usingcodeperforationtoimproveperformancereduceenergyconsumptionandrespondtofailures
AT sidirogloustelios usingcodeperforationtoimproveperformancereduceenergyconsumptionandrespondtofailures
AT agarwalanant usingcodeperforationtoimproveperformancereduceenergyconsumptionandrespondtofailures
AT rinardmartin usingcodeperforationtoimproveperformancereduceenergyconsumptionandrespondtofailures