PSyclone User Guide
PSyclone is a source-to-source Fortran compiler designed to programmatically optimise, parallelise and instrument HPC applications via user-provided transformation scripts.
By encapsulating the performance-portability aspects (e.g. whether to parallelise with OpenMP or OpenACC), these scripts enable a separation of concerns between the scientific implementation and the optimisation choices. This allows each aspect to be explored and developed largely independently. Additionally, PSyclone supports the development of kernel-based, Fortran-embedded DSLs following the PSyKAl model developed in the GungHo project.
PSyclone is currently used to support the LFRic mixed finite-element PSyKAl DSL for the UK MetOffice’s next generation modelling system and the GOcean finite-difference PSyKAl DSL for a prototype 2D ocean modelling system. It is also used to insert GPU offloading directives into existing directly-addressed MPI applications such as the NEMO ocean model.
More detailed implementation information is available in the Developer Guide and the Reference Guide.