A Whirlwind Tour of PSyclone
PSyclone is a configurable domain-specific compiler which supports both code generation and transformation, and is primarily designed for finite difference/volume/element weather and climate models written in Fortran. PSyclone is used by the U.K. Met Office in LFRic, their next generation atmosphere model and is being developed for use in the NEMO ocean model.
PSyclone supports a separation of concerns between the science code and its parallelisation and optimisation on the underlying target architecture, with PSyclone being responsible for the latter. This separation helps code development, as it allows scientists to concentrate on implementing the science, and helps performance portability as PSyclone can tailor the parallelisation and optimisation to the particular software and hardware.
Some key features of PSyclone are 1) its evolutionary approach to performance portability – existing Fortran codes do not have to be completely rewritten, 2) its use of optimisation scripts which are designed to support the HPC expert and 3) its use of a language independent internal representation, allowing code to be output in different representations, enabling parallelisation using approaches not supported in Fortran, such as OpenCL as well as the potential of interoperability between PSyclone and other DSLs.
This presentation will introduce PSyclone, its use in LFRic and NEMO, its current status and future developments.