CPU核心。越多越好?
我目前工作时用的是双核处理器,家里用的是四核处理器。我注意到这两台电脑在启动应用程序/上网方面都是相当平等的。
我能看到的区别是,我的双核是2.8GHz,四核是2.4GHz。
**是时钟速度快的双核好还是时钟速度一般的四核好?
我目前工作时用的是双核处理器,家里用的是四核处理器。我注意到这两台电脑在启动应用程序/上网方面都是相当平等的。
我能看到的区别是,我的双核是2.8GHz,四核是2.4GHz。
**是时钟速度快的双核好还是时钟速度一般的四核好?
注:这个答案是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。
根据我的经验,从一个核心到两个核心有一个巨大的性能优势。突然间,一个高CPU的程序不会锁住你的机器,也不会让它变得异常缓慢。巨大的差别。
但是两个到四个?对于99%的人来说,不会有什么区别。你必须同时运行大量的程序,或者使用可以利用2个以上内核的程序(现实中没有那么多这样的程序)。我想到了某些媒体编码器。
Intel Core 2s和AMD Phenoms在这方面也有区别。AMD使用的是Hypertransport,这是一个点对点的协议,所以每个核心都有专用带宽。英特尔酷睿2s(但不是酷睿i7s和其他基于Niehalem的CPU)使用前端总线,这是共享带宽,所以你有更多的核心竞争相同的带宽。
这在某些情况下,有可能会让同时钟的四核(略微)变慢。性价比高的还是双核IMHO。也就是说,我有一个四核。
我喜欢Donald Knuth总结:
在我看来,这多少有点像硬件设计者已经没有想法了,他们正试图把摩尔定律未来消亡的责任推给软件编写者,给我们提供只在几个关键基准上工作得更快的机器。如果整个多线程的想法被证明是失败的,我一点也不会感到惊讶,比 “Itanium "的方法更糟糕,那应该是非常了不起的–直到它被发现,希望的编译器基本上是不可能写出来的。
让我这么说吧。在过去的50年里,我写了超过1000个程序,其中很多都有相当大的规模。在这些程序中,我想不出哪怕是5个会因为并行或多线程而得到明显增强的程序。当然,比如说,多个处理器对TeX是没有帮助的。
对于某些应用程序来说,利用多核是非常容易的。但其他一些应用程序将永远不会受益,而其他应用程序可能会受益,如果开发人员对它们进行优化(这是非常困难的)。
在我的雇主那里,我使用的是一台双四核Xeon机器,有8GB的内存。
当我在编程时,我有Internet Explorer、Chrome、TweetDeck、Visual Studio 2008(或2010)和一个本地Sql Server Express实例……一切都很正常。
相对而言,我之前有一个双核,只运行Visual Studio、Chrome和Sql Express,事情就会开始爬行。
其问题在于你用机器做什么。如果你是一个强大的用户,将是视频编辑,三维建模,或编程与大量的资源……那么是的,你将需要四核和大量的内存。
这一切都归结于芯片的TDP,或者说它的热设计点。一个平台的TDP限制越多,你就越能从英特尔的Turbo模式中获益。让我换一种方式,为了在130W的TDP中容纳4个核心,每个核心都必须以较低的时钟速度运行,而不是在相同的TDP下只有一个核心。
在较高的TDP下,通常有足够的热余量让单个核心运行得很高。在较低的TDP下,CPU制造商必须在核心数量和时钟速度之间做出权衡–这就是我们可以享受一些乐趣的地方。
这都是在不得不在核心(或线程)和核心频率之间做出选择的情况下。
这要看情况。如果你做的事情会大量使用每个核心,4个核心更好(视频编辑、渲染等)。目前大多数人会觉得两个快的核心更好,因为没有多少应用程序是为了充分利用4个核心而编写的。
如果你正在进行大量的视频编码、3D渲染或分布式源代码构建,那么核心越多越好。当你从1到2到4到8个核心时,你会看到这些类型的应用在性能上有明显的差异。
否则运行标准应用真的不会从更多的核心中获益。即使是游戏也不会对多核有那么大的利用。IMO,你最好花钱买个更好的显卡。