【问题标题】:Using matlabpool with a specified number of workers将 matlabpool 与指定数量的工作人员一起使用
【发布时间】:2015-06-02 16:01:27
【问题描述】:

我一直在使用命令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。

【问题讨论】:

标签: matlab parallel-processing hyperthreading matlabpool


【解决方案1】:

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

但是,我建议坚持使用 MATLAB 建议的默认 4 个工作器,而不是使用 8 个。移动到 8 个不太可能显着加快速度,甚至可能会减慢速度。

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

这对于诸如 Outlook 之类的应用程序来说非常有用,这些应用程序不是计算密集型,但需要大量操作同时出现,例如,在通过网络连接检查电子邮件时保持 GUI 响应。

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

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

【讨论】:

  • 感谢您的解释,确实它并不总是加快计算速度,甚至会根据计算减慢一些速度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多