Mondriaan for sparse matrix partitioning


Mondriaan partitioner

Mondriaan is a sequential program written in C that can be used to partition a rectangular sparse matrix, an input vector, and an output vector for parallel sparse matrix-vector multiplication. The program is based on a recursive bipartitioning algorithm that cuts the matrix horizontally and vertically, in a manner resembling some of the famous Mondriaan paintings. The algorithm is multilevel, hypergraph-based, and two-dimensional. It reduces the amount of communication and it spreads both computation and communication evenly over the processors. The program can partition hypergraphs with integer vertex weights and uniform hyperedge costs, but it is primarily intended as a matrix partioner.

Download

Download the latest version of the Mondriaan software, version 2.01 (tar gzipped), released June 9, 2009.

Minor bug-fix version 2.01 (June 9, 2009)

Alexander Gusak from the Belarusian State University, Faculty of Applied Mathematics and Computer Science, found and fixed a few errors: a memory leak, an opened file which was not closed, and an an uninitialised string terminator. He also suggested a few improvements to prevent overflow for huge sparse matrices. These allowed him to partition matrices of 6 million rows and columns and 400 million nonzeros.

New features of version 2.0 (July 14, 2008)

Version 2 contains many improvements compared to version 1 (released May 10, 2002). These are:

Related papers

The original Mondriaan algorithm and implementation has been published in "A Two-Dimensional Data Distribution Method for Parallel Sparse Matrix-Vector Multiplication", by Brendan Vastenhouw and Rob H. Bisseling, SIAM Review, Vol. 47, No. 1 (2005) pp. 67-95.

The new vector partitioning algorithms and implementation have been published in "Communication balancing in parallel sparse matrix-vector multiplication", by Rob H. Bisseling and Wouter Meesen, Electronic Transactions on Numerical Analysis, Vol. 21 (2005) pp. 47-65, special issue on Combinatorial Scientific Computing.

The hybrid between the original Mondriaan method and the finegrain method will be published in a forthcoming paper "A hybrid 2D method for sparse matrix partitioning" by Rob Bisseling, Tristan van Leeuwen, and Umit Catalyurek. This work has been presented at the 5th International Workshop on Parallel Matrix Algorithms and Applications (PMAA'08) 20-22 June 2008, Neuchatel, Switzerland. Slides

Extensive background reading on the parallel sparse matrix-vector multiplication problem, including a detailed discussion of the Mondriaan algorithm, can be found in Chapter 4 (pp. 163-250) of Parallel Scientific Computation: A Structured Approach using BSP and MPI, by Rob H. Bisseling, Oxford University Press, March 2004. 324 pages. ISBN 0-19-852939-2. OUP home page of the book.

Trailer

Trailer announcing Mondriaan version 2 by Sarai Bisseling (Quicktime movie, 11.6 MB).

Selected related lectures by Rob Bisseling

Copyright

This software is copyrighted (2002, 2008) by Rob Bisseling, Tristan van Leeuwen, Wouter Meesen, and Brendan Vastenhouw. You can use and modify it under the GNU Lesser General Public License, see GNU Licenses. Also see the files, README, COPYING, COPYING.LESSER. Anything free, as usual, comes with no guarantee!

Contributions

Besides the authors mentioned in the copyright notice, others have contributed as well: Other contributions are welcome!

Roadmap

We intend to make the following available in the future:

History

The initial version, version 1.0 of Mondriaan, by Brendan Vastenhouw\and Rob Bisseling was released on May 10, 2002.

Version 1.01 from december 2003 repairs a bug for symmetric matrices and solves a few compilation problems.

Version 1.02 from March 2005 is a minor update which improves the speed of the algorithm by a factor of ten. Thanks to Umit Catalyurek for pointing out an inefficiency in the inner product matching.

Test matrices

Most matrices we use in our tests can be obtained from Tim Davis' University of Florida Sparse Matrix Collection. The term-by-document matrices used in the SIAM Review paper are: tbdmatlab.mtx (430171 nonzeros, 3.2 Mbyte) and tbdlinux.mtx (2157675 nonzeros, 18.9 Mbyte), both in gzip-compressed Matrix Market format.

Bugs and previous versions

We maintain a list of compilation problems, bugs etc. You can also find all previous versions of the software here.

Related software

Joris Koster (Utrecht University) has developed an object-oriented package of iterative linear system solvers that can be used after Mondriaan has distributed the matrix and vectors involved. This package can handle every possible matrix and vector distribution, including the Mondriaan distribution. It is written in C++ and can run on top of BSPlib and MPI.
"Parallel templates for numerical linear algebra, a high performance computation library", by Joris Koster, M.Sc. Thesis, Dept. of Mathematics, Utrecht University, July 2002, 77pp.
Software .
Last updated August 3, 2009.
to Home page Rob Bisseling.