将matlabpool与指定数量的工人一起使用

将matlabpool与指定数量的工人一起使用,matlab,parallel-processing,hyperthreading,matlabpool,Matlab,Parallel Processing,Hyperthreading,Matlabpool,我已经使用命令matlabpool open 8一段时间了,以加快速度。 然而,我只是尝试使用它,但被拒绝8核,现在限制为4 我的笔记本电脑是一台i7,有4个内核,但是超线程,这意味着我可以让matlab在8个虚拟内核上工作 同时,我注意到以下警告信息: 警告:matlabpool将在将来的版本中删除。 改用parpool。 似乎MathsWorks出于某种原因认为这是一个伟大的更新 有没有办法让我的代码再次在8核上运行 注意:我当时使用的是R2010b(我想),现在使用的是R2014b。看来@

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

我的笔记本电脑是一台i7,有4个内核,但是超线程,这意味着我可以让matlab在8个虚拟内核上工作

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

警告:matlabpool将在将来的版本中删除。
改用parpool。

似乎MathsWorks出于某种原因认为这是一个伟大的更新

有没有办法让我的代码再次在8核上运行


注意:我当时使用的是R2010b(我想),现在使用的是R2014b。

看来@horchler在评论中为您的问题提供了一个直接的答案

但是,我建议坚持MATLAB建议的默认4个worker,而不要使用8个。你不太可能通过移动到8来获得显著的加速,而且你甚至可能会把事情放慢一点

你有四个物理核心,它们只能做这么多的工作。超线程使操作系统能够通过对虚拟核对进行交叉操作来假装有8个核

这对于Outlook之类的应用程序来说非常有用,因为它不是计算密集型应用程序,但需要同时执行大量操作,以便在通过网络连接检查电子邮件时保持GUI的响应性

但是对于计算密集型应用程序,如MATLAB,它不会给您任何实际的速度提高,因为操作只是交错的-您没有增加4个实际物理内核可以完成的工作量。此外,在执行超线程读取时会有一小部分开销


根据我的经验,MATLAB将通过关闭超文本阅读稍微受益。(当然,其他东西,如Outlook,将不会:您的选择)。

您是否尝试设置使用
parpool
的工作人员数量?请看,可能吧?这很有效,谢谢。不过,我希望能找到一种“修复”
matlabpool
的方法,因为它更方便用户。感谢您的解释,它确实不会总是加快计算速度,甚至会根据计算结果降低一些速度。