Português English
Contato
Publicado em: 05/12/2011

Dissertação de Mestrado em Processamento Paralelo e Distribuído

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
INSTITUTO DE INFORMÁTICA
PROGRAMA DE POS-GRADUAÇÃO EM COMPUTAÇÃO
———————————————————

DEFESA DE DISSERTAÇÃO DE MESTRADO

Aluno: Alexandre Vinicius Almeida
Orientador: Prof. Dr. Nicolas Bruno Maillard

Título: “Uso de Auto-Tuning para Otimização de Decomposição de Domínios Paralela”
Linha de Pesquisa: Processamento Paralelo e Distribuído
Data: 13/12/2011
Hora: 13h30
Local: Sala INF (Auditório) – Prédio 43413 (67) – Instituto de Informática

Banca Examinadora:
Prof. Dr. Claudio Fernando Resin Geyer (UFRGS)
Prof. Dr. Philippe Olivier Alexandre Navaux (UFRGS)
Prof. Dr. Ricardo Vargas Dorneles (UCS)
Presidente da Banca: Prof. Dr. Nicolas Bruno Maillard

Resumo: O desenvolvimento de aplicações de forma a atingir níveis de desempenho próximos aos níveis teóricos de uma determinada plataforma é uma tarefa que exige conhecimento técnico do ambiente de hardware, uma vez que o software deve explorar detalhes específicos da plataforma em questão. Pelo fato do software ser específico à plataforma, caso ela evolua ou se altere, as otimizações realizadas podem não explorar a nova arquitetura de forma eficiente. Auto-tuners são sistemas que surgiram como um meio automatizado de adaptar um determinado software a uma arquitetura alvo. Essa adaptação ocorre através de uma busca empírica de valores ótimos para parâmetros específicos de uma aplicação, a fim de ajustá-los às características do hardware, ou ainda através da geração de código- fonte otimizado para a plataforma. Este trabalho propõe um módulo auto-tuner orientado à adaptação parametrizada de uma aplicação paralela, que trabalha variando os fatores da dimensão do domínio bidimensional, o número de processos e a extensão das regiões de sobreposição. Para cada variação dos fatores, o auto-tuner testa a aplicação na arquitetura paralela de forma a buscar a combinação de parâmetros com melhor desempenho. Para possibilitar o auto-tuning, foi desenvolvida uma classe em linguagem C++ denominada Mesh, baseada no padrão MPI. A classe busca abstrair a decomposição de domínios de uma aplicação paralela por meio do uso de Orientação a Objetos, e facilita a variação da extensão das regiões de sobreposição entre os subdomínios. Os resultados experimentais demonstraram que o auto-tuner explora o ganho de desempenho pela variação do número de processos da aplicação, que também é tratado pelo módulo auto-tuner. A arquitetura paralela utilizada na validação não se mostrou ideal para uma otimização através do aumento da extensão das regiões sobrepostas entre subdomínios.

Palavras-Chave: Auto-tuning, decomposição de domínios, MPI, paralelismo.