PARALUTION is an open source library for sparse iterative methods with special focus on multi-core and accelerator technology such as GPUs. The software provides fine-grained parallel solvers and preconditioners which can utilize the modern multi-/many-core devices. Based on C++, it provides a generic and flexible design allowing a seamless integration with other scientific software packages.




Key Features

  • OpenMP and CUDA support
  • No special hardware/library requirement
  • Portable code and results across all hardware
  • Many sparse matrix formats
  • Various iterative solvers and preconditioners
  • Generic and robust design
  • Plug-ins for FORTRAN, OpenFOAM, Deal.II
  • Detailed documentation

Solvers

The iterative solvers are built on the generic interface and can be performed on every backend available on your system.

  • Fixed-Point iteration - Jacobi, Gauss-Seidel, Symmetric Gauss-Seidel, SOR and SSOR
  • Krylov subspace methods - CG, BiCGStab, GMRES
  • Mixed-precision defect-correction scheme
  • Chebyshev iteration
  • Multigrid - Geometric and Algebraic

Due to its design, all iterative solvers can be used as preconditioners. In addition to that, the library provides the following preconditioning schemes based on:

  • Matrix splitting - Jacobi, (Multi-colored) Gauss-Seidel, Symmetric Gauss-Seidel, SOR, SSOR
  • Factorization - ILU(p) (based on levels), ILU(p,q) (power(q)-pattern method) and Multi-elimination ILU (nested/recursive)
  • Approximate Inverse

One of the key features of PARALUTION is that it provides full portability of the code -- e.g. select a solver (CG, GMRES, AMG, etc) run it on your GPU system, turn off the computer, remove the GPU, and start the program again - it will produce the same results but with lower performance on the CPU.

Visit the PARALUTION web site for more details: http://www.paralution.com