随着硅片成本的降低和消费者需求的增加,制造商似乎在推动两件事之一:时钟速度和/或核心数量。从目前的情况来看,似乎不再是处理器的时钟速度在上升,而是处理器核心的数量在上升。
我记得几年前,我拥有一款速度很快的单核 Pentium 4 处理器。快进到今天,我认为你甚至都买不到单核处理器(更不用说多核处理器的不断增加)甚至在手机中)。照这样发展下去,几年后我们可能会发现拥有数百个核心的计算机(我知道许多操作系统已经支持它了)。
提高时钟速度或增加内核数量对系统整体性能哪个更有利?假设我们让数百个内核同时运行,或者将时钟速度提高到目前的十倍(无论这在物理上是否可行)。
有哪些常见流程(例如加密、文件压缩、图像/视频编辑)最能从其中获益?有哪些流程能但是目前由于技术原因,没有通过增加并行性来加快速度?
假设假设的处理器具有完全相同的核心设计(字长、地址位宽、内存总线大小、缓存等),因此这里唯一的变量是时钟速度和核心数量。再说一遍,我说的不是 1 个、2 个甚至 4 个核心 - 想象一下数十到数百个核心。
答案1
有两种基本情况需要考虑:
该处理器与仅为单个程序进行计算的计算机一起使用
处理器用于同时运行多个程序
第一种情况是处理器“速度”更重要,因为用户希望能够快速高效地进行计算。这些情况通常用于计算密集型处理,即计算素数加密/解密
第二个是多核的用武之地,因为每个程序都可以分配给一个单独的核心,从而使每个程序不再相互“瓶颈”。在当今世界,普通用户会同时使用他们的计算机运行多个程序,因此多核处理是一件令人向往的事情。
然而,多核!=在所有情况下,速度更快或性能更高。由于大多数程序都是为单核处理编写的*,因此时钟速度仍然很重要。必须将两者结合起来考虑(还有许多其他因素)。
*有一些程序,希望很快会有更多程序,可以同时使用多个核心。软件的未来就在于此”并行编程“:
软件开发人员不能再仅依靠提高时钟速度来加速单线程应用程序;相反,为了获得竞争优势,开发人员必须学会如何正确设计其应用程序以在线程环境中运行。多核架构具有一个处理器包,其中包含两个或多个处理器“执行核心”或计算引擎,并通过适当的软件提供多个软件线程的完全并行执行。
-英特尔
答案2
我个人认为核心数量才是出路。软件开发已经转向网络系统,因此本地资源不再是你唯一可用的资源。现在你工作方式中最重要的因素是什么网络你是其中的一部分。
请注意向移动宽带、持续连接、远程访问等的转变。持续连接需要电池寿命。虽然哪些 CPU 因素对电池寿命更有利尚有争议(您有一个经典的工作价值与时间优化方程),但我个人认为,如果必须选择一个,我会选择更多核心。
英特尔现在允许您按需为核心供电。虽然不如没有核心休眠那么理想,但使用更多核心的选项可让您灵活地在同一硬件平台上运行更多应用程序。
答案3
正如 ChrisF 在评论中提到的,这取决于。但由于这样的答案并不是真正的答案,我会尝试找出一些比另一个更有益的场景:
在您提到的大多数常见进程中,内核数量并不重要,因为大多数工作都是在单个线程中完成的,而该线程一次只能在单个内核上执行。对于此类进程,单个但非常强大的内核将比几个较慢的内核表现更好。加密和文件压缩都可能是例外,但这在很大程度上取决于使用的算法以及它们是否可以并行执行。
但是,您忘记了当今计算机上最常执行的任务之一:浏览。几种流行的浏览器在单独的进程中打开每个选项卡(我确信只有 Chrome 这样做,因为它是我使用的),这意味着如果您在四核系统上打开了四个选项卡,每个浏览窗口(理论上)都可以拥有一个“自己的”核心(忽略操作系统线程等),并且速度与没有其他浏览器选项卡/窗口打开时一样快。对于一次打开多个选项卡进行浏览的人来说,这可以大大提高性能,而无需构建极快的 CPU 核心。
要知道多核系统与较慢的内核相比是否比单核系统与快速内核相比运行速度更快,关键在于你是否愿意同时做很多不同的事情或者一些很重的东西。由于这对不同用户来说会有很大差异,所以对你的问题的答案也会有很大差异。
其他答案也提出了几个重要的观点:
- 处理器性能不再完全取决于时钟速度或核心数量 - 随着时钟速度和核心数量的提高,处理器的其他部分正在成为瓶颈。
- 对于大多数用户来说,处理器性能甚至不是瓶颈。如果您花时间在 Google Docs 等托管应用程序上,网卡的速度将比处理器核心的速度更重要。如果您正在观看或编辑高分辨率电影材料,硬盘性能将更重要。等等...