Sumarização da Especificação OpenMP em Linguagens de Programação: Desempenho e Maturidade

Data
2017
Autores
Marconatto, Marco Antonio
Orientadores
Rodrigo Curvêllo, M.Eng
Coorientadores
Avaliadores
Cristhian Heck, M.Eng
Wesley dos Reis Bezerra, M.Eng
Título da Revista
ISSN da Revista
Título de Volume
Editor
Resumo
O crescente avanço tecnológico dos últimos anos e o desenvolvimento do processamento paralelo para a computação científica, interferiram diretamente no desenvolvimento de API’s de paralelização. Para isto foi desenvolvido a API OpenMP pela ARB. O desenvolvimento de uma boa API para uma linguagem de programação incentiva desenvolvedores não oficiais a produzirem réplicas da API aplicadas a outras linguagens, e.g. OMP4J. Por isso é importante identificar a coerência entre a API padrão da especificação e as demais distribuídas por desenvolvedores não oficiais. Para análise das API’s, testes de desempenho e maturidade foram implementados cinco algoritmos de ordenação, aplicando para cada algoritmo, 10 repetições para cada grupo de threads de tamanho 2, 4, 8, 16 e 32, e cada grupo com dois grupos de entradas de dados, matriz inversa e matriz randômica imutável, ambas com 1000 posições. Com as execuções, os resultados obtidos mostram que a API OMP4J teve desempenho superior ao da OpenMP em dois algoritmos, demonstrando, no algoritmo Radix sort, desempenho duas vezes maior que o da OpenMP. Quanto aos testes de maturidade das API’s, a OMP4J teve menos de vinte por cento de coerência com a OpenMP. No geral a API OMP4J não está pronta para a utilização em ambientes empresariais por exemplo, mas com porta-se muito bem para ambiente acadêmico, onde o intuito é aprendizagem.
Descrição
Palavras-chave
Alta Performance , OpenMP , API , Paralelo , OMP4J , Algoritmo de Ordenação
Citação