Pragma driven shared memory parallelism in Zig by supporting OpenMP loop directives

David Kacs*, Nick Brown, Joseph Lee, Justs Zarins

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

The Zig programming language, which is designed to provide performance and safety as first class concerns, has become popular in recent years. Given that Zig is built upon LLVM, and-so enjoys many of the benefits provided by the ecosystem, including access to a rich set of backends, Zig has significant potential for high performance workloads. However, it is yet to gain acceptance in HPC and one of the reasons for this is that support for the pragma driven shared memory parallelism is missing.

In this paper we describe enhancing the Zig compiler to add support for OpenMP loop directives. Then exploring performance using NASA’s NAS Parallel Benchmark (NPB) suite. We demonstrate that not only does our integration of OpenMP with Zig scale comparatively to Fortran and C reference implementations of NPB, but furthermore Zig provides up to a 1.25 times performance increase compared to Fortran.
Original languageEnglish
Title of host publicationProceedings of the Tenth Annual Workshop on the LLVM Compiler Infrastructure in HPC
PublisherInstitute of Electrical and Electronics Engineers
DOIs
Publication statusAccepted/In press - 1 Oct 2024
EventThe Tenth Annual Workshop on the LLVM Compiler Infrastructure in HPC - Atlanta, United States
Duration: 18 Nov 202418 Nov 2024
https://llvm-hpc-2024-workshop.github.io/

Workshop

WorkshopThe Tenth Annual Workshop on the LLVM Compiler Infrastructure in HPC
Country/TerritoryUnited States
CityAtlanta
Period18/11/2418/11/24
Internet address

Fingerprint

Dive into the research topics of 'Pragma driven shared memory parallelism in Zig by supporting OpenMP loop directives'. Together they form a unique fingerprint.

Cite this