The University of Florida Sparse Matrix Collection

Tim Davis, University of Florida, http://www.cise.ufl.edu/~davis

1. Overview

UFgui is a Java GUI interface to the University of Florida Sparse Matrix Collection at http://www.cise.ufl.edu/research/sparse/matrices. It provides an easy way to select matrices from the collection based on their matrix properties. As of October 2010, there were 2328 matrices ranging in size from 1-by-2 (with a single nonzero entry) to a square matrix with nearly 28 million rows and 760 million entries. The total size of the collection in all three formats exceeds 47 GB, and is constantly growing in size.

2. Quick Start

First, download the UFget archive (tar.gz or zip file), and uncompress it. Open the UFget folder.

If your web browswer requires an HTTP proxy, or if you wish to change the download location, first see the Customization section below, to configure UFgui before you run it.

To run UFgui, double-click its icon or type the following command in your command window / terminal:

        java -jar UFgui.jar
If the above command fails, then you need to install Java. See http://www.java.com/en/download/manual.jsp for details.

You can skip reading this document by simply navigating the GUI itself. Most of the buttons, check boxes, lists, and table columns have a short "tool tip" which is visible if you hover your mouse over the item.

When the UFgui starts, it checks for any missing matrix icons and downloads a new table if needed. This might take a few minutes, so just sit back and enjoy the slideshow. It will only happen occassionaly.

3. A Sparse Matrix Problem

The UF Sparse Matrix Collection is a simplified name. It is actually a collection of sparse matrix problems, not just sparse matrices. Each problem includes one primary sparse matrix and meta-data about that matrix. Some problems include additional matrices and vectors (sparse or dense) such as right-hand-sides to a linear system Ax=b, or cost constraints for a linear programming problem. As a short-hand, a "problem" in the collection is often called simply a "matrix", refering to the primary sparse matrix in the problem (A, below).

The following data is always present in any sparse matrix problem (not all fields are shown in the table in the UFgui program, however):

The following data is present in some problems but not all:

4. Matrix Formats

Each matrix in the collection appears in three different formats. The data within each format is identical, down to the very last bit (if you find a discrepency between the same problem in different formats, please let me know).

5. Selecting Matrices

In the UFgui you are presented with four primary panels.

Selection Criteria panel: This is used for rule-based selections of matrix subsets. A matrix must satisfy all properties in this panel to be selected. With the default settings (available when the UFgui starts or after clicking Reset criteria) all matrices fit the criteria. However, no matrix is selected until you press the Select button or select them individually in the table by clicking the checkbox in the select column.

The selection criteria are based on the matrices properties described in the matrix table (described below). To select matrices from one or more groups and/or "kinds," click on the choices in the "group" and/or "kind" lists. Shift-click the list to select a range of groups or kinds, and control-click the list to add a single item to your highlighted choices. To clear your choices, click the Reset criteria button, described below.

When you select/deselect matrices, the boxes to the left of each matrix in the Table of Matrices get checked/unchecked. You still see all the matrices in the list, because you can then modify your selection by checking/unchecking matrices one at a time in the Table itself.

At the bottom of the Selection Criteria panel is a row of buttons:

Matrix icon panel: To the right of the Selection Criteria panel is an icon of the most recent matrix highlighted, downloaded, or in the process of being downloaded.

Table of matrices: This is a list of all the matrices in the collection. You can click on any column header to sort the table by that column. Clicking a row (to the right of the select column) will highlight that row. You can highlight a range of rows by shift-clicking another row. Control-click will add individual rows. Next, right-clicking in the table will pull up a pop-up menu allowing you to select or deselect the highlighted matrices and to export your selection to a file. You can export a list of your selected matrices to a comma-separarted file (*.csv) or to a MATLAB (*.m) file. When you highlight a matrix, its icon is displayed.

The table contains the following columns (you can also hover your mouse over each column header for a short description):

Download panel: This panel controls the downloading of matrices, with three check boxes, three buttons, and informational items:

The contents of the mat, matrices, MM, and RB folders ("directories" for Unix users), and the UFstats.txt file itself, maybe be deleted at will when the program is not running. They will be recreated when the program restarts. If you delete the matrices directory, for example, matrix icons are redownloaded, which makes for a fun slide show. Sit back and watch.

6. Customization

The UFsettings.txt includes six lines of text, each with parameters that you can modify. If this file is missing, or shorter than 6 lines long, then defaults are used.

7. Limitations and known issues

8. Copyright and License

Copyright (c) 2009-2010, Timothy A. Davis. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

9. Version and Change-Log

10. For Further Help

Contact the author of this UFgui program, and the maintainer of the UF Sparse Matrix Collection: Tim Davis ( http://www.cise.ufl.edu/~davis, email davis@cise.ufl.edu or DrTimothyAldenDavis@gmail.com). To print this document, open the file UFhelp.html in your favorite web browser.

11. Acknowledgements

I would like to thank Iain Duff and Xiangrui Meng for their feedback, which has improved this package. Designing a GUI is an art, and getting usability feedback from others is vital.