Common HPC Approaches in Python Evaluated for a Scientific Computing Test Case
Resumo
Várias das abordagens de processamento de alto desempenho mais comuns disponíveis no ambiente de programação Python do supercomputador LNCC Santos Dumont são comparadas usando um caso de teste específico. Python inclui bibliotecas específicas, ferramentas de desenvolvimento, implementações, recursos de documentação e otimização/paralelização, e fornece uma maneira direta de programar em um alto nível de abstração, porém os recursos de paralelização para explorar vários núcleos, processadores ou aceleradores como GPUs, são diversos e podem não ser facilmente selecionáveis pelo programador. Este trabalho faz uma comparação de abordagens comuns em Python para aumentar o desempenho computacional. O caso de teste é um conhecido problema de transmissão de calor 2D modelado pela equação diferencial parcial de Poisson, que é resolvido por um método de diferenças finitas que requer o cálculo de um estêncil de 5 pontos na grade de domínio. As implementações seriais e paralelas em Fortran 90 foram tomadas como referência para comparar o desempenho com algumas implementações Python seriais e paralelas do mesmo algoritmo. Além dos resultados de desempenho, uma discussão sobre facilidade de programação e desempenho de processamento está incluída. Este trabalho pode ser usado como um ponto de partida para a utilização de recursos PAD em Python.
Copyright (c) 2021 REVISTA CEREUS
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
DECLARAÇÃO DE TRANSFERÊNCIA DE DIREITOS AUTORAIS
Os autores do manuscrito submetido declaram ter conhecimento que em caso de aceitação do artigo, a Revista Cereus, passa a ter todos os direitos autorais sobre o mesmo. O Artigo será de propriedade exclusiva da Revista, sendo vedada qualquer reprodução, em qualquer outra parte ou meio de divulgação, impressa ou eletrônica.