【发布时间】: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