Answers:
好吧,这是关于水平缩放而不是垂直缩放。在过去,它们曾经使CPU越来越快。随着时间的流逝,CPU的速度从只有几兆赫兹增加到高达3千兆赫兹的超高速。但是,当达到3 GHz的速度时,CPU制造商发现他们可以将速度提高到单个CPU内核的极限。
在这场速度竞赛中,对于那些需要更多功能的应用程序(例如服务器和CGI渲染场),引入了多插槽CPU主板。这允许在主板上放置一个以上的CPU(通常是两个)。能够同时利用多个CPU的操作系统可以运行通过利用这两个功能来分配负载的软件,从而在两个CPU上分配负载,从而提高了执行速度。
快进到今天。达到了CPU速度极限,而不是垂直扩展(使其更快),CPU制造商开始通过在单个芯片上放置多个内核来水平扩展。当前双核芯片非常普遍,很快四核将成为标准。现在,假设您在单个主板上放置了两个四核。这意味着操作系统将可以访问8个CPU,全部运行在3 GHz左右。
除了多核CPU外,还有一个“假”双核CPU,它使用一种称为“超线程”的技术。通过超线程,CPU实际上模拟了两个CPU,而实际上只有一个实际内核存在。CPU知道如何通过以特定方式调度指令来利用通常会停机的时间,从而获得更高的效率。
从软件开发的角度来看,差异很小。
一些编写不正确的多线程应用程序可能会意外地在多核处理器上运行,但在多处理器主板上却无法运行,但是我不会因此而失去太多睡眠,因为...好吧...我们在错误地谈论书面软件。
对于相同的可用内核总数(例如1个4核处理器与2个2个2核处理器),两种方案之间的主要区别在于,在多处理器方案的情况下,通常会有更大的聚合内存-带宽。这意味着对于任何占用大量内存的工作负载,使用后者可能会更好。但是请注意,锁定原语实际上可能会稍慢一些(取决于硬件实现),因此使用大量同步的算法实际上可能在后者上表现较差。
即使这样,我也不会对这种差异感到担心,因为如果您在这种差异很重要的领域工作,那么您很可能已经知道这一点(特定领域的知识)。