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.

Author Biographies

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.

Published
2021-07-05
How to Cite
Furlan Miranda, E., & Stephany, S. (2021). Common HPC Approaches in Python Evaluated for a Scientific Computing Test Case. REVISTA CEREUS, 13(2), 84-98. Retrieved from http://ojs.unirg.edu.br/index.php/1/article/view/3408