在 Microsoft Windows 上使用 7-Zip 进行压缩时,使用比 CPU 虚拟核心数量更多的 CPU 线程有什么意义呢?

在 Microsoft Windows 上使用 7-Zip 进行压缩时,使用比 CPU 虚拟核心数量更多的 CPU 线程有什么意义呢?

在 Microsoft Windows 上使用 7-Zip 进行压缩时,使用比 CPU 虚拟核心数量更多的 CPU 线程有什么意义呢?

例如,在下面的屏幕截图中,我有 6 个 CPU 物理核心、12 个 CPU 虚拟核心,并且 7-Zip 建议使用最多 24 个线程:

在此处输入图片描述

答案1

经过评论之后,我猜这会成为一个框架挑战。

让我们假设软件不会主动计算核心来填充下拉菜单,因此我们在下拉菜单中只有“一堆数字”[我可能错了,但这似乎是最简单的解释]。

这给我们留下了一个更通用的问题,“并行进程使用的最佳核心数是多少?”

这个问题的答案经常被争论,但我基于经验主义的看法是,“最佳”核心数是你的真实的核心数。与任何并行任务一样,每个线程都具有同等的“重要性”,因此,一旦超过实际核心数并进入超线程,就会开始在 CPU 管理中产生调度冲突,因此,尽管你可能实际上增加了总体吞吐量,但这样做的收益却在递减。

一个相当简单的测试方法是使用虚拟机来执行非常繁重的任务,例如应用程序编译或视频压缩。通过改变分配给虚拟机的核心数量,您可以很快看到这个“理想”是如何实现的。[这假设没有其他瓶颈;我的测试是在一对 6 核 [真正的] Xeon 上进行的,因此有 24 个 HT 线程、64GB RAM、2 个 SSD 驱动器,以将尽可能多的读/写与实际结果分开]

相关内容