内存不足,在朱莉娅中运行相关性分析



我在 Julia 中有一个大的稀疏矩阵,我想对它进行相关性分析,但我遇到了:

ERROR: OutOfMemoryError()

我的稀疏矩阵详细信息是:

200833×200833 SparseMatrixCSC{Float64,Int64} with 209018611 stored entries:

我在稀疏矩阵上运行了cor()命令,但根据上面的错误我无法获得结果。

我该怎么做才能得到我的结果?

谢谢

cor函数计算每对列(或行,取决于dim参数(的相关性。 由于您有 200k 列,因此相关矩阵的大小为 320GB。

现在,假设您有足够的计算能力来处理此类任务,最好的办法是成对执行计算并将结果存储到文件中。

假设您的s是稀疏矩阵:

for (i,j) in Iterators.product(1:size(s,2),1:size(s,2))
if (i<j)
cor_v = cor(@view(s[:,i]), @view(s[:,j]))
#TODO save it somewhere since you have a total of 320 GB of data!
end
end

由于这是一项大型计算任务,因此您可能将使用@distributed宏将其分发到群集上,但这是一个单独的主题。