Banca de TCC – Bruno Giacobo Pinto

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

Apresentações Finais (2016/2)

Implementação de Uma Interface de Expressão de Concorrência Compatível com C++11
por
Bruno Giacobo Pinto

Curso:
Ciência da Computação

Banca:
Prof. Gerson Geraldo Homrich Cavalheiro (orientador)
Prof. André Rauber Du Bois
Prof. André Desessards Jardim
Prof. Edevaldo Braga dos Santos

Data: 30 de Novembro de 2016

Hora: 15:30h

Local: Sala 440

Resumo do Trabalho: Devido seu rendimento satisfatório, os processadores multicore estão inseridos em grande parte das soluções de alto desempenho atualmente. Nesse paradigma, a performance advém da exploração efetiva do paralelismo potencial da arquitetura em oposição ao modelo anterior, onde a frequência era o fator determinante. Essas arquiteturas evoluíram e, nos últimos tempos, passaram a contar com centenas de unidades de processamentos (cores), originando sistemas many-cores. A consequência imediata desse aumento de paralelismo, contudo, é a elevada complexidade de programação desses sistemas. Para auxiliar o programador na exploração efetiva das arquiteturas multicore, diversas ferramentas de programação foram criadas. Elas disponibilizam uma interface de serviços para que o usuário possa expressar diferentes fluxos de execução, sincronização de dados, controle de acesso a dados compartilhados e meios de escalonar tarefas, por exemplo. A grande maioria das ferramentas de programação concorrente são concebidas de forma a priorizar performance. Como consequência, apenas serviços essenciais a expressão de paralelismo são disponibilizados para o programador. Frente a isso,faz-se necessário que essas ferramentas evoluam e passem a contar com abstrações de mais alto-nível, suportem novas arquiteturas e sejam compatíveis com as novas funcionalidades de suas linguagens de programação hospedeira. Este trabalho discute a implementação de uma interface de programação paralela voltada, mas não restrita, a arquiteturas multicore. Utilizando as novas funcionalidades da linguagem C++ versão 11, a interface descreve um modelo de programação e disponibiliza dois padrões de paralelismo para o usuário: o for e reduce paralelos. Como diferencial, é previsto a possibilidade de se utilizar, de forma genérica, diferentes ambientes concorrentes (como OpenMP ou Pthreads, por exemplo) para execução das tarefas, desassociando totalmente a interface de um mecanismo de escalonamento.

Para mais informações acesse: http://inf.ufpel.edu.br/notcc/doku.php?id=bancas:2016_2