我有一个维度为A
的大对称矩阵(N, N)
(N
约为二千万),而且我无法存储此矩阵({{1}的50%组成部分是零()。
但是明确知道每个组件A
:A[i, j]
。例如A[i, j] = f(i, j)
。
我需要将此矩阵与长度为A[i, j] = cos(i)*cos(j)
的向量相乘。什么是"可行的"在64核,128GB RAM的机器上做到这一点?
1 个答案:
答案 0 :(得分:1)
如果您有方法可以动态计算矩阵元素,则无需将整个矩阵存储在内存中。结果向量的每个元素也相互独立,因此您可以根据需要运行尽可能多的并行工作。
我能想到的算法的唯一优化是考虑f(i, j) = cos(i)*cos(j)
是对称函数(f(i, j) = f(j, i)
)。但如果这是你真正的功能那就是。
同样检查numpy和Cython以便在Python中更快地进行计算,因为纯Python对于这种工作来说可能有点慢。