我有一个大的对称矩阵 A
,维度为 (N, N)
(N
大约是两千万),我肯定无法存储此矩阵(A
的 50% 分量为零)。
但是每个组件 A[i, j]
都是明确已知的:A[i, j] = f(i, j)
。例如 A[i, j] = cos(i)*cos(j)
。
我需要将该矩阵与长度为 N
的向量相乘。在 64 核、128GB RAM 的机器上执行此操作的“可行”方法是什么?
最佳答案
如果您有办法即时计算矩阵的元素,则无需将整个矩阵存储在内存中。此外,结果向量的每个元素彼此独立,因此您可以根据需要运行任意数量的并行工作程序。
我能想到的唯一算法优化是考虑到 f(i, j) = cos(i)*cos(j)
是对称函数(f(i , j) = f(j, i)
).但前提是这是您的真正职能。
关于python - 非常大的矩阵向量积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078646/