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

计算科学 宠物 稀疏矩阵 拉帕克 布拉斯
2021-12-08 05:56:51

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

1个回答

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

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

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

如果您依赖这些应用于大型问题的稀疏直接求解器,那么值得使用经过调整的 BLAS 实现来构建,否则它几乎没有什么区别。