A Programming Model for Sustainable Software

A Programming Model for Sustainable Software
复制标题

可持续软件的编程模型

DOI:
--
复制
发表时间:
2015
期刊:
2015 IEEE/ACM 37th IEEE International Conference on Software Engineering
影响因子:
--
通讯作者:
Yu David Liu
Yu David Liu
中科院分区:
--
文献类型:
--
作者:
H. Zhu;Chaoren Lin;Yu David Liu

文献摘要

被引文献

相似文献

本文介绍了一种新颖的能源感知和温度感知的编程模型,并具有对可持续性的一流支持。用新语言编写的一个名为ECO的程序可以适应地调整其自身行为以保持在给定的(能量或温度)预算上,避免了会导致电池耗电或CPU过热的赤字,以及本来可以用来剩余的赤字提高结果的质量。 ECO中的可持续性管理被捕获为供求匹配的一种形式,语言运行时始终保持供求之间的平衡。在能量自适应和温度自适应系统的努力中,ECO在桥接程序员和基础系统中的作用与众不同,尤其是将程序员知识和特定于应用程序特定的特征带入了能量优化。通过许多直观的编程摘要,Eco减少了该领域中的具有挑战性的问题 - 例如,适应性的工作负载表征和决策 - - 到简单的编程任务,最终提供精细的元素,可编程的可持续性,以提高能源效率计算。 ECO是对Java的最小扩展,并已作为开源编译器实施。我们通过以能量意识和温度意识来升级现实世界中的Java应用来验证ECO的实用性。
This paper presents a novel energy-aware and temperature-aware programming model with first-class support for sustainability. A program written in the new language, named Eco, may adaptively adjusts its own behaviors to stay on a given (energy or temperature) budget, avoiding both deficit that would lead to battery drain or CPU overheating, and surplus that could have been used to improve the quality of results. Sustainability management in Eco is captured as a form of supply and demand matching, and the language runtime consistently maintains the equilibrium between supply and demand. Among the efforts of energy-adaptive and temperature-adaptive systems, Eco is distinctive in its role in bridging the programmer and the underlying system, and in particular, bringing both programmer knowledge and application-specific traits into energy optimization. Through a number of intuitive programming abstractions, Eco reduces challenging issues in this domain --- such as workload characterization and decision making in adaptation --- to simple programming tasks, ultimately offering fine-grained, programmable, and declarative sustainability to energy-efficient computing. Eco is an minimal extension to Java, and has been implemented as an open-source compiler. We validate the usefulness of Eco by upgrading real-world Java applications with energy awareness and temperature awareness.