Javier Mancebo, Hector O. Arriaga, Félix García, M. A. Moraga, I. G. D. Guzmán, C. Calero
Society is becoming more and more aware of the importance of preserving the environment, and is therefore increasingly concerned about issues related to sustainability. Software development should not remain indifferent to the need to construct software products that contribute towards sustainability, both during their creation and throughout their use. However, one of the main gaps is the difficulty of measuring the energy consumption when software is executed in order to detect, for example, parts of the software with excessive energy consumption. For that reason, a Framework for Energy Efficiency Testing to Improve eNviromental Goals of the Software (FEETINGS) has been proposed. In this paper, we focus on the core of the framework, that is, the Energy Efficiency Tester (EET), which is the measurement hardware device devoted to collecting the specific consumption data of the software under evaluation. The architecture and the main functions of EET, along with the reliability validation done with it are presented here, as well as an analysis of the data extracted from a case study conducted. The outcome of such analysis shows that EET is able to carry out stable energy consumption measurements of executed software.
{"title":"EET: A Device to Support the Measurement of Software Consumption","authors":"Javier Mancebo, Hector O. Arriaga, Félix García, M. A. Moraga, I. G. D. Guzmán, C. Calero","doi":"10.1145/3194078.3194081","DOIUrl":"https://doi.org/10.1145/3194078.3194081","url":null,"abstract":"Society is becoming more and more aware of the importance of preserving the environment, and is therefore increasingly concerned about issues related to sustainability. Software development should not remain indifferent to the need to construct software products that contribute towards sustainability, both during their creation and throughout their use. However, one of the main gaps is the difficulty of measuring the energy consumption when software is executed in order to detect, for example, parts of the software with excessive energy consumption. For that reason, a Framework for Energy Efficiency Testing to Improve eNviromental Goals of the Software (FEETINGS) has been proposed. In this paper, we focus on the core of the framework, that is, the Energy Efficiency Tester (EET), which is the measurement hardware device devoted to collecting the specific consumption data of the software under evaluation. The architecture and the main functions of EET, along with the reliability validation done with it are presented here, as well as an analysis of the data extracted from a case study conducted. The outcome of such analysis shows that EET is able to carry out stable energy consumption measurements of executed software.","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116780443","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A considerable portion of research activities in computer science heavily relies on the process of benchmarking, e.g., to evaluate a hypothesis in an empirical study. The goal is to reveal how a set of independent variables (factors) influences one or more dependent variables. With a vast number of factors or a high amount of factors' values (levels), this process becomes time- and energy-consuming. Current approaches to lower the benchmarking effort suffer from two deficiencies: (1) they focus on reducing the number of factors and, hence, are inapplicable to experiments with only two factors, but a vast number of levels and (2) being adopted from, e.g., combinatorial optimization they are designed for a different search space structure and, thus, can be very wasteful. This paper provides an approach for benchmark reduction, based on adaptive instance selection and multiple linear regression. We evaluate our approach using four empirical studies, which investigate the effect made by dynamic voltage and frequency scaling in combination with dynamic concurrency throttling on the energy consumption of a computing system (parallel compression, sorting, and encryption algorithms as well as database query processing). Our findings show the effectiveness of the approach. We can save 78% of benchmarking effort, while the result's quality decreases only by 3 pp, due to using only a near-optimal configuration.
{"title":"BRISE: Energy-Efficient Benchmark Reduction","authors":"D. Pukhkaiev, Sebastian Götz","doi":"10.1145/3194078.3194082","DOIUrl":"https://doi.org/10.1145/3194078.3194082","url":null,"abstract":"A considerable portion of research activities in computer science heavily relies on the process of benchmarking, e.g., to evaluate a hypothesis in an empirical study. The goal is to reveal how a set of independent variables (factors) influences one or more dependent variables. With a vast number of factors or a high amount of factors' values (levels), this process becomes time- and energy-consuming. Current approaches to lower the benchmarking effort suffer from two deficiencies: (1) they focus on reducing the number of factors and, hence, are inapplicable to experiments with only two factors, but a vast number of levels and (2) being adopted from, e.g., combinatorial optimization they are designed for a different search space structure and, thus, can be very wasteful. This paper provides an approach for benchmark reduction, based on adaptive instance selection and multiple linear regression. We evaluate our approach using four empirical studies, which investigate the effect made by dynamic voltage and frequency scaling in combination with dynamic concurrency throttling on the energy consumption of a computing system (parallel compression, sorting, and encryption algorithms as well as database query processing). Our findings show the effectiveness of the approach. We can save 78% of benchmarking effort, while the result's quality decreases only by 3 pp, due to using only a near-optimal configuration.","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129973236","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The increasing energy demands of software systems have set an essential software quality requirement: energy efficiency. At the same time, the many contextual changes faced by software systems during execution can hamper their functionality and overall quality. To address both problems, self-adaptation approaches can empower software systems, at both design-time and runtime, to adapt to dynamic conditions. In this way, software systems can be more resilient to failure, hence more trustful to satisfy the demands of modern digital society. In this paper, we perform a systematic literature review to study the state-of-the-art on existing self-adaptation approaches for energy efficiency. We analyze the identified approaches from three different perspectives, namely publication trends, application domains, and types of software systems. Our findings can help solution providers to make guided decisions to enable self-adaptability in designing and engineering software systems.
{"title":"Self-Adaptation Approaches for Energy Efficiency: A Systematic Literature Review","authors":"F. Moghaddam, P. Lago, Iulia Cristina Ban","doi":"10.1145/3194078.3194084","DOIUrl":"https://doi.org/10.1145/3194078.3194084","url":null,"abstract":"The increasing energy demands of software systems have set an essential software quality requirement: energy efficiency. At the same time, the many contextual changes faced by software systems during execution can hamper their functionality and overall quality. To address both problems, self-adaptation approaches can empower software systems, at both design-time and runtime, to adapt to dynamic conditions. In this way, software systems can be more resilient to failure, hence more trustful to satisfy the demands of modern digital society. In this paper, we perform a systematic literature review to study the state-of-the-art on existing self-adaptation approaches for energy efficiency. We analyze the identified approaches from three different perspectives, namely publication trends, application domains, and types of software systems. Our findings can help solution providers to make guided decisions to enable self-adaptability in designing and engineering software systems.","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117281247","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The number of Single Board Computers (SBCs) is increasing, and so is the cumulative energy consumed by this category of device. Moreover, such devices are often always-on or running on batteries. Therefore, it is worth investigating their energy consumption to provide software developers and users with indicators for understanding how much energy the device is consuming while running a software application. In this paper, we explain a procedure for the creation of an energy consumption model of SBCs based on the usage of its components. We apply the procedure on a Raspberry PI 2 model B to test the model with a set of real applications. The results demonstrate the practical feasibility of the approach and show that estimated consumption values on our device have an average error of 2.2%, which is a good approximation without using external and expensive measuring devices
单板计算机(sbc)的数量正在增加,这类设备所消耗的累计能量也在增加。此外,这些设备通常是一直开着的,或者靠电池供电。因此,有必要调查它们的能耗,为软件开发人员和用户提供指标,以了解设备在运行软件应用程序时消耗了多少能量。在本文中,我们解释了基于其组件的使用创建sbc能耗模型的过程。我们在Raspberry PI 2模型B上应用该过程,用一组实际应用程序测试该模型。结果证明了该方法的实际可行性,并表明在我们的设备上估计的消耗值平均误差为2.2%,这是一个很好的近似值,无需使用外部和昂贵的测量设备
{"title":"Creating and Evaluating a Software Power Model for Linux Single Board Computers","authors":"Luca Ardito, Marco Torchiano","doi":"10.1145/3194078.3194079","DOIUrl":"https://doi.org/10.1145/3194078.3194079","url":null,"abstract":"The number of Single Board Computers (SBCs) is increasing, and so is the cumulative energy consumed by this category of device. Moreover, such devices are often always-on or running on batteries. Therefore, it is worth investigating their energy consumption to provide software developers and users with indicators for understanding how much energy the device is consuming while running a software application. In this paper, we explain a procedure for the creation of an energy consumption model of SBCs based on the usage of its components. We apply the procedure on a Raspberry PI 2 model B to test the model with a set of real applications. The results demonstrate the practical feasibility of the approach and show that estimated consumption values on our device have an average error of 2.2%, which is a good approximation without using external and expensive measuring devices","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114403699","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
How a program is written has implications in the energy consumption of the running system, with economical and environmental consequences. In this context, understanding the energy consumption of operations on data-structures is crucial when optimizing software to execute under power constricted environments. Existing studies have not focused on the different components of energy consumption that processors expose, rather considering the global consumption. To understand the relationship between CPU and memory energy consumptions with execution time, we instrument a microbenchmark suite to collect such values, and we analyze the results. Our benchmark suite is comprised of 16 implementations of functional sequences, collections and associative collections while measuring detailed energy and time metrics. We further investigate the energy consumption impact of using different compilation optimizations. We have concluded that energy consumption is directly proportional to execution time. Additionally, DRAM and Package energy consumptions are directly proportional, with the DRAM representing between 15 and 31% of the total energy consumption. Finally, we also conclude that optimizations can have both a positive or a negative impact on energy consumption.
{"title":"Helping Developers Write Energy Efficient Haskell through a Data-Structure Evaluation","authors":"Gilberto Melfe, Alcides Fonseca, J. Fernandes","doi":"10.1145/3194078.3194080","DOIUrl":"https://doi.org/10.1145/3194078.3194080","url":null,"abstract":"How a program is written has implications in the energy consumption of the running system, with economical and environmental consequences. In this context, understanding the energy consumption of operations on data-structures is crucial when optimizing software to execute under power constricted environments. Existing studies have not focused on the different components of energy consumption that processors expose, rather considering the global consumption. To understand the relationship between CPU and memory energy consumptions with execution time, we instrument a microbenchmark suite to collect such values, and we analyze the results. Our benchmark suite is comprised of 16 implementations of functional sequences, collections and associative collections while measuring detailed energy and time metrics. We further investigate the energy consumption impact of using different compilation optimizations. We have concluded that energy consumption is directly proportional to execution time. Additionally, DRAM and Package energy consumptions are directly proportional, with the DRAM representing between 15 and 31% of the total energy consumption. Finally, we also conclude that optimizations can have both a positive or a negative impact on energy consumption.","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130570820","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Sustainability has become a major concern of the 21st century. With the digital revolution, ICT is actually part of both the problem and the solution. Despite this, sustainability-related design decisions are often left implicit and result from a process involving synergies and trade-offs among many non-functional requirements, including some constraints related to the software development and operation itself. The purpose of this paper is to identify such decisions and analyse the process that resulted into them based on a real-world industrial case with strong sustainability goals: a shared pick-up and delivery service. We also show how available methods for green software engineering help in better shaping this process and highlight some interesting lessons learned from our experience.
{"title":"Building Sustainable Software for Sustainable Systems: Case Study of a Shared Pick-Up and Delivery Service","authors":"C. Ponsard, R. D. Landtsheer, Fabian Germeau","doi":"10.1145/3194078.3194083","DOIUrl":"https://doi.org/10.1145/3194078.3194083","url":null,"abstract":"Sustainability has become a major concern of the 21st century. With the digital revolution, ICT is actually part of both the problem and the solution. Despite this, sustainability-related design decisions are often left implicit and result from a process involving synergies and trade-offs among many non-functional requirements, including some constraints related to the software development and operation itself. The purpose of this paper is to identify such decisions and analyse the process that resulted into them based on a real-world industrial case with strong sustainability goals: a shared pick-up and delivery service. We also show how available methods for green software engineering help in better shaping this process and highlight some interesting lessons learned from our experience.","PeriodicalId":222458,"journal":{"name":"2018 IEEE/ACM 6th International Workshop on Green And Sustainable Software (GREENS)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125863419","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}