当我执行的时候
matlabpool open 4;一切都正常工作,但是当我尝试执行
matlabpool open 8;错误立即发生。我读过关于超线程的文章,我知道8个内核中有4个是虚拟的。是否意味着我不能有效地使用所有8个内核
parfor loop 在Matlab中?
例如,我有8个类似的独立任务。
我可以在python或C#/C++中使用所有8个内核,加速速度快8倍吗?
发布于 2017-01-12 22:05:47
默认情况下,MATLAB使用物理核心的数量,而不是机器上的超线程核心的数量,因为超线程最终仍然共享相同的物理CPU资源。在MATLAB Answers上的这篇文章中,有关于使用超线程可能/可能没有好处的特定情况的更多信息
如果要使用8个工作进程,则需要修改'local'配置的NumWorkers属性
cluster = parcluster('local');
cluster.NumWorkers = 8;
saveProfile(cluster);或者,您可以设置用于maxNumCompThreads的最大计算线程数
maxNumCompThreads(8)https://stackoverflow.com/questions/41611447
复制相似问题