Search papers, labs, and topics across Lattice.
This study explores the capability of large language models (LLMs) to port a complex geophysical ocean model (FESOM2) from Fortran to C and then to C++/Kokkos, ensuring that the underlying physics remain intact. By employing a structured two-stage translation process and strict validation criteria, the authors successfully demonstrated that the C port accurately reproduced long-term simulation statistics of the original Fortran code, while the Kokkos version achieved bit-for-bit equivalence on CPUs and close statistical fidelity on GPUs. The findings highlight the potential of LLMs to facilitate efficient code translation for high-performance computing applications in scientific modeling, achieving significant speedups on modern hardware.
LLMs can effectively port complex scientific models to modern languages without sacrificing accuracy, achieving speedups of up to 3.7 times on GPUs.
Large language models (LLMs) can translate and modify source code, and have been shown to do so for codes of different complexity. Whether they can port a complete, production geophysical model to a different language without degrading its physics has not been established. We demonstrate that LLM-assisted code translation can preserve the physics of a complete production ocean model while moving it into a modern performance-portable form. We report our experience using an agentic LLM coding assistant, directed by domain experts, to port the FESOM2 unstructured mesh ocean--sea-ice model (about 74000 lines of core Fortran) first to C and then to C++/Kokkos for performance portability across CPUs and GPUs. We describe the practices that proved necessary, what worked and what did not, and the failure modes that we encountered. Three practices mattered most: translating in two stages that separate reproducing the numerics (Fortran to a clean C reference) from introducing parallelism (C to Kokkos); requiring a strictly literal translation in which the assistant was not permitted to ``improve'' the source; and validating each stage against an acceptance criterion suited to it. The C port reproduces the original Fortran at the level of long-term simulation statistics over five years. The Kokkos port is bit-for-bit identical to the C reference on CPU and statistically close on GPU over multi-year runs. On eddy-rich meshes up to 7.4 million surface vertices a single A100 GPU node runs 1.6--3.7 times faster than a CPU node, reaching the 1-2 simulated-years-per-day required for production integrations. The result is more than a single GPU port: by following a clear validation procedure, an LLM moved a full Fortran ocean model into another language and onto accelerators while preserving its physics in a matter of weeks.