EnerJ: Approximate Data Types for Safe and General Low-Power Computation

  • 2011-01-24
  • Research

Energy is a first-order concern in computer systems. Exploiting energy-accuracy trade-offs is attractive for applications that can tolerate inaccuracies

Der Arbeitsbereich für Programmiersprachen und Übersetzer am Institut für Computersprachen lädt ein.


Energy is increasingly a first-order concern in computer systems. Exploiting energy-accuracy trade-offs is an attractive choice in applications that can tolerate inaccuracies. Recent work has explored exposing this trade-off in programming models. A key challenge, though, is how to isolate parts of the program that must be precise from those that can be approximated so that a program functions correctly even as quality of service degrades.

We propose using type qualifiers to declare data that may be subject to approximate computation. Using these types, the system automatically maps approximate variables to low-power storage, uses low-power operations, and even applies more energy-efficient algorithms. In addition, the system can statically guarantee isolation of the precise program component from the approximate component. This allows a programmer to control explicitly how information flows from approximate data to precise data. Importantly, employing static analysis eliminates the need for dynamic checks, further improving energy savings. As a proof of concept, we develop EnerJ, an extension to Java that adds approximate data types. We also propose a hardware architecture that offers explicit approximate storage and computation. We port several applications to EnerJ and show that our extensions are expressive and effective; a small number of annotations lead to significant potential energy savings (10%-50%) at very little accuracy cost.

Kurzbiographie von Werner M. Dietl

Werner M. Dietl is a post-doctoral research associate at the department of Computer Science & Engineering of the University of Washington, where he works with Prof. Michael Ernst. He is a member of the SE.CS and WASP research groups and aims to help software engineers produce high-quality software by enabling them to better understand and structure their software. Previously, he was a research and teaching assistant at the Chair of Programming Methodology, ETH Zurich, working on his doctoral thesis under the supervision of Prof. Peter Müller.


Tee ab 10:30 Uhr in der Bibliothek E185.1, Argentinierstr. 8, 4. Stock (Mitte).


Note: This is one of the thousands of items we imported from the old website. We’re in the process of reviewing each and every one, but if you notice something strange about this particular one, please let us know. — Thanks!