擅长:python、mysql、java
<p>我认为你缺少的部分原因是你天真的估计假设每个工作单元花费的时间相同,在这种情况下,你的策略是最好的。但是,如果某些作业比其他作业完成得更快,则某些核心可能会变得空闲,等待缓慢的作业完成。</p>
<p>因此,通过将块分解成4倍多的块,如果一个块提前完成,那么核心可以开始下一个块(而其他核心继续处理速度较慢的块)。</p>
<p>我不知道他们为什么选择因子4,但这将是在最小化映射代码的开销(这需要尽可能大的块)和平衡块占用不同时间(这需要尽可能小的块)之间的权衡。</p>