Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86

Detalhes bibliográficos
Autor(a) principal: Eberle, André Mantini
Data de Publicação: 2015
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da USP
Texto Completo: http://www.teses.usp.br/teses/disponiveis/55/55134/tde-29032016-092853/
Resumo: Aplicações têm tradicionalmente utilizado o paradigma de programação sequencial. Com a recente expansão da computação paralela, em particular os processadores multinúcleo e ambientes distribuídos, esse paradigma tornou-se um obstáculo para a utilização dos recursos disponíveis nesses sistemas, uma vez que a maior parte das aplicações tornam-se restrita à execução sobre um único núcleo de processamento. Nesse sentido, este trabalho de mestrado introduz uma abordagem para paralelizar programas sequenciais de forma automática e transparente, diretamente sobre o código-binário, de forma a melhor utilizar os recursos disponíveis em computadores multinúcleo. A abordagem consiste na desmontagem (disassembly) de aplicações Intel x86 e sua posterior tradução para uma linguagem intermediária. Em seguida, são produzidos grafos de fluxo e dependências, os quais são utilizados como base para o particionamento das aplicações em unidades paralelas. Por fim, a aplicação é remontada (assembly) e traduzida novamente para a arquitetura original. Essa abordagem permite a paralelização de aplicações sem a necessidade de esforço suplementar por parte de desenvolvedores e usuários.
id USP_52b21ff84c617a5b62c94904b3e1dd52
oai_identifier_str oai:teses.usp.br:tde-29032016-092853
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str 2721
spelling Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86Analysis of the execution paths of programs to perform automatic parallelization of binary codes on the platform Intel x86Análise de dependênciasAutomatic parallelizationBinary codeBinary rewriterCódigo-binárioDependency analysisIntel x86 platformParalelização automáticaPlataforma Intel x86Aplicações têm tradicionalmente utilizado o paradigma de programação sequencial. Com a recente expansão da computação paralela, em particular os processadores multinúcleo e ambientes distribuídos, esse paradigma tornou-se um obstáculo para a utilização dos recursos disponíveis nesses sistemas, uma vez que a maior parte das aplicações tornam-se restrita à execução sobre um único núcleo de processamento. Nesse sentido, este trabalho de mestrado introduz uma abordagem para paralelizar programas sequenciais de forma automática e transparente, diretamente sobre o código-binário, de forma a melhor utilizar os recursos disponíveis em computadores multinúcleo. A abordagem consiste na desmontagem (disassembly) de aplicações Intel x86 e sua posterior tradução para uma linguagem intermediária. Em seguida, são produzidos grafos de fluxo e dependências, os quais são utilizados como base para o particionamento das aplicações em unidades paralelas. Por fim, a aplicação é remontada (assembly) e traduzida novamente para a arquitetura original. Essa abordagem permite a paralelização de aplicações sem a necessidade de esforço suplementar por parte de desenvolvedores e usuários.Traditionally, computer programs have been developed using the sequential programming paradigm. With the advent of parallel computing systems, such as multi-core processors and distributed environments, the sequential paradigm became a barrier to the utilization of the available resources, since the program is restricted to a single processing unit. To address this issue, we introduce a transparent automatic parallelization methodology using a binary rewriter. The steps involved in our approach are: the disassembly of an Intel x86 application, transforming it into an intermediary language; analysis of this intermediary code to obtain flow and dependency graphs; partitioning of the application into parallel units, using the obtained graphs and posterior reassembly of the application, writing it back to the original Intel x86 architecture. By transforming the compiled application software, we aim at obtaining a program which can explore the parallel resources, with no extra effort required either from users or developers.Biblioteca Digitais de Teses e Dissertações da USPMello, Rodrigo Fernandes deEberle, André Mantini2015-10-06info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://www.teses.usp.br/teses/disponiveis/55/55134/tde-29032016-092853/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesspor2017-09-04T21:06:18Zoai:teses.usp.br:tde-29032016-092853Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212017-09-04T21:06:18Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
Analysis of the execution paths of programs to perform automatic parallelization of binary codes on the platform Intel x86
title Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
spellingShingle Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
Eberle, André Mantini
Análise de dependências
Automatic parallelization
Binary code
Binary rewriter
Código-binário
Dependency analysis
Intel x86 platform
Paralelização automática
Plataforma Intel x86
title_short Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
title_full Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
title_fullStr Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
title_full_unstemmed Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
title_sort Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86
author Eberle, André Mantini
author_facet Eberle, André Mantini
author_role author
dc.contributor.none.fl_str_mv Mello, Rodrigo Fernandes de
dc.contributor.author.fl_str_mv Eberle, André Mantini
dc.subject.por.fl_str_mv Análise de dependências
Automatic parallelization
Binary code
Binary rewriter
Código-binário
Dependency analysis
Intel x86 platform
Paralelização automática
Plataforma Intel x86
topic Análise de dependências
Automatic parallelization
Binary code
Binary rewriter
Código-binário
Dependency analysis
Intel x86 platform
Paralelização automática
Plataforma Intel x86
description Aplicações têm tradicionalmente utilizado o paradigma de programação sequencial. Com a recente expansão da computação paralela, em particular os processadores multinúcleo e ambientes distribuídos, esse paradigma tornou-se um obstáculo para a utilização dos recursos disponíveis nesses sistemas, uma vez que a maior parte das aplicações tornam-se restrita à execução sobre um único núcleo de processamento. Nesse sentido, este trabalho de mestrado introduz uma abordagem para paralelizar programas sequenciais de forma automática e transparente, diretamente sobre o código-binário, de forma a melhor utilizar os recursos disponíveis em computadores multinúcleo. A abordagem consiste na desmontagem (disassembly) de aplicações Intel x86 e sua posterior tradução para uma linguagem intermediária. Em seguida, são produzidos grafos de fluxo e dependências, os quais são utilizados como base para o particionamento das aplicações em unidades paralelas. Por fim, a aplicação é remontada (assembly) e traduzida novamente para a arquitetura original. Essa abordagem permite a paralelização de aplicações sem a necessidade de esforço suplementar por parte de desenvolvedores e usuários.
publishDate 2015
dc.date.none.fl_str_mv 2015-10-06
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://www.teses.usp.br/teses/disponiveis/55/55134/tde-29032016-092853/
url http://www.teses.usp.br/teses/disponiveis/55/55134/tde-29032016-092853/
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv
dc.rights.driver.fl_str_mv Liberar o conteúdo para acesso público.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Liberar o conteúdo para acesso público.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.coverage.none.fl_str_mv
dc.publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
dc.source.none.fl_str_mv
reponame:Biblioteca Digital de Teses e Dissertações da USP
instname:Universidade de São Paulo (USP)
instacron:USP
instname_str Universidade de São Paulo (USP)
instacron_str USP
institution USP
reponame_str Biblioteca Digital de Teses e Dissertações da USP
collection Biblioteca Digital de Teses e Dissertações da USP
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)
repository.mail.fl_str_mv virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br
_version_ 1809091167867895808