Implementing OpenMP for Zig to enable its use in HPC context

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Kacs, David, Brown, Nick, Lee, Joseph
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866910570282745856
author Kacs, David
Brown, Nick
Lee, Joseph
author_facet Kacs, David
Brown, Nick
Lee, Joseph
contents This extended abstract explores supporting OpenMP in the Zig programming language. Whilst, C and Fortran are currently the main languages used to implement HPC applications, Zig provides a similar level of performance complimented with several modern language features, such as enforcing memory safety. However, Zig lacks support for OpenMP which is the de facto threaded programming technology. Leveraging Zig's LLVM compiler tooling, we have added partial support for OpenMP to the Zig compiler and demonstrated that the performance attained by using Zig with OpenMP is comparable to, and in come cases exceeds, that of conventional HPC languages. Consequently we demonstrate that Zig is a viable and important programming technology to use for HPC, and this work paves the way for more HPC features to be added to Zig, ultimately providing HPC developers with the option of using a safer, more modern language for creating high performance applications.
format Preprint
id arxiv_https___arxiv_org_abs_2408_09902
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Implementing OpenMP for Zig to enable its use in HPC context
Kacs, David
Brown, Nick
Lee, Joseph
Distributed, Parallel, and Cluster Computing
This extended abstract explores supporting OpenMP in the Zig programming language. Whilst, C and Fortran are currently the main languages used to implement HPC applications, Zig provides a similar level of performance complimented with several modern language features, such as enforcing memory safety. However, Zig lacks support for OpenMP which is the de facto threaded programming technology. Leveraging Zig's LLVM compiler tooling, we have added partial support for OpenMP to the Zig compiler and demonstrated that the performance attained by using Zig with OpenMP is comparable to, and in come cases exceeds, that of conventional HPC languages. Consequently we demonstrate that Zig is a viable and important programming technology to use for HPC, and this work paves the way for more HPC features to be added to Zig, ultimately providing HPC developers with the option of using a safer, more modern language for creating high performance applications.
title Implementing OpenMP for Zig to enable its use in HPC context
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2408.09902