Matlab parfor中的工人数

问题描述 投票:0回答:1

我正在使用MATLAB的parfor函数运行for循环。我的CPU规格是

enter image description here

我将首选的工作程序数量设置为24。但是,MATLAB将该工作程序数量设置为6。工作程序数量是否受内核数量或(内核数量)x(处理器数量= 6x12?)的限制?

matlab parallel-processing parfor
1个回答
0
投票

Matlab将工作程序的数量限制为内核数(在您的情况下为六个)。您的CPU(intel i7-9750H)具有超线程功能,即每个内核可以运行多个(这里为2个)线程。但是,如果要在满负荷下运行它们,这是没有用的,这意味着根本没有资源可用于切换到其他任务(其他线程实际上是有效的)。

注意,Matlab需要将数据流传输到每个内核,以运行分布式代码。这是某种初始化工作,也是如果将核心/工作人员的数量增加一倍将无法将运行时间减少一半的原因。这也解释了为什么Matlab无法利用超线程。这仅意味着在不提高速度的情况下增加初始流工作量-实际上,核心可能会迫使matlab保存中间结果并不时切换到其他任务...这与之前的任务相同;)

© www.soinside.com 2019 - 2024. All rights reserved.