Lis (linear algebra library)

{{Short description|Parallel software library for linear algebra}}

{{Infobox software

| name = Lis

| title =

| logo = Irises screen 1.jpg

| logo size = 160px

| logo caption =

| screenshot =

| caption =

| collapsible =

| author =

| developer =

| released =

| discontinued =

| latest release version = 2.1.7

| latest release date = {{Start date|2024|12|17}}

| latest preview version =

| latest preview date =

| language = C, Fortran

| operating system = Cross-platform

| platform =

| size =

| genre = Software library

| license = New BSD License

| website = [https://www.ssisc.org/lis/index.en.html www.ssisc.org/lis/]

}}

Lis (Library of Iterative Solvers for linear systems; pronounced lis]) is a scalable parallel software library to solve discretized linear equations and eigenvalue problems that mainly arise from the numerical solution of partial differential equations using iterative methods.{{Cite book

|author=Akira Nishida

|year=2010

|chapter=Experience in Developing an Open Source Scalable Software Infrastructure in Japan

|title=Computational Science and Its Applications – ICCSA 2010

|volume=6017

|series=Lecture Notes in Computer Science 6017

|pages=87–98

|publisher=Springer

|doi=10.1007/978-3-642-12165-4_36

|isbn=978-3-642-12164-7

}}{{Cite book

|author1=Hisashi Kotakemori |author2=Hidehiko Hasegawa |author3=Tamito Kajiyama |author4=Akira Nukada |author5=Reiji Suda |author6=Akira Nishida |name-list-style=amp |year=2008

|chapter=Performance Evaluation of Parallel Sparse Matrix-Vector Products on SGI Altix 3700

|title=OpenMP Shared Memory Parallel Programming

|series=Lecture Notes in Computer Science 4315

|pages=153–163

|publisher=Springer

|doi=10.1007/978-3-540-68555-5_13

|isbn=978-3-540-68554-8

}}{{Cite book

|author1=Hisashi Kotakemori |author2=Hidehiko Hasegawa |author3=Akira Nishida |name-list-style=amp |year=2005

|chapter=Performance Evaluation of a Parallel Iterative Method Library using OpenMP

|title=Proceedings of the 8th International Conference on High Performance Computing in Asia Pacific Region (HPC Asia 2005)

|pages=432–436

|publisher=IEEE

|doi=10.1109/HPCASIA.2005.74

|isbn=0-7695-2486-9

|s2cid=6402585 }} Although it is designed for parallel computers, the library can be used without being conscious of parallel processing.

Features

Lis provides facilities for:

Example

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

  1. include
  2. include "lis_config.h"
  3. 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

Installing Lis requires a C compiler. If you wish to use the Fortran interface, a Fortran compiler is needed, and the algebraic multigrid preconditioner requires a Fortran 90 compiler.{{Cite book

|author1=Akihiro Fujii |author2=Akira Nishida |author3=Yoshio Oyanagi |name-list-style=amp |year=2005

|chapter=Evaluation of Parallel Aggregate Creation Orders : Smoothed Aggregation Algebraic Multigrid Method

|title=High Performance Computational Science and Engineering

|pages=99–122

|publisher=Springer

|doi=10.1007/0-387-24049-7_6

|isbn=1-4419-3684-X

|s2cid=118053459 }}

For parallel computing environments, an OpenMP or MPI library is necessary. Lis supports both the Matrix Market and Harwell-Boeing formats for importing and exporting user data.

Packages that use Lis

  • Gerris
  • OpenModelica
  • [http://www.opengeosys.org/ OpenGeoSys]
  • [http://www.sicopolis.net/ SICOPOLIS]
  • [http://stomp.pnnl.gov/ STOMP]
  • [http://dl.acm.org/citation.cfm?id=2634291 Diablo]
  • [https://kiva.readthedocs.io/en/latest/ Kiva]
  • [https://notus-cfd.org/ Notus]
  • [https://www.hamady.org/solis.html Solis]
  • [https://web.tecgraf.puc-rio.br/gema/ GeMA]
  • [https://www.opencfs.org/ openCFS]
  • [https://www.numgeo.de/ numgeo]
  • [https://github.com/nikola-m/freeCappuccino freeCappuccino]
  • [https://github.com/WildSmilodon/Andromeda Andromeda]
  • [https://palma-ice.github.io/yelmo-docs/ Yelmo]

See also

References

{{reflist}}