Parallel Programming in Modern Fortran
Event Type
Tutorial
Advanced
Intermediate
Programming Systems
Location250-B
DescriptionFortran remains widely used in HPC, but most users describe their programming skills as self-taught, and most continue to use older versions of the language. The advent of an open-source compiler and runtime library supporting many of the parallel programming features of Fortran 2015 opens up the opportunity for widespread evaluation of these new features by the HPC community. This tutorial teaches single-program, multiple-data (SPMD) programming with Fortran 2008/2015 coarrays. We also introduce Fortran’s loop concurrency and pure procedure features and demonstrate their use in asynchronous expression evaluation for partial differential equation (PDE) solvers. We incorporate other language features, including object-oriented (OO) programming, when they support our chief aim of teaching parallel programming. In particular, we demonstrate OO design patterns that enable hybrid CPU/GPU calculations on sparse matrices in the Parallel Sparse Basic Linear Algebra Subroutines (PSBLAS) library. We will also cover the parallel collective subroutines that have been proposed for Fortran 2015 and are supported by the GNU and Cray compilers. Attendees will use the GCC 5.3 Fortran compiler and the OpenCoarrays library[1] to compile parallel executables inside virtual machines. Those interested in GPU computing will have access to Oak Ridge’s Cray supercomputer Titan.
[1] http://www.opencoarrays.org
[1] http://www.opencoarrays.org
Links












