使用chol时防止matlab从内存分配

时间:2014-11-27 10:25:34

标签: matlab memory

我想计算50000乘50000矩阵的cholesky分解。目前这已实现为

A = chol(A, 'lower');

如您所见,对称矩阵A被cholesky因子取代。但是,matlab会短暂分配两倍于存储A所需的数据量。

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

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

0 个答案:

没有答案