【发布时间】:2011-02-15 14:29:22
【问题描述】:
我已经在这里阅读了很多关于此主题的内容(例如,stackoverflow.com/questions/1713554/threads-processes-vs-multithreading-multi-core-multiprocessor-how-they-are 或 multi-CPU, multi-core and hyper-thread)和其他地方(例如,ixbtlabs.com/articles2/cpu/rmmt-l2-cache.html 或 software.intel.com/en-us/articles/multi-core-introduction/),但我仍然不确定有几个看起来很简单的事情。所以我想我只是问问。
(1) 每个内核都有专用高速缓存的多核处理器是否与多处理器系统一样有效(当然要在处理器速度、高速缓存大小等方面进行平衡)?
(2) 假设我有一些图像要分析(即计算机视觉),并且我将这些图像加载到 RAM 中。我的应用程序为每个需要分析的图像生成一个线程。此应用在共享缓存多核处理器上的运行速度是否会比在专用缓存多核处理器上的运行速度慢,并且后者的运行速度是否与在等效单核多处理器机器上的运行速度相同?
感谢您的帮助!
【问题讨论】:
-
意识到你在这里的理论领域。从实际的角度来看,您不太可能注意到任何这些选项之间的明显差异。如果这只是智力上的好奇,那很好,但如果你真的试图围绕这些变量进行计划,这就是过早优化的定义。
-
@Adam 我不同意。缓存效果可能会产生相当壮观的伪影,此外,必须计算 cpu 包之间的总线通信如何影响性能以及内存库如何映射到处理器
-
@aaa:壮观(这是一个词吗?)在旁观者的眼中。是的,有一些极端的极端情况,在这个问题中提出的各种设置可能会在性能上有显着差异,但是 a)在考虑整个软件开发时,这些情况非常罕见,并且 b)创建一个全面的(甚至一般来说很好-covered) 确定此类情况的指南几乎是不可能的。
-
@Adam 好吧,我同意你的观点(极端情况)。然而,根据我最近的经验,一些线性代数发生了有趣的事情,添加额外的多核处理器实际上会减慢速度。
-
缓存效果可能非常引人注目,谷歌“虚假分享”有很多关于此的激动人心的讨论。
标签: multithreading multicore multiprocessor