Início do conteúdo
Bancas >

Banca de TCC – Michael Alexandre Costa

UNIVERSIDADE FEDERAL DE PELOTAS
CENTRO DE DESENVOLVIMENTO TECNOLÓGICO
TRABALHO DE CONCLUSÃO DE CURSO

Apresentações Finais (2016/2)

Desenvolvimento de um escalonador de tarefas para TinySTM
por
Michael Alexandre Costa

Curso:
Ciência da Computação

Banca:
Prof. Maurício Lima Pilla (orientador)
Prof. André Rauber Du Bois (co-orientador)
MSc. Felipe Leivas Teixeira
Prof. Gerson Geraldo Homrich Cavalheiro

Data: 09 de Março de 2017

Hora: 15:30h

Local: Sala 437

Resumo do Trabalho: Memórias Transacionais (TM) são apresentadas como alternativas à sincronização utilizando locks e monitores. As TMs permitem ao programador escrever programas paralelos em mais alto nível, reduzindo a complexidade da sincronização. Com o aumento do paralelismo existe um aumento na contenção gerando maior número de conflitos, estas transações conflitantes ocasionam os chamados aborts. Abort é o cancelamento de uma transação conflitante que no futuro será re-executada. Como solução ao problema de contenção, a biblioteca de TM TinySTM trata operações conflitantes mas não evita que o abort ocorra. Isto degrada o desempenho de execução de programas, utilizando o processamento de forma desnecessária. Estas características são aplicáveis para as arquiteturas UMA e NUMA. As arquiteturas UMA (Uniform Memory Access) utilizam um único barramento de acesso à memória. Com isto sua principal característica está no tempo de acesso uniforme à memória, isto é, o custo é o mesmo para qualquer núcleo acessar quaisquer posição de memória. Ao contrário das arquiteturas UMA, as arquiteturas NUMA (Non-Uniform Memory Access) não possuem tempo de acesso uniforme à memória, ou seja, o custo para um determinado processador acessar uma memória não é o mesmo para acessar outra memória. Para extrair o melhor desempenho possível das arquiteturas UMA e NUMA é necessário que o programador conheça os detalhes da arquitetura em que a aplicação executará, assim, buscando uma maior eficiência no acessos à memória. O principal objetivo deste trabalho de conclusão de curso é implementar um escalonador de tarefas para biblioteca de STM TinySTM que em tempo de execução identifique as características da arquitetura utilizada. Este utilizará uma heurística de escalonamento que busca uma melhor distribuição da carga de trabalho e evita aborts por meio da serialização das transações conflitantes. Para isto foi realizado duas implementações de testes, uma denominada Scheduler que aplica o escalonamento inicial das tasks em filas fixadas aos núcleos da arquitetura, e outra, que estende a implementação Scheduler, denominada Rescheduler onde as tasks abortadas são migradas para fila fixada ao core 0. Os resultados mostram que a arquitetura UMA com 16 e 32 threads e a arquitetura NUMA para 32 threads com teste Scheduler apresentou desempenho significativamente menor que a tinySTM versão 1.0.5, estes resultados ocorrem pois há uma melhor distribuição de tarefas. O teste Rescheduler obteve nas duas arquiteturas resultados lineares para todos cenários de threads, posto que, este executa a serialização total do teste realizado.

Para mais informações acesse: https://wp.ufpel.edu.br/notcc/bancas/historico/2016_2/

Publicado em 06/03/2017, na categoria Bancas.