REVIEW 3 major objections 1 minor 23 references
nomp: A Framework for Building Domain Specific Compilers
T0 review · 3 major / 1 minor · reviewed 2026-06-27 · grok-4.3
Pith's one-line read nomp is a pragma-based framework where user metadata drives a runtime to transform code using domain-specific optimization patterns.
desk verdict nomp is a high-level proposal for a pragma-plus-metadata framework to build domain-specific compilers, but it stays at the outline stage with no implementation, examples, or results. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The nomp runtime that interprets structured user metadata to drive code transformations and generation for domain-specific optimizations.
What would settle it
A side-by-side benchmark in which nomp-generated code for a concrete domain task runs within a few percent of equivalent hand-written CUDA or HIP code while the source remains only pragmas and metadata.
Extended reading notes
Core claim
nomp consists of a pragma based programming model and a runtime capable of code transformation and generation based on user provided metadata, enabling reuse of optimization patterns specific to a given domain without sacrificing performance or portability.
Load-bearing premise
User-provided metadata can be structured and interpreted by the runtime so that the resulting code transformations reliably achieve performance on par with hand-written low-level models across domains.
Editorial extensions
If this is right
- Domain experts encode optimization patterns once as metadata and the runtime applies them to multiple programs.
- Programmers write at the pragma level yet obtain transformations that target specific GPU execution plans.
- The same metadata-driven process supports portability across low-level backends such as CUDA, HIP, and OpenCL.
- Productivity rises because the low-level details are generated rather than written by each developer.
Reading between the lines
- If metadata schemas prove stable, the same runtime could host multiple domain-specific compilers without rewriting the transformation engine each time.
- The approach could be tested by measuring how much less code a developer must write to reach a target performance level compared with direct use of CUDA.
- Extending the metadata format to capture data-layout decisions or kernel-fusion rules would be a natural next step the paper leaves open.
Signed reviews
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The manuscript proposes nomp, a framework for building domain-specific compilers. It consists of a pragma-based programming model and a runtime for code transformation and generation driven by user-provided metadata. The goal is to improve programmer productivity for GPU programming (relative to CUDA/HIP/OpenCL) without sacrificing performance or portability, by reusing domain-specific optimization patterns that high-level models like OpenMP/OpenACC have not yet achieved.
Significance. If the framework could be realized such that metadata reliably drives transformations matching hand-tuned performance across domains, the work would address a long-standing tension in heterogeneous computing between productivity and performance. The proposal itself, however, supplies only a high-level outline with no concrete metadata schema, transformation rules, implementation, or evaluation, so any significance remains prospective.
major comments (3)
- [Abstract] Abstract (paragraph beginning 'However, we believe there is room...'): The central claim that user-provided metadata can be structured and interpreted by the runtime to achieve performance on par with hand-written low-level models is stated as the motivating assumption, yet the manuscript supplies no metadata format, no transformation rules, and no code-generation mechanism, rendering the claim untestable from the given text.
- [Abstract] Abstract: No implementation details, transformation examples, or experimental results are presented to support the assertion that the runtime can deliver performance and portability comparable to low-level models while improving productivity; this absence is load-bearing because the entire contribution is framed as a practical framework rather than a purely conceptual sketch.
- [Abstract] Abstract: The paper does not indicate how domain-specific optimization patterns are identified, encoded in metadata, or reused across applications, nor does it address integration with existing pragma models (OpenMP, OpenACC) or handling of portability across GPU vendors; these omissions prevent assessment of whether the proposed design can actually close the stated productivity-performance gap.
minor comments (1)
- [Abstract] The abstract uses the term 'user provided metadata' without defining its structure or scope; a brief illustrative example would clarify the intended interface.
Simulated Author's Rebuttal
We thank the referee for the detailed review and constructive feedback on our manuscript. We acknowledge that the current version presents nomp primarily as a high-level conceptual proposal rather than a fully specified and evaluated implementation. We will revise the abstract and add clarifying text to better align reader expectations with the scope of the work.
read point-by-point responses
-
Referee: [Abstract] Abstract (paragraph beginning 'However, we believe there is room...'): The central claim that user-provided metadata can be structured and interpreted by the runtime to achieve performance on par with hand-written low-level models is stated as the motivating assumption, yet the manuscript supplies no metadata format, no transformation rules, and no code-generation mechanism, rendering the claim untestable from the given text.
Authors: We agree that the manuscript does not supply a concrete metadata format, transformation rules, or code-generation mechanism. The work is framed as a proposal for a framework that reuses domain-specific optimization patterns via metadata, rather than a complete specification or implementation. We will revise the abstract to explicitly characterize the contribution as a high-level design proposal, with the detailed schema and rules reserved for future development. This will make the claim's prospective nature clear. revision: yes
-
Referee: [Abstract] Abstract: No implementation details, transformation examples, or experimental results are presented to support the assertion that the runtime can deliver performance and portability comparable to low-level models while improving productivity; this absence is load-bearing because the entire contribution is framed as a practical framework rather than a purely conceptual sketch.
Authors: The referee is correct that no implementation details, examples, or results appear in the manuscript. The paper is positioned as a proposal for the nomp framework and runtime concept, not as an evaluation of a deployed system. We will revise the abstract and introduction to state this scope explicitly and to frame the contribution as a conceptual outline rather than a practical, evaluated framework. This addresses the framing concern directly. revision: yes
-
Referee: [Abstract] Abstract: The paper does not indicate how domain-specific optimization patterns are identified, encoded in metadata, or reused across applications, nor does it address integration with existing pragma models (OpenMP, OpenACC) or handling of portability across GPU vendors; these omissions prevent assessment of whether the proposed design can actually close the stated productivity-performance gap.
Authors: We acknowledge that the manuscript provides only a high-level description and does not detail how patterns would be identified, encoded, reused, integrated with OpenMP/OpenACC, or made portable across vendors. As this is a proposal, we will add a dedicated section outlining possible approaches to metadata encoding, pattern reuse, and compatibility considerations. This will allow readers to assess the design direction without requiring a full implementation at this stage. revision: partial
Circularity Check
No significant circularity identified
full rationale
The manuscript is a high-level design proposal for the nomp framework (pragma-based model plus metadata-driven runtime) with no equations, fitted parameters, predictions, or derivation chain. The central claim—that domain-specific metadata can enable performance-competitive transformations—rests on future implementation and evaluation rather than any self-referential reduction or self-citation load-bearing step. No load-bearing premise reduces to its own inputs by construction, making the argument self-contained as an outline of intended work.
Assumptions & free parameters
assumptions (1)
- domain assumption Domain-specific optimization patterns exist that can be captured by user-supplied metadata and applied by a runtime to reach performance parity with low-level models
invented entities (1)
-
nomp framework
Cite this review
Pith. "Pith review of nomp: A Framework for Building Domain Specific Compilers." pith.science (2026). https://pith.science/paper/KVRQ4CFM
@misc{pith2026260612650,
author = {Pith},
title = {Pith review of: nomp: A Framework for Building Domain Specific Compilers},
year = {2026},
howpublished = {\url{https://pith.science/paper/KVRQ4CFM}},
note = {Machine review of arXiv:2606.12650}
}
read the original abstract
The low-level GPU programming models (CUDA, HIP, OpenCL, etc.) provide detailed control of the data flow and execution plan of a program in order to extract close-to-metal performance. However, these have a steep learning curve due to the intricacies of their syntax and semantics. This reduces programmer productivity. On the other hand, high-level models (OpenMP, OpenACC, etc.) that serve as abstractions over the low-level models are aimed at improving programmer productivity but achieving performance on-par with the low-level models is a challenge. There are inherent trade-offs between productivity, portability and performance in both approaches and there is no one-size-fits-all solution which achieves all three simultaneously. However, we believe there is room to improve programmer productivity without sacrificing performance and portability by reusing optimization patterns specific to a given domain. To this end, we propose nomp: a framework for building domain specific compilers. nomp consists of a pragma based programming model and a runtime capable of code transformation and generation based on user provided metadata.
Figures
Figures from the paper (9 more)
Reference graph
Works this paper leans on
-
[1]
TOP500 List - June 2024,
TOP500.org, “TOP500 List - June 2024,” 2024, accessed: 2024-06-04. [Online]. Available: https://top500.org/lists/top500/ 2024/06/
2024
-
[2]
Exascale computing project,
Exascale Computing Project, “Exascale computing project,” 2024, accessed: 2024-10-10. [Online]. Available: https://www. exascaleproject.org
2024
-
[3]
Cuda c programming guide,
NVIDIA Corporation, “Cuda c programming guide,” 2024, accessed: 2024-06-15. [Online]. Available: https://docs.nvidia. com/cuda/cuda-c-programming-guide/
2024
-
[4]
Hip documentation,
AMD, “Hip documentation,” 2024, accessed: 2024-06-15. [Online]. Available: https://rocm.docs.amd.com/projects/HIP/en/ latest/
2024
-
[5]
Opencl registry,
Khronos Group, “Opencl registry,” 2024, accessed: 2024-06-15. [Online]. Available: https://registry.khronos.org/OpenCL/
2024
-
[6]
Openmp api specification 5.2,
OpenMP Architecture Review Board, “Openmp api specification 5.2,” 2020. [Online]. Available: https://www.openmp.org/ wp-content/uploads/OpenMP-API-Specification-5-2.pdf
2020
-
[7]
OpenACC 3.2 specification,
OpenACC, “OpenACC 3.2 specification,” Tech. Rep., Sep. 2020. [Online]. Available: https://www.openacc.org/sites/default/files/ inline-images/Specification/OpenACC-3.2-final.pdf
2020
-
[8]
User-directed loop-transformations in clang,
M. Kruse and H. Finkel, “User-directed loop-transformations in clang,” in 2018 IEEE/ACM 5th Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC) . IEEE, 2018, pp. 49–58
2018
Show all 23 references
-
[9]
Polly-polyhedral optimization in llvm,
T. Grosser, H. Zheng, R. Aloor, A. Simb ¨urger, A. Gr ¨oßlinger, and L.-N. Pouchet, “Polly-polyhedral optimization in llvm,” in Proceedings of the First International Workshop on Polyhedral Compilation Techniques (IMPACT), vol. 2011, 2011, p. 1
2011
-
[10]
A language for the compact representation of multiple program versions,
S. Donadio, J. Brodman, T. Roeder, K. Yotov, D. Barthou, A. Cohen, M. J. Garzar ´an, D. Padua, and K. Pingali, “A language for the compact representation of multiple program versions,” in Languages and Compilers for Parallel Computing: 18th Inter- national Workshop, LCPC 2005,...
2005
-
[11]
Nekrs, a gpu-accelerated spectral element navier-stokes solver,
P. Fischer, S. Kerkemeier, M. Min, Y .-H. Lan, M. Phillips, T. Rathnayake, E. Merzari, A. Tomboulides, A. Karakus, N. Chalmers et al. , “Nekrs, a gpu-accelerated spectral element navier-stokes solver,” arXiv preprint arXiv:2104.05829 , 2021
2021
-
[12]
libparanumal: a performance portable high-order finite element library,
N. Chalmers, A. Karakus, A. Austin, K. Swirydowicz, and T. Warburton, “libparanumal: a performance portable high-order finite element library,” Release 0.4. 0 , 2020
2020
-
[13]
Loo.py: transformation-based code generation for gpus and cpus,
A. Kl ¨ockner, “Loo.py: transformation-based code generation for gpus and cpus,” in Proceedings of ACM SIGPLAN international workshop on libraries, languages, and compilers for array pro- gramming, 2014, pp. 82–87
2014
-
[14]
Openmp: an industry standard api for shared-memory programming,
L. Dagum and R. Menon, “Openmp: an industry standard api for shared-memory programming,” IEEE Computational Science and Engineering, vol. 5, no. 1, pp. 46–55, 1998
1998
-
[15]
Llvm and clang: Next generation compiler technol- ogy,
C. Lattner, “Llvm and clang: Next generation compiler technol- ogy,” in The BSD conference , vol. 5, 2008, pp. 1–20
2008
-
[16]
Kl ¨ockner
A. Kl ¨ockner. (2016) Loopy documentation - reference: Kernels. Accessed: 2023-12-23. [Online]. Available: https://documen. tician.de/loopy/ref kernel.html
2016
-
[17]
libclang: C interface to clang,
LLVM Project, “libclang: C interface to clang,” 2024, accessed: 2024-06-15. [Online]. Available: https://clang.llvm.org/doxygen/ group CINDEX.html
2024
-
[18]
Hipbone: A performance-portable graphics processing unit- accelerated c++ version of the nekbone benchmark,
N. Chalmers, A. Mishra, D. McDougall, and T. Warburton, “Hipbone: A performance-portable graphics processing unit- accelerated c++ version of the nekbone benchmark,” The Inter- national Journal of High Performance Computing Applications , vol. 37, no. 5, pp. 560–577, 2023
2023
-
[19]
Nekbone performance on gpus with openacc and cuda fortran implementations,
J. Gong, S. Markidis, E. Laure, M. Otten, P. Fischer, and M. Min, “Nekbone performance on gpus with openacc and cuda fortran implementations,” The Journal of Supercomputing , vol. 72, pp. 4160–4180, 2016
2016
-
[20]
Nek5000: Open source spectral element CFD solver. http://nek5000.mcs.anl.gov and https://github.com/nek5000/nek5000,
P. Fischer, J. Lottes, and S. Kerkemeier, “Nek5000: Open source spectral element CFD solver. http://nek5000.mcs.anl.gov and https://github.com/nek5000/nek5000,” 2008
2008
-
[21]
OLCF Frontier,
“OLCF Frontier,” https://www.olcf.ornl.gov/frontier/
-
[22]
Gropp, E
W. Gropp, E. Lusk, and A. Skjellum, Using MPI: Portable Parallel Programming with the Message-Passing Interface, 2nd edition. Cambridge, MA: MIT Press, 1999
1999
-
[23]
Hip runtime compilation user guide,
AMD, “Hip runtime compilation user guide,” https://rocm.docs. amd.com/projects/HIP/en/docs-6.0.0/user guide/hip rtc.html, 2024, accessed: 2024-07-01
2024
Reviewed June 27, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.