This thesis aims to integrate the performance portability library Kokkos, into ALPACA, a finite-volume,
multiresolution, multi-phase CFD code framework. The primary motivation behind this work is to make
ALPACA hardware-agnostic and to enable its execution on different architectures. The thesis discusses
the implementation aspects in detail, including the data structure and algorithmic changes and the issues
faced during the porting process. The implementation is tested against the original ALPACA code
to ensure algorithmic correctness. The performance of CUDA, OpenMP and the serial backend is analyzed
in detail. A significant performance improvement is observed, especially in the case of the CUDA
backend. The performance of the OpenMP backend is comparable to the original ALPACA code with
MPI implementation. The serial backend is observed to be slower than the original ALPACA code. Also,
various experimental optimizations are explored to identify possible avenues of parallelism. The thesis
concludes with a discussion of future work and the potential improvements that can be made to the
current implementation. Overall, the thesis lays the building block for a performance portable version of
ALPACA using Kokkos.
«
This thesis aims to integrate the performance portability library Kokkos, into ALPACA, a finite-volume,
multiresolution, multi-phase CFD code framework. The primary motivation behind this work is to make
ALPACA hardware-agnostic and to enable its execution on different architectures. The thesis discusses
the implementation aspects in detail, including the data structure and algorithmic changes and the issues
faced during the porting process. The implementation is tested against the original...
»