Teaching An Old Dog New Tricks: Porting Legacy Code to Heterogeneous Compute Architectures With Automated Code Translation
Nicolas Nytko, Andrew Reisner, J. David Moulton, Luke N. Olson, Matthew West

TL;DR
This paper presents an automated code translation approach that enables legacy scientific codes to run efficiently on GPUs, achieving significant speedups without intrusive code modifications.
Contribution
The authors developed a reusable translation layer that converts Fortran 2003 legacy code to GPU-compatible code using existing tools, facilitating easy adoption of heterogeneous architectures.
Findings
Achieved 2-3x speedup over CPU execution.
Realized 6x speedup in multi-node configurations.
Enabled GPU execution of legacy multigrid solver code.
Abstract
Legacy codes are in ubiquitous use in scientific simulations; they are well-tested and there is significant time investment in their use. However, one challenge is the adoption of new, sometimes incompatible computing paradigms, such as GPU hardware. In this paper, we explore using automated code translation to enable execution of legacy multigrid solver code on GPUs without significant time investment and while avoiding intrusive changes to the codebase. We developed a thin, reusable translation layer that parses Fortran 2003 at compile time, interfacing with the existing library Loopy to transpile to C++/GPU code, which is then managed by a custom MPI runtime system that we created. With this low-effort approach, we are able to achieve a payoff of an approximately 2-3x speedup over a full CPU socket, and 6x in multi-node settings.
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.
