线程性能损失

线程性能损失

模拟是从命令行调用的。双核机箱(4 个逻辑 CPU 或线程)可以同时运行 4 个模拟(表面上)。

是否有一个思考过程或测量方法来了解每个核心运行两个模拟的性能损失?理想情况下,应该能够进行测量。

答案1

对此没有明确的答案,因为这取决于很多因素。

  • 如果您的计算完全受 CPU 限制,您可能会看到从 2 核/2 线程到 2 核/4 线程的巨大飞跃。在非常特殊的情况下,理论增益可能达到 100%。
  • 如果计算纯粹受内存限制(例如,一个线程已经使用内存的最大可用带宽),那么您根本不会获得任何收益。

当您添加缓存命中(两倍的模拟实际上是每个模拟可用的 CPU 缓存的一半)、CPU 外部行为等时,它会变得更加复杂。

考虑到典型系统中的各种程序,通过在 Intel/AMD CPU 上启用超线程,可以合理地获得约 1/3 的速度提升。因此一般来说这是有利的。但效果因程序而异,有时甚至会测量出 40% 的速度损失。因此,唯一可行的答案是在您的特定设置上进行测试。

相关内容