Detalhes bibliográficos
Ano de defesa: |
2020 |
Autor(a) principal: |
Schmalfuss, Murilo Figueiredo |
Orientador(a): |
Cavalheiro, Gerson Geraldo Homrich |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Federal de Pelotas
|
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Computação
|
Departamento: |
Centro de Desenvolvimento Tecnológico
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Área do conhecimento CNPq: |
|
Link de acesso: |
http://guaiaca.ufpel.edu.br/handle/prefix/6654
|
Resumo: |
Atualmente, as arquiteturas paralelas estão presente em praticamente todos os tipos de dispositivos, justificando uma busca por ferramentas e técnicas que facilitem o desenvolvimento de aplicações paralelas sem prejudicar o desempenho. As ferramentas atuais para programação paralela entendem essa necessidade e focam seus esforços em estratégias de escalonamento que tirem vantagem dos padrões paralelos comumente presentes no desenvolvimento de aplicações paralelas. Os algoritmos iterativos compõem uma grande parcela dos problemas computacionais, soluções que otimizem a execução desses algoritmos estão relacionadas à forma como as tarefas são divididas e escalonadas. Porém estas ferramentas não oferecem a flexibilidade para alterar a política de escalonamento, forçando o desenvolvedor a projetar a solução do problema de acordo com a ferramenta escolhida e sua forma de escalonamento, exigindo do desenvolvedor o conhecimento de detalhes sobre a implementação da ferramenta para extrair o máximo de desempenho. Essa abordagem oferece pouco reuso de código, e a portabilidade fica dependente das plataformas suportadas pela ferramenta. Este trabalho propõe uma interface paralela orientada a objetos que permita a troca das políticas de escalonamento, permitindo a adequação da estratégia de escalonamento em função da necessidade do algoritmo. O padrão paralelo map foi utilizado como estudo de caso para validação e aferição do desempenho, comparando os resultados com outras ferramentas disponíveis para C++, como TBB e OpenMP. |