In this work, we develop a fast hierarchical solver for solving large, sparse least squares problems. We build upon the algorithm, spaQR (sparsified QR), that was developed by the authors to solve large sparse linear systems. Our algorithm is built on top of a Nested Dissection based multifrontal QR approach. We use low-rank approximations on the frontal matrices to sparsify the vertex separators at every level in the elimination tree. Using a two-step sparsification scheme, we reduce the number of columns and maintain the ratio of rows to columns in each front without introducing any additional fill-in. With this improvised scheme, we show that the runtime of the algorithm scales as $\mathcal{O}(M \log N)$ and uses $\mathcal{O}(M)$ memory to store the factorization. This is achieved at the expense of a small and controllable approximation error. The end result is an approximate factorization of the matrix stored as a sequence of sparse orthogonal and upper-triangular factors and hence easy to apply/solve with a vector. Finally, we compare the performance of the spaQR algorithm in solving sparse least squares problems with direct multifrontal QR and CGLS iterative method with a standard diagonal preconditioner.
翻译:在这项工作中,我们开发了一个快速等级求解器,用于解决大、稀少的最小平方问题。 我们以作者开发的算法, SAQR (SPAQR (Sparized QR) 为基础,用于解决大、稀疏的线性系统。 我们的算法建在基于内分解的多前方 QR 方法之上。 我们在前方矩阵上使用低级近似值, 以在消除树的每个级别上对顶端分隔器进行加固。 使用两步的擦拭方案, 我们减少列数, 并保持每个前端行对柱子的比例, 而不引入任何额外的填充。 有了这个简易方案, 我们显示算法的运行时间是 $\ mathcal{O} (M\ log N), 并使用 $\ mathcal c{O} (M ) 的记忆来储存因子化。 实现这一点要牺牲一个小且可控制的近差错误。 最终的结果是, 将存储的矩阵作为稀薄或多或多层次的矩形因素因素序列储存起来, 最终将SAS- R 和最容易地平方平方的SLSLSLSLSLSQ 和最容易地平方的方法进行对比。