Joerg Henrichs1, Rupert Ford2, Andrew Porter2
1Bureau of Meteorology
2The Hartree Centre, STFC Daresbury Laboratory
An ongoing problem in development of HPC codes is the different skill set required for developing the science versus optimizing and parallelizing the application, especially when taking different and future hardware architectures into account. Typically, the resulting source code is a tightly integrated mixture of code related to science, optimization and parallelization. This makes it hard to develop and maintain HPC codes.
The UK Met Office decided to tackle this problem by using PSyclone – a Fortran-embedded domain-specific language/compiler developed by the Hartree Centre. It considers three layers in an application: a high level algorithm layer, which determines the science, a bottom which contains the implementation of kernels that works on a single array element, and a middle layer which connects the two layers. The middle layer contains the actual loop structures and parallelization related code (e.g. halo exchanges or OpenMP directives).
With PSyclone a natural scientist is able to implement the science and the kernel layer focusing on undistributed arrays. PSyclone will automatically create the middle layer, which contains all loops and parallelization related code. A computational scientist at the same time can write PSyclone transforms to further optimize the code – e.g. by reducing the frequency of halo exchanges, or implementing loop tiling or other high level code changes. The end result is a code base that is easy to understand for the natural scientist, but with the help of PSyclone transforms automatically converted into an optimized, parallelized HPC application.
The presentation will give an introduction to PSyclone, and presents some performance results obtained when converting a Tsunami model from plain Fortran to PSyclone.
Joerg Henrichs is the Computation Science Manager of the Bureau of Meteorology’s Scientific Computing Services group. His team is responsible for optimization and parallelization of weather and climate codes that are running on the Bureau’s Cray Supercomputer.