Lis (Library of Iterative Solvers for linear systems, pronounced
is is a
scalable parallel software library for solving
discretized
In applied mathematics, discretization is the process of transferring continuous functions, models, variables, and equations into discrete counterparts. This process is usually carried out as a first step toward making them suitable for numerical ...
linear equation
In mathematics, a linear equation is an equation that may be put in the form
a_1x_1+\ldots+a_nx_n+b=0, where x_1,\ldots,x_n are the variables (or unknowns), and b,a_1,\ldots,a_n are the coefficients, which are often real numbers. The coeffici ...
s and
eigenvalue problems that mainly arise in the
numerical solution of
partial differential equation
In mathematics, a partial differential equation (PDE) is an equation which imposes relations between the various partial derivatives of a multivariable function.
The function is often thought of as an "unknown" to be solved for, similarly to ...
s by using
iterative method
In computational mathematics, an iterative method is a mathematical procedure that uses an initial value to generate a sequence of improving approximate solutions for a class of problems, in which the ''n''-th approximation is derived from the pre ...
s. Although it is designed for parallel computers, the library can be used without being conscious of
parallel processing.
Features
Lis provides facilities for:
*
Automatic program configuration
*
NUMA aware hybrid implementation with
MPI
MPI or Mpi may refer to:
Science and technology Biology and medicine
* Magnetic particle imaging, an emerging non-invasive tomographic technique
* Myocardial perfusion imaging, a nuclear medicine procedure that illustrates the function of the hear ...
and
OpenMP
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating sy ...
* Exchangeable dense and
sparse matrix
In numerical analysis and scientific computing, a sparse matrix or sparse array is a matrix in which most of the elements are zero. There is no strict definition regarding the proportion of zero-value elements for a matrix to qualify as sparse b ...
storage formats
* Basic
linear algebra
Linear algebra is the branch of mathematics concerning linear equations such as:
:a_1x_1+\cdots +a_nx_n=b,
linear maps such as:
:(x_1, \ldots, x_n) \mapsto a_1x_1+\cdots +a_nx_n,
and their representations in vector spaces and through matric ...
operations for dense and sparse matrices
* Parallel
iterative method
In computational mathematics, an iterative method is a mathematical procedure that uses an initial value to generate a sequence of improving approximate solutions for a class of problems, in which the ''n''-th approximation is derived from the pre ...
s for
linear equation
In mathematics, a linear equation is an equation that may be put in the form
a_1x_1+\ldots+a_nx_n+b=0, where x_1,\ldots,x_n are the variables (or unknowns), and b,a_1,\ldots,a_n are the coefficients, which are often real numbers. The coeffici ...
s and
eigenvalue problems
* Parallel
preconditioners for iterative methods
*
Quadruple precision
In computing, quadruple precision (or quad precision) is a binary floating point–based computer number format that occupies 16 bytes (128 bits) with precision at least twice the 53-bit double precision.
This 128-bit quadruple precision is des ...
floating point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be r ...
operations
*
Performance analysis
*
Command-line interface to solvers and benchmarks
Example
A
C program to solve the linear equation
is written as follows:
#include
#include "lis_config.h"
#include "lis.h"
LIS_INT main(LIS_INT argc, char* argv[])
System requirements
The installation of Lis requires a C compiler. The Fortran interface requires a Fortran compiler, and the Multigrid method, algebraic multigrid preconditioner requires a Fortran 90 compiler.
For parallel computing environments, an OpenMP or MPI library is required. Both the
Matrix Market exchange formats, Matrix Market and
Harwell-Boeing formats are supported to import and export user data.
Packages that use Lis
*
Gerris
*
OpenModelica
OpenGeoSysSICOPOLISSTOMPDiabloKivaNotusopenCFSnumgeofreeCappuccinoAndromeda
See also
*
List of numerical libraries
This is a list of numerical libraries, which are libraries used in software development for performing numerical calculations. It is not a complete listing but is instead a list of numerical libraries with articles on Wikipedia, with few exceptio ...
*
Conjugate gradient method
In mathematics, the conjugate gradient method is an algorithm for the numerical solution of particular systems of linear equations, namely those whose matrix is positive-definite. The conjugate gradient method is often implemented as an iter ...
*
Biconjugate gradient stabilized method (BiCGSTAB)
*
Generalized minimal residual method (GMRES)
*
Eigenvalue algorithm
*
Lanczos algorithm
*
Arnoldi iteration
*
Krylov subspace
*
Multigrid method In numerical analysis, a multigrid method (MG method) is an algorithm for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in problems exhi ...
References
External links
*
Development repository on GitHub*
ttp://www.netlib.org/linalg/lis Netlib repository(Courtesy of
Netlib Project)
Fedora packages(Courtesy of
Fedora Project
The Fedora Project is an independent project to co-ordinate the development of Fedora Linux, a Linux-based operating system, operating with the vision of "''a world where everyone benefits from free and open source software built by inclusive, w ...
)
Gentoo packages(Courtesy of
Gentoo Linux Project)
AUR packages(Courtesy of
Arch Linux Community)
FreeBSD packages(Courtesy of
FreeBSD Project)
Packages for macOS (Homebrew)(Courtesy of
Homebrew Project)
Packages for macOS (MacPorts)(Courtesy of
MacPorts Project)
Packages for Windows(Courtesy of WHPC Project)
Packages for Mingw-w64(Courtesy of
Mingw-w64 Project)
Spack packages(Courtesy of
Lawrence Livermore National Laboratory
Lawrence Livermore National Laboratory (LLNL) is a federal research facility in Livermore, California, United States. The lab was originally established as the University of California Radiation Laboratory, Livermore Branch in 1952 in response ...
)
{{Numerical linear algebra
Numerical libraries
Numerical linear algebra
Scientific simulation software
C (programming language) libraries
Fortran libraries
Free simulation software
Free software programmed in C
Free software programmed in Fortran