Lis (linear algebra library)
Encyclopedia
Lis is a scalable
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
  • NUMA
    Non-Uniform Memory Access
    Non-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 MPI
    Message Passing Interface
    Message 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 OpenMP
    OpenMP
    OpenMP 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 matrix
    Sparse matrix
    In 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 format
    Data structure
    In 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 algebra
    Linear algebra
    Linear 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 solver
    Iterative method
    In 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 problems
    Eigenvalue, eigenvector and eigenspace
    The 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 preconditioner
    Preconditioner
    In 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 accelerated
    Hardware acceleration
    In 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 point
    Floating point
    In 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 C
C (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:
  1. include
  2. include "lis_config.h"
  3. include "lis.h"


int main(int argc, char* argv[])
{
LIS_MATRIX A;
LIS_VECTOR b,x;
LIS_SOLVER solver;
int iter;
double times;

lis_initialize(&argc, &argv);
lis_matrix_create(LIS_COMM_WORLD,&A);
lis_vector_create(LIS_COMM_WORLD,&b);
lis_vector_create(LIS_COMM_WORLD,&x);
lis_solver_create(&solver);
lis_solver_set_optionC(solver);
lis_input(A,b,x,argv[1]);
lis_vector_set_all(1.0,b);
lis_vector_duplicate(A,&x);
lis_solve(A,b,x,solver);
lis_solver_get_iters(solver,&iter);
lis_solver_get_time(solver,×);
printf("iter= %d time = %e\n",iter,times);
lis_solver_destroy(solver);
lis_matrix_destroy(A);
lis_vector_destroy(b);
lis_vector_destroy(x);
lis_finalize;
return 0;
}

System requirements

Installation of Lis requires a C compiler. To use the Fortran interface, a FORTRAN 77 compiler is required. To use the algebraic multigrid
Multigrid 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK