这不是一个容易回答的问题。毫不奇怪,计算机体系结构相当复杂。以下是一些指导原则,但这些也只是简化。这很大程度上取决于您的应用程序以及您正在工作的限制(业务和技术)。
CPU有几个(一般2-3个)CPU 上的缓存级别 http://en.wikipedia.org/wiki/CPU_cache。一些现代 CPU 的芯片上还有一个内存控制器。这可以大大提高核心之间交换内存的速度。 CPU 之间的内存 I/O 必须通过外部总线进行,这往往会比较慢。
AMD/ATI芯片使用超传输 http://en.wikipedia.org/wiki/HyperTransport,这是一个点对点协议。
然而,总线架构使这一切变得复杂。 Intel 的 Core 2 Duo/Quad 系统使用共享巴士 http://en.wikipedia.org/wiki/Front-side_bus。可以将其想象为以太网或有线互联网,其中只有这么多带宽可供使用,每个新参与者只能从整体中获取另一份份额。 Core i7 和更新的 Xeons 使用快速通道 http://en.wikipedia.org/wiki/Intel_QuickPath_Interconnect,这与 HyperTransport 非常相似。
更多的核心将占用更少的空间,使用更少的空间和更少的功率,并且成本更低(除非您使用功率非常低的CPU),无论是在每个核心方面还是其他硬件(例如主板)的成本。
一般来说,一个 CPU 是最便宜的(无论是硬件还是软件)。为此可以使用商品硬件。一旦您使用第二个插槽,您往往必须使用不同的芯片组、更昂贵的主板以及通常更昂贵的 RAM(例如 ECC 全缓冲 RAM),因此您将承受从一个 CPU 到两个 CPU 的巨大成本打击。这是许多大型网站(包括 Flickr、Google 等)使用的原因之一数千商品服务器(虽然 Google 的服务器在某种程度上进行了定制,包括 9V 电池之类的东西,但原理是相同的)。
您的编辑实际上并没有太大变化。 “性能”是一个非常主观的概念。表现在什么方面?但请记住,如果您的应用程序没有足够的多线程(或多进程)来利用额外的内核,那么您实际上可以通过添加更多内核来降低性能。
I/O 密集型应用程序可能不会更喜欢其中一种。毕竟,它们受 I/O 而不是 CPU 的约束。
对于基于计算的应用程序来说,这取决于计算的性质。如果您正在执行大量浮点运算,那么通过使用 GPU 来卸载计算(例如使用英伟达CUDA http://en.wikipedia.org/wiki/CUDA)。你可以获得一个huge性能由此受益。看看Folding@Home 的 GPU 客户端 http://techreport.com/articles.x/11022举个例子。
简而言之,您的问题无法给出具体答案,因为主题很复杂并且信息不足。技术架构必须针对特定应用程序进行设计。