Otimização Unroll and Jam através da refatoração
Autor(a) principal: | |
---|---|
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 |