Back

Minisymposium

MS5D - Modern Fortran: Powering Computational Science and Engineering in High-Performance Computing

Fully booked
Wednesday, June 5, 2024
9:00
-
11:00
CEST
HG E 1.2

Replay

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Session Chair

Description

Fortran, originating in the 1950s, is a compiled imperative programming language renowned for numeric and scientific computation. Despite seven decades of technological evolution and competition from languages like C++, Python, and Julia, Fortran remains predominant in computational sciences. Its efficiency-focused design and readability cater to scientists and engineers. Fortran's robust support for mathematical libraries and tools contributes to its enduring popularity, extending its relevance to contemporary challenges in data analysis, AI, and machine learning. The language excels in parallelism and distributed computing, seamlessly integrating with modern supercomputers and clusters. Fortran's compatibility with GPUs positions it for GPU-accelerated computing, vital in scientific workloads. As of August 2021, it ranks among the top fifteen programming languages. Modern Fortran, encompassing standards from 2003 to 2023, introduces features like object-oriented and parallel programming, enhancing interoperability with C. This minisymposium aims to explore the evolution and relevance of Modern Fortran, with examples showcasing its integration with AI techniques to accelerate time-to-science.

Presentations

9:00
-
9:30
CEST
MPI and Modern Fortran: Better Together

This talk will describe the right way to use MPI in Fortran. The MPI Fortran 2008 bindings offer type safety and are the only standard-compliant method for using MPI in Fortran. I will show how and why to use MPI_F08. One challenge is imperfect implementations of MPI Fortran support. I will show how this is solved using Vapaa, a standalone implementation of MPI_F08. I will also show how to make Fortran code more efficient with wrappers that eliminate the need for redundanent arguments, i.e. count and type can be inferred from Fortran arrays. Finally, I will talk about the current activities of the MPI Forum as they relate to Fortran.

Jeff Hammond (NVIDIA Inc.)
With Thorsten Kurth (NVIDIA Inc.)
9:30
-
10:00
CEST
Parallel Runtime Interface for Fortran (PRIF): A Compiler/Runtime-Library Agnostic Interface to Support the Parallel Features of Fortran 2023

Fortran 2023 natively supports single-program, multiple-data parallel programming with a partitioned global address space and collective subroutines, synchronization, atomics, locks, and more. Each of the four actively developed compilers that support Fortran’s parallel features uses its own parallel runtime library. The Parallel Runtime Interface for Fortran (PRIF) proposes to liberate compiler development from reliance on a single runtime and empower runtime developers to support more than one compiler. PRIF also aims to broaden the community of runtime developers to include the Fortran compiler’s users: Fortran programmers. PRIF does so by specifying the interface in Fortran, which makes it attractive to write the parallel runtime library in Fortran. Additionally, PRIF has been designed to be portable across both shared and distributed memory, varying architectures, as well as different operating systems. In this talk, I will describe the motivation behind the development of PRIF, describe the design of the interface itself and the benefits of adopting it. I will also provide a brief status report on the first PRIF implementation: Caffeine.

Katherine Rasmussen and Damian Rouson (Lawrence Berkeley National Laboratory)
With Thorsten Kurth (NVIDIA Inc.)
10:00
-
10:30
CEST
Fortran's Role and Evolution in Earth System Prediction: Integrating Machine Learning with Traditional Modeling Techniques

Numerical weather, ocean, and climate (together, Earth system) prediction has been a humanity’s essential activity toward minimizing the loss of human lives and damage to infrastructure. It has also heavily relied on Fortran since its inception in the late 1950s. Fast forward to 2024, virtually all weather, ocean, and climate models that are used for critical decision making by governments and businesses are implemented in Fortran, most typically a mix of legacy and modern dialects. Historically, these models and their developer communities have gone through several paradigm shifts, for example the introduction of vector supercomputers, then distributed-memory clusters, and finally, specialized hardware accelerators such as GPUs. At this moment, the looming paradigm shift, and likely the largest one to date, is the adoption of machine learning to emulate numerical models in part or in their entirety. Having spent a number of years deep in the Earth system model development world, Fortran advocacy and education, and collaborative research across academia, government, and industry sectors, I will share my perspectives on the key challenges that the Earth system enterprise faces in the context of software implementation, hardware architectures, and emerging machine learning techniques.

Milan Curcic (University of Miami)
With Thorsten Kurth (NVIDIA Inc.)
10:30
-
11:00
CEST
Type-Safe Generic Programming in Fortran

When the Fortran language committee first collected requests for new language features for what has now become the Fortran 2023 standard, support for generic programming emerged as a top priority. However, due to the anticipated complexity, a dedicated committee subgroup was formed, and implementation of generic programming was purposely spread across two language release cycles -- aiming for what is internally referred to as F202Y. In this talk, I will begin with a brief overview of existing Fortran features that support generic programming and then proceed to a detailed examination of the plans for F202Y. This discussion will include motivating use cases, type-safe design goals, (probable) syntax, and a few simple examples. I conclude with a disussion on the likely limitations of generic programming in F202Y and my expectations for extended capabilities in the subsequent release, F203X.

Thomas Clune (NASA)
With Thorsten Kurth (NVIDIA Inc.)