Lis (linear algebra library)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Lis (linear algebra library)
Irises screen 1.jpg
Stable release 1.4.49 / July 25, 2014 (2014-07-25)
Development status Active
Operating system Cross-platform
Available in C, Fortran
Type Software library
License New BSD License
Website www.ssisc.org/lis/

Lis (Library of Iterative Solvers for linear systems, pronounced [lis]) is a scalable parallel library for solving linear equations and eigenvalue problems that arise in the numerical solution of partial differential equations using iterative methods.[1][2][3]

Features[edit]

Lis provides facilities for:

Example[edit]

A C program to solve the linear equation Ax=b is written as follows:

#include <stdio.h>
#include "lis_config.h"
#include "lis.h"
 
LIS_INT main(LIS_INT argc, char* argv[])
{
  LIS_MATRIX  A;
  LIS_VECTOR  b, x;
  LIS_SOLVER  solver;
  LIS_INT     iter;
  double      time;
 
  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_input_matrix(A, argv[1]);
  lis_input_vector(b, argv[2]);
  lis_vector_duplicate(A, &x);
 
  lis_solver_create(&solver);
  lis_solver_set_optionC(solver);
  lis_solve(A, b, x, solver);
 
  lis_solver_get_iter(solver, &iter);
  lis_solver_get_time(solver, &time);
  printf("number of iterations = %d\n", iter);
  printf("elapsed time = %e\n", time);
 
  lis_output_vector(x, LIS_FMT_MM, argv[3]);
 
  lis_solver_destroy(solver);
  lis_matrix_destroy(A);
  lis_vector_destroy(b);
  lis_vector_destroy(x);
 
  lis_finalize();
 
  return 0;
}

System requirements[edit]

The installation of Lis requires a C compiler. The Fortran interface requires a Fortran compiler, and the algebraic multigrid preconditioner requires a Fortran 90 compiler.[4] For parallel computing environments, an OpenMP or MPI-1 library is used. Both the Harwell-Boeing and Matrix Market formats are supported to import and export user data.

Packages that use Lis[edit]

References[edit]

  1. ^ Akira Nishida (2010). "Experience in Developing an Open Source Scalable Software Infrastructure in Japan". Computational Science and Its Applications – ICCSA 2010. Lecture Notes in Computer Science 6017. Springer. pp. 87–98. doi:10.1007/978-3-642-12165-4_36. ISBN 3-642-12164-0. 
  2. ^ Hisashi Kotakemori, Hidehiko Hasegawa, Tamito Kajiyama, Akira Nukada, Reiji Suda, and Akira Nishida (2008). "Performance Evaluation of Parallel Sparse Matrix-Vector Products on SGI Altix 3700". OpenMP Shared Memory Parallel Programming. Lecture Notes in Computer Science 4315. Springer. pp. 153–163. doi:10.1007/978-3-540-68555-5_13. ISBN 3-540-68554-5. 
  3. ^ Hisashi Kotakemori, Hidehiko Hasegawa, and Akira Nishida (2005). "Performance Evaluation of a Parallel Iterative Method Library using OpenMP". Proceedings of the 8th International Conference on High Performance Computing in Asia Pacific Region (HPC Asia 2005). Beijing: IEEE. pp. 432–436. doi:10.1109/HPCASIA.2005.74. ISBN 0-7695-2486-9. 
  4. ^ Akihiro Fujii, Akira Nishida, and Yoshio Oyanagi (2005). "Evaluation of Parallel Aggregate Creation Orders : Smoothed Aggregation Algebraic Multigrid Method". High Performance Computational Science and Engineering. Springer. pp. 99–122. doi:10.1007/0-387-24049-7_6. ISBN 1-4419-3684-X. 

See also[edit]

External links[edit]