如何计算多核处理器上的处理器速度?

经济的消费级多核处理器的出现为许多用户提出了一个问题:如何有效地计算多核系统的实际速度? 是4核3Ghz系统真的12Ghz吗? 请继续阅读,我们调查。

今天的问答环节由我们感谢SuperUser - Stack Exchange的一个分支,这是一个社区驱动的Q&A网站分组。

问题

SuperUser读者NReilingh很好奇如何为多核系统的处理器速度实际计算:

例如,说,具有四个核心,每个以3GHz运行的处理器实际上是以12GHz运行的处理器是正确的?

我曾经进入一个“Mac vs. PC”的论点(顺便说一下,这不是这个话题的焦点...回到中学)与一个熟人谁坚持Macs只被宣传为1Ghz机器,因为他们是双 - 处理器G4各自运行在500MHz。

当时我知道这是hogwash的原因,我认为是显而易见的大多数人,但我只是看到一个评论在这个网站上的“6核x 0.2GHz = 1.2Ghz”的效果,让我想起了是否有一个真正的答案。

因此,这是关于时钟速度计算的语义的一个或多或少的哲学/深层技术问题。 我看到两种可能性:

  1. 每个核心实际上每秒执行x个计算,因此计算的总数是x(核心)。
  2. 时钟速度相当于处理器在一秒钟的时间内经过的周期数,因此只要所有核心以相同的速度运行,每个时钟周期的速度保持相同,不管存在多少核心。 换句话说,Hz =(core1Hz + core2Hz + ...)/ cores。

那么什么是适当的方式来表示总的时钟速度,更重要的是,甚至可能在多核系统上使用单核速度命名?

答案

超级用户贡献者Mokubai帮助澄清事情。 他写:

四核3GHz处理器的速度从来没有像12GHz单核一样快的主要原因是处理在该处理器上运行的任务,即单线程或多线程。 阿姆达尔定律考虑的类型,您正在运行的任务时,是非常重要的。

如果你有一个本质上是线性的任务,并且必须精确地逐步完成,例如(一个非常简单的程序)

10: a = a + 1
20: goto 10 

那么任务高度依赖于前传的结果,而不会破坏的价值不能运行其自身的多个副本a ,因为每个副本会得到的值a在不同的时间和写回不同。 这将任务限制为单个线程,因此任何任何时间只能在单个核上运行,如果它在多个核上运行,则同步损坏将发生。 这将其限制为双核系统的cpu功率的1/2,或者四核系统中的1/4。

现在采取一项任务,如:

10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10 

所有这些线是独立的,并且可以分成像第一和运行的同时,每一个能够有效地利用芯中的一个的全功率的,没有任何同步问题4独立的程序,这就是Amdahl定律进入它。

所以如果你有一个单线程应用程序做暴力计算单个12GHz处理器将赢得双手,如果你能以某种方式使任务拆分成独立的部分和多线程,那么4核可能接近,但不是很到达,相同的表现,根据阿姆达尔定律。

多CPU系统给你的主要是响应。 在正在努力工作的单核计算机上,系统可能看起来缓慢,因为大多数时间可能被一个任务使用,而其他任务只在较大任务之间的短突发中运行,导致系统看起来迟缓或不稳定。 在多核系统上,重任务获得一个核心,所有其他任务在其他核心上运行,快速有效地完成他们的工作。

“6核x 0.2GHz = 1.2Ghz”的论点是在任何情况下的垃圾,除了任务是完全平行和独立的。 有许多高度并行的任务,但它们仍然需要某种形式的同步。 手刹是一个视频trancoder是在使用所有可用的CPU非常好,但它确实需要一个核心进程,以保持填充数据的其他线程并收集它们与完成的数据。

  1. 每个核心实际上每秒执行x个计算,因此计算的总数是x(核心)。

每个核心都能够每秒执行x个计算,假设工作负载是合适的并行,在线性程序上,您拥有的是1个核心。

  1. 时钟速度相当于处理器在一秒钟的时间内经过的周期数,因此只要所有核心以相同的速度运行,每个时钟周期的速度保持相同,不管存在多少核心。 换句话说,Hz =(core1Hz + core2Hz + ...)/ cores。

我认为这是一个谬误认为4 x 3GHz = 12GHz,授予数学的作品,但你是比较苹果和橘子和总和只是不正确,GHz不能简单地添加在一起的每个情况。 我将它改为4×3GHz = 4×3GHz。

有什么东西添加到解释? 声音在评论中。 想要阅读更多的技术精明的Stack Exchange用户的答案? 这里查看完整的话题

赞 (0)
分享到:更多 ()