SHYFEM is an open source program released under GPL license, it is written in Fortran and it is able to run on different architectures from workstation using OpenMP shared memory parallelization to HPC clusters using Message Passing Interface. The repository hosting the consortium source code is https://github.com/shyfem-cm/shyfem. Before merging into the official repository, the developments described in this document are available in the branches of a forked repository stored at https://github.com/CeliaLaurent/shyfem.
The details of the developments done to insert PETSc into the source code of SHYFEM will be presented, together with Profilings and Benchmark analysis of the software before and after the implementations, an analysis of the MPI partitioning and GPU tests results. The implementations made during the GPU Hackathon of Helmholtz, 7 & 14-16th of september 2020 are as well presented; they allow to use the NVIDIA AmgX solver [04] on the GPU, employing PETSc as a frontend through the AmgXWrapper [05]. Aside from the optimization of the calls to the PETSc solver some performance issues were identified and solutions were proposed. Finally, a modern compilation setup based on the Meson build system [06] was implemented as an alternative to the original Makefiles and provides a set of integration tests on both the CPU and GPU.