Common HPC Approaches in Python Evaluated for a Scientific Computing Test Case
Abstract
A number of the most common high-performance computing approaches available in the Python programming environment of the LNCC Santos Dumont supercomputer, are compared using a specific test case. Python includes specific libraries, development tools, implementations, documentation and optimizing/parallelizing resources. It provides a straightforward way to program in a high level of abstraction, but parallelization resources to exploit multiple cores, processors or accelerators like GPUs are diverse and may be not easily selectable by the programmer. This work makes a comparison of common approaches in Python to boost computing performance. The test case is a well-known 2D heat transmission problem modeled by the Poisson partial-differential equation, which is solved by a finite difference method that requires the calculation of a 5-point stencil over the domain grid. Their serial and parallel implementations in Fortran 90 were taken as references in order to compare their performance to some serial and parallel Python implementations of the same algorithm. Besides performance results, a discussion about the trade-off between easiness of programming versus processing performance is included. This work is a primer for the use of HPC resources in 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.