0

给定一个nnz(A)非零的非常稀疏的nxn矩阵A和一个密集的nxn矩阵。我想计算矩阵产品。由于n非常大,如果天真地执行,密集矩阵无法放入内存。我有以下两种选择,但不确定哪一种更好。能否给点建议。谢谢。BAxBB

选项1。我将矩阵B划分为n 个列向量[b1,b2,...,bn]。然后,我可以将矩阵A和任何单个向量bi放入内存,并A*b1, A*b2, ..., A*bn分别计算 。

选项 2。我将矩阵AB分别划分为四个n/2Xn/2块,然后使用块矩阵-矩阵乘法来计算A*B

以上选择哪个更好?我可以说选项 1 在并行计算中具有高性能吗?

4

1 回答 1

0

请参阅Scalapack 文档中的此文档中对这两种方法的讨论,尽管是针对两个密集矩阵。Scalapack 是分布式线性代数的参考工具之一。

于 2013-10-20T17:45:50.310 回答