我需要解决大量(独立) Ax = b 线性问题。 这不能并行化(或者更具体地说,无论如何,这都在每个处理器的责任范围内)。
Ax = b 集很小(比如最多10x10)但是很密集(通常所有项都非零)并且A矩阵和RHS向量都是完全不同和独立。
使用PETSc解决大量小Ax = b问题的最有效/最实用的方法是什么?
即。将单个 A 矩阵和单个 b 向量一直修改并为每个系统求解的成本是多少?
答案 0 :(得分:0)
在考虑了所有选项之后,PETSc在处理情况方面效率不高,因为需要使用不同的值一直重建/重新填充矩阵,最终成本相对较高。 我最终将PETSc放在一边。
答案 1 :(得分:0)
由于您的A很小,为什么不尝试使用直接方法来解决它。 SuperLU MT版或SuperLU串行版。
答案 2 :(得分:0)
如果你一次拥有所有矩阵,你可以用它们制作一个大的块对角矩阵,这将是有效的(矢量化等)。