Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Proactive and adaptive energy-aware programming with mixed typechecking

Published: 14 June 2017 Publication History

Abstract

Application-level energy management is an important dimension of energy optimization. In this paper, we introduce ENT, a novel programming language for enabling *proactive* and *adaptive* mode-based energy management at the application level. The proactive design allows programmers to apply their application knowledge to energy management, by characterizing the energy behavior of different program fragments with modes. The adaptive design allows such characterization to be delayed until run time, useful for capturing dynamic program behavior dependent on program states, configuration settings, external battery levels, or CPU temperatures. The key insight is both proactiveness and adaptiveness can be unified under a type system combined with static typing and dynamic typing. ENT has been implemented as an extension to Java, and successfully ported to three energy-conscious platforms: an Intel-based laptop, a Raspberry Pi, and an Android phone. Evaluation shows ENT improves the programmability, debuggability, and energy efficiency of battery-aware and temperature-aware programs.

References

[1]
Advanced configuration and power interface, http:// www .acpi.info.
[2]
Duckduckgo, https://github .com/duckduckgo/ android.
[3]
Javaboy, http://www .millstone.demon.co.uk/ download/javaboy/.
[4]
jspider, http://jspider.sourceforge.net.
[5]
Materiallife, https://github .com/ juankysoriano/MaterialLife.
[6]
Mopi, https://pi.gate.ac.uk/pages/mopi.html.
[7]
Newpipe, https://github .com/TeamNewPipe/ NewPipe.
[8]
Turn your pi into a low-cost hd serveillance cam, https: //www .raspberrypi.org/blog/turn-your-piinto-a-low-cost-hd-surveillance-cam/,.
[9]
Satellite cameras saving endangered species, http: //www .cambridgeconsultants.com/news/pr/ release/140/en,.
[10]
Emulation on raspberry pi 2, https:// www .raspberrypi.org/blog/emulation-onraspberry-pi-2/,.
[11]
Raspberry pi, https://www.raspberrypi.org/,.
[12]
Raspberry pi camera, https:// www .raspberrypi.org/documentation/ raspbian/applications/camera .md,.
[13]
Raspberry pi camera java, https:// blogs .msdn.microsoft.com/robert mcmurray/ 2015/06/12/simple-java-wrapper-classfor-raspistill-on-the-raspberry-pi-2/,.
[14]
Simbamon, https://github .com/ hamishcunningham/pi-tronics/tree/master/ simbamon.
[15]
Soundrecorder, https://github .com/dkim0419/ SoundRecorder.
[16]
Watts up? power meters, https:// www .wattsupmeters.com/secure/index.php.
[17]
M. Abadi, L. Cardelli, B. Pierce, and G. Plotkin. Dynamic typing in a statically-typed language. In POPL ’89.
[18]
N. Ayewah, W. Pugh, J. D. Morgenthaler, J. Penix, and Y. Zhou. Evaluating static analysis defect warnings on production software. PASTE ’07, pages 1–8.
[19]
W. Baek and T. M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI’10, pages 198–209.
[20]
P. Boldi and S. Vigna. The webgraph framework i: Compression techniques. In Proceedings of the 13th International Conference on World Wide Web, WWW ’04, pages 595–602.
[21]
P. Boldi, M. Rosa, M. Santini, and S. Vigna. Layered label propagation: A multiresolution coordinate-free ordering for compressing social networks. In S. Srinivasan, K. Ramamritham, A. Kumar, M. P. Ravindra, E. Bertino, and R. Kumar, editors, Proceedings of the 20th international conference on World Wide Web, pages 587–596. ACM Press, 2011.
[22]
J. Bornholt, T. Mytkowicz, and M. Kathryn. Uncertain¡t¿: a first-order type for uncertain data. In ASPLOS ’14, pages 51– 66.
[23]
B. Boston, A. Sampson, D. Grossman, and L. Ceze. Probability type inference for flexibile approximate programming. In OOPSLA ’15.
[24]
P. Buiras, D. Vytiniotis, and A. Russo. Hlio: Mixing static and dynamic typing for information-flow control in haskell. In ICFP 2015.
[25]
T. Cao, S. M. Blackburn, T. Gao, and K. S. McKinley. The yin and yang of power and performance for asymmetric hardware and managed software. In ICSA ’12.
[26]
M. Carbin, S. Misailovic, and M. Rinard. Verifying quantitative reliability for programs that execute on unreliable hardware. In OOPSLA ’13, pages 33–52.
[27]
L. Cardelli, S. Martini, J. C. Mitchell, and A. Scedrov. An extension of system f with subtyping. In Information and Computation, pages 750–770. Springer-Verlag, 1991.
[28]
R. Cartwright and M. Fagan. Soft typing. In PLDI ’91.
[29]
E. C ¸ ic¸ek, G. Barthe, M. Gaboardi, D. Garg, and J. Hoffmann. Relational cost analysis. In POPL ’17, pages 316–329.
[30]
A. P. Chandrakasan, S. Sheng, and R. W. Brodersen. Low power cmos digital design. IEEE JOURNAL OF SOLID STATE CIRCUITS, 27:473–484, 1995.
[31]
M. Cohen, H. S. Zhu, S. E. Emgin, and Y. D. Liu. Energy types. In OOPSLA ’12.
[32]
H. David, E. Gorbatov, U. R. Hanebutte, R. Khanna, and C. Le. Rapl: Memory power estimation and capping. In ISLPED ’10, pages 189–194.
[33]
R. B. Findler and M. Felleisen. Contracts for higher-order functions. In ICFP ’02, pages 48–59.
[34]
C. Flanagan. Hybrid type checking. In POPL ’06.
[35]
J. Flinn and M. Satyanarayanan. Energy-aware adaptation for mobile applications. In SOSP ’99.
[36]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995. ISBN 0-201-63361-2.
[37]
L. Gomez, I. Neamtiu, T. Azim, and T. Millstein. Reran: Timing- and touch-sensitive record and replay for android. In ICSE ’13.
[38]
H. Hoffmann. Jouleguard: Energy guarantees for approximate applications. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP ’15, pages 198–214.
[39]
H. Hoffmann, S. Sidiroglou, M. Carbin, S. Misailovic, A. Agarwal, and M. Rinard. Dynamic knobs for responsive power-aware computing. In ASPLOS ’11,.
[40]
J. Hoffmann, A. Das, and S.-C. Weng. Towards automatic resource bound analysis for ocaml. In POPL ’17, pages 359– 373,.
[41]
D. Hovemeyer and W. Pugh. Finding bugs is easy. SIGPLAN Not., 39(12):92–106, 2004.
[42]
A. Igarashi, B. Pierce, and P. Wadler. Featherweight java - a minimal core calculus for java and gj. In TOPLAS ’99, pages 132–146.
[43]
M. Kambadur and M. Kim. Nrg-loops: Adjusting power from within applications. In CGO ’16,.
[44]
M. Kambadur and M. Kim. An experimental survey of energy management across the stack. In OOPSLA ’14, pages 329– 344,.
[45]
S. Kaxiras and M. Martonosi. Computer Architecture Techniques for Power-Efficiency. Morgan and Claypool Publishers, 1st edition, 2008.
[46]
B. S. Lerner, J. G. Politz, A. Guha, and S. Krishnamurthi. TeJaS: Retrofitting type systems for JavaScript. In Dynamic Languages Symposium (DLS) ’13.
[47]
K. Liu, G. Pinto, and Y. D. Liu. Data-oriented characterization of application-level energy optimization. In FASE ’15.
[48]
Y. Long, Y. D. Liu, and H. Rajan. Intensional effect polymorphism. In ECOOP ’15, pages 346–370.
[49]
G. Mainland, G. Morrisett, and M. Welsh. Flask: staged functional programming for sensor networks. In ICFP ’08.
[50]
S. Misailovic, M. Carbin, S. Achour, Z. Qi, and M. C. Rinard. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In OOPSLA ’14, pages 309–328.
[51]
A. C. Myers. Jflow: practical mostly-static information flow control. In 26th ACM Symp. on Principles of Programming Languages (POPL), page 228241, January 1999.
[52]
B. D. Noble, M. Satyanarayanan, D. Narayanan, J. E. Tilton, J. Flinn, and K. R. Walker. Agile application-aware adaptation for mobility. pages 276–287, 1997.
[53]
N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An extensible compiler framework for java. In CC ’03, pages 138–152.
[54]
A. Pathak, Y. C. Hu, and M. Zhang. Bootstrapping energy debugging on smartphones: A first look at energy bugs in mobile devices. HotNets-X ’11, pages 5:1–5:6,.
[55]
A. Pathak, A. Jindal, Y. C. Hu, and S. P. Midkiff. What is keeping my phone awake?: Characterizing and detecting nosleep energy bugs in smartphone apps. In MobiSys ’12, pages 267–280,.
[56]
G. Pinto, F. Castor, and Y. D. Liu. Understanding energy behaviors of thread management constructs. In OOPSLA ’14.
[57]
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 PLDI’11.
[58]
K. Shiv, K. Chow, Y. Wang, and D. Petrochenko. Specjvm2008 performance characterization. In Proceedings of the 2009 SPEC Benchmark Workshop on Computer Performance Evaluation and Benchmarking, 2009.
[59]
J. Siek and W. Taha. Gradual typing for objects. In ECOOP ’07.
[60]
J. G. Siek and W. Taha. Gradual typing for functional languages. Scheme and Functional Programming Workshop, 6: 81–92, 2006.
[61]
J. G. Siek, M. Vitousek, M. Cimini, and B. John. Refined criteria for gradual typing. In SNAPL ’15.
[62]
J. Sorber, A. Kostadinov, M. Garber, M. Brennan, M. D. Corner, and E. D. Berger. Eon: a language and runtime system for perpetual systems. In SenSys ’07, pages 161–174.
[63]
Takikawa, Feltey, Dean, Flatt, Findler, Tobin-Hochstadt, and Felleisen. Toward practical gradual typing. In ECOOP ’15,.
[64]
A. Takikawa, T. S. Strickland, C. Dimoulas, S. Tobin-Hochstadt, and M. Felleisen. Gradual typing for first-class classes. In OOPSLA ’12, pages 793–810,.
[65]
T. Wrigstad, F. Z. Nardelli, S. Lebresne, J. Östlund, and J. Vitek. Integrating typed and untyped code in a scripting language. In POPL ’10, pages 377–388.
[66]
S. Zdancewic and A. C. Myers. Secure information flow and cps. In 10th European Symposium on Programming, volume 2028, page 4661, 2001.
[67]
H. S. Zhu, C. Lin, and Y. D. Liu. A programming model for sustainable software. In ICSE’15, pages 767–777, 2015.

Cited By

View all
  • (2023)The Odd One Out: Energy is Not Like Other MetricsACM SIGEnergy Energy Informatics Review10.1145/3630614.36306273:3(71-77)Online publication date: 1-Oct-2023
  • (2020)Calm energy accounting for multithreaded Java applicationsProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409703(976-988)Online publication date: 8-Nov-2020
  • (2024)Tensor-Aware Energy AccountingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639156(1-12)Online publication date: 20-May-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 52, Issue 6
PLDI '17
June 2017
708 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/3140587
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2017
    708 pages
    ISBN:9781450349888
    DOI:10.1145/3062341
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2017
Published in SIGPLAN Volume 52, Issue 6

Check for updates

Author Tags

  1. Energy Efficiency
  2. Energy-Aware Programming
  3. Type systems

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)The Odd One Out: Energy is Not Like Other MetricsACM SIGEnergy Energy Informatics Review10.1145/3630614.36306273:3(71-77)Online publication date: 1-Oct-2023
  • (2020)Calm energy accounting for multithreaded Java applicationsProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409703(976-988)Online publication date: 8-Nov-2020
  • (2024)Tensor-Aware Energy AccountingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639156(1-12)Online publication date: 20-May-2024
  • (2023)Vincent: Green Hot Methods in the JVMScience of Computer Programming10.1016/j.scico.2023.102962(102962)Online publication date: May-2023
  • (2022)GOAL: Supporting General and Dynamic Adaptation in Computing SystemsProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567655(16-32)Online publication date: 29-Nov-2022
  • (2022)EflectProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510145(823-834)Online publication date: 21-May-2022
  • (2022)Protecting adaptive sampling from information leakage on low-power sensorsProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507775(240-254)Online publication date: 28-Feb-2022
  • (2020)Adaptive Variables for Declarative UAV PlanningProceedings of the 12th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3422584.3422763(1-7)Online publication date: 21-Jul-2020
  • (2020)Calm energy accounting for multithreaded Java applicationsProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409703(976-988)Online publication date: 8-Nov-2020
  • (2019)Verifying safety and accuracy of approximate parallel programs via canonical sequentializationProceedings of the ACM on Programming Languages10.1145/33605453:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media