A Three-Sister Approach for HPC Code Modernization
By John Dennis
For generations, Indigenous peoples across North America have grown corn, beans, and squash together in what has become known as the “Three Sisters” agricultural system. Among the Haudenosaunee (Iroquois), Cahokian, Mississippian, Muscogee, and numerous other Indigenous peoples, these crops provided not only a diverse and nutritious food source, but also a mutually supportive growing system. Corn provides a tall, strong stalk for beans to climb; beans fix nitrogen, enriching the soil; and squash spreads along the ground, helping suppress weeds, retain moisture, and discourage pests. The strength of the system comes from growing the three together: each crop provides something that benefits the others.
A similar principle can guide HPC code modernization. We are pursuing three complementary pieces of the problem: bringing CCPP physics into Kokkos-based host models, extending CCPP to make it easier to connect physics with a broader range of host models and programming environments, and using agentic AI for language translation to transform legacy Fortran into modern C++ implementations. The first effort demonstrates that CCPP physics can operate across combinations of CPU and GPU host models and schemes, while the second seeks to reduce the labor and error associated with the “bridge code” and field-mapping required to connect those components. The third provides a potential path for modernizing the underlying physics and model code itself, with the TURBO project, an effort to modernize the MOM6 ocean model, demonstrating that agentic AI can perform reliable mechanical translation from Fortran to C++ while retaining readable code. Like the Three Sisters, these efforts are most valuable when considered together: improved interfaces and programming models make translated and legacy physics easier to integrate, while automated translation and performance-portable frameworks expand the range of code that can take advantage of those interfaces. Rather than requiring a single disruptive rewrite, this approach creates a set of mutually reinforcing pathways for incrementally modernizing large, complex HPC applications.
