TY - GEN
T1 - A Comparative Evaluation of Parallel Programming Python Tools for Particle-in-Cell on Symmetric Multiprocessors
AU - Blandino H, Oscar
AU - Meneses, Esteban
N1 - Publisher Copyright:
© 2022, The Author(s), under exclusive license to Springer Nature Switzerland AG.
PY - 2022
Y1 - 2022
N2 - The Python programming language has established itself as a popular alternative for implementing scientific computing workflows. Its massive adoption across a wide spectrum of disciplines has created a strong community that develops tools for solving complex problems in science and engineering. In particular, there are several parallel programming libraries for Python codes that target multicore processors. We aim at comparing the performance and scalability of a subset of three popular libraries (Multiprocessing, PyMP, and Torcpy). We use the Particle-in-cell (PIC) method as a benchmark. This method is an attractive option for understanding physical phenomena, specially in plasma physics. A pre-existing PIC code implementation was modified to integrate Multiprocessing, PyMP, and Torcpy. The three tools were tested on a manycore and on a multicore processor by running different problem sizes. The results obtained consistently indicate that PyMP has the best performance, Multiprocessing showed a similar behavior but with longer execution times, and Torcpy did not properly scale when increasing the number of workers. Finally, a just-in-time (JIT) alternative was studied by using Numba, showing execution time reductions of up to 43%.
AB - The Python programming language has established itself as a popular alternative for implementing scientific computing workflows. Its massive adoption across a wide spectrum of disciplines has created a strong community that develops tools for solving complex problems in science and engineering. In particular, there are several parallel programming libraries for Python codes that target multicore processors. We aim at comparing the performance and scalability of a subset of three popular libraries (Multiprocessing, PyMP, and Torcpy). We use the Particle-in-cell (PIC) method as a benchmark. This method is an attractive option for understanding physical phenomena, specially in plasma physics. A pre-existing PIC code implementation was modified to integrate Multiprocessing, PyMP, and Torcpy. The three tools were tested on a manycore and on a multicore processor by running different problem sizes. The results obtained consistently indicate that PyMP has the best performance, Multiprocessing showed a similar behavior but with longer execution times, and Torcpy did not properly scale when increasing the number of workers. Finally, a just-in-time (JIT) alternative was studied by using Numba, showing execution time reductions of up to 43%.
KW - Parallel programming
KW - Particle-in-cell
KW - Python
UR - http://www.scopus.com/inward/record.url?scp=85146717640&partnerID=8YFLogxK
U2 - 10.1007/978-3-031-23821-5_1
DO - 10.1007/978-3-031-23821-5_1
M3 - Contribución a la conferencia
AN - SCOPUS:85146717640
SN - 9783031238208
T3 - Communications in Computer and Information Science
SP - 1
EP - 15
BT - High Performance Computing - 9th Latin American Conference, CARLA 2022, Revised Selected Papers
A2 - Navaux, Philippe
A2 - Barrios H., Carlos J.
A2 - Osthoff, Carla
A2 - Guerrero, Ginés
PB - Springer Science and Business Media Deutschland GmbH
T2 - 9th Latin American High Performance Computing Conference, CARLA 2022
Y2 - 26 September 2022 through 30 September 2022
ER -