The 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 domains, include those
arising from problems with underlying 2D or 3D geometry (such as 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 (such as optimization, circuit simulation,
economic and financial modeling, theoretical and quantum chemistry, chemical
process simulation, mathematics and statistics, power networks, and other
networks and graphs). The collection 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.
The collection also appears as a
Public Data Set hosted by
Amazon Web Services, at
aws.amazon.com:
Sample Gallery of the University of Florida Sparse Matrix Collection:
Click on the thumbnails below for a close-up.
The images above of matrices in the UF Sparse Matrix Collection were created by
Yifan Hu, AT&T.
As of April 2009, it contains 2255 problems (some of which are sequences of
dozens of matrices). The largest has a dimension of almost 29 million, with
760 million nonzero entries. The matrices are available in three formats:
MATLAB mat-file, Rutherford-Boeing, and Matrix Market. 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 (Nov. 2008).
Browse the collection:
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:
-
The University of Florida Sparse Matrix Collection
T. A. Davis,
Submitted to ACM Transactions on Mathematical Software
-
Algorithm 8xx: UFget, a MATLAB interaface to the
University of Florida Sparse Matrix Collection
T. A. Davis,
Submitted to ACM Transactions on Mathematical Software
- Duff, I.S, Grimes, R. G, and Lewis, J. G,
Sparse matrix test problems,
ACM Transactions on Mathematical Software,
vol 15, no. 1, pp 1-14, 1989.
This describes the Harwell-Boeing collection which is the starting point
of the UF Sparse Matrix Collection (the first 292 matrices).
- The URL:
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.
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.
For a demo of how Yifan's algorithm works, see the
GraphPlot function, which he wrote for Mathematica,
or you can view it here by right-clicking the figure below and selecting "Play".
(or just click "reload" on your browser).
Below is Yifan Hu's graph drawing of the
Chen/pkustk01 matrix that
I obtained from Pu Chen, Beijing University.
The matrix is a model of the
Beijing Botanical Garden Conservatory.
Overlayed on top of the graph is a picture of the actual building.