不能将核心 i7 中的所有 8 个核心用于 matlab
can't use all 8 cores in core i7 for matlab
当我执行
matlabpool open 4;
一切正常,但当我尝试执行时
matlabpool open 8;
错误立即发生。我阅读了有关超线程的信息,并且知道 8 个内核中有 4 个是虚拟的。这是否意味着我不能以有效的方式使用所有 8 个核心
parfor loop
在 Matlab 中?
比如我有8个类似的独立任务
我可以在 python 或 C#/C++ 中使用所有 8 个核心,加速速度快 8 倍吗?
默认情况下,MATLAB 使用您机器上的物理内核数而不是超线程内核数,因为超线程最终仍共享相同的物理 CPU 资源。关于 may/may 在 MATLAB Answers
上的 post 中使用超线程没有好处的特定情况有更多信息
如果您想使用 8 个工人,您需要修改 'local'
配置的 NumWorkers
属性
cluster = parcluster('local');
cluster.NumWorkers = 8;
saveProfile(cluster);
或者,您可以设置最大计算线程数以用于 maxNumCompThreads
maxNumCompThreads(8)
当我执行
matlabpool open 4;
一切正常,但当我尝试执行时
matlabpool open 8;
错误立即发生。我阅读了有关超线程的信息,并且知道 8 个内核中有 4 个是虚拟的。这是否意味着我不能以有效的方式使用所有 8 个核心
parfor loop
在 Matlab 中?
比如我有8个类似的独立任务
我可以在 python 或 C#/C++ 中使用所有 8 个核心,加速速度快 8 倍吗?
默认情况下,MATLAB 使用您机器上的物理内核数而不是超线程内核数,因为超线程最终仍共享相同的物理 CPU 资源。关于 may/may 在 MATLAB Answers
上的 post 中使用超线程没有好处的特定情况有更多信息如果您想使用 8 个工人,您需要修改 'local'
配置的 NumWorkers
属性
cluster = parcluster('local');
cluster.NumWorkers = 8;
saveProfile(cluster);
或者,您可以设置最大计算线程数以用于 maxNumCompThreads
maxNumCompThreads(8)