Otimização Unroll and Jam através da refatoração

Detalhes bibliográficos
Autor(a) principal: Castañeda, Cristian Fernando Flores
Data de Publicação: 2011
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/37182
Resumo: As otimizações de um programa podem ser efetuadas no código intermediário gerado na fase de compilação, ou através da Performance Refactoring que consiste na inserção de otimizações diretamente no código fonte da aplicação. Na estrutura do código fonte, os laços de iteração possuem um importante impacto no desempenho da aplicação, pois consomem elevados tempos de execução, sendo assim, é fundamental que estes sejam alvo de otimizações. Uma das otimizações de laço é o Unroll and Jam, que aplica operações de reestruturação de laços aninhados, permitindo utilizar eficientemente a hierarquia de memória. Os passos desta otimização consistem em primeiramente desenrolar os laços a serem otimizados, e posteriormente fusioná-los formando um bloco único de instrução. Neste trabalho se propôs usar refatoração de código para automatizar o Unroll and Jam de laços em nível do código fonte, o que possibilita acumular os efeitos da otimização no programa original com as melhorias tradicionais propiciadas pelo compilador na fase de otimização do código intermediário. A implementação foi realizada com base nas estruturas da ferramenta Photran 7.0, que consiste em um ambiente de desenvolvimento integrado para a linguagem Fortran 77-2008. Os resultados de desempenho obtidos demonstraram que a utilização de Unroll and Jam através da Performance Refactoring, com diferentes níveis de otimização, obteve ganhos significativos de desempenho em comparação a otimização realizada pelo com- pilador da Intel. Deve-se destacar que a aplicação conjunta de ambas as técnicas de oti- mização, originou resultados melhores que a utilização de uma técnica somente. Como trabalhos futuros, é interessante que novas pesquisas possam ser realizadas na obtenção de índices de desenrolamento ótimos e na aplicação conjunta de outras abordagens de otimização. Também pode haver estudos que permitam que outras otimizações sejam aplicadas pela Performance Refactoring.
id URGS_0abf5344ddc04dc53402e030a5ad2e5d
oai_identifier_str oai:www.lume.ufrgs.br:10183/37182
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Castañeda, Cristian Fernando FloresMaillard, Nicolas Bruno2012-02-11T01:24:26Z2011http://hdl.handle.net/10183/37182000819428As otimizações de um programa podem ser efetuadas no código intermediário gerado na fase de compilação, ou através da Performance Refactoring que consiste na inserção de otimizações diretamente no código fonte da aplicação. Na estrutura do código fonte, os laços de iteração possuem um importante impacto no desempenho da aplicação, pois consomem elevados tempos de execução, sendo assim, é fundamental que estes sejam alvo de otimizações. Uma das otimizações de laço é o Unroll and Jam, que aplica operações de reestruturação de laços aninhados, permitindo utilizar eficientemente a hierarquia de memória. Os passos desta otimização consistem em primeiramente desenrolar os laços a serem otimizados, e posteriormente fusioná-los formando um bloco único de instrução. Neste trabalho se propôs usar refatoração de código para automatizar o Unroll and Jam de laços em nível do código fonte, o que possibilita acumular os efeitos da otimização no programa original com as melhorias tradicionais propiciadas pelo compilador na fase de otimização do código intermediário. A implementação foi realizada com base nas estruturas da ferramenta Photran 7.0, que consiste em um ambiente de desenvolvimento integrado para a linguagem Fortran 77-2008. Os resultados de desempenho obtidos demonstraram que a utilização de Unroll and Jam através da Performance Refactoring, com diferentes níveis de otimização, obteve ganhos significativos de desempenho em comparação a otimização realizada pelo com- pilador da Intel. Deve-se destacar que a aplicação conjunta de ambas as técnicas de oti- mização, originou resultados melhores que a utilização de uma técnica somente. Como trabalhos futuros, é interessante que novas pesquisas possam ser realizadas na obtenção de índices de desenrolamento ótimos e na aplicação conjunta de outras abordagens de otimização. Também pode haver estudos que permitam que outras otimizações sejam aplicadas pela Performance Refactoring.The optimizations of a program can be performed on the intermediate code, generated during compilation time, or through the Performance Refactoring that consists of insertion of optimizations directly in the source code of the application. In the source code structure, iteration loops have a major impact in the performance of the application because they are time-consuming code and, thus, an essential target of optimizations. One loop optimization is the Unroll and Jam that applies restructuring operations in nested loops allowing efficient usage of memory hierarchy. Its optimization steps are: to unroll the target loops, and to join them forming a single block of instruction. This work proposes the usage of refactoring to automate Unroll and Jam loops in source code level, allowing to accumulate the effects of optimization in the original pro- gram with the optimizations in the intermediate code by traditional compilers. The im- plementation was based on structures of Photran tool 7.0, which consists of an integrated development environment for Fortran 77-2008. The performance results using Unroll and Jam by Performance Refactoring with dif- ferent levels of unrolling, showed significant gains compared to the optimization per- formed by the Intel compiler. It should also be noted that the joint of both optimization techniques has led to better results than the use of an individual technique. As future works, new researches can be performed to obtain optimal rates of unrolling and to join the application of other optimization approaches. Furthermore, studies may search for optimizations to be applied by the Performance Refactoring.application/pdfporRefatoraçãoFortranOptimizationUnroll and JamRefactoringFortranOtimização Unroll and Jam através da refatoraçãoUnroll and Jam optimization through refactoring info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2011mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000819428.pdf000819428.pdfTexto completoapplication/pdf887089http://www.lume.ufrgs.br/bitstream/10183/37182/1/000819428.pdf7f800ddb0b946c72851659fa964b41ebMD51TEXT000819428.pdf.txt000819428.pdf.txtExtracted Texttext/plain140565http://www.lume.ufrgs.br/bitstream/10183/37182/2/000819428.pdf.txt116dd61b6fbaa453af87214608cc74ddMD52THUMBNAIL000819428.pdf.jpg000819428.pdf.jpgGenerated Thumbnailimage/jpeg1028http://www.lume.ufrgs.br/bitstream/10183/37182/3/000819428.pdf.jpg1399d54860785669f700dfee7fcea135MD5310183/371822018-10-11 08:48:22.26oai:www.lume.ufrgs.br:10183/37182Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532018-10-11T11:48:22Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Otimização Unroll and Jam através da refatoração
dc.title.alternative.en.fl_str_mv Unroll and Jam optimization through refactoring
title Otimização Unroll and Jam através da refatoração
spellingShingle Otimização Unroll and Jam através da refatoração
Castañeda, Cristian Fernando Flores
Refatoração
Fortran
Optimization
Unroll and Jam
Refactoring
Fortran
title_short Otimização Unroll and Jam através da refatoração
title_full Otimização Unroll and Jam através da refatoração
title_fullStr Otimização Unroll and Jam através da refatoração
title_full_unstemmed Otimização Unroll and Jam através da refatoração
title_sort Otimização Unroll and Jam através da refatoração
author Castañeda, Cristian Fernando Flores
author_facet Castañeda, Cristian Fernando Flores
author_role author
dc.contributor.author.fl_str_mv Castañeda, Cristian Fernando Flores
dc.contributor.advisor1.fl_str_mv Maillard, Nicolas Bruno
contributor_str_mv Maillard, Nicolas Bruno
dc.subject.por.fl_str_mv Refatoração
Fortran
topic Refatoração
Fortran
Optimization
Unroll and Jam
Refactoring
Fortran
dc.subject.eng.fl_str_mv Optimization
Unroll and Jam
Refactoring
Fortran
description As otimizações de um programa podem ser efetuadas no código intermediário gerado na fase de compilação, ou através da Performance Refactoring que consiste na inserção de otimizações diretamente no código fonte da aplicação. Na estrutura do código fonte, os laços de iteração possuem um importante impacto no desempenho da aplicação, pois consomem elevados tempos de execução, sendo assim, é fundamental que estes sejam alvo de otimizações. Uma das otimizações de laço é o Unroll and Jam, que aplica operações de reestruturação de laços aninhados, permitindo utilizar eficientemente a hierarquia de memória. Os passos desta otimização consistem em primeiramente desenrolar os laços a serem otimizados, e posteriormente fusioná-los formando um bloco único de instrução. Neste trabalho se propôs usar refatoração de código para automatizar o Unroll and Jam de laços em nível do código fonte, o que possibilita acumular os efeitos da otimização no programa original com as melhorias tradicionais propiciadas pelo compilador na fase de otimização do código intermediário. A implementação foi realizada com base nas estruturas da ferramenta Photran 7.0, que consiste em um ambiente de desenvolvimento integrado para a linguagem Fortran 77-2008. Os resultados de desempenho obtidos demonstraram que a utilização de Unroll and Jam através da Performance Refactoring, com diferentes níveis de otimização, obteve ganhos significativos de desempenho em comparação a otimização realizada pelo com- pilador da Intel. Deve-se destacar que a aplicação conjunta de ambas as técnicas de oti- mização, originou resultados melhores que a utilização de uma técnica somente. Como trabalhos futuros, é interessante que novas pesquisas possam ser realizadas na obtenção de índices de desenrolamento ótimos e na aplicação conjunta de outras abordagens de otimização. Também pode haver estudos que permitam que outras otimizações sejam aplicadas pela Performance Refactoring.
publishDate 2011
dc.date.issued.fl_str_mv 2011
dc.date.accessioned.fl_str_mv 2012-02-11T01:24:26Z
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 http://hdl.handle.net/10183/37182
dc.identifier.nrb.pt_BR.fl_str_mv 000819428
url http://hdl.handle.net/10183/37182
identifier_str_mv 000819428
dc.language.iso.fl_str_mv por
language por
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:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/37182/1/000819428.pdf
http://www.lume.ufrgs.br/bitstream/10183/37182/2/000819428.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/37182/3/000819428.pdf.jpg
bitstream.checksum.fl_str_mv 7f800ddb0b946c72851659fa964b41eb
116dd61b6fbaa453af87214608cc74dd
1399d54860785669f700dfee7fcea135
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085219973201920