Paralution

PARALUTION is library for sparse iterative methods with special focus on multi-core and accelerator technology such as GPUs, it comes with dual license model - open-source GPLv3 and commercial. 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