We introduce cuPentBatch-our own pentadiagonal solver for NVIDIA GPUs. The development of cuPentBatch has been motivated by applications involving numerical solutions of parabolic partial differential equations, which we describe. Our solver is written with batch processing in mind (as necessitated by parameter studies of various physical models). In particular, our solver is directed at those problems where only the right-hand side of the matrix changes as the batch solutions are generated. As such, we demonstrate that cuPentBatch outperforms the NVIDIA standard pentadiagonal batch solver gpsvInterleavedBatch for the class of physically-relevant computational problems encountered herein.Program Files doi:http://dx.doi.org/10.17632/ccrp2pyyyj.1 Licensing Provisions: Apache License 2.0 Programming Languages: C, C++, CUDA Nature of Problem: cuPentBatch has been developed to solve batches of pentadiagonal systems in parallel. Pentadiagonal systems appear commonly in the numerical solution of 4th order derivatives and in 4th order accurate 2nd order derivatives. The need for batch solving these is apparent when preforming parameter studies or when solving 2D/3D systems with inversion methods such as ADI. Solution Method: cuPentBatch implements an LU factorisation for a banded pentadiagonal matrix on a GPU, solving batches of them in parallel across threads. This leads to greatly improved performance over serial and OpenMP implementations, also improves on current state of the art gpsvInterleavedBatch which is part of the cuSPRASE library in CUDA.
Computer Physics Communications
- Pub Date:
- August 2019
- Cahn-Hilliard equation;
- Matrix inversion;
- Physics - Computational Physics