HPC-Coder: Modeling Parallel Programs using Large Language Models
Daniel Nichols, Aniruddha Marathe, Harshitha Menon, Todd Gamblin,, Abhinav Bhatele

TL;DR
HPC-Coder leverages large language models fine-tuned on HPC code to automate complex tasks like code completion, parallelization, and performance modeling, improving developer productivity in high-performance computing environments.
Contribution
The paper introduces HPC-Coder, a new LLM fine-tuned on HPC code, demonstrating its effectiveness in automating HPC-specific programming tasks.
Findings
HPC-Coder outperforms generic models in auto-completing HPC functions.
It can decorate loops with OpenMP pragmas accurately.
The model effectively predicts performance changes in scientific codes.
Abstract
Parallel programs in high performance computing (HPC) continue to grow in complexity and scale in the exascale era. The diversity in hardware and parallel programming models make developing, optimizing, and maintaining parallel software even more burdensome for developers. One way to alleviate some of these burdens is with automated development and analysis tools. Such tools can perform complex and/or remedial tasks for developers that increase their productivity and decrease the chance for error. Until recently, such tools for code development and performance analysis have been limited in the complexity of tasks they can perform, especially for parallel programs. However, with recent advancements in language modeling, and the availability of large amounts of open-source code related data, these tools have started to utilize predictive language models to automate more complex tasks. In…
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
TopicsParallel Computing and Optimization Techniques · Software Engineering Research · Software System Performance and Reliability
