High Performance Computing Center North
Future of HPC programming: recent developments in Fortran
Fortran is the primordial HPC language. Its handling of multidimensional arrays have ensured that compilers can produce highly efficient code, and inclusion of coarrays in the 2008 standard made it the first major programming language with builtin support for parallelism. The 2008 inclusion of object-oriented modernised the language, bringing it on par with many of its contenders. In 2019 the Fortran standards committee started work on generics (templates). Templates are planned for the 202y release of Fortran, the one after the upcoming 2023 release.
Unlike C++ templates, Fortran templates are type-safe (strong concepts) and does not support meta-programming. This enables some very powerful programming techniques not matched by other high performance languages.
In this workshop we will give a hands-on preview of such techniques. This includes defining your own Fortran integrated domain specific programming languages (IDSLs) while benefitting from Fortran's efficient code generation. We also look at the dichotomy between well-structured code and efficient code, and show some systematic transformations between these. Lastly, we suggest just-in-time compilation and interpreters for user defined Fortran IDSLs, achieving much of the same flexibility as the current integration of Fortran and Python.
Date and time: 24-25 November 2022, 8:30 - 17:00 (Thursday), 8:30 - 14:30 (Friday)
Location: Hybrid. Zoom and at Umeå University. MIT.C.313 (Thursday) and NAT.D.380 (Friday)
Instructors: Magne Haveraaen, Jonas Lindemann
Deadline for registration: 14 November 2022
More information and registration on the course website: https://www.hpc2n.umu.se/events/courses/2022/modern-fortran