内存分配给Matlab

时间:2015-11-02 00:30:17

标签: matlab memory-management parallel-processing

每当我在matlab中运行parfor时,在任务管理器中我可以看到四核机器上的4个会话总共只占用大约2.1GB的内存。有没有办法增加Matlab进程的内存? CPU也是如此 - 它甚至达不到50%的利用率。我甚至尝试过raiseuservm,但同样存在。

1 个答案:

答案 0 :(得分:0)

内存不是给予进程,而是由进程请求然后分配(如果可用)。如果您使用的是64位版本的Matlab,那么它基本上可以访问您机器中可用的内存。 Matlab根本不要求超过2.1GB,所以这里没有什么可以做的。是什么让你认为使用更多内存会增加性能呢?

对于CPU利用率,情况有点复杂。您的机器是真正的四核处理器还是具有超线程的双核处理器。最有可能的是后者,它在任务管理器中显示为具有4个内核,但实际上在处理器中使用了巧妙的技巧,以使两个不同的进程能够同时使用同一个内核。如果您正在非常重地加载核心,则无法使用这些技巧,因此即使您实际使用了所有可用的处理能力,它也会显示为50%的利用率。

最后,这是非常依赖于应用程序的。例如,如果您正在大量读取或写入磁盘(或者在较小程度上读取内存),那么CPU利用率可能会低于您的预期,因为它正在等待其他操作完成。

简而言之,在操作系统级别上无法做任何事情来显着增加Matlab可以执行的处理量。通过优化算法,您几乎总能获得更好的收益。