使用chol时防止matlab内存分配

使用chol时防止matlab内存分配,matlab,memory,Matlab,Memory,我想计算50000乘50000矩阵的cholesky分解。目前,这是作为 A = chol(A, 'lower'); 如您所见,对称矩阵A被cholesky因子替换。但是,matlab简单地分配了两倍于存储A所需的数据量 在桌面系统上,我可以将交换设置为32 GiB。这将解决内存不足错误。在我的HPC集群上,大多数节点提供32GiB内存和4Gb交换。理论上,这是足够的,但在实践中,由matlab执行的不必要内存分配会导致内存不足错误 我知道LAPACK例程dpstrf(也由matlab使用)不

我想计算50000乘50000矩阵的cholesky分解。目前,这是作为

A = chol(A, 'lower');
如您所见,对称矩阵
A
被cholesky因子替换。但是,matlab简单地分配了两倍于存储
A
所需的数据量

在桌面系统上,我可以将交换设置为32 GiB。这将解决内存不足错误。在我的HPC集群上,大多数节点提供32GiB内存和4Gb交换。理论上,这是足够的,但在实践中,由matlab执行的不必要内存分配会导致内存不足错误

我知道LAPACK例程
dpstrf
(也由matlab使用)不需要分配额外的内存。我的问题是:我必须用C或fortran重新实现我的代码,还是有其他解决方案