2009-07-15 15:38:47 +0000 2009-07-15 15:38:47 +0000
68
68

CPU核心。越多越好?

我目前工作时用的是双核处理器,家里用的是四核处理器。我注意到这两台电脑在启动应用程序/上网方面都是相当平等的。

我能看到的区别是,我的双核是2.8GHz,四核是2.4GHz。

**是时钟速度快的双核好还是时钟速度一般的四核好?

Ответы (12)

53
53
53
2009-07-15 15:42:45 +0000

注:这个答案是8年前写的。此后,并行编程变得更加相关。这可能是由于固有的时钟速度限制和快速接近的晶体管尺寸限制。


你的主要问题是软件不是为多核编写的。

看看Jeff Atwood的优秀文章 选择双核还是四核 .

对于大多数软件来说,在两个核心之后,你会迅速达到一个收益递减的点。在 四核桌面和收益递减 中,我质疑了今天的软件如何有效地使用甚至四个 CPU 核心,更不用说几年后我们将看到的不可避免的八个和十六个 CPU 核心了。

你在这里得到了答案(亮点抄自Jeff的文章),

不过,这里面也有一些惊喜,比如Excel 2007,以及失落星球的 “并发操作 "设置。有可能软件工程最终会发展到时钟速度比并行性更不重要的地步。或者最终它可能会变得无关紧要,如果我们不能在更快的时钟速度和更多的CPU内核之间做出选择的话。但与此同时,时钟速度在大多数时候都会获胜。更多的CPU核心并不是自动更好。典型的用户最好选择他们能负担得起的最快的双核CPU。


**前端总线* 的问题(这个词总是让我感到好笑)。


前端总线 (这个词一直让我觉得很有趣)。

摩尔定律给处理器设计者带来了晶体管财富的尴尬,这一点在英特尔的45纳米Nehalem处理器上表现得最为明显。今年晚些时候,Nehalem将推出4核和8核版本,它将一吨的硬件装进一个处理器插座中。早期数据显示,四核Nehalem的晶体管数量为7.81亿个;8核型号的数据尚未出现。但是,试图用英特尔平台现有的前端总线架构来喂养所有这些硬件是愚蠢的。所以,同样重要的是,Nehalem也为英特尔积极老龄化的前端总线架构敲响了久违的丧钟。

英特尔新的QuickPath Interconnect(QPI)所代表的英特尔系统带宽情况的彻底改变,也许是形成Nehalem设计的最大单一因素。在QuickPath和Nehalem的集成内存控制器之间,Nehalem处理器将可以获得前所未有的总带宽,特别是在双插槽和四插槽实现中。

AMD较早地将内存控制器移入处理器中,并使用了Hypertransport。

18
18
18
2009-07-15 15:41:59 +0000

根据我的经验,从一个核心到两个核心有一个巨大的性能优势。突然间,一个高CPU的程序不会锁住你的机器,也不会让它变得异常缓慢。巨大的差别。

但是两个到四个?对于99%的人来说,不会有什么区别。你必须同时运行大量的程序,或者使用可以利用2个以上内核的程序(现实中没有那么多这样的程序)。我想到了某些媒体编码器。

Intel Core 2s和AMD Phenoms在这方面也有区别。AMD使用的是Hypertransport,这是一个点对点的协议,所以每个核心都有专用带宽。英特尔酷睿2s(但不是酷睿i7s和其他基于Niehalem的CPU)使用前端总线,这是共享带宽,所以你有更多的核心竞争相同的带宽。

这在某些情况下,有可能会让同时钟的四核(略微)变慢。性价比高的还是双核IMHO。也就是说,我有一个四核。

10
10
10
2009-07-15 15:53:09 +0000

我喜欢Donald Knuth总结:

在我看来,这多少有点像硬件设计者已经没有想法了,他们正试图把摩尔定律未来消亡的责任推给软件编写者,给我们提供只在几个关键基准上工作得更快的机器。如果整个多线程的想法被证明是失败的,我一点也不会感到惊讶,比 “Itanium "的方法更糟糕,那应该是非常了不起的–直到它被发现,希望的编译器基本上是不可能写出来的。

让我这么说吧。在过去的50年里,我写了超过1000个程序,其中很多都有相当大的规模。在这些程序中,我想不出哪怕是5个会因为并行或多线程而得到明显增强的程序。当然,比如说,多个处理器对TeX是没有帮助的。

对于某些应用程序来说,利用多核是非常容易的。但其他一些应用程序将永远不会受益,而其他应用程序可能会受益,如果开发人员对它们进行优化(这是非常困难的)。

5
5
5
2009-07-15 15:48:54 +0000

在我的雇主那里,我使用的是一台双四核Xeon机器,有8GB的内存。

当我在编程时,我有Internet Explorer、Chrome、TweetDeck、Visual Studio 2008(或2010)和一个本地Sql Server Express实例……一切都很正常。

相对而言,我之前有一个双核,只运行Visual Studio、Chrome和Sql Express,事情就会开始爬行。

其问题在于你用机器做什么。如果你是一个强大的用户,将是视频编辑,三维建模,或编程与大量的资源……那么是的,你将需要四核和大量的内存。

1
1
1
2009-07-15 16:56:28 +0000

根据Anandtech.com:

这一切都归结于芯片的TDP,或者说它的热设计点。一个平台的TDP限制越多,你就越能从英特尔的Turbo模式中获益。让我换一种方式,为了在130W的TDP中容纳4个核心,每个核心都必须以较低的时钟速度运行,而不是在相同的TDP下只有一个核心。

在较高的TDP下,通常有足够的热余量让单个核心运行得很高。在较低的TDP下,CPU制造商必须在核心数量和时钟速度之间做出权衡–这就是我们可以享受一些乐趣的地方。

这都是在不得不在核心(或线程)和核心频率之间做出选择的情况下。

1
1
1
2009-07-15 15:43:26 +0000

这要看情况。如果你做的事情会大量使用每个核心,4个核心更好(视频编辑、渲染等)。目前大多数人会觉得两个快的核心更好,因为没有多少应用程序是为了充分利用4个核心而编写的。

1
1
1
2009-07-15 15:49:30 +0000

需要注意的是,最新的i7处理器在不需要全部核心的情况下,实际上可以提高活动核心的时钟速度;比如,如果你的四核在2.4GHz,但软件只需要2个核心运行,那么它的时钟可能会自动提高到2.8GHz(不是实际数字,只是举例)。

而最新一代的i7我认为如果只需要一两个核心的话,可以把时钟调到3、4个宾格。因此,最后可能就不会像目前那样停留在取舍上了……

1
1
1
2009-07-15 15:43:13 +0000

对于日常使用和未进行多核优化的程序,快速的双核将击败较慢的四核。

随着时间的推移,适当的多线程应用程序将成为标准,四核将领先。

从性价比的角度来看,双核仍然有很好的领先优势。

0
0
0
2009-07-15 15:44:50 +0000

取决于你正在做什么,以及你的操作系统和应用程序的能力。

如果你有一个轻量级的操作系统,并且运行一个只能使用一个处理器的单一CPU绑定的应用程序,那么两个速度更高的处理器将是一个更好的选择。

否则,如果操作系统可以有效地安排所有的核心,而你正在运行许多应用程序或应用程序,可以使用一个以上的处理器,那么较慢的四核处理器将有望以较低的功耗和较少的热量输出获得更好的性能。

0
0
0
2009-07-20 05:41:55 +0000

要看情况。

非常多。

你可以很容易地找到一个只使用两个核心的四核。这部分与操作系统和软件的设计有关。更何况,它们还是共享其他一切,尤其是内存、磁盘和设备。

你知道操作系统的启动速度不会(明显)更快,网页的下载速度也不会更快(虽然可能会画得更快)。

0
0
0
2009-07-15 15:46:35 +0000

如果你正在进行大量的视频编码、3D渲染或分布式源代码构建,那么核心越多越好。当你从1到2到4到8个核心时,你会看到这些类型的应用在性能上有明显的差异。

否则运行标准应用真的不会从更多的核心中获益。即使是游戏也不会对多核有那么大的利用。IMO,你最好花钱买个更好的显卡。

0
0
0
2009-07-15 15:43:11 +0000

在你的情况下,四核会更好。记住,你拥有的核心越多,你可以做的并联处理就越多。因此,在你的双核上,你可能比四核更快地运行一个应用,但四核可以比你的双核更快地运行4个应用。另外,如果一个应用被写成parrallel(多线程)处理,那么这个应用在多核架构上会运行得更好。

不过这都是相对的,因为一个运行在100 Mhz的四核不会比双核4 Ghz的性能好。不过一般来说,核心越多越好。