给定一个nnz(A)非零的非常稀疏的nxn矩阵A
和一个密集的nxn矩阵。我想计算矩阵产品。由于n非常大,如果天真地执行,密集矩阵无法放入内存。我有以下两种选择,但不确定哪一种更好。能否给点建议。谢谢。B
AxB
B
选项1。我将矩阵B
划分为n 个列向量[b1,b2,...,bn]
。然后,我可以将矩阵A
和任何单个向量bi
放入内存,并A*b1, A*b2, ..., A*bn
分别计算 。
选项 2。我将矩阵A
和B
分别划分为四个n/2Xn/2块,然后使用块矩阵-矩阵乘法来计算A*B
。
以上选择哪个更好?我可以说选项 1 在并行计算中具有高性能吗?