OMP4Py: A pure Python implementation of openMP
Python demonstrates lower performance in comparison to traditional high performance computing (HPC) languages such as C, C++, and Fortran. This performance gap is largely due to Python’s interpreted nature and the Global Interpreter Lock (GIL), which hampers multithreading efficiency. However, the l...
| Autores: | , |
|---|---|
| Tipo de recurso: | artículo |
| Fecha de publicación: | 2025 |
| País: | España |
| Institución: | Universidad de Santiago de Compostela (USC) |
| Repositorio: | Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela |
| Idioma: | inglés |
| OAI Identifier: | oai:minerva.usc.gal:10347/43354 |
| Acceso en línea: | https://hdl.handle.net/10347/43354 |
| Access Level: | acceso abierto |
| Palabra clave: | OpenMP Python Parallelism Multithreading Scalability |
| id |
ES_1bb8870f34162fc5eabc95df7a643f59 |
|---|---|
| oai_identifier_str |
oai:minerva.usc.gal:10347/43354 |
| network_acronym_str |
ES |
| network_name_str |
España |
| repository_id_str |
|
| spelling |
OMP4Py: A pure Python implementation of openMPPiñeiro Pomar, César AlfredoPichel Campos, Juan CarlosOpenMPPythonParallelismMultithreadingScalabilityPython demonstrates lower performance in comparison to traditional high performance computing (HPC) languages such as C, C++, and Fortran. This performance gap is largely due to Python’s interpreted nature and the Global Interpreter Lock (GIL), which hampers multithreading efficiency. However, the latest version of Python includes the necessary changes to make the interpreter thread-safe, allowing Python code to run without the GIL. This important update will enable users to fully exploit multithreading parallelism in Python. In order to facilitate that task, this paper introduces OMP4Py, the first pure Python implementation of OpenMP. We demonstrate that it is possible to bring OpenMP’s familiar directive-based parallelization paradigm to Python, allowing developers to write parallel code with the same level of control and flexibility as in C, C++, or Fortran. The experimental evaluation shows that OMP4Py significantly impacts the performance of various types of applications, although the current threading limitations of Python’s interpreter (v3.13) reduce its effectiveness for numericalElsevierUniversidade de Santiago de Compostela. Centro de Investigación en Tecnoloxías Intelixentes da USC (CiTIUS)Universidade de Santiago de Compostela. Departamento de Electrónica e Computación20252025-08-0520252025-08-05journal articlehttp://purl.org/coar/resource_type/c_6501VoRhttp://purl.org/coar/version/c_970fb48d4fbd8a85info:eu-repo/semantics/articleapplication/pdfhttps://hdl.handle.net/10347/43354reponame:Minerva. Repositorio Institucional de la Universidad de Santiago de Compostelainstname:Universidad de Santiago de Compostela (USC)InglésengAgencia Estatal de Investigación http://dx.doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica y Técnica y de Innovación 2017-2020 PLEC2021-007662Agencia Estatal de Investigación http://dx.doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica, Técnica y de Innovación 2021-2023 PID2022-137061OB-C22 BUSQUEDA, SELECCION Y ORGANIZACION DE CONTENIDOS PARA NECESIDADES DE INFORMACION RELACIONADAS CON LA SALUD: BUSQUEDA Y DETECCION DE DESINFORMACIONopen accesshttp://purl.org/coar/access_right/c_abf2© 2025 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC license ( http://creativecommons.org/licenses/by- nc/4.0/ ).http://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccessoai:minerva.usc.gal:10347/433542026-06-15T12:47:27Z |
| dc.title.none.fl_str_mv |
OMP4Py: A pure Python implementation of openMP |
| title |
OMP4Py: A pure Python implementation of openMP |
| spellingShingle |
OMP4Py: A pure Python implementation of openMP Piñeiro Pomar, César Alfredo OpenMP Python Parallelism Multithreading Scalability |
| title_short |
OMP4Py: A pure Python implementation of openMP |
| title_full |
OMP4Py: A pure Python implementation of openMP |
| title_fullStr |
OMP4Py: A pure Python implementation of openMP |
| title_full_unstemmed |
OMP4Py: A pure Python implementation of openMP |
| title_sort |
OMP4Py: A pure Python implementation of openMP |
| dc.creator.none.fl_str_mv |
Piñeiro Pomar, César Alfredo Pichel Campos, Juan Carlos |
| author |
Piñeiro Pomar, César Alfredo |
| author_facet |
Piñeiro Pomar, César Alfredo Pichel Campos, Juan Carlos |
| author_role |
author |
| author2 |
Pichel Campos, Juan Carlos |
| author2_role |
author |
| dc.contributor.none.fl_str_mv |
Universidade de Santiago de Compostela. Centro de Investigación en Tecnoloxías Intelixentes da USC (CiTIUS) Universidade de Santiago de Compostela. Departamento de Electrónica e Computación |
| dc.subject.none.fl_str_mv |
OpenMP Python Parallelism Multithreading Scalability |
| topic |
OpenMP Python Parallelism Multithreading Scalability |
| description |
Python demonstrates lower performance in comparison to traditional high performance computing (HPC) languages such as C, C++, and Fortran. This performance gap is largely due to Python’s interpreted nature and the Global Interpreter Lock (GIL), which hampers multithreading efficiency. However, the latest version of Python includes the necessary changes to make the interpreter thread-safe, allowing Python code to run without the GIL. This important update will enable users to fully exploit multithreading parallelism in Python. In order to facilitate that task, this paper introduces OMP4Py, the first pure Python implementation of OpenMP. We demonstrate that it is possible to bring OpenMP’s familiar directive-based parallelization paradigm to Python, allowing developers to write parallel code with the same level of control and flexibility as in C, C++, or Fortran. The experimental evaluation shows that OMP4Py significantly impacts the performance of various types of applications, although the current threading limitations of Python’s interpreter (v3.13) reduce its effectiveness for numerical |
| publishDate |
2025 |
| dc.date.none.fl_str_mv |
2025 2025-08-05 2025 2025-08-05 |
| dc.type.none.fl_str_mv |
journal article http://purl.org/coar/resource_type/c_6501 VoR http://purl.org/coar/version/c_970fb48d4fbd8a85 |
| dc.type.openaire.fl_str_mv |
info:eu-repo/semantics/article |
| format |
article |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/10347/43354 |
| url |
https://hdl.handle.net/10347/43354 |
| dc.language.none.fl_str_mv |
Inglés eng |
| language_invalid_str_mv |
Inglés |
| language |
eng |
| dc.relation.none.fl_str_mv |
Agencia Estatal de Investigación http://dx.doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica y Técnica y de Innovación 2017-2020 PLEC2021-007662 Agencia Estatal de Investigación http://dx.doi.org/10.13039/501100011033 Plan Estatal de Investigación Científica, Técnica y de Innovación 2021-2023 PID2022-137061OB-C22 BUSQUEDA, SELECCION Y ORGANIZACION DE CONTENIDOS PARA NECESIDADES DE INFORMACION RELACIONADAS CON LA SALUD: BUSQUEDA Y DETECCION DE DESINFORMACION |
| dc.rights.none.fl_str_mv |
open access http://purl.org/coar/access_right/c_abf2 http://creativecommons.org/licenses/by-nc/4.0/ |
| dc.rights.openaire.fl_str_mv |
info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
open access http://purl.org/coar/access_right/c_abf2 http://creativecommons.org/licenses/by-nc/4.0/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Elsevier |
| publisher.none.fl_str_mv |
Elsevier |
| dc.source.none.fl_str_mv |
reponame:Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela instname:Universidad de Santiago de Compostela (USC) |
| instname_str |
Universidad de Santiago de Compostela (USC) |
| reponame_str |
Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela |
| collection |
Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela |
| repository.name.fl_str_mv |
|
| repository.mail.fl_str_mv |
|
| _version_ |
1869404182010658816 |
| score |
15,811543 |