Busca avançada
Ano de início
Entree

Execução especulativa de código em arquiteturas multicore

Processo: 15/04285-5
Linha de fomento:Bolsas no Brasil - Doutorado Direto
Vigência (Início): 01 de junho de 2015
Vigência (Término): 31 de dezembro de 2016
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação
Pesquisador responsável:Guido Costa Souza de Araújo
Beneficiário:Juan Jesús Salamanca Guillén
Instituição-sede: Instituto de Computação (IC). Universidade Estadual de Campinas (UNICAMP). Campinas , SP, Brasil
Bolsa(s) vinculada(s):15/12077-3 - Execução especulativa de código em arquiteturas multicore, BE.EP.DD
Assunto(s):Computação de alto desempenho

Resumo

Esta proposta descreve uma nova técnica de especulação controlada por software para a execução de múltiplos traços alternativos de regiões quentes de código. Esta técnica, chamada "Speculative Trace Execution" (STE), enumera, otimiza, e executa especulativamente traços de regiões quentes de código tais como laços e funções. Isto requere de suporte em hardware que pode ser fornecido em uma maneira similar como aquele disponível em Sistemas de Memoria Transacional em Hardware (HTM). Em este projeto estudamos as características necessárias para sustentar a especulação de traços controlada por software, especificamente "multi-versioning", "lazy conflict detection" e "transaction synchronization". Uma comparação das arquiteturas HTM existentes - Intel TSX, IBM BG/Q, e IBM POWER8 - mostra que nenhuma delas têm todas as características requeridas para implementar STE. Como uma demonstração e prova de conceito, usamos privatização e código "pause/resume" para criar uma implementação do protótipo de STE. Usando este protótipo, Intel TSX e benchamrks de Parboil, MediaBench, e SPEC2006, encontramos que STE consegue speedups para todo o programa da ordem de 5%. Este resultado inicial é promissor, já que o protótipo tem um overhead significante causado pelo código que compensa as características que o TSX carece. Uma análise, inclusa em esta proposta, sugere que os mecanismos de HTM têm o potencial para melhorar consideravelmente o desempenho da execução de traços desde que estes mecanismos implementem eficientemente as características sugeridas. Este trabalho preliminar foi submetido ao SPAA 2015: 27th ACM Symposium on Parallelism in Algorithms and Architectures. Para concluir o projeto, vamos integrar o protótipo a um compilador real e avaliar essa implementação. Além disso, vamos projetar um simulador de um sistema HTM, ameno para execução de traços, assim como estudar e avaliar os possíveis melhores speedups que podem ser alcançados com STE sobre HTM. Finalmente, vamos reportar os resultados e escrever a tese. (AU)