OMP4Py: A pure Python implementation of openMP

dc.contributor.affiliationUniversidade de Santiago de Compostela. Centro de Investigación en Tecnoloxías Intelixentes da USC (CiTIUS)
dc.contributor.affiliationUniversidade de Santiago de Compostela. Departamento de Electrónica e Computación
dc.contributor.authorPiñeiro Pomar, César Alfredo
dc.contributor.authorPichel Campos, Juan Carlos
dc.date.accessioned2025-10-22T11:54:21Z
dc.date.available2025-10-22T11:54:21Z
dc.date.issued2025-08-05
dc.description.abstractPython 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
dc.description.peerreviewedSI
dc.description.sponsorshipThis work was supported by MICINN, Spain [PLEC2021-007662, PID2022-137061OB-C22]; Xunta de Galicia, Spain [ED431G 2019/04, ED431F 2020/08, ED431C 2022/16]; and European Regional Development Fund (ERDF) .
dc.identifier.citationPiñeiro, C., & Pichel, J. C. (2025). OMP4Py: A pure Python implementation of OpenMP. ”Future Generation Computer Systems”, 175. https://doi.org/10.1016/j.future.2025.108035
dc.identifier.doi10.1016/j.future.2025.108035
dc.identifier.issn0167-739X
dc.identifier.urihttps://hdl.handle.net/10347/43354
dc.journal.titleFuture Generation Computer Systems
dc.language.isoeng
dc.publisherElsevier
dc.relation.projectIDinfo:eu-repo/grantAgreement/AEI/Plan Estatal de Investigación Científica y Técnica y de Innovación 2017-2020/PLEC2021-007662/ES/
dc.relation.projectIDinfo:eu-repo/grantAgreement/AEI/Plan Estatal de Investigación Científica, Técnica y de Innovación 2021-2023/PID2022-137061OB-C22/ES/BUSQUEDA, SELECCION Y ORGANIZACION DE CONTENIDOS PARA NECESIDADES DE INFORMACION RELACIONADAS CON LA SALUD: BUSQUEDA Y DETECCION DE DESINFORMACION
dc.relation.publisherversionhttp://dx.doi.org/10.1016/j.future.2025.108035
dc.rights© 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/ ).
dc.rightsAttribution-NonCommercial 4.0 Internationalen
dc.rights.accessRightsopen access
dc.rights.urihttp://creativecommons.org/licenses/by-nc/4.0/
dc.subjectOpenMP
dc.subjectPython
dc.subjectParallelism
dc.subjectMultithreading
dc.subjectScalability
dc.titleOMP4Py: A pure Python implementation of openMP
dc.typejournal article
dc.type.hasVersionVoR
dc.volume.number175
dspace.entity.typePublication
relation.isAuthorOfPublication665c60c6-1b37-4499-8c35-aa52bd7ffcf5
relation.isAuthorOfPublicationdb334853-753e-4afc-9f4f-ad847d0353a7
relation.isAuthorOfPublication.latestForDiscovery665c60c6-1b37-4499-8c35-aa52bd7ffcf5

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
2025_fgcs_pineiro_omp4py.pdf
Size:
1.63 MB
Format:
Adobe Portable Document Format