The Lanczos algorithm has proven itself to be a valuable matrix eigensolver for problems with large dimensions, up to hundreds of millions or even tens of billions. The computational cost of using any Lanczos algorithm is dominated by the number of sparse matrix-vector multiplications until suitable convergence is reached. Block Lanczos replaces sparse matrix-vector multiplication with sparse matrix-matrix multiplication, which is more efficient, but for a randomly chosen starting block (or pivot), more multiplications are required to reach convergence. We find that a bootstrapped pivot block, that is, an initial block constructed from approximate eigenvectors computed in a truncated space, leads to a dramatically reduced number of multiplications, significantly outperforming both standard vector Lanczos and block Lanczos with a random pivot. A key condition for speed-up is that the pivot block have a non-trivial overlap with the final converged vectors. We implement this approach in a configuration-interaction code for nuclear structure, and find a reduction in time-to-solution by a factor of two or more, up to a factor of ten.
翻译:Lanczos 算法已证明自己是大尺寸问题的宝贵矩阵解脱器, 高达亿亿甚至数千亿。 使用任何 Lanczos 算法的计算成本, 主要是在达到适当趋同之前, 稀少的矩阵- 矢量乘数数量。 Lanczos 块用稀少的矩阵- 矢量乘数取代稀少的矩阵- 矢量乘数, 其效率更高, 但对于随机选择的起始区块( 或点) 来说, 需要更多乘数才能达到趋同。 我们发现, 螺旋支架式的螺旋体块, 也就是从一个在快速空间计算出的近似源数的源头块, 导致急剧减少倍增数, 大大超过标准矢量 Lanczos 和 Lanczos 块的倍增法。 加速度的一个关键条件是, Pivot 区块与最终趋同的矢量带有非三重重叠。 我们发现, 在一个配置- 间动作代码中采用这个方法, 并用两个或更深层的分解成一个系数, 。