Técnicas e arquitetura para captura de traços e execução especulativa
Autor(a) principal: | |
---|---|
Data de Publicação: | 2011 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
Texto Completo: | https://hdl.handle.net/20.500.12733/1613994 |
Resumo: | Orientador: Guido Costa Souza de Araújo |
id |
UNICAMP-30_e62ec35b149ad2cc34d79ccbc480875f |
---|---|
oai_identifier_str |
oai::782478 |
network_acronym_str |
UNICAMP-30 |
network_name_str |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
repository_id_str |
|
spelling |
Técnicas e arquitetura para captura de traços e execução especulativaTecnhiques and architecture for trace detection and speculative executionOtimizaçãoProcessamento paralelo (Computadores)Compiladores (Programas de computador)OptimizationParalell processing (Electronic computers)Compilers (Computer programs)Orientador: Guido Costa Souza de AraújoTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: É sabido que o modelo de desenvolvimento de micro-processadores baseado na extração de Instruction-Level Parallelism (ILP) de código sequencial atingiu seu limite. Encontrar soluções escaláveis e eficientes que permitam a manutenção de inúmeras instruções em execução simultaneamente tem se mostrado um desafio maior que o imaginado. Neste sentido, arquitetos e micro-arquitetos de computadores vêm buscando soluções alternativas para o desenvolvimento de novas arquiteturas. Dentre as soluções existentes, vêm ganhando força as baseadas na extração de Thread-Level Parallelism (TLP). Resumidamente, TLP é um tipo de paralelismo que tenta quebrar um programa sequencial em tarefas relativamente independentes entre si para executá-las em paralelo. TLP pode ser extraído por hardware ou software. Idealmente, uma solução híbrida deve ser utilizada, com o software realizando a identificação das oportunidades de extração de TLP, e com o hardware provendo suporte para execução do código gerado. Com tal solução de compromisso, o hardware fica livre da necessidade de especular, e o software pode trabalhar com maiores garantias. Nesta Tese, estudaram-se formas automáticas de paralelização e extração de TLP. Inicialmente, focou-se em traces dinâmicos de execução de programas sequenciais. Técnicas existentes (tais como MRET e Trace Trees) mostraram-se inapropriadas, de modo que desenvolveu-se uma nova técnica chamada Compact Trace Tree (CTT), que mostrou-se mais rápida que Trace Trees. Trace Tree (TT) também apresentam grande nível de especialização de código (tail duplication), característica ausente em MRET. Além de CTT, esta Tese apresenta Trace Execution Automata (TEA), um autômato que representa traces de execução. Esta representação revelou, em nossos experimentos, quase 80% de economia de espaço quando comparada com a representação usual. A seguir, o foco da Tese foi voltado para laços de execução e para paralelização estática de código sequencial através de Decoupled Software Pipeline (DSWP). Nosso primeiro resultado nesta direção, usando Java, mostrou claramente que sem nenhum suporte em hardware, a paralelização estática de programas poderia atingir um ganho de desempenho médio de 48% nas aplicações paralelizadas. Finalmente, a Tese propõe um modelo de execução paralelo baseado em DSWP que permite a consistência de dados entre as diversas threads de programas paralelizados. Apesar de não avaliar esta arquitetura completamente, os resultados iniciais são promissores. Além disso, o suporte necessário em hardware é simples e acomoda-se sobre o protocolo de coerência de cache existente, sem alterações sensíveis no processadorAbstract: The usual, Insturction-Level Parallelism (ILP)-oriented, microprocessor development model is known to have reached a hard-to-break limit. Finding scalable and efficient solutions that keep several instructions on-the-fly simultaneously has proven to be moredifficult than imagined. In this sense, computer architects and micro-architects have been seeking alternatives to develop new architectures. Among all, the TLP-based solutions are gaining strength. In short, TLP strives to break a sequential program into quasi-independent tasks in order to execute them in parallel. TLP can be extracted either by hardware or software. Ideally, a hybrid solution would be employed, with the software being responsible to identifying TLP opportunities, and the hardware offering support for the parallel code execution. With such solution, the hardware is free from the heavy speculation burden, whilst the software can be parallelized with more warranties. In this Thesis, automatic parallelization and TLP strategies were studied. The research first focused on dynamic execution traces. Existing techniques, such as MRET and Trace Trees proved unsuitable for our goals, which led us to develop a new trace identification technique called Compact Trace Trees, which showed to be faster than Trace Trees. Compact Trace Trees also present trace specialization, which MRET lacks. Besides Compact Trace Trees, this Thesis presents a new trace representation called Trace Execution Automata, an automaton representing the execution traces. This technique revealed nearly 80% memory size savings when compared to the usual, code duplication representation. Next, the Thesis' focus shifted to parallelizing loops statically. Our initial result in this direction, using Java and without any hardware support, clearly revealed that static parallelization of sequential programs could reach a 48% average speedup when compared to their sequential execution. Finally, a new, Decoupled Software Pipelining-based execution model with automatic data coherence amongst parallelized programs'threads is proposed by the Thesis. Despite the lack of a full model evaluation, the initial results are promising. Differently from other proposals, the hardware support necessary for this architecture is simple and builds upon the existing cache coherence protocol, without any modifications to this sensitive system componentDoutoradoDoutor em Ciência da Computação[s.n.]Araújo, Guido Costa Souza de, 1962-Navaux, Philippe Olivier AlexandreBreternitz Junior, MauricioBusato, Luiz EduardoBorin, EdsonUniversidade Estadual de Campinas (UNICAMP). Instituto de ComputaçãoPrograma de Pós-Graduação em Ciência da ComputaçãoUNIVERSIDADE ESTADUAL DE CAMPINASPorto, João Paulo2011info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdf139 p. : il.https://hdl.handle.net/20.500.12733/1613994PORTO, João Paulo. Técnicas e arquitetura para captura de traços e execução especulativa. 2011. 139 p. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: https://hdl.handle.net/20.500.12733/1613994. Acesso em: 3 set. 2024.https://repositorio.unicamp.br/acervo/detalhe/782478porreponame:Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP)instname:Universidade Estadual de Campinas (UNICAMP)instacron:UNICAMPinfo:eu-repo/semantics/openAccess2018-05-21T20:40:19Zoai::782478Biblioteca Digital de Teses e DissertaçõesPUBhttp://repositorio.unicamp.br/oai/tese/oai.aspsbubd@unicamp.bropendoar:2018-05-21T20:40:19Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) - Universidade Estadual de Campinas (UNICAMP)false |
dc.title.none.fl_str_mv |
Técnicas e arquitetura para captura de traços e execução especulativa Tecnhiques and architecture for trace detection and speculative execution |
title |
Técnicas e arquitetura para captura de traços e execução especulativa |
spellingShingle |
Técnicas e arquitetura para captura de traços e execução especulativa Porto, João Paulo Otimização Processamento paralelo (Computadores) Compiladores (Programas de computador) Optimization Paralell processing (Electronic computers) Compilers (Computer programs) |
title_short |
Técnicas e arquitetura para captura de traços e execução especulativa |
title_full |
Técnicas e arquitetura para captura de traços e execução especulativa |
title_fullStr |
Técnicas e arquitetura para captura de traços e execução especulativa |
title_full_unstemmed |
Técnicas e arquitetura para captura de traços e execução especulativa |
title_sort |
Técnicas e arquitetura para captura de traços e execução especulativa |
author |
Porto, João Paulo |
author_facet |
Porto, João Paulo |
author_role |
author |
dc.contributor.none.fl_str_mv |
Araújo, Guido Costa Souza de, 1962- Navaux, Philippe Olivier Alexandre Breternitz Junior, Mauricio Busato, Luiz Eduardo Borin, Edson Universidade Estadual de Campinas (UNICAMP). Instituto de Computação Programa de Pós-Graduação em Ciência da Computação UNIVERSIDADE ESTADUAL DE CAMPINAS |
dc.contributor.author.fl_str_mv |
Porto, João Paulo |
dc.subject.por.fl_str_mv |
Otimização Processamento paralelo (Computadores) Compiladores (Programas de computador) Optimization Paralell processing (Electronic computers) Compilers (Computer programs) |
topic |
Otimização Processamento paralelo (Computadores) Compiladores (Programas de computador) Optimization Paralell processing (Electronic computers) Compilers (Computer programs) |
description |
Orientador: Guido Costa Souza de Araújo |
publishDate |
2011 |
dc.date.none.fl_str_mv |
2011 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/20.500.12733/1613994 PORTO, João Paulo. Técnicas e arquitetura para captura de traços e execução especulativa. 2011. 139 p. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: https://hdl.handle.net/20.500.12733/1613994. Acesso em: 3 set. 2024. |
url |
https://hdl.handle.net/20.500.12733/1613994 |
identifier_str_mv |
PORTO, João Paulo. Técnicas e arquitetura para captura de traços e execução especulativa. 2011. 139 p. Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: https://hdl.handle.net/20.500.12733/1613994. Acesso em: 3 set. 2024. |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
https://repositorio.unicamp.br/acervo/detalhe/782478 |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf 139 p. : il. |
dc.publisher.none.fl_str_mv |
[s.n.] |
publisher.none.fl_str_mv |
[s.n.] |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) instname:Universidade Estadual de Campinas (UNICAMP) instacron:UNICAMP |
instname_str |
Universidade Estadual de Campinas (UNICAMP) |
instacron_str |
UNICAMP |
institution |
UNICAMP |
reponame_str |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
collection |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) - Universidade Estadual de Campinas (UNICAMP) |
repository.mail.fl_str_mv |
sbubd@unicamp.br |
_version_ |
1809189045628043264 |