In this paper, we present the VOLNA-OP2
tsunami model and implementation; a finite-volume nonlinear
shallow-water equation (NSWE) solver built on
the OP2 domain-specific language (DSL) for unstructured
mesh computations. VOLNA-OP2 is unique among tsunami
solvers in its support for several high-performance computing
platforms: central processing units (CPUs), the Intel
Xeon Phi, and graphics processing units (GPUs). This is
achieved in a way that the scientific code is kept separate
from various parallel implementations, enabling easy maintainability.
It has already been used in production for several
years; here we discuss how it can be integrated into various
workflows, such as a statistical emulator. The scalability of
the code is demonstrated on three supercomputers, built with
classical Xeon CPUs, the Intel Xeon Phi, and NVIDIA P100
GPUs. VOLNA-OP2 shows an ability to deliver productivity
as well as performance and portability to its users across a
number of platforms