Поддержка решателей разреженных СЛАУ обязательна. Основная операционная система — Linux, но кроссплатформенность желательна.

C

  • UMFPACK — набор процедур для решения несимметричных разреженных линейных систем {\(Ax=b\)} с помощью Unsymmetric MultiFrontal method. Написана на ANSI/ISO C, имеет С-, Fortran- и MATLAB-интерфейсы. Описание компиляции на Windows.
  • SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines. The library is written in C and is callable from either C or Fortran. The library routines will perform an LU decomposition with partial pivoting and triangular system solves through forward and back substitution. The LU factorization routines can handle non-square matrices but the triangular solves are performed only for square matrices. Под Windows компилируется с помощью MS Visual Studio и MinGW.
  • TAUCS is a C library of sparse linear solvers. Multithreading using Cilk. Perfect out-of-the-box support for Windows and MacOS X, as well as for Linux and Several Unix variants.
  • PETSc (Portable, Extensible Toolkit for Scientific computation) provides sets of tools for the parallel (as well as serial), numerical solution of PDEs that require solving large-scale, sparse nonlinear systems of equations. PETSc includes nonlinear and linear equation solvers that employ a variety of Newton techniques and Krylov subspace methods. PETSc provides several parallel sparse matrix formats, including compressed row, block compressed row, and block diagonal storage. PETSc is designed to facilitate extensibility. Thus, users can incorporate customized solvers and data structures when using the package. PETSc also provides an interface to several external software packages including BlockSolve95, ESSL, Matlab, ParMeTis, PVODE, and SPAI. PETSc is fully usable from Fortran, C and C++, and runs on most UNIX based-systems. Под Windows работает с помощью Cygwin или виртуальной машины.
  • hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. Работает на UNIX'ах.
  • OpenNL (Open Numerical Library) is a library for solving sparse linear systems, especially designed for the Computer Graphics community. The goal for OpenNL is to be as small as possible, while offering the subset of functionalities required by this application field. The Makefiles of OpenNL can generate a single .c + .h file, very easy to integrate in other projects. The distribution includes an implementation of our Least Squares Conformal Maps parameterization method.
  • MUMPS

C++

  • Eigen — активно развивающаяся библиотека линейной алгебры с собственными решателями разреженных СЛАУ и поддержкой сторонних решателей (утилита spbenchsolver позволяет оценить скорость работы решателей для конкретной системы). Хорошо документирована. Поддерживает, в частности, MS Visual Studio и MinGW.
  • Gmm++ provides some basic types of sparse and dense matrices and vectors. It provides some generic operations on them (copy, addition, multiplication, sub-vector and sub-matrices, solvers). The syntax of Gmm++ is very close to MTL and ITL. The performance of Gmm++ is also close to the one of MTL, sometimes better. Используется в GetFEM++. В Windows компилируется с помощью MinGW и MSys.
  • hypre

Fortran

  • MUMPS (MUltifrontal Massively Parallel sparse direct Solver) is a software application for the solution of large sparse systems of linear algebraic equations on distributed memory parallel computers. The software implements the multifrontal method, which is a version of Gaussian elimination for large sparse systems of equations, especially those arising from the finite element method. It is written in Fortran 90 with parallelism by MPI and it uses BLAS and ScaLAPACK kernels for dense matrix computations. C interface is available. Работает на большинстве UNIX'ов и Windows с помощью WinMUMPS.
  • UMFPACK
  • SuperLU
  • PETSc
  • hypre

Python

  • Pysparse is a fast sparse matrix library for Python. It provides several sparse matrix storage formats and conversion methods. It also implements a number of iterative solvers, preconditioners, and interfaces to efficient factorization packages. Both low-level and high-level interfaces are available, each with different strengths. The only requirement to install and use Pysparse is Numpy.
  • petsc4py are Python bindings for PETSc.

Ссылки



Комментарии

comments powered by Disqus