Comparison of High-performance Computing Approaches in the Python Environment for a Five-point Stencil Test Problem
Resumo
Several of the most important high-performance computing approaches available in the Python programming environment of the LNCC Santos Dumont supercomputer, are compared using a specific test problem. Python includes specific libraries, implementations, development tools, documentation, optimization and parallelization resources. It provides a straightforward way to program using a high level of abstraction, but the parallelization features for exploring multiple cores, processors, or accelerators such as GPUs, are diverse and may not be easily chosen by the user. Serial and parallel implementations of a test problem in Fortran 90 are taken as benchmarks to compare performance. This work is a primer for the use of HPC resources in Python.
Palavras-chave:
High performance computing, Python language, Finite-difference method, Scientific computing
Referências
Argonne National Laboratory (2020). The Message Passing Interface (MPI) Standard. https://www.mcs.anl.gov/research/projects/mpi/.
Balaji, P., Gropp, W., Hoefler, T., and Thakur, R. (2017). Advanced MPI Programming. In Tutorial at SC17: The International Conference for High Performance Computing, Networking, Storage, and Analysis. Argonne National Laboratory. http://www.mcs.anl.gov/~thakur/sc17-mpi-tutorial/.
Beazley, D. M. and Lomdahl, P. S. (1997). Feeding a Large-Scale Physics Application to Python. In The Sixth International Python Conference. http://legacy.python.org/workshops/1997-10/proceedings/beazley.html.
Chen, C. J., Bernatz, R., Carlson, K. D., Lin, W., and de Davis, G. V. (2002). Finite Analytic Method in Flows and Heat Transfer. Appl. Mech. Rev., 55(2):B34–B34.
Dalcin, L. and et al. (2008). MPI for Python: Performance Improvements and MPI-2 Extensions. Journal of Parallel and Distributed Computing, 68(5):655–662.
IEEE Spectrum (2020). Interactive: The Top Programming Languages 2020. http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020.
Langtangen, H. P. and Cai, X. (2008). On the Efficiency of Python for High-Performance Computing: A Case Study Involving Stencil Updates for Partial Differential Equations. In Bock, H. G., Kostina, E., Phu, H. X., and Rannacher, R., editors, Modeling, Simulation and Optimization of Complex Processes, page 337–357. Springer.
Balaji, P., Gropp, W., Hoefler, T., and Thakur, R. (2017). Advanced MPI Programming. In Tutorial at SC17: The International Conference for High Performance Computing, Networking, Storage, and Analysis. Argonne National Laboratory. http://www.mcs.anl.gov/~thakur/sc17-mpi-tutorial/.
Beazley, D. M. and Lomdahl, P. S. (1997). Feeding a Large-Scale Physics Application to Python. In The Sixth International Python Conference. http://legacy.python.org/workshops/1997-10/proceedings/beazley.html.
Chen, C. J., Bernatz, R., Carlson, K. D., Lin, W., and de Davis, G. V. (2002). Finite Analytic Method in Flows and Heat Transfer. Appl. Mech. Rev., 55(2):B34–B34.
Dalcin, L. and et al. (2008). MPI for Python: Performance Improvements and MPI-2 Extensions. Journal of Parallel and Distributed Computing, 68(5):655–662.
IEEE Spectrum (2020). Interactive: The Top Programming Languages 2020. http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2020.
Langtangen, H. P. and Cai, X. (2008). On the Efficiency of Python for High-Performance Computing: A Case Study Involving Stencil Updates for Partial Differential Equations. In Bock, H. G., Kostina, E., Phu, H. X., and Rannacher, R., editors, Modeling, Simulation and Optimization of Complex Processes, page 337–357. Springer.
Publicado
18/07/2021
Como Citar
MIRANDA, Eduardo F.; STEPHANY, Stephan.
Comparison of High-performance Computing Approaches in the Python Environment for a Five-point Stencil Test Problem. In: BRAZILIAN E-SCIENCE WORKSHOP (BRESCI), 15. , 2021, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2021
.
p. 33-40.
ISSN 2763-8774.
DOI: https://doi.org/10.5753/bresci.2021.15786.