In this video from the 2017 HPC Advisory Council Stanford Conference, Damian Rouson and Alessandro Fanfarillo present a Tutorial entitled “Towards Exascale Computing with Fortran 2015.”
“The Fortran 2008 standard empowers developers to write parallel programs without the source code directly referencing procedures not defined in the Fortran standard (e.g., MPI) and without embedding compiler directives (e.g., OpenMP). The standard accomplishes this by defining a parallel programming model in the form of collective memory allocations in a global address space (coarrays), a straightforward syntax for accessing data in remote processes, and loop-level concurrency. This tutorial will present several features that the draft Fortran 2015 standard introduces to meet challenges that are expected to dominate massively parallel programming in the coming exascale era. The expected exascale challenges include higher hardware- and software-failure rates, increasing hardware heterogeneity, a proliferation of execution units, and deeper memory hierarchies. After a high-level overview of the new features and how they address these challenges, we will show performance comparisons between scientific kernels written in Fortran 2008 and 2015. All presented codes will be available as open-source and will compile with the open-source GNU Fortran compiler.”
Our readers interested in evaluating the codes may compile them inside a Linux virtual machine that is also open-source and available for download:
- Information technology — Programming languages — Fortran. This document specifies the form and establishes the interpretation of programs expressed in the base Fortran language. The purpose of this document is to promote portability, reliability, maintainability, and efficient execution of Fortran programs for use on a variety of computing systems.
- The software that Sourcery Institute develops and employs in our projects and classes are open-source and available in a Linux virtual machine (VM) that boots in the open-source VirtualBox virtualization package.