【问题标题】:use all cores of CPU使用 CPU 的所有内核
【发布时间】:2016-05-31 20:26:28
【问题描述】:

我想在matlab上使用并行计算,我有4核8线程的i7-960 CPU,当我在matlab中运行feature('numCores')命令时,我得到了这个

feature('numCores') 
MATLAB detected: 3 physical cores.
MATLAB detected: 6 logical cores.
MATLAB was assigned: 6 logical cores by the OS.
MATLAB is using: 3 logical cores.
MATLAB is not using all logical cores because hyper-threading is enabled.

ans =

     3

为什么 matlab 只检测到 3 个物理内核!以及如何使用所有逻辑和物理内核进行并行计算。 谢谢。

【问题讨论】:

  • 你能试试parpool(6)看看会发生什么吗?此外,超线程并没有真正提高效率,它更多的是用于轻量级的东西。
  • 你可以看看this post 并在matlab的偏好设置中设置线程数。此外,由于 feature 不受支持且未记录在案,因此很难说出其结果的真正含义。
  • 当我尝试 parpool(6) 时出现此错误:使用 parpool 时出错(第 99 行)您要求至少 6 个工作人员,但集群“本地”的 NumWorkers 属性设置为允许最多3 名工人。要在比这更多的工作人员上运行通信作业(本地集群最多为 512),请增加集群的 NumWorkers 属性的值。本地集群的 NumWorkers 的默认值是本地机器上的核心数。

标签: matlab parallel-processing intel cpu-speed hyperthreading


【解决方案1】:

要使用所有逻辑进程(线程数),您需要更改 matlab 设置中的 NumWorkers。 在 matlab 2018 菜单中遵循以下内容: 首选项>>并行计算工具箱>>集群配置文件管理器>>单击右下角的“编辑”>>将“NumWorkers”设置为逻辑进程的数量,在您的情况下为8。 > 完成 >> 关闭并申请

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2018-12-15
    • 2020-01-07
    • 2017-11-22
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多