Understanding the energy Behavior of concurrent haskell programs
Ano de defesa: | 2016 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
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 |