GPU Solutions to Multi-scale Problems in Science and Engineering

Part of the series Lecture Notes in Earth System Sciences pp 131-140


Preliminary Implementation of PETSc Using GPUs

  • Victor MindenAffiliated withSchool of Engineering, Tufts University Email author 
  • , Barry SmithAffiliated withMathematics and Computer Science Division, Argonne National Laboratory
  • , Matthew G. KnepleyAffiliated withComputation Institute, University of Chicago

* Final gross prices may vary according to local VAT.

Get Access


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, 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.