Pragma driven shared memory parallelism in Zig by supporting OpenMP loop directives
David Kacs, Joseph Lee, Justs Zarins, Nick Brown

TL;DR
This paper enhances the Zig compiler to support OpenMP loop directives, enabling shared memory parallelism, and demonstrates competitive performance and scalability on NASA's NAS Parallel Benchmark suite.
Contribution
It introduces OpenMP support in Zig, a language not traditionally used in HPC, and shows its performance competitiveness with Fortran and C.
Findings
Zig with OpenMP scales well on NPB benchmarks.
Zig outperforms Fortran by up to 1.25 times in certain tests.
The integration enables Zig to be a viable HPC language.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Advanced Data Storage Technologies
