PETSc是否曾经使用LAPACK库进行稀疏矩阵数学运算?


10

使用外部BLAS / LAPACK库编译PETSc是否会严重影响稀疏矩阵的性能,还是仅将这些库用于密集矩阵数学?


您可以使用LU进行预处理。
stali 2012年

Answers:


10

PETSc对一些矢量基元使用BLAS,但是它们通常受内存带宽的限制,并且“优化”没有太大的差异,因此它往往不会产生太大的性能差异。

它还使用Lapack进行一些分析,例如Lanczos或Arnoldi对特征值和奇异值的估计,但是这些通常对性能不敏感。

当使用第三方库中的稀疏直接求解器(例如MUMPS,SuperLU,UMFPACK)时,密集的“ 3级”操作通常仅出现在对性能敏感的上下文中,在这种情况下,填充最终会导致密集的问题,而问题又大到足以从中受益呼叫BLAS。

如果您依赖于这些适用于大型问题的稀疏直接求解器,那么值得调整的BLAS实现来构建它,否则差异不大。


杰德,在分布式矩阵的情况下,PETSc如何使用LAPACK进行特征/奇异值估计?然后是逐块例程还是ScaLAPACK?
亚历山大

Arnoldi迭代生成维数为Hessenberg的矩阵,该矩阵的大小等于迭代次数(例如30或100)。Hessenberg矩阵的特征值或奇异值使用LAPACK在每个过程中进行冗余计算。这比尝试并行执行要快得多,因为它的大小很小并且数据已经冗余分配。Lanczos也是如此。
杰德·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.