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