Argonne National Laboratory

Preliminary Implementation of PETSc Using GPUs

TitlePreliminary Implementation of PETSc Using GPUs
Publication TypeConference Paper
Year of Publication2010
AuthorsMinden, V, Smith, BF, Knepley, MG
Conference Name2010 International Wokshop of GPU Solutions in Multiscale Problems in Science and Engineering
Date Published08/2010
Other NumbersANL/MCS0P1787-0810

PETSc is a scalable solver library for the solution of algebraic equations arising from the discretization of partial differential equations and related problems. PETSc is organized as a class library with classes for vectors, sparse and dense matrices, Krylov methods, preconditioners, nonlinear solvers, and differential equation integrators. A new subclass of the vector class has been introduced that performs its operations on NVIDIA GPU processors. In addition, a new sparse matrix subclass that performs matrix-vector products on the GPU was introduced. The Krylov methods, nonlinear solvers, and integrators in PETSc run unchanged in parallel using these new subclasses. These can be used transparently from existing PETSc application codes in C, C++, Fortran, or Python. The implementation is done with the Thrust and Cusp C++ packages from NVIDIA.