Supporting software developers in making energy saving decisions

Bibliographic Details
Main Author: Couto, Marco Rafael Linhares
Publication Date: 2020
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/77070
Summary: Programa de Doutoramento em Informática (MAP-i) das Universidades do Minho, de Aveiro e do Porto
id RCAP_8596cb48c6ce8520c431205f297b6bf1
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/77070
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Supporting software developers in making energy saving decisionsApoiar desenvolvedores de software na tomada de decisões para redução de energiaEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaPrograma de Doutoramento em Informática (MAP-i) das Universidades do Minho, de Aveiro e do PortoIn the last decade, energy consumption analysis and improvement in software has been establishing as a new key concern for developers. Nevertheless, as recent studies demonstrate, developers are still struggling to understand how to analyze and improve the energy efficiency of their code. Aware of this, the research community has been continuously working on providing new tools, techniques, and findings that developers can rely on. With this thesis, our main target is to further extend the knowledge and mechanisms available for developers to statically reason about the energy efficiency of their code. Our contributions can be grouped in two topics: energy behavior prediction and energy-aware software evolution. To tackle energy prediction, we developed a new approach which combines static program analysis/verification with energy models, with the goal of providing accurate energy estimations for worst-case execution scenarios, which we called Worst-Case Energy Consumption (WCEC) prediction. We used SPLs as a case study, implementing the technique in a prototype tool and evaluating it’s accuracy by performing an experiment using existing SPLs. The energy-aware evolution topic was addressed in two ways. First, we studied the energy impact of replacing energy-greedy coding patterns with less greedy alternatives. We did so by performing a large-scale study, using hundreds of Android applications and testing them in several different scenarios. This allowed us to find statistical evidence of what patterns provide the most significant savings when replaced, and how replacing multiple patterns can affect such savings. Finally, building on the previous study, we developed a new concept, called Energy Debt, which goal is to help developers assess the impact of addressing (or retaining) energy-greedy patterns in their code, in the short and in the long term, by considering a software’s different releases. This concept is extensible to any target system and language, and we performed an initial experiment using an Android application to properly explain it and motivate it. We strongly believe that this thesis, in addition to addressing the existing lack of energy related knowledge and tools, also provides novel and promising techniques and findings, which we hope can be used by other researchers in the area to continue exploring these subjects.Na última década, a análise e melhoria do consumo energético em software tem-se estabelecido como uma nova preocupação chave para os desenvolvedores. Porém, como estudos recentes demonstram, os desenvolvedores ainda mostram dificuldades em entender como analisar e melhorar a eficiência energética do seu código. Cientes deste desafio, a comunidade académica tem continuamente trabalhado para providenciar novas ferramentas, técnicas, e resultados em que se possa confiar. Com esta tese, o foco principal é estender ainda mais o conhecimento e mecanismos disponíveis para os desenvolvedores poderem raciocinar de forma estática sobre a eficiência energética do seu código. As nossas contribuições podem ser agrupadas em dois tópicos: previsão do comportamento energético e evolução orientada à redução de energia. Para abordar a previsão de energia, desenvolvemos uma nova abordagem que combina análise estática de programas e modelos de consumo energético, com o objetivo de providenciar estimativas precisas de consumos em cenários de pior caso de execução, ao qual chamamos de Previsão de Consumo Energético no Pior Caso. Usamos SPLs como caso de estudo, e implementamos esta técnica num protótipo e avaliamos a sua precisão através de um estudo usando SPLs já existentes. O tópico de evolução orientada à redução energética foi abordado de duas formas. Primeiro, foi estudado o impacto inerente à substituição de padrões de código, conhecidos por serem energeticamente ineficientes, por alternativas mais viáveis. Isso foi feito através de de um estudo em larga escala, usando centenas de aplicações Android e testando-as em diferentes cenários. Isto permitiu encontrar evidência estatística de quais os padrões que, quando substituídos, produzem maiores ganhos, mas também perceber como múltiplas substituições afetam esses ganhos. Por fim, e sustentando-nos no estudo anterior, desenvolvemos um novo conceito, chamado Débito Energético, cujo objetivo é ajudar os desenvolvedores a avaliar o impacto de substituir (ou manter) no seu código padrões reconhecidamente ineficientes do ponto de vista energético, quer a curto quer a médio/longo prazo, através da análise combinada das diferentes versões de um software. Este conceito é genérico e extensível para qualquer sistema ou linguagem, e para o explicar e motivar adequadamente efetuamos um estudo inicial usando uma aplicação Android. É nossa convicção de que esta tese, além de endereçar a questão relativa à falta de conhecimento e de ferramentas relacionados com análise de energia, também fornece novas e promissoras técnicas e descobertas, das quais esperamos que possam ser usados por outros investigadores nesta área.This work was partially funded by FCT - Foundation for Science and Technology, the Portuguese Ministry of Science, Technology and Higher Education, through national funds, and co-financed by the European Social Fund (ESF) through the Operational Programme for Human Capital (POCH), with scholarship reference SFRH/BD/132485/2017. Additionally, funding was also provided by the ERDF – European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme within project «POCI-01-0145-FEDER-006961», by the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia, from projects «UID/EEA/50014/2013» and Green Software Lab (ref. «POCI-01-0145-FEDER-016718»), and by the Luso-American Foundation in collaboration with the National Science Foundation with grant FLAD/NSF ref. 300/2015 and ref. 275/2016.Saraiva, JoãoFernandes, João Paulo Sousa FerreiraUniversidade do MinhoCouto, Marco Rafael Linhares2020-12-022020-12-02T00:00:00Zdoctoral thesisinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/77070eng101550650info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T05:19:18Zoai:repositorium.sdum.uminho.pt:1822/77070Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:14:37.037578Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Supporting software developers in making energy saving decisions
Apoiar desenvolvedores de software na tomada de decisões para redução de energia
title Supporting software developers in making energy saving decisions
spellingShingle Supporting software developers in making energy saving decisions
Couto, Marco Rafael Linhares
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Supporting software developers in making energy saving decisions
title_full Supporting software developers in making energy saving decisions
title_fullStr Supporting software developers in making energy saving decisions
title_full_unstemmed Supporting software developers in making energy saving decisions
title_sort Supporting software developers in making energy saving decisions
author Couto, Marco Rafael Linhares
author_facet Couto, Marco Rafael Linhares
author_role author
dc.contributor.none.fl_str_mv Saraiva, João
Fernandes, João Paulo Sousa Ferreira
Universidade do Minho
dc.contributor.author.fl_str_mv Couto, Marco Rafael Linhares
dc.subject.por.fl_str_mv Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Programa de Doutoramento em Informática (MAP-i) das Universidades do Minho, de Aveiro e do Porto
publishDate 2020
dc.date.none.fl_str_mv 2020-12-02
2020-12-02T00:00:00Z
dc.type.driver.fl_str_mv doctoral thesis
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/77070
url http://hdl.handle.net/1822/77070
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 101550650
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833595191362060288