Performance 增加cpu核心与性能直接相关?

Performance 增加cpu核心与性能直接相关?,performance,architecture,computer-architecture,Performance,Architecture,Computer Architecture,简单的问题,增加核心与性能直接相关 我的理解(如果我错了,请纠正我)是在多核系统、通信开销和内存方面 与单核相比,延迟是性能的限制因素。也许一个具有大型一级和二级缓存的单核系统可以比核心2 DUO执行得更好?但为什么在几乎每一种新的体系结构中,核心的数量都在增加呢。一定有我在这里想知道的原因 谢谢你的帮助 这取决于您的软件。如果您有CPU密集型计算任务,这些任务不需要太多的外部通信,并且需要并行处理,那么多核是垂直扩展的方式。与单核CPU相比,它的性能会更好…因为它可以并行执行计算任务(同样取决

简单的问题,增加核心与性能直接相关

我的理解(如果我错了,请纠正我)是在多核系统、通信开销和内存方面 与单核相比,延迟是性能的限制因素。也许一个具有大型一级和二级缓存的单核系统可以比核心2 DUO执行得更好?但为什么在几乎每一种新的体系结构中,核心的数量都在增加呢。一定有我在这里想知道的原因


谢谢你的帮助

这取决于您的软件。如果您有CPU密集型计算任务,这些任务不需要太多的外部通信,并且需要并行处理,那么多核是垂直扩展的方式。与单核CPU相比,它的性能会更好…因为它可以并行执行计算任务(同样取决于利用并行执行的特定任务)。例如,数据库服务器通常利用并行处理,并在多核CPU上进行大规模扩展

一旦垂直限制耗尽,您可以通过在集群中引入多个节点来水平扩展,并且您需要协调任务执行

关于你的问题:

但是,为什么在几乎每一种新的体系结构中,核心的数量都会增加呢 正在增加


原因之一是软件的发展利用了并行处理和硬件来满足这种需求

这取决于您的软件。如果您有CPU密集型计算任务,这些任务不需要太多的外部通信,并且需要并行处理,那么多核是垂直扩展的方式。与单核CPU相比,它的性能会更好…因为它可以并行执行计算任务(同样取决于利用并行执行的特定任务)。例如,数据库服务器通常利用并行处理,并在多核CPU上进行大规模扩展

一旦垂直限制耗尽,您可以通过在集群中引入多个节点来水平扩展,并且您需要协调任务执行

关于你的问题:

但是,为什么在几乎每一种新的体系结构中,核心的数量都会增加呢 正在增加


原因之一是软件的发展利用了并行处理和硬件来满足这种需求

通常,在系统中扩展内核时,内存延迟和带宽都是一个问题。注意:可能有专门的例外情况,但大体上大多数现代系统在6+硬件内核访问内存之前不会开始遇到内存瓶颈

然而,通信开销可能非常昂贵。造成这种情况的技术原因极其复杂,超出了我的回答范围——有些方面与硬件有关,但另一些方面与一个内核阻塞另一个内核以完成其计算的成本有关。。两者都不好。因此,使用多个核心的程序/应用程序通常必须尽可能减少核心之间的通信。这限制了可以卸载到单独内核上的任务类型

新系统正在添加更多内核,这仅仅是因为它在技术上是可行的。例如,提高单核性能在技术上和经济上都不再可行。我所认识的几乎所有应用程序程序员都绝对喜欢一个超高速内核,而不是必须弄清楚如何有效地利用12个内核。但是芯片制造商不能生产这样的核心,即使你给他们数千万美元

只要光速是一个固定的常数,并行处理就会一直存在。正如今天一样,CPU中的大部分速度改进都是由于单个指令的并行处理。尽可能多地,一个Core2Duo(例如)将并行运行多达四条指令。这是因为在许多程序中,指令序列通常不会立即相互依赖:

  • a=g_Var1+1
  • b=g_Var2+3
  • c=b*a
  • d=g_Var3+5
    现代CPU实际上将并行执行第1、2和4行,然后返回并完成第3行——通常与第5、6行中的任何内容并行(假设其中任何一行都不需要“c”变量结果)。这是必要的,因为我们加快或缩短执行任何单个指令的管道的能力非常有限。因此,工程师们一直专注于“扩展”——更多的指令并行,更多的内核并行,更多的计算机并行(最后一个类似于云计算、BOINC或@home项目)。

    一般来说,在系统中扩展内核时,内存延迟或带宽都是一个问题。注意:可能有专门的例外情况,但大体上大多数现代系统在6+硬件内核访问内存之前不会开始遇到内存瓶颈

    然而,通信开销可能非常昂贵。造成这种情况的技术原因极其复杂,超出了我的回答范围——有些方面与硬件有关,但另一些方面与一个内核阻塞另一个内核以完成其计算的成本有关。。两者都不好。因此,使用多个核心的程序/应用程序通常必须尽可能减少核心之间的通信。这限制了可以卸载到单独内核上的任务类型

    新系统正在添加更多内核,这仅仅是因为它在技术上是可行的。例如,提高单核性能在技术上和经济上都不再可行。我所认识的几乎所有应用程序程序员都绝对喜欢一个超高速内核,而不是必须弄清楚如何有效地利用12个内核。但是芯片制造商可以