skip to main content
survey

Software Development Lifecycle for Energy Efficiency: Techniques and Tools

Published:30 August 2019Publication History
Skip Abstract Section

Abstract

Motivation: In modern it systems, the increasing demand for computational power is tightly coupled with ever higher energy consumption. Traditionally, energy efficiency research has focused on reducing energy consumption at the hardware level. Nevertheless, the software itself provides numerous opportunities for improving energy efficiency.

Goal: Given that energy efficiency for it systems is a rising concern, we investigate existing work in the area of energy-aware software development and identify open research challenges. Our goal is to reveal limitations, features, and tradeoffs regarding energy-performance for software development and provide insights on existing approaches, tools, and techniques for energy-efficient programming.

Method: We analyze and categorize research work mostly extracted from top-tier conferences and journals concerning energy efficiency across the software development lifecycle phases.

Results: Our analysis shows that related work in this area has focused mainly on the implementation and verification phases of the software development lifecycle. Existing work shows that the use of parallel and approximate programming, source code analyzers, efficient data structures, coding practices, and specific programming languages can significantly increase energy efficiency. Moreover, the utilization of energy monitoring tools and benchmarks can provide insights for the software practitioners and raise energy-awareness during the development phase.

References

  1. S. Abdulsalam, D. Lakomski, Q. Gu, T. Jin, and Z. Zong. 2014. Program energy efficiency: The impact of language, compiler and implementation choices. In Proceedings of the 2014 International Green Computing Conference (IGCC’14). 1--6.Google ScholarGoogle Scholar
  2. K. Aggarwal, A. Hindle, and E. Stroulia. 2015. GreenAdvisor: A tool for analyzing the impact of software evolution on energy consumption. In Proceedings of the 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME’15). 311--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Agosta, M. Bessi, E. Capra, and C. Francalanci. 2011. Dynamic memoization for energy efficiency in financial applications. In Proceedings of the 2011 International Green Computing Conference and Workshops. 1--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Anys Bacha and Radu Teodorescu. 2013. Dynamic reduction of voltage margins by leveraging on-chip ECC in itanium II processors. In Proceedings of the 40th Annual International Symposium on Computer Architecture (ISCA’13). ACM, New York, NY, 297--307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Anys Bacha and Radu Teodorescu. 2014. Using ECC feedback to guide voltage speculation in low-voltage processors. In Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-47). IEEE Computer Society, Los Alamitos, CA, 306--318. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Woongki Baek and Trishul M. Chilimbi. 2010. Green: A framework for supporting energy-conscious programming using controlled approximation. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’10). ACM, New York, NY, 198--209. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Abhijeet Banerjee, Lee Kee Chong, Sudipta Chattopadhyay, and Abhik Roychoudhury. 2014. Detecting energy bugs and hotspots in mobile apps. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’14). ACM, New York, NY, 588--598. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Mohamed Amine Beghoura, Abdelhak Boubetra, and Abdallah Boukerram. 2015. Green software requirements and measurement: Random decision forests-based software energy consumption profiling. Requir. Eng. 22, 1 (Jul. 2015), 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Anton Beloglazov, Rajkumar Buyya, Young Choon Lee, and Albert Zomaya. 2010. A taxonomy and survey of energy-efficient data centers and cloud computing systems. In Advances in Computers, V. Marvin Zelkowitz (Ed.). Elsevier, 47--111. http://www.sciencedirect.com/science/article/pii/B9780123855121000037Google ScholarGoogle Scholar
  10. Robert D. Blumofe and Charles E. Leiserson. 1999. Scheduling multithreaded computations by work stealing. J. ACM 46, 5 (Sep. 1999), 720--748. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. E. Husain Bohra and V. Chaudhary. 2010. VMeter: Power modelling for virtualized clouds. In Proceedings of the 2010 IEEE International Symposium on Parallel Distributed Processing, Workshops and Phd Forum (IPDPSW’10). 1--8.Google ScholarGoogle Scholar
  12. A. Bourdon, A. Noureddine, R. Rouvoy, and L. Seinturier. 2012. PowerAPI: A Software Library to Monitor the Energy Consumed at the Process-Level. Retrieved June 13, 2016 from http://ercim-news.ercim.eu/en92/special/powerapi-a-software-library-to-monitorthe-energy-consumed-at-the-process-level.Google ScholarGoogle Scholar
  13. Paolo Bozzelli, Qing Gu, and Patricia Lago. 2013. A Systematic Literature Review on Green Software Metrics. Retrieved from https://pdfs.semanticscholar.org/7f7d/7e7d53febd451e263784b59c1c9038474499.pdf.Google ScholarGoogle Scholar
  14. Christian Bunse, Zur Schwedenschanze, and Sebastian Stiemer. 2013. On the energy consumption of design patterns. In Proceedings of the 2nd Workshop EASED@ BUIS Energy Aware Software-Engineering and Development. Citeseer, 7--8.Google ScholarGoogle ScholarCross RefCross Ref
  15. Q. Cai, J. González, G. Magklis, P. Chaparro, and A. González. 2011. Thread shuffling: Combining DVFS and thread migration to reduce energy consumptions for multi-core systems. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED’11). 379--384. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Eugenio Capra, Chiara Francalanci, and Sandra A. Slaughter. 2012. Is software “Green”? Application development environments and energy efficiency in open source applications. Inf. Softw. Technol. 54, 1 (Jan. 2012), 60--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Chen and C. Kuo. 2007. Energy-efficient scheduling for real-time systems on dynamic voltage scaling (DVS) platforms. In Proceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’07). 28--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. X. Chen and Z. Zong. 2016. Android app energy efficiency: The impact of language, runtime, compiler, and implementation. In Proceedings of the 2016 IEEE International Conferences on Big Data and Cloud Computing (BDCloud’16), Social Computing and Networking (SocialCom’16), Sustainable Computing and Communications (SustainCom’16) (BDCloud-SocialCom-SustainCom’16). 485--492.Google ScholarGoogle Scholar
  19. Y. K. Chen, J. Chhugani, P. Dubey, C. J. Hughes, D. Kim, S. Kumar, V. W. Lee, A. D. Nguyen, and M. Smelyanskiy. 2008. Convergence of recognition, mining, and synthesis workloads and its implications. Proc. IEEE 96, 5 (May 2008), 790--807.Google ScholarGoogle Scholar
  20. Shaiful Alam Chowdhury and Abram Hindle. 2016. GreenOracle: Estimating software energy consumption with energy measurement corpora. In Proceedings of the 13th International Conference on Mining Software Repositories (MSR’16). ACM, New York, NY, 49--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Maxime Colmant, Mascha Kurpicz, Pascal Felber, Loïc Huertas, Romain Rouvoy, and Anita Sobe. 2015. Process-level power estimation in VM-based systems. In Proceedings of the 10th European Conference on Computer Systems (EuroSys’15). ACM, New York, NY, 14:1--14:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Howard David, Eugene Gorbatov, Ulf R. Hanebutte, Rahul Khanna, and Christian Le. 2010. RAPL: Memory power estimation and capping. In Proceedings of the 16th ACM/IEEE International Symposium on Low Power Electronics and Design (ISLPED’10). ACM, New York, NY, 189--194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Qi Deng and Shaobo Ji. 2015. Organizational green IT adoption: Concept and evidence. Sustainability 7, 12 (Dec. 2015), 16737--16755.Google ScholarGoogle ScholarCross RefCross Ref
  24. Dario Di Nucci, Fabio Palomba, Antonio Prota, Annibale Panichella, Andy Zaidman, and Andrea De Lucia. 2017. Software-based energy profiling of Android apps: Simple, efficient and reliable? In Proceedings of the IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER'17). 103--114.Google ScholarGoogle ScholarCross RefCross Ref
  25. K. Eder. 2013. Energy transparency from hardware to software. In Proceedings of the 2013 3rd Berkeley Symposium on Energy Efficient Electronic Systems (E3S’13). 1--2.Google ScholarGoogle ScholarCross RefCross Ref
  26. H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. 2012. Neural acceleration for general-purpose approximate programs. In Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture. 449--460. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. A. Ferreira, E. Hoekstra, B. Merkus, B. Visser, and J. Visser. 2013. Seflab: A lab for measuring software energy footprints. In Proceedings of the 2013 2nd International Workshop on Green and Sustainable Software (GREENS’13). 30--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Erol Gelenbe and Yves Caseau. 2015. The impact of information technology on energy consumption and carbon emissions. Ubiquity 2015, June (Jun. 2015), 1:1--1:15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Johann Grossschadl, Stefan Tillich, Christian Rechberger, Michael Hofmann, and Marcel Medwed. 2007. Energy evaluation of software implementations of block ciphers under memory constraints. In Proceedings of the 2007 Design, Automation 8 Test in Europe Conference 8 Exhibition. IEEE, 1--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Hao, D. Li, W. G. J. Halfond, and R. Govindan. 2013. Estimating mobile application energy consumption using program analysis. In Proceedings of the 2013 35th International Conference on Software Engineering (ICSE’13). 92--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. I. J. Haratcherev, G. P. Halkes, T. E. V. Parker, O. W. Visser, and K. G. Langendoen. 2008. PowerBench: A Scalable Testbed Infrastructure for Benchmarking Power Consumption. 37--44.Google ScholarGoogle Scholar
  34. Samir Hasan, Zachary King, Munawar Hafiz, Mohammed Sayagh, Bram Adams, and Abram Hindle. 2016. Energy profiles of Java collections classes. In Proceedings of the 38th International Conference on Software Engineering (ICSE’16). ACM, New York, NY, 225--236. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Alexander A. Hernandez and Sherwin E. Ona. 2015. A qualitative study of green IT adoption within the philippines business process outsourcing industry: A multi-theory perspective. Int. J. Enterp. Inf. Syst. 11, 4 (Oct. 2015), 28--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Abram Hindle, Alex Wilson, Kent Rasmussen, E. Jed Barlow, Joshua Charles Campbell, and Stephen Romansky. 2014. GreenMiner: A hardware based mining software repositories software energy consumption framework. In Proceedings of the 11th Working Conference on Mining Software Repositories (MSR’14). ACM, New York, NY, 12--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Timo Honig, Heiko Janker, Christopher Eibel, Oliver Mihelic, and Rüdiger Kapitza. 2014. Proactive energy-aware programming with PEEK. In Proceedings of the 2014 International Conference on Timely Results in Operating Systems. USENIX Association, 6 pages. http://dl.acm.org/citation.cfm?id=2750315.2750321. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Melanie Kambadur and Martha A. Kim. 2014. An experimental survey of energy management across the stack. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA’14). ACM, New York, NY, 329--344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Aman Kansal, Feng Zhao, Jie Liu, Nupur Kothari, and Arka A. Bhattacharya. 2010. Virtual machine power metering and provisioning. In Proceedings of the 1st ACM Symposium on Cloud Computing. ACM, 39--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Fanxin Kong and Xue Liu. 2014. A survey on green-energy-aware power management for datacenters. ACM Comput. Surv. 47, 2 (Nov. 2014), 30:1--30:38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. J. Leng, A. Buyuktosunoglu, R. Bertran, P. Bose, and V. J. Reddi. 2015. Safe limits on voltage reduction efficiency in GPUs: A direct measurement approach. In Proceedings of the 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’15). 294--307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Ding Li and William G. J. Halfond. 2014. An investigation into energy-saving programming practices for Android smartphone app development. In Proceedings of the 3rd International Workshop on Green and Sustainable Software (GREENS’14). ACM, New York, NY, 46--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Xueliang Li and John P. Gallagher. 2016. A source-level energy optimization framework for mobile applications. In Proceedings of the 16th International Working Conference on Source Code Analysis and Manipulation. IEEE Computer Society, Los Alamitos, CA.Google ScholarGoogle Scholar
  44. Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Rocco Oliveto, Massimiliano Di Penta, and Denys Poshyvanyk. 2014. Mining energy-greedy API usage patterns in Android apps: An empirical study. In Proceedings of the 11th Working Conference on Mining Software Repositories (MSR’14). ACM, New York, NY, 2--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Kenan Liu, Gustavo Pinto, and Yu David Liu. 2015. Data-oriented characterization of application-level energy optimization. In Fundamental Approaches to Software Engineering, Alexander Egyed and Ina Schaefer (Eds.), Vol. 9033 in Lecture Notes in Computer Science. Springer, Berlin, 316--331.Google ScholarGoogle Scholar
  46. Irene Manotas, Christian Bird, Rui Zhang, David Shepherd, Ciera Jaspan, Caitlin Sadowski, Lori Pollock, and James Clause. 2016. An empirical study of practitioners’ perspectives on green software engineering. In Proceedings of the 38th International Conference on Software Engineering (ICSE’16). ACM, New York, NY, 237--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Irene Manotas, Lori Pollock, and James Clause. 2014. SEEDS: A software engineer’s energy-optimization decision support framework. In Proceedings of the 36th International Conference on Software Engineering (ICSE’14). ACM, New York, NY, 503--514. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Toni Mastelic, Ariel Oleksiak, Holger Claussen, Ivona Brandic, Jean-Marc Pierson, and Athanasios V. Vasilakos. 2014. Cloud computing: Survey on energy efficiency. ACM Comput. Surv. 47, 2 (Dec. 2014), 33:1--33:36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Junya Michanan, Rinku Dewri, and Matthew J. Rutherford. 2016. GreenC5: An adaptive, energy-aware collection for green software development. Sust. Comput. Inf. Syst. 12 (Nov. 2016), 42--60.Google ScholarGoogle Scholar
  50. Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, and Martin C. Rinard. 2014. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA’14). ACM, New York, NY, 309--328. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Subrata Mitra, Manish K. Gupta, Sasa Misailovic, and Saurabh Bagchi. 2017. Phase-aware optimization in approximate computing. In Proceedings of the 2017 International Symposium on Code Generation and Optimization (CGO’17). IEEE Press, Los Alamitos, CA, 185--196. http://dl.acm.org/citation.cfm?id=3049832.3049853 Google ScholarGoogle ScholarCross RefCross Ref
  52. Sparsh Mittal and Jeffrey S. Vetter. 2015. A survey of CPU-GPU heterogeneous computing techniques. ACM Comput. Surv. 47 (2015), 69--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Sparsh Mittal and Jeffrey S. Vetter. 2016. A survey of software techniques for using non-volatile memories for storage and main memory systems. IEEE Trans. Parallel Distrib. Syst. 27, 5 (May 2016), 1537--1550. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Maurizio Morisio, Luca Ardito, Antonio Vetro’, and Giuseppe Procaccianti. 2013. Definition, implementation and validation of energy code smells: An exploratory study on an embedded system. In Proceedings of the Third International Conference on Smart Grid, Green Communications and IT Energy-aware Technologies (Energy'13). 34--39.Google ScholarGoogle Scholar
  55. Lev Mukhanov, Dimitrios S. Nikolopoulos, and Bronis R. de Supinski. 2015. ALEA: Fine-grain energy profiling with basic block sampling. In Proceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT’15). IEEE Computer Society, Los Alamitos, CA, 87--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. S. Murugesan. 2008. Harnessing green IT: Principles and practices. IT Profess. 10, 1 (Jan. 2008), 24--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Uwe Naumann. 2012. The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation. Society for Industrial and Applied Mathematics, Philadelphia, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Adel Noureddine, Aurélien Bourdon, Romain Rouvoy, and Lionel Seinturier. 2012b. A preliminary study of the impact of software engineering on GreenIT. In Proceedings of the First International Workshop on Green and Sustainable Software. IEEE Press, 21--27. http://dl.acm.org/citation.cfm?id=2663779.2663783. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. A. Noureddine, A. Bourdon, R. Rouvoy, and L. Seinturier. 2012a. Runtime monitoring of software energy hotspots. In Proceedings of the 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE’12). 160--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. A. Noureddine and A. Rajan. 2015. Optimising energy consumption of design patterns. In Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE’15), Vol. 2. 623--626. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Adel Noureddine, Romain Rouvoy, and Lionel Seinturier. 2013. A review of energy measurement approaches. SIGOPS Oper. Syst. Rev. 47, 3 (Nov. 2013), 42--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. S. Pandruvada. 2014. Running Average Power Limit—RAPL textbar 01.org. Retrieved June 28, 2016 from https://01.org/blogs/tlcounts/2014/running-average-power-limit‐‐‐rapl.Google ScholarGoogle Scholar
  63. C. Pang, A. Hindle, B. Adams, and A. Hassan. 2015. What do programmers know about software energy consumption? IEEE Softw. 33, 3 (2015), 83--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Thomas Pantels. 2015. Optimizing Power for Interactions between Virus Scanners and Pre-bundled Software. Retrieved from https://software.intel.com/en-us/articles/optimizing-power-for-interactions-between-virus-scanners-and-pre-bundled-software.Google ScholarGoogle Scholar
  65. Thomas Pantels, Sheng Guo, and Rajshree Chabukswar. 2014. Touch Response Measurement, Analysis, and Optimization for Windows* Applications. Retrieved from https://software.intel.com/en-us/articles/touch-response-measurement-analysis-and-optimization-for-windows-applications.Google ScholarGoogle Scholar
  66. George Papadimitriou, Manolis Kaliorakis, Athanasios Chatzidimitriou, Dimitris Gizopoulos, Peter Lawthers, and Shidhartha Das. 2017. Harnessing voltage margins for energy efficiency in multicore CPUs. In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’17). ACM, New York, NY, 503--516. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Jae Jin Park, Jang-Eui Hong, and Sang-Ho Lee. 2014. Investigation for software power consumption of code refactoring techniques. In Proceedings of the 26th International Conference on Software Engineering and Knowledge Engineering, Marek Reformat (Ed.). Knowledge Systems Institute Graduate School, 717--722.Google ScholarGoogle Scholar
  68. Abhinav Pathak, Y. Charlie Hu, and Ming Zhang. 2012. Where is the energy spent inside my app?: Fine grained energy accounting on smartphones with eprof. In Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys’12). ACM, New York, NY, 29--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Rui Pereira, Marco Couto, João Saraiva, Jácome Cunha, and João Paulo Fernandes. 2016. The influence of the Java collection framework on overall energy consumption. In Proceedings of the 5th International Workshop on Green and Sustainable Software (GREENS’16). ACM, New York, NY, 15--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Peter A. H. Peterson, Digvijay Singh, William J. Kaiser, and Peter L. Reiher. 2011. Investigating energy and security trade-offs in the classroom with the atom LEAP testbed. In Proceedings of the 4th Conference on Cyber Security Experimentation and Test (CSET’11). USENIX Association, Berkeley, CA, 11--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Gustavo Pinto, Fernando Castor, and Yu David Liu. 2014. Understanding energy behaviors of thread management constructs. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA’14). ACM, New York, NY, 345--360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Gustavo Pinto, Kenan Liu, and Fernando Castor. 2016. A comprehensive study on the energy efficiency of Java thread-safe collections. In Proceedings of the 32nd IEEE International Conference on Software Maintenance and Evolution. IEEE Computer Society, Los Alamitos, CA.Google ScholarGoogle Scholar
  73. G. Pinto, F. Soares-Neto, and F. Castor. 2015. Refactoring for energy efficiency: A reflection on the state of the art. In Proceedings of the 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software (GREENS’15). 29--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Giuseppe Procaccianti, Héctor Fernández, and Patricia Lago. 2016. Empirical evaluation of two best practices for energy-efficient software development. J. Syst. Softw. 117, C (July 2016), 185--198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. L. B. Rall. 1984. The Arithmetic of Differentiation. Mathematics Research Center, University of Wisconsin—Madison.Google ScholarGoogle Scholar
  76. M. Rashid, L. Ardito, and M. Torchiano. 2015. Energy consumption analysis of algorithms implementations. In Proceedings of the 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM’15). 1--4.Google ScholarGoogle Scholar
  77. Haris Ribic and Yu David Liu. 2014a. Energy-efficient work-stealing language runtimes. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). ACM, New York, NY, 513--528. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Haris Ribic and Yu David Liu. 2014b. Energy-efficient work-stealing language runtimes. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). ACM, New York, NY, 513--528. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. W. W. Royce. 1987. Managing the development of large software systems: Concepts and techniques. In Proceedings of the 9th International Conference on Software Engineering (ICSE’87). IEEE Computer Society Press, Los Alamitos, CA, 328--338. http://dl.acm.org/citation.cfm?id=41765.41801. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. C. Sahin, F. Cayci, I. L. M. Gutiérrez, J. Clause, F. Kiamilev, L. Pollock, and K. Winbladh. 2012. Initial explorations on design pattern energy usage. In Proceedings of the 2012 1st International Workshop on Green and Sustainable Software (GREENS). 55--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Cagri Sahin, Lori Pollock, and James Clause. 2014. How do code refactorings affect energy usage? In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM’14). ACM, New York, NY, 36:1--36:10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Adrian Sampson, Werner Dietl, Emily Fortuna, Danushen Gnanapragasam, Luis Ceze, and Dan Grossman. 2011. EnerJ: Approximate data types for safe and general low-power computation. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’11). ACM, New York, NY, 164--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Julian Shun, Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons, Aapo Kyrola, Harsha Vardhan Simhadri, and Kanat Tangwongsan. 2012. Brief announcement: The problem based benchmark suite. In Proceedings of the 24th Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’12). ACM, New York, NY, 68--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Stelios Sidiroglou-Douskos, Sasa Misailovic, Henry Hoffmann, and Martin Rinard. 2011. Managing performance vs. accuracy trade-offs with loop perforation. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE’11). ACM, New York, NY, 124--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Balaji Subramaniam and Wu-chun Feng. 2012. GBench: Benchmarking methodology for evaluating the energy efficiency of supercomputers. Comput. Sci. Res. De. 28, 2--3 (May 2012), 221--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. A. R. Tonini, L. M. Fischer, J. C. B. d Mattos, and L. B. d Brisolara. 2013. Analysis and evaluation of the Android best practices impact on the efficiency of mobile applications. In Proceedings of the 2013 III Brazilian Symposium on Computing Systems Engineering. 157--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. Ward Van Heddeghem, Sofie Lambert, Bart Lannoo, Didier Colle, Mario Pickavet, and Piet Demeester. 2014. Trends in worldwide ICT electricity consumption from 2007 to 2012. Comput. Commun. 50 (Sep. 2014), 64--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Vassilis Vassiliadis, Charalampos Chalios, Konstantinos Parasyris, Christos D. Antonopoulos, Spyros Lalis, Nikolaos Bellas, Hans Vandierendonck, and Dimitrios S. Nikolopoulos. 2016a. Exploiting significance of computations for energy-constrained approximate computing. Int. Parallel Program. 44, 5 (Oct. 2016), 1078--1098.Google ScholarGoogle Scholar
  89. Vassilis Vassiliadis, Jan Riehme, Jens Deussen, Konstantinos Parasyris, Christos D. Antonopoulos, Nikolaos Bellas, Spyros Lalis, and Uwe Naumann. 2016b. Towards automatic significance analysis for approximate computing. In Proceedings of the 2016 International Symposium on Code Generation and Optimization (CGO’16). ACM, New York, NY, 182--193. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. A. Yazdanbakhsh, D. Mahajan, H. Esmaeilzadeh, and P. Lotfi-Kamran. 2017. AxBench: A multiplatform benchmark suite for approximate computing. IEEE Des. Test 34, 2 (Apr. 2017), 60--68.Google ScholarGoogle ScholarCross RefCross Ref
  91. A. Yazdanbakhsh, D. Mahajan, B. Thwaites, J. Park, A. Nagendrakumar, S. Sethuraman, K. Ramkrishnan, N. Ravindran, R. Jariwala, A. Rahimi, H. Esmaeilzadeh, and K. Bazargan. 2015. Axilog: Language support for approximate hardware design. In Proceedings of the 2015 Design, Automation Test in Europe Conference Exhibition (DATE’15). 812--817. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Lide Zhang, Birjodh Tiwana, Zhiyun Qian, Zhaoguang Wang, Robert P. Dick, Zhuoqing Morley Mao, and Lei Yang. 2010. Accurate online power estimation and automatic battery behavior based power model generation for smartphones. In Proceedings of the 8th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES/ISSS’10). ACM, New York, NY, 105--114. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Software Development Lifecycle for Energy Efficiency: Techniques and Tools

                          Recommendations

                          Comments

                          Login options

                          Check if you have access through your login credentials or your institution to get full access on this article.

                          Sign in

                          Full Access

                          PDF Format

                          View or Download as a PDF file.

                          PDF

                          eReader

                          View online with eReader.

                          eReader

                          HTML Format

                          View this article in HTML Format .

                          View HTML Format