【发布时间】:2018-10-03 13:26:08
【问题描述】:
我想在算法的每次迭代中求解 10 个线性系统 (Ax = b)。
每个系统的 A 约为 10 x 11(超定)。
CPU 有 8 个核心。
如果我要求每个 CPU 解决 10 个线性系统中的一个,则 6 个 cpu 必须等待解决最后 2 个系统。
如果我用多线程求解器一个一个地求解每个系统,性能会很差吗?我担心错误共享,因为矩阵 A 很小。
Eigen 是否有针对这种情况的多线程求解器?
再次感谢。
【问题讨论】:
-
我应该用零填充 b 和 A 吗?
-
每个系统的A都一样吗?
-
不一样的A.
-
Padding
A给它的大小可能是你架构上 SIMD 数据包大小的倍数(例如,如果你使用浮点数和 AVX,则为 8 的倍数)——但这取决于您使用的求解器(当然,如果有意义,您需要进行基准测试)。
标签: linear-algebra eigen eigen3