Abstract
This paper presents a novel type system to promote and facilitate energy-aware programming. Energy Types is built upon a key insight into today's energy-efficient systems and applications: despite the popular perception that energy and power can only be described in joules and watts, real-world energy management is often based on discrete phases and modes, which in turn can be reasoned about by type systems very effectively. A phase characterizes a distinct pattern of program workload, and a mode represents an energy state the program is expected to execute in. This paper describes a programming model where phases and modes can be intuitively specified by programmers or inferred by the compiler as type information. It demonstrates how a type-based approach to reasoning about phases and modes can help promote energy efficiency. The soundness of our type system and the invariants related to inter-phase and inter-mode interactions are rigorously proved. Energy Types is implemented as the core of a prototyped object-oriented language ET for smartphone programming. Preliminary studies show ET can lead to significant energy savings for Android Apps.
- http://developer.android.com.Google Scholar
- M. Abadi, L. Cardelli, B. Pierce, and G. Plotkin. Dynamic typing in a statically-typed language. In POPL '89: Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 213--227, 1989. Google Scholar
Digital Library
- Alexander Aiken, Edward L. Wimmers, and T. K. Lakshman. Soft typing with conditional types. In POPL '94: Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 163--173, 1994. Google Scholar
Digital Library
- Woongki Baek and Trishul M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI '10: Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation, pages 198--209, 2010. Google Scholar
Digital Library
- Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. In Proceedings of the nineteenth ACM symposium on Operating systems principles, SOSP '03, pages 164--177, 2003. Google Scholar
Digital Library
- Michael Carbin, Deokhwan Kim, Sasa Misailovic, and Mar-tin C. Rinard. Proving acceptability properties of relaxed non-deterministic approximate programs. In PLDI, pages 169--180, 2012. Google Scholar
Digital Library
- Anantha P. Chandrakasan, Samuel Sheng, and Robert W. Brodersen. Low power cmos digital design. IEEE Journal of Solid State Circuits, 27:473--484, 1992.Google Scholar
Cross Ref
- Ashutosh S. Dhodapkar and James E. Smith. Managing multi-configuration hardware via dynamic working set analysis. In ISCA '02: Proceedings of the 29th annual international symposium on Computer architecture, pages 233--244, Washington, DC, USA, 2002. IEEE Computer Society. Google Scholar
Digital Library
- Carla Schlatter Ellis. The case for higher-level power manage-ment. In HOTOS '99: Proceedings of the The Seventh Work-shop on Hot Topics in Operating Systems, page 162, Washing-ton, DC, USA, 1999. IEEE Computer Society. Google Scholar
Digital Library
- Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger. Architecture support for disciplined approximate programming. In ASPLOS'12, pages 301--312, 2012. Google Scholar
Digital Library
- Michael Furr, Jong-hoon (David) An, and Jeffrey S. Foster. Profile-guided static typing for dynamic scripting languages. In OOPSLA '09: Proceeding of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 283--300, 2009. Google Scholar
Digital Library
- JanHoffmann, Klaus Aehlig, andMartinHofmann. Multivari-ate amortized resource analysis. In POPL '11, pages 357--370, 2011. Google Scholar
Digital Library
- Chung-Hsing Hsu and Ulrich Kremer. The design, implementation, and evaluation of a compiler algorithm for cpu energy reduction. In PLDI '03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pages 38-48, New York, NY, USA, 2003. ACM. Google Scholar
Digital Library
- Atsushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight java - a minimal core calculus for java and gj. In TOPLAS, pages 132--146, 1999. Google Scholar
Digital Library
- Atsushi Igarashi and Mirko Viroli. Variant parametric types: A flexible subtyping scheme for generics. TOPLAS, 28(5):795--847, 2006. Google Scholar
Digital Library
- Canturk Isci, Gilberto Contreras, and Margaret Martonosi. Live, runtime phasemonitoring and prediction on real systems with application to dynamic power management. In MICRO 39: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, pages 359--370, Washington, DC, USA, 2006. IEEE Computer Society. Google Scholar
Digital Library
- Canturk Isci and Margaret Martonosi. Identifying program power phase behavior using power vectors. In Workshop on Workload Characterization, 2003.Google Scholar
Cross Ref
- M. Kandemir, N. Vijaykrishnan, M. J. Irwin, and W. Ye. Influence of compiler optimizations on system power. In DAC '00: Proceedings of the 37th Annual Design Automation Conference, pages 304--307, New York, NY, USA, 2000. ACM. Google Scholar
Digital Library
- Stefanos Kaxiras and Margaret Martonosi. Computer Architecture Techniques for Power-Efficiency. Morgan and Clay-pool Publishers, 1st edition, 2008. Google Scholar
Digital Library
- Kenneth Knowles and Cormac Flanagan. Hybrid type checking. ACM Trans. Program. Lang. Syst., 32(2):1--34, 2010. Google Scholar
Digital Library
- Song Liu, Karthik Pattabiraman, Thomas Moscibroda, and Benjamin G. Zorn. Flikker: saving dram refresh-power through critical data partitioning. In ASPLOS, pages 213--224, 2011. Google Scholar
Digital Library
- Yung-Hsiang Lu, Luca Benini, and Giovanni De Micheli. Requester-aware power reduction. In Proceedings of the International Symposium on System Synthesis, pages 18--24, 2000. Google Scholar
Digital Library
- Grigorios Magklis, Michael L. Scott, Greg Semeraro, David H. Albonesi, and Steven Dropsho. Profile-based dynamic voltage and frequency scaling for a multiple clock do-main microprocessor. In ISCA '03, pages 14--27, 2003. Google Scholar
Digital Library
- Geoffrey Mainland, Greg Morrisett, and Matt Welsh. Flask: staged functional programming for sensor networks. In ICFP '08: Proceeding of the 13th ACMSIGPLAN international conference on Functional programming, pages 335--346, 2008. Google Scholar
Digital Library
- Ana Milanova, Atanas Rountev, and Barbara G. Ryder. Parameterized object sensitivity for points-to analysis for java. TOSEM, 14:1--41, January 2005. Google Scholar
Digital Library
- Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, and Martin Rinard. Quality of service profiling. In ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, pages 25--34, 2010. Google Scholar
Digital Library
- James Noble, John Potter, and Jan Vitek. Flexible alias protection. In ECOOP'98, Brussels, Belgium, July 1998. Google Scholar
Digital Library
- Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An extensible compiler framework for java. In CC'03, pages 138--152, April 2003. Google Scholar
Digital Library
- Trevor Pering, Tom Burd, and Robert Brodersen. The simulation and evaluation of dynamic voltage scaling algorithms. In ISLPED '98: Proceedings of the 1998 international symposium on Low power electronics and design, pages 76--81, 1998. Google Scholar
Digital Library
- A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, and D. Grossman. EnerJ: Approximate Data Types for Safe and General Low-Power Computation. In Programming Language Design and Implementation (PLDI), June 2011. Google Scholar
Digital Library
- Timothy Sherwood, Suleyman Sair, and Brad Calder. Phase tracking and prediction. In ISCA '03: Proceedings of the 30th annual international symposium on Computer architecture, pages 336--349, New York, NY, USA, 2003. ACM. Google Scholar
Digital Library
- Jeremy Siek and Walid Taha. Gradual typing for objects. In ECOOP '07: Proceedings of the 21st European conference on ECOOP 2007, pages 2-27, Berlin, Heidelberg, 2007. Springer-Verlag. Google Scholar
Digital Library
- V. Silva. Pro Android Games. Apress Series. Apress, 2010. Google Scholar
Digital Library
- Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan, Mark D. Corner, and Emery D. Berger. Eon: a language and runtime system for perpetual systems. In SenSys '07: Proceedings of the 5th international conference on Embedded networked sensor systems, pages 161--174, 2007. Google Scholar
Digital Library
- Ching-Long Su and Alvin M. Despain. Cache design trade-offs for power and performance optimization: a case study. In ISLPED '95: Proceedings of the 1995 international symposium on Low power design, pages 63--68, 1995. Google Scholar
Digital Library
- Mads Tofte and Jean-Pierre Talpin. Region-based memory management. Information and Computation, 1997. Google Scholar
Digital Library
- Energy Types. http://www.cs.binghamton.edu/~davidL/et/.Google Scholar
- Mark Weiser, Brent Welch, Alan Demers, and Scott Shenker. Scheduling for reduced cpu energy. In OSDI '94: Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation, page 2, Berkeley, CA, USA, 1994. USENIX Association. Google Scholar
Digital Library
- Qiang Wu, Philo Juang, Margaret Martonosi, and Douglas W. Clark. Formal online methods for voltage/frequency control in multiple clock domain microprocessors. In ASPLOS-XI, pages 248--259, 2004. Google Scholar
Digital Library
- Fen Xie, Margaret Martonosi, and Sharad Malik. Compile-time dynamic voltage scaling settings: opportunities and limits. In PLDI '03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pages 49--62, 2003. Google Scholar
Digital Library
- Steve Zdancewic and Andrew C. Myers. Robust declassification. In Proc. IEEE Computer Security Foundations Workshop, pages 15-23. IEEE Computer Society Press, 2001. Google Scholar
Digital Library
Index Terms
Energy types
Recommendations
A design method for modular energy-aware software
SAC '13: Proceedings of the 28th Annual ACM Symposium on Applied ComputingNowadays reducing the overall energy consumption of software is important. A well-known solution is extending the functionality of software with energy optimizers, which monitor the energy consumption of software and adapt it accordingly. To make such ...
Energy types
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThis paper presents a novel type system to promote and facilitate energy-aware programming. Energy Types is built upon a key insight into today's energy-efficient systems and applications: despite the popular perception that energy and power can only be ...
Gradual mode types for energy-aware programming
SPLASH Companion 2015: Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for HumanityModeling energy related concepts as high level constructs that can be checked by a type system is challenging due to the dependency on runtime factors related to energy consumption. Pushing energy concepts such as energy mode types into a language ...







Comments