我遇到了mablab中的内存不足问题。 是否可以为matlab构建一个大型内存系统(例如64GB ram)?
如果是,我需要什么?
答案 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 Toolbox与MATLAB Distributed Computing Server一起使用。