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.
- Introduction
- Getting Going
- The psyclone command
- Running
- Basic Use
- Choosing the API
- File output
- Algorithm files with no invokes
- Kernel search directory
- Transformation script
- Fortran line length
- Distributed memory
- Automatic Profiling Instrumentation
- Outputting of Transformed Kernels
- Fortran INCLUDE Files and Modules
- Backend Options
- C Pre-processor #include Files
- Tutorial
- Examples
- Libraries
- System-specific Set-up for Users