Cholesky factorization is a widely used method for solving linear systems involving symmetric, positive-definite matrices, and can be an attractive choice in applications where a high degree of numerical stability is needed. One such application is numerical optimization, where direct methods for solving linear systems are widely used and often a significant performance bottleneck. An example where this is the case, and the specific type of optimization problem motivating this work, is radiation therapy treatment planning, where numerical optimization is used to create individual treatment plans for patients. To address this bottleneck, we propose a task-based multi-threaded method for Cholesky factorization of banded matrices with medium-sized bands. We implement our algorithm using OpenMP tasks and compare our performance with state-of-the-art libraries such as Intel MKL. Our performance measurements show a performance that is on par or better than Intel MKL (up to ~26%) for a wide range of matrix bandwidths on two different Intel CPU systems.
翻译:Cholesky分解是一种广泛用于求解对称正定矩阵线性系统的方法,在需要较高数值稳定性的应用中常被采用。例如数值优化领域,直接法求解线性系统虽应用普遍,但常成为显著的性能瓶颈。一个具体案例——也是本工作的核心驱动力——是放射治疗计划制定,其中数值优化用于为患者制定个性化治疗方案。为解决这一瓶颈,我们提出一种基于任务的多线程方法,用于中等带宽带状矩阵的Cholesky分解。我们采用OpenMP任务实现算法,并将性能与Intel MKL等先进库进行对比。性能测量表明,在两种不同Intel CPU系统上,对于多种矩阵带宽范围,所提方法性能与Intel MKL相当或更优(最高提升约26%)。