Busca avançada
Ano de início
Entree

Técnicas de compilação para otimizar o uso do subsistema de memória

Processo: 13/18794-3
Linha de fomento:Bolsas no Brasil - Mestrado
Vigência (Início): 01 de março de 2014
Vigência (Término): 28 de fevereiro de 2015
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação
Pesquisador responsável:Edson Borin
Beneficiário:Guilherme Guaglianoni Piccoli
Instituição-sede: Instituto de Computação (IC). Universidade Estadual de Campinas (UNICAMP). Campinas , SP, Brasil
Assunto(s):Montadores e compiladores

Resumo

Com o avanço dos computadores multiprocessados, cada vez mais arquiteturas ccNUMA (cache coherent Non-Uniform Memory Access) têm sido utilizadas, em detrimento dos modelos SMP (Symmetric Multiprocessing). Uma das principais vantagens de uma arquitetura ccNUMA é a não-sobrecarga do barramento nos acessos à memória principal - uma arquitetura SMP é muito mais sujeita à perdas de desempenho devido à contenção de memória, por "sufocamento" do barramento, que é único e muito concorrido. Embora os programas paralelos desenvolvidos com uma arquitetura SMP em mente possam ser executados sem modificações em máquinas ccNUMA, um problema recorrente é a perda de desempenho de aplicações em que há grande quantidade de acessos à memória principal devido ao fato do tempo de acesso à memória não ser uniforme nestas arquiteturas - páginas fisicamente alocadas em bancos conectados a um determinado controlador de memória são acessadas em tempo uniforme por processadores conectados a esse controlador; no caso de um processador conectado a outro controlador, o tempo é maior e variável, pois o dado precisa percorrer uma rede de interconexão. Soluções variadas para esse tipo de problema foram propostas, partindo de melhores técnicas de programação - que levam em conta as características das arquiteturas ccNUMA - até mecanismos dinâmicos de migração de páginas, em geral implementados no âmbito de sistemas operacionais. Nossa proposta é apresentar um modelo de otimização de código que, utilizando técnicas simples de predição dinâmica do número de iterações de um laço, e a partir do tamanho e das características de acesso às estruturas de dados, possa automatizar a migração de páginas e melhorar a alocação das mesmas dinamicamente, levando em conta a localização dos processadores que estão executando o programa. Para tanto, utilizaremos a infraestrutura de compilação do LLVM, que contempla um compilador otimizante facilmente adaptável, no qual implementaremos nosso modelo.

Publicações acadêmicas
(Referências obtidas automaticamente das Instituições de Ensino e Pesquisa do Estado de São Paulo)
PICCOLI, Guilherme Guaglianoni. Técnicas de compilação para apoiar a migração de dados em sistemas NUMA. 2016. Dissertação de Mestrado - Universidade Estadual de Campinas. Instituto de Computação.

Por favor, reporte erros na lista de publicações científicas escrevendo para: cdi@fapesp.br.