更高的核心数或更高的时钟速度对计算机的性能更有利吗?

Bre*_*ugh 16 cpu multi-processor multi-core computer-architecture parallel-processing

随着硅成本的降低和消费者需求的增加,制造商似乎正在推动两件事之一:时钟速度和/或核心数。随着事情的发展,处理器的时钟速度似乎不再提高,而是处理器内核的数量。

我只记得几年前,我有一个不错的快速单核奔腾 4 处理器。快进到今天,我认为您甚至无法购买单核处理器(更不用说甚至手机中多核处理器的增加)。事情的发展方式是,我们可能会在几年内找到具有数百个内核的计算机(我知道许多操作系统已经支持它)。

提高时钟速度还是增加内核数量对系统的整体性能更有利?假设我们要让数百个内核一起运行,或者时钟速度是我们今天的十倍(无论这在物理上是否可行)。

哪些常见过程(例如加密、文件压缩、图像/视频编辑)最能从其中一个或另一个中受益?是否有一些进程可以,但目前没有(由于技术原因)通过增加它们的并行性来加速?


假设假设的处理器具有完全相同的核心设计(字长、地址位宽、内存总线大小、缓存等),因此这里唯一的变量是时钟速度和核心数。再说一次,我不是在谈论一个、两个甚至四个内核 - 想象一下几十到几百个。

Jam*_*rtz 12

有两种基本情况需要考虑:

  1. 处理器与仅对单个程序进行计算的计算机一起使用

  2. 处理器用于多个程序同时运行

第一种情况是处理器的“速度”更为重要,因为用户希望能够快速有效地进行计算。这些情况通常用于计算密集型处理,即计算用于加密/解密的素数

第二个是多核派上用场,因为每个程序都可以分配给一个单独的核,从而使每个程序免于相互“瓶颈”。在当今世界,普通用户将同时使用他们的计算机运行多个程序,因此多核处理成为可取的事情。

但是,在所有情况下,多核!=更快的速度或更高的性能。由于大多数程序是为单核处理而编写的*,因此时钟速度仍然很重要。必须考虑两者的组合(以及许多其他因素)


*有一些程序,希望很快会创建更多程序,可以同时使用多个内核。软件的未来是通过这个“并行编程”找到的:

软件开发人员不能再仅仅依靠提高时钟速度来加速单线程应用程序;相反,为了获得竞争优势,开发人员必须学习如何正确设计他们的应用程序以在线程环境中运行。多核架构具有单个处理器包,其中包含两个或多个处理器“执行核心”或计算引擎,并通过适当的软件提供多个软件线程的完全并行执行。

-英特尔