line
S O F T W A R E
line


itsol logo ITSOL a library of (sequential) iterative solvers. version 2 Version 2 released. [11/16/2010]
ITSOL can be viewed as an extension of the ITSOL module in the SPARSKIT package. It is written in C and aims at providing additional preconditioners for solving general sparse linear systems of equations. Preconditioners so far in this package include (1) ILUK (ILU preconditioner with level of fill) (2) ILUT (ILU preconditioner with threshold) (3) ILUC (Crout version of ILUT) (4) VBILUK (variable block preconditioner with level of fill - with automatic block detection) (5) VBILUT (variable block preconditioner with threshold - with automatic block detection) (6) ARMS (Algebraic Recursive Multilevel Solvers -- includes actually several methods - In particular the standard ARMS and the ddPQ version which uses nonsymmetric permutations).
ZITSOL (NEW!) a complex version of some of the methods in ITSOL is also available.
Version 2 of ITSOL was posted on Nov. 16, 2010. ZITSOL remains to be updated accordingly.
parms logo pARMS version 3.2 Version 3.2 released. [11/16/2010]
A portable library of distributed-memory sparse iterative solvers. Version 3.2 posted.
Note: PSPARSLIB [a FORTRAN77 portable library of distributed-memory sparse iterative solvers released first circa 1995] is no longer posted. pARMS replaces PSPARSLIB. The older version of pARMS [pARMS_2.2] will remain posted but will have no support.
This work was supported by the Department Of Energy.
FILTLAN version 1.0a Version 1.0a released. [08/22/2011]
A Filtered Lanczos package for solving interior and extreme symmetric eigenproblems. Version 1.0a posted. Suppose you want to compute all the eigenvalues of a matrix A that are located in an interval which is a subset deep inside the spectrum of A. The matrix A is symmetric, and may be issued from the discretization of a 3-D problem (e.g., a Poisson operator), so shift-and-invert may not be an option. In this situation a filtered Lanczos approach is ideal and tests reveal that this approach is very effective, especially when the number of eigenvalues-eigenvectors to be computed is very large.
This work was supported by the Department Of Energy.
CudaMem CUDA_ITSOL cudaItsol [05/13/2011] The CUDA Iterative Solver package. This is a package for performing various sparse matrix operations and, more importantly, for solving sparse linear systems of equations. It is written under CUDA. The package was developed by Ruipeng Li [PhD Student, Univ. of Minnesota].
See this technical report for details on the methods implemented and more.
This work was supported by the Department Of Energy.
hips-logo HIPS (Hierarchical Iterative Parallel Solver) is a C-library for solving large sparse linear systems on parallel platforms. This package was developed by Jeremie Gaidamour and Pascal Henon from the ScAlApplix team of INRIA Bordeaux - Sud-Ouest at the Laboratoire Bordelais de Recherche en Informatique.
The techniques used in HIPS differ from those in pARMS (above) in that they are entirely based on a Schur complement approach and they systematically exploit blocking. The code provides a hybrid method which blends direct and iterative solvers. HIPS exploits the partitioning and multistage ILU techniques developed in the PHIDAL algorithm [see, tech. Report umsi-2004-74 from year 2004 in the Tech. reports page] to enable a highly parallel scheme whereby several subdomains can be assigned a process.

miqr logo

MIQR This is a package - written in C - for solving least-squares systems by a preconditioned CGNR algorithm. The heart of the method is a Multilevel Incomplete QR (MIQR) preconditioning technique. The code was written by Na Li [PhD, 2005]. One can think of this code as an equivalent of ARMS for least-squares systems.

Matlab suite The matlab suite is a little collection of matlab functions which I have used in demos in various tutorials on iterative methods. They include standard preconditioners [e.g., ILUT], and ARMS and simple implementations of Krylov methods. The link above points to the *tar.gz file. The matlab demos will be updated at the occasion of tutorials I give. So far the contents are:
 
 armsC [arms preconditioner in matlab]  
 EIG [various functions for eigenvalue problems]
 GraphPart [simple implementation of Recursive Graph partitioning] 
 MATRICES [a few sample matrices from Tim Davis' site] 
 sparse [functions for illustrating sparsity]
 CRM_08_Tutor [demos given at the CRM tutorial] 
 gauss_sparse [sparse Gaussian elimination] 
 iters [basic iterations and accelerators] 
 precon [for illustrating precondioners] 
 systems [basics on linear systems, dense.] 

sparskit logo

SPARSKIT a basic tool-kit for sparse matrix computations. Sparskit is a general purpose FORTRAN-77 library for sparse matrix computations. It has been gathered over several years and includes some of the most useful tools for developing and implementing sparse matrix techniques, particularly for iterative solvers. If you need a simple routine for doing a sparse matrix operation (e.g., adding two sparse matrices, or reordering a sparse matrix) it is likely to be available in SPARSKIT. SPARSKIT also contains most of the iterative accelarators and a number of efficient preconditioners [However, it is recommended to use ITSOL for this purpose -- see above]

I L U P A C K ILUPACK is a package developed by Matthias Bollhoefer and his team in Berlin (Part of the work resulted from a joint collaboration). Current release=V2.1. ILUPACK provides several multilevel ILU preconditioners for general real and complex matrices as well as real and complex symmetric (Hermitian) positive definite systems.
ILUPACK exploits inverse-based ILUs which control the growth of the inverse triangular factors. It is an exhaustive package which incorporates the best methods in iterative solvers developed in recent years.

K N N -- KNN - (NEW) is a fast algorithm for computing K-nearest neighbors graphs. It is a multilevel algorithm which exploits a divide and conquer approach. Two methods are actually implemented. A key ingredient of these two methods is the Lanczos algorithm. The code is based on the paper Fast approximate knn graph construction for high dimensional data via recursive Lanczos bisection by J. Chen, H. R. Fang, and Y. Saad. J. Chen is the main author of the code.

parsec logo

PARSEC PARSEC is a Fortran-95 software package designed for ab initio quantum-mechanical calculations of the electronic structure of matter, within density-functional theory. It solves the Kohn-Sham equations by expressing electron wave-functions directly in real space, without the use of explicit basis sets. It uses norm-conserving pseudopotentials (Troullier-Martins and other varieties). Much of the seminal work on this code was done at the university of Minnesota as a collaborative effort between our team (YS) and a materials science team (James R. Chelikowsky, dept of CEMS). Subsequent work on the code reflects efforts from three institutions: Univ. of Minnesota, the University of Texas at Austin (where prof. Chelikowsky moved in 2005), and the Weizmann Institute.
The latest version of PARSEC is posted here temporarily (more information will be available later from the U. Texas site)

* RSDFT * RSDFT - (NEW) [Real Space Density Functional Theory] is a matlab code for performing electronic structure calculations using the density functional theory approch in real-space.

line
Work supported by NSF