使用具有指定数量的worker的matlabpool

时间:2015-03-29 17:50:45

标签: matlab parallel-processing hyperthreading matlabpool

我已经使用命令matlabpool open 8一段时间以加快速度。 但是我只是尝试使用它并且被拒绝了8个核心,现在限制为4个。

我的笔记本电脑是一款带有4核但超线程的i7,这意味着我没有任何问题让matlab在8个虚拟核心上工作。

同时我注意到以下警告信息:

Warning: matlabpool will be removed in a future release. Use parpool instead.

似乎MathsWorks认为这是一个很好的更新,出于某种原因。

如何才能让我的代码再次在8个内核上运行?

注意:我使用的是R2010b(我认为),现在正在使用R2014b。

1 个答案:

答案 0 :(得分:3)

看来@horchler在评论中为您提供了直接solution的问题。

但是,我建议坚持使用MATLAB建议的默认4名工作人员,而不是使用8.你不太可能通过移动到8来获得显着的加速,而你甚至可能会减慢一些速度。

你有四个物理核心,他们只能做很多工作。超线程使操作系统能够通过在虚拟核心对上完成交错操作来假装有8个核心。

这非常适用于Outlook等应用程序,它们不是计算密集型的,但需要按顺序同时显示大量操作,例如,在通过网络连接检查电子邮件时保持GUI响应。

但对于像MATLAB这样的计算密集型应用程序,它不会给你任何真正的加速,因为操作只是交错的 - 你没有增加4个真实的物理内核可以做的工作量。此外,执行超线程的开销很小。

根据我的经验,通过将超线程关闭,MATLAB将会受益匪浅。 (当然其他的东西,比如Outlook,不会:你的选择)。