是否有可能为matlab构建一个大型内存系统?

时间:2011-11-24 06:46:29

标签: matlab memory

我遇到了mablab中的内存不足问题。 是否可以为matlab构建一个大型内存系统(例如64GB ram)?

如果是,我需要什么?

2 个答案:

答案 0 :(得分:3)

当你尝试在Matlab中分配一个数组时,Matlab必须有足够大的连续内存和数组的大小,如果没有足够的连续内存可用,那么无论你有多少内存,都会出现out of memory错误有你的电脑。

根据我的经验,解决方案不是来自直接处理硬件的内存相关属性,而是来自以防止分配太大数组(将数据切割成块等)的方式编写代码。如果您可以描述您尝试解决的代码和任务,则可以指导您朝这个方向发展。

您可以在此处阅读更多内容:http://www.mathworks.com/support/tech-notes/1100/1106.html

答案 1 :(得分:3)

@Itamar提供了很好的建议,关于MATLAB如何需要连续内存来存储数组,以及内存管理方面的良好实践,例如分块数据。特别是,他链接到的内存管理技术说明是一个很好的资源。无论你的机器有多少记忆,这些都是明智之举。

然而,MATLAB的许多应用程序永远不会被这些提示解决,因为数据集太大了;拥有更多RAM的机器也可以解决这些问题。

(顺便说一句,有时也会出现这样的情况:购买一台内存更多的新机器要比支付MATLAB开发人员所做的所有内存优化更便宜 - 但这要由你来决定)。

使用MATLAB访问大量内存并不困难。如果你有一台64GB(或更高)的Windows或Linux机器 - 它显然需要运行64位操作系统 - MATLAB将能够访问它。我遇到过很多正在这样做的MATLAB用户。如果您知道自己在做什么,可以建立自己的机器,或者现在您可以从Dell购买一个大小合适的机器。

另一个选项(取决于您的应用)将考虑获取一个小型群集,并将Parallel Computing ToolboxMATLAB Distributed Computing Server一起使用。