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.

Biografia do Autor

Eduardo Furlan Miranda, INPE

Graduate Program in Applied Computing (CAP) / National Institute for Space Research (INPE).

Stephan Stephany, INPE

Coordination of Applied Research and Technological Development (COPDT) / National Institute for Space Research (INPE). São José dos Campos, SP - Brazil.

Publicado
2021-07-05
Seção
Artigos