Lis (linear algebra library)
Encyclopedia
Lis is a scalable
parallel
library for solving systems of linear equations and standard eigenvalue problems with real sparse matrices using iterative solvers.
program to solve a system of linear equations Ax=b is written as follows:
preconditioner, a Fortran 90 compiler is required. OpenMP and MPI-1 are used in parallel computing environments. Both the Harwell-Boeing
and Matrix Market
formats are supported for the import and export of user data.
Scalability
In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...
parallel
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
library for solving systems of linear equations and standard eigenvalue problems with real sparse matrices using iterative solvers.
Features
Lis provides facilities for:- Automatic makefile generation
- NUMANon-Uniform Memory AccessNon-Uniform Memory Access is a computer memory design used in Multiprocessing, where the memory access time depends on the memory location relative to a processor...
aware hybrid implementation with MPIMessage Passing InterfaceMessage Passing Interface is a standardized and portable message-passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers...
and OpenMPOpenMPOpenMP is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on most processor architectures and operating systems, including Linux, Unix, AIX, Solaris, Mac OS X, and Microsoft Windows platforms... - Exchangeable dense and sparse matrixSparse matrixIn the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros . The term itself was coined by Harry M. Markowitz....
storage formatData structureIn computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...
s - Basic linear algebraLinear algebraLinear algebra is a branch of mathematics that studies vector spaces, also called linear spaces, along with linear functions that input one vector and output another. Such functions are called linear maps and can be represented by matrices if a basis is given. Thus matrix theory is often...
operations for dense and sparse matrices - Parallel iterative solverIterative methodIn computational mathematics, an iterative method is a mathematical procedure that generates a sequence of improving approximate solutions for a class of problems. A specific implementation of an iterative method, including the termination criteria, is an algorithm of the iterative method...
s for systems of linear equations and standard eigenvalue problemsEigenvalue, eigenvector and eigenspaceThe eigenvectors of a square matrix are the non-zero vectors that, after being multiplied by the matrix, remain parallel to the original vector. For each eigenvector, the corresponding eigenvalue is the factor by which the eigenvector is scaled when multiplied by the matrix... - Parallel preconditionerPreconditionerIn mathematics, preconditioning is a procedure of an application of a transformation, called the preconditioner, that conditions a given problem into a form that is more suitable for numerical solution. Preconditioning is typically related to reducing a condition number of the problem...
s for iterative solvers - Hardware acceleratedHardware accelerationIn computing, Hardware acceleration is the use of computer hardware to perform some function faster than is possible in software running on the general-purpose CPU...
internal quadruple (double-double) precision floating pointFloating pointIn computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
operations - Performance analysis
Example
A CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
program to solve a system of linear equations Ax=b is written as follows:
System requirements
Installation of Lis requires a C compiler. To use the Fortran interface, a FORTRAN 77 compiler is required. To use the algebraic multigridMultigrid method
Multigrid methods in numerical analysis are a group of algorithms 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 exhibiting multiple scales of behavior...
preconditioner, a Fortran 90 compiler is required. OpenMP and MPI-1 are used in parallel computing environments. Both the Harwell-Boeing
Harwell-Boeing file format
The Harwell-Boeing file format is a file format designed to store information used to describe sparse matrices.- External links :* a detailed description of the HB format...
and Matrix Market
Matrix Market exchange formats
The Matrix Market exchange formats are a set of human readable, ASCII-based file formats designed to facilitate the exchange of matrix data. The file formats were designed and adopted for the Matrix Market, a NIST repository for test data for use in comparative studies of algorithms for numerical...
formats are supported for the import and export of user data.
External links
- Official Lis web page
- Jack Dongarra's Linear Algebra Software Page
- RPM resource (Courtesy of Fedora ProjectFedora ProjectThe Fedora Project is an endeavor sponsored by Red Hat to co-ordinate the development of the Fedora operating system. Founded on September 2003 as a result of a merger between the Red Hat Linux and old Fedora Linux projects...
)