Avaliação de estratégias de paralelismo em simulação de meios porosos - Lucca, Natiele (2022)
A computação de alto desempenho provê a aceleração de aplicações científicas através do uso de paralelismo. Aplicações deste tipo geralmente demandam de um grande tempo de computação para uma versão com um único fluxo de execução de código. Diferentes modelos de programação paralela podem ser utilizados para a execução concorrente de código. Em geral, opta-se, em aplicações científicas, pela divisão do processamento dos dados. O objetivo desta dissertação é avaliar diferentes abordagens de paralelismo. Para tanto, como estudo de caso, as abordagens foram avaliadas em uma aplicação de meios porosos que provê a simulação de secagem de grãos. Foram implementadas 4 versões: OpenMP parallel do, target e teams e OpenACC parallel do. As versões OpenMP Target e OpenACC exigiram alterações na estrutura no código-fonte. Foram avaliados três ta- manhos de malha para cada versão implementada, variando o número de threads em 2, 4, 8, 16 e 32. Os resultados obtidos mostram que todas as versões apresentaram ganho de desempenho. O melhor resultado para a malha I foi o caso de teste Target 32 threads com speedup de 3,11. Para a malha II o melhor resultado foi o caso de teste Teams 16 threads com speedup de 6,27. Para a malha III o resultado com maior speedup foi 7,54 para o caso de teste OpenACC. Foi realizada a análise estatística dos resultados obtidos com a distribuição t de student. A análise validou o ganho de desempenho. Também foram gerados traços das execuções paralelas que permitiram, através da ferramenta Vampir, visualizar as sincronizações entre as operações concorrentes.