Webinar

Please, No More Loops (Than Necessary): New Patterns in Fortran 2023

Series: HPC Best Practices Webinars

Loops are seemingly ubiquitous in programming and yet writing loops provides one example of a common practice stuck in a pattern as old as high-level programming languages themselves. This webinar will provide an overview of the features introduced in Fortran standards from Fortran 90 to 2023. We will venture into often-unvisited nooks and crannies and traverse equally unvisited expansive pastures. Weaving feature groups together by the approaches they enable, the talk will emphasize array, object-oriented, parallel, module, and functional programming patterns and paradigms. The talk demonstrate the utility of the described features in open-source packages developed by Berkeley Lab’s Computer Languages and System Software (CLaSS) Group and our collaborators. The presentation will emphasize expressiveness and conciseness, showing how our Julienne correctness-checking framework supports writing assertions and unit tests using natural-language idioms; how we write textbook-form partial differential equations (PDE) in the Matcha T-cell motility simulator; and how we concisely capture advanced algorithms for training neural networks in the Fiats deep learning library. The talk will include a brief update on the status of the compiler and runtime-library support for these features in the open-source LLVM flang compiler and the Caffeine parallel runtime library developed by CLaSS and our collaborators. The talk will conclude with a description of the planned Fortran 2028 support for generic programming via type-safe templates and the powerful ramifications of this technology in our development a formally verifiable, domain-specific language embedded in Fortran 2028 via a type system being developed for the MOLE PDE solver library. One recurring theme will be the ability to write thousands of lines of code manipulating large collections of data with few or no loops.

Presenter

Presenter Bio

Damian Rouson is a Senior Scientist and the Group Lead for the Computer Languages and Systems Software (CLaSS) Group at Berkeley Lab, where he researches programming patterns and paradigms for computational science, He co-develops open-source software, including the Caffeine parallel runtime library, the Fiats deep learning library, and the Julienne correctness-checking framework. He was the lead author on the book Scientific Software: The Object-Oriented Way (Cambridge University Press, 2011) and has taught software engineering for science and engineering at Stanford University and the University of Cyprus and related short courses at conferences, companies, and government laboratories. He won a 2021-‘22 Better Scientific Software Fellowship and Berkeley Lab’s 2025 Developer of the Year award. He holds a B.S. from Howard University and M.S. and Ph.D. degrees Stanford University, all in mechanical engineering.