Understanding the energy Behavior of concurrent haskell programs

Detalhes bibliográficos
Ano de defesa: 2016
Autor(a) principal: LIMA, Luís Gabriel Nunes Ferreira
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ufpe.br/handle/123456789/18706
Resumo: Orientador também citado por: CASTOR FILHO, Fernando
id UFPE_8f90e5d4a020f44cb505c94b71276237
oai_identifier_str oai:repositorio.ufpe.br:123456789/18706
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str
spelling Understanding the energy Behavior of concurrent haskell programsEficiênciaEnergética. ConsumodeEnergia. Haskell. ProgramaçãoConcorrente. ProgramaçãoFuncional. AnálisedeDesempenho.Energy-Efficiency. Energy Consumption. Haskell. Concurrent Programming. Functional Programming. Performance Analysis.Orientador também citado por: CASTOR FILHO, FernandoEnergy-efficiency has concerned hardware and low-level software designers for years. However, the rapid proliferation of battery-powered mobile devices combined with the growing worldwide movement towards sustainability have caused developers and researchers to study the energy impact of application software in execution. Recent work has studied the effect that factors such as code obfuscation, object-oriented refactorings, and data types have on energy efficiency. In this work, we attempt to shed light on the energy behavior of concurrent programs written in a purely functional language, Haskell. We conducted an empirical study to assess the performance and energy behavior of three different thread management approaches and three primitives for concurrency control using nine different benchmarks with an experimental space exploration of more than 400 configurations. In this study, we found out that small changes can make a big difference in terms of energy consumption. For instance, in one of our benchmarks, under a specific configuration, choosing one concurrency control primitive (MVar) over another (TMVar) can yield 60% energy savings. Also, the relationship between energy consumption and performance is not always clear. We found scenarios where the configuration with the best performance also exhibited the worst energy consumption. To support developers in better understanding this complex relationship, we have extended two existing performance analysis tools also to collect and present data about energy consumption. In addition, based on the results of our empirical study, we provide a list of guidelines for developers with good practices for writing energy-efficient code in this environment.Há anos eficiência energética é uma preocupação para designers de hardware e software baixonível. Entretanto, a rápida proliferação de dispositivos móveis alimentados por bateria combinado com o crescente movimento global em busca de sustentabilidade tem motivado desenvolvedores e pesquisadores a estudar o impacto energético de softwares de aplicação em execução. Trabalhos recentes tem estudado o efeito que fatores como obsfucação de código, refatorações em linguagem orientadas à objetos e tipos de dados tem em eficiência energética. Este trabalho tenta lançar luz sobre o comportamento energético de programas concorrentes escritos em uma linguagem puramente funcional, Haskell. Nós conduzimos um estudo empírico para avaliar o desempenho e o comportamento energético de três diferentes abordagens para gerenciamento de threads e três primitivas para controle de concorrência usando nove diferentes benchmarks com um espaço de exploração experimental de mais de 400 configurações. Neste estudo, descobrimos que pequenas mudanças podem fazer uma grande diferença em termos de consumo de energia. Por exemplo, em um dos benchmarks, sob uma configuração específica, escolher uma primitiva de controle de concorrência (MVar) ao invés de outra (TMVar) pode acarretar em uma economia de 60% em consumo de energia. Percebemos também que nem sempre a relação entre consumo de energia e desempenho é clara. Em alguns cenários analisados, a configuração com melhor desempenho também apresentou o pior consumo de energia. Para ajudar desenvolvedores a entender melhor essa complexa relação, nós estendemos duas ferramentas de análise de desempenho existentes para coletar e apresentar dados sobre consumo de energia. Adicionalmente, baseado nos resultados do nosso estudo empírico, listamos um conjunto de recomendações para desenvolvedores com boas práticas de como escrever código energeticamente eficiente nesse ambiente.Universidade Federal de PernambucoUFPEBrasilPrograma de Pos Graduacao em Ciencia da ComputacaoLIMA FILHO, Fernando José Castor dehttp://lattes.cnpq.br/9813699420210305http://lattes.cnpq.br/7310046838140771LIMA, Luís Gabriel Nunes Ferreira2017-05-04T19:07:33Z2017-05-04T19:07:33Z2016-08-22info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://repositorio.ufpe.br/handle/123456789/18706engAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2019-10-25T11:06:14Zoai:repositorio.ufpe.br:123456789/18706Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T11:06:14Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.none.fl_str_mv Understanding the energy Behavior of concurrent haskell programs
title Understanding the energy Behavior of concurrent haskell programs
spellingShingle Understanding the energy Behavior of concurrent haskell programs
LIMA, Luís Gabriel Nunes Ferreira
EficiênciaEnergética. ConsumodeEnergia. Haskell. ProgramaçãoConcorrente. ProgramaçãoFuncional. AnálisedeDesempenho.
Energy-Efficiency. Energy Consumption. Haskell. Concurrent Programming. Functional Programming. Performance Analysis.
title_short Understanding the energy Behavior of concurrent haskell programs
title_full Understanding the energy Behavior of concurrent haskell programs
title_fullStr Understanding the energy Behavior of concurrent haskell programs
title_full_unstemmed Understanding the energy Behavior of concurrent haskell programs
title_sort Understanding the energy Behavior of concurrent haskell programs
author LIMA, Luís Gabriel Nunes Ferreira
author_facet LIMA, Luís Gabriel Nunes Ferreira
author_role author
dc.contributor.none.fl_str_mv LIMA FILHO, Fernando José Castor de
http://lattes.cnpq.br/9813699420210305
http://lattes.cnpq.br/7310046838140771
dc.contributor.author.fl_str_mv LIMA, Luís Gabriel Nunes Ferreira
dc.subject.por.fl_str_mv EficiênciaEnergética. ConsumodeEnergia. Haskell. ProgramaçãoConcorrente. ProgramaçãoFuncional. AnálisedeDesempenho.
Energy-Efficiency. Energy Consumption. Haskell. Concurrent Programming. Functional Programming. Performance Analysis.
topic EficiênciaEnergética. ConsumodeEnergia. Haskell. ProgramaçãoConcorrente. ProgramaçãoFuncional. AnálisedeDesempenho.
Energy-Efficiency. Energy Consumption. Haskell. Concurrent Programming. Functional Programming. Performance Analysis.
description Orientador também citado por: CASTOR FILHO, Fernando
publishDate 2016
dc.date.none.fl_str_mv 2016-08-22
2017-05-04T19:07:33Z
2017-05-04T19:07:33Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/18706
url https://repositorio.ufpe.br/handle/123456789/18706
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
publisher.none.fl_str_mv Universidade Federal de Pernambuco
UFPE
Brasil
Programa de Pos Graduacao em Ciencia da Computacao
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1833923003085225984