University of Florida Sparse Matrix Collection:
Maintained by Tim Davis.
From the abstract of the paper
The University of Florida Sparse Matrix Collection:
The University of Florida Sparse Matrix Collection is a large, widely available,
and actively growing set of sparse matrices that arise in real
applications. Its matrices cover a wide spectrum of problem domains, both
those arising from problems with underlying 2D or 3D geometry:
structural engineering,
computational fluid dynamics,
model reduction,
electromagnetics,
semiconductor devices,
thermodynamics,
materials,
acoustics,
computer graphics/vision,
robotics/kinematics,
and other discretizations;
and those that typically do not have such geometry:
optimization,
circuit simulation,
networks and graphs (including web connectivity matrices),
economic and financial modeling,
theoretical and quantum chemistry,
chemical process simulation,
mathematics and statistics,
and power networks.
The collection meets a vital need that artificially-generated matrices cannot
meet, and is widely used by the sparse matrix algorithms community for the
development and performance evaluation of sparse matrix algorithms. The
collection includes software for accessing and managing the collection, from
MATLAB, Fortran, and C.
As of May 2008, it contains 1890 problems (some of which are sequences of
dozens of matrices). The smallest is 5-by-5 with 19 nonzero entries. The
largest has dimension 9.8 million, and the matrix with the most nonzeros has
99.2 million entries. The matrices are available in three formats: MATLAB
mat-file, Rutherford-Boeing, and Matrix Market. The size of the collection in
each format is about 9 GB. Note that the MATLAB mat-files can only be read by
MATLAB 7.0 or later.
This collection is managed by Tim Davis, but ``editors'' of other collections
are attributed, via the Problem.ed field in each problem set. Problem.author
is the matrix creator. Other collections are always welcome.
Click here for a paper describing the collection (Jan. 2007).
Note: all of the matrices have been updated as of November 25, 2006.
Additional minor changes to the meta-data were made in January, 2007
(problem kind added to all matrices).
Most changes are minor, but
if you have existing matrices from this collection, I suggest you
delete them and download the most recent copies.
See the ChangeLog for more details.
Browse the collection:
Sample Gallery (one matrix per group):
MATLAB interface:
- Click here for the UFget MATLAB interface
for simple access to the collection, right inside your MATLAB workspace.
From inside MATLAB, UFget will download a matrix, cache it locally, and
load it into your MATLAB workspace. No need to use a browser to get a matrix.
You can even use the built-in index to search for matrices that fit your
criteria ... all inside MATLAB. A future version of Mathematica will also
include this feature. For example, to download all symmetric matrices
into MATLAB, in increasing size as measured by nnz(A):
index = UFget ; % get index of the UF Sparse Matrix Collection
ids = find (index.numerical_symmetry == 1) ;
[ignore, i] = sort (index.nnz (ids)) ;
ids = ids (i) ;
for id = ids
Prob = UFget (id) % Prob is a struct (matrix, name, meta-data, ...)
A = Prob.A ; % A is a symmetric sparse matrix
end
Software:
The SuiteSparse collection of packages includes
all of the software that I used to generate these web pages, and to
manage the matrices themselves (creating the Matrix Market and Rutherford/
Boeing files, for example).
You don't need SuiteSparse to access the matrices, however.
Downloading matrices:
The simplest method for downloading the matrices in MATLAB *.mat format
is with UFget, right inside MATLAB itself.
You can download them from the web as well, with a browser.
Right-click the matrices in your browser and "save as..." a file
on your system. Alternatively, try using the
wget
program, which can download entire directories (or even the
entire collection) in a single command.
For example, to download the Oberwolfach directory in the Rutherford/Boeing
format, do:
wget -r -l 1 -np http://www.cise.ufl.edu/research/sparse/RB/Oberwolfach
To download the entire collection in Rutherford/Boeing format:
wget -r -l 2 -np http://www.cise.ufl.edu/research/sparse/RB
To download the entire collection in MATLAB format:
wget -r -l 2 -np http://www.cise.ufl.edu/research/sparse/mat
To download the entire collection in Matrix Market format:
wget -r -l 2 -np http://www.cise.ufl.edu/research/sparse/MM
Direct access to the matrix directories, useful for wget access:
References:
-
To cite this collection, use the following:
T. Davis,
The University of Florida Sparse Matrix Collection,
http://www.cise.ufl.edu/research/sparse/matrices,
submitted to ACM Trans. on Mathematical Software.
See also
NA Digest, vol. 92, no. 42, October 16, 1994,
NA Digest, vol. 96, no. 28, July 23, 1996, and
NA Digest, vol. 97, no. 23, June 7, 1997.
-
The Rutherford-Boeing format is described in the document
Rutherford-Boeing Sparse Matrix Collection
-
See the Matrix Market
for a description of the Matrix Market format.
To submit matrices to this collection:
Sparse matrices from real applications are critical to the development of
sparse matrix algorithms. Many sparse matrix algorithm developers
use the matrices at this site to test their methods. If you would like
the next generation of sparse matrix methods to work well on matrices
from your problem domain, then please submit matrices to the collection,
at:
http://www.cise.ufl.edu/~web-gfs (user "davis").
If you upload a file there, I will automatically be notified via email.
Use any reasonable format; just tell me what you use. I prefer either the
Matrix Market format, or a MATLAB *.mat file.
Another simple method is the triplet format. The triplet format is a simple
ascii file with nz lines; each line contains a row index, column index, and
numerical value of one entry in the matrix (two values for a complex matrix,
the real part followed by the imaginary part). Duplicates are OK - these are
summed in the output matrix. The triplets can be in any order. If the matrix
dimension cannot be inferred from the row and column indices, please tell me
what they are in another file or email message.
If you wish to include other data (right-hand-sides, solutions,
cost vector c for a linear programming problem, and so on),
use a separate file for each matrix in your
problem. A dense vector of length n should appear as a file with n lines, and
one entry per line (or use the Matrix Market format for dense matrices).
Graph drawings, by Yifan Hu
Yifan Hu, at AT&T Labs
has created a
graph drawing program
that can generate truly beautiful drawings of a large graph, based solely on
the connectivity (that is, a sparse matrix). Take a look at his
drawings of the matrices in the UF Sparse Matrix Collection.
See his
close-up
of the
Chen/pkustk01 matrix, which is a model of the
Beijing Botanical Garden Conservatory.
Each square matrix in the UF Sparse Matrix Collection
has a link to his graph drawings; clicking on them
will bring up his web page for that matrix, including a link to a higher
resolution image. Below is a sample of the
Andrianov/fxm3_6 matrix.