Augmented Rayleigh-Ritz (ARR) And Block Iteration
Arrabit is a MATLAB solver for computing many eigenpairs of large-scale sparse (or structured) matrices. In general, the dominant computational cost in Arrabit is the matrix multiplications (A*X).
Iterations in Arrabit consist of two major steps:
Arrabit also makes use of a set of polynomial accelerators, as well as other techniques such as continuation and deflation.
In the case that Arrabit is helpful in your published work, please make a reference to the above paper.
Arrabit is distributed under the terms of the GNU General Public License.
>> addpath <arrabit-root/src>
A Typical Demo Result from “demo_eig”
(The figure is a comparison of the runtime versus the growth of the matrix dimension between two variants of Arrabit 'MPM’ and 'GN’ and Matlab 'eigs’ in calculating a few smallest eigenvalues and their corresponding eigenvectors.)
The performance of Arrabit may be determined by the efficiency of the matrix-matrix multiplications AX.
Sparse matrix-dense vector products using intel MKL
In Matlab 2013b, dense linear algebra operations have been generally well optimized by using BLAS and LAPACK tuned to the CPU processors in use. On the other hand, we have observed that some sparse linear algebra operations in Matlab 2013b seem to have not been as highly optimized. In particular, when doing multiplications between a sparse matrix and a dense vector or matrix (denoted by ‘‘SpMM’’) the performance of Matlab's own version of SPMM can differ significantly from that of the corresponding routine in Intel's Math Kernel Library (MKL), which is named ‘‘mkl_dcscmm’’.
seed: 88137586, A*B: err 0.00e+00, matlab-cpu: 0.23, mkl-cpu: 0.10 seed: 87017600, A*B: err 0.00e+00, matlab-cpu: 0.22, mkl-cpu: 0.11 seed: 49049047, A*B: err 0.00e+00, matlab-cpu: 0.23, mkl-cpu: 0.10