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...

Descripción completa

Detalles Bibliográficos
Autores: Piñeiro Pomar, César Alfredo, Pichel Campos, Juan Carlos
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