Hello All,
I have an application that spends nearly all its time in a generalize
eigenvalue problem with very large (say 10-20 million rows)
and very sparse (either ~16 or ~44 non zeros per row) matrices.
[note: my colleagues with the ASCI project will probably object to me
calling
these matrices "very large"].
I currently use Aztec from Sandia (written mostly in C) for
both the storage format (modified sparse compressed row)
and the iterative methods. In the latest versions of Aztec, there is
a matrix free interface that permits the application writer to supply
their own
storage formats and matrix vector multiplication routines.
I plan to use this matrix free interface in order to support
symmetric matrices in my application (currently not supported
directly in Aztec). I am doing this mainly to save on memory.
But while I'm at it, I would also like to improve performance.
Here are my questions:
1. What is the "best" storage format for sparse matrices to get the
most
efficient matrix vector multiplication? Or does the format not
matter so
much compared to the sparsity pattern.
2. My impression is the with sparse matrix multiplication the language
doesn't matter (Fortran has no advantage over C, like it does with
dense linear algebra). Is this impression correct?
3. I am planning to reorder the matrices, using something like Reverse
Cuthill-McKee (RCM), to reduce the bandwidth of the matrices.
My hope is that this will reduce cache misses and improve
performance.
Will this reordering have a significant impact? (I know this is
impossible
to answer in general, but I would like to hear people's opinions).
4. Has anyone had success with any other tricks to make the matrix
vector
multiplication faster?
Thanks for your time,
Brian McCandless
Stanford Linear Accelerator Center
--------------------- Object Oriented Numerics List --------------------------
* To subscribe/unsubscribe: use the handy web form at
http://oonumerics.org/oon/
* If this doesn't work, please send a note to owner-oon-list@oonumerics.org
This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 03:20:12 EST