程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在相同的物理 CPU 内核上同步速度是否更快?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在相同的物理 CPU 内核上同步速度是否更快??

开发过程中遇到在相同的物理 CPU 内核上同步速度是否更快?的问题如何解决?下面主要结合日常开发的经验,给出你关于在相同的物理 CPU 内核上同步速度是否更快?的解决方法建议,希望对你解决在相同的物理 CPU 内核上同步速度是否更快?有所启发或帮助;

有一个问题。如果一个线程修改了一个变量,同一个物理核心(不同的超线程核心)上的线程会比其他核心更早看到修改吗?还是必须等到所有其他内核都看到它?

我一直在尝试将两个线程固定在同一个物理核心上,但性能下降。我知道这是因为两个内核共享大量资源。但在同步方面。将线程放在同一个物理核心上会有帮助吗?

谢谢!

解决方法

答案取决于平台(尤其是底层架构)。话如此,在(主流)x86-64 架构上,共享相同内核的线程比不同内核甚至不同套接字上的线程通信速度更快。一个主要原因是两个线程通常会共享相同的 L1 缓存(如果不是,则为 L2 缓存)。这样,on thread 就可以直接读取对方刚刚写的内容了。此外,由于同时多线程(在 Intel CPU 上称为超线程)减少了通信延迟(没有调度时间等待),线程通常可以并行运行。 同时,不同内核上的线程将不得不通过(慢速)总线进行通信或使用 L3 缓存共享数据(明显慢于 L1/L2)。

那么您的工作负载受通信(延迟或吞吐量)的约束,通常最好将线程彼此靠近(即在同一个核心上)。当每个内核的线程数超过硬件线程数时,由于抢占式多任务处理而导致性能下降。当工作负载受计算限制时,最好将它们放在单独的内核上。请注意,在现代 x86 处理器上,在同一内核上工作的线程甚至可以在指令级别共享计算资源 (ALU)。

大佬总结

以上是大佬教程为你收集整理的在相同的物理 CPU 内核上同步速度是否更快?全部内容,希望文章能够帮你解决在相同的物理 CPU 内核上同步速度是否更快?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:CPU