使用PETSc顺序有效地解决小型系统?

时间:2018-01-23 21:35:00

标签: fortran sequential petsc

我需要解决大量(独立) Ax = b 线性问题。 这不能并行化(或者更具体地说,无论如何,这都在每个处理器的责任范围内)。

Ax = b 集很小(比如最多10x10)但是很密集(通常所有项都非零)并且A矩阵和RHS向量都是完全不同和独立。

使用PETSc解决大量小Ax = b问题的最有效/最实用的方法是什么?

即。将单个 A 矩阵和单个 b 向量一直修改并为每个系统求解的成本是多少?

3 个答案:

答案 0 :(得分:0)

在考虑了所有选项之后,PETSc在处理情况方面效率不高,因为需要使用不同的值一直重建/重新填充矩阵,最终成本相对较高。 我最终将PETSc放在一边。

答案 1 :(得分:0)

由于您的A很小,为什么不尝试使用直接方法来解决它。 SuperLU MT版或SuperLU串行版。

答案 2 :(得分:0)

如果你一次拥有所有矩阵,你可以用它们制作一个大的块对角矩阵,这将是有效的(矢量化等)。