并行计算前景-研究动机

2.0 动机

翻译者:erlv,转载请注明出处 http://lingcc.com

并行化的前景已经在至少三十年的时间里让研究者着迷不已。虽然过去并行计算的性能已经预示了前景而且吸引了不少投资,但是最终还总是单处理器计算占据上 风。然而,我们认为通用计算正在向并行体系结构做着不可逆转的改变。这次与以往又有什么不同呢?这次向增加并行性的转变并不是一种基于基于新颖的并行性软 件和体系结构的昂首向前,而实际上只是在面对在硅晶体上高效实现传统单处理器体系结构上越来越大的挑战时一种不得已的退却。
下面,我们将通过几个指导性的概念来详细的展现计算技术是如何演变的。他们将仿效新闻周刊的方式,以传统的经验观点(CW)和取代他的经验观点对比的形式列举出来。我们将在以后的讨论中使用CW #n来引用这些对比:

1,老CW:能源是免费的,但是晶体管很贵
新CW:“能源墙”:能源比较贵,但是晶体管基本免费。就是说我们能在芯片上放更多的晶体管,但是却没有足够的能源让它运转。
2.老CW:如果你需要为能源担心,只需要担心动态的能源需求就行了。
新CW:对于桌面系统和服务器来说,静态的能源使用占到了总能源需求的40%(参见4.1节)
3.老CW:硅晶片上的单处理器集成电路内部稳定性很高,错误只可能发生在针脚上。
新CW:当芯片上的刻画精度降到了65纳米以下,这些芯片将会有较高的软件和硬件错误率。
4.老CW:通过在基于先前成功实验的基础上,我们可以进一步提高抽象层次进而提高硬件设计的规模。
新CW:连线延迟、噪声、交叉耦合(容抗和感抗)、制造误差、可靠性(见上面)、时钟抖动、设计验证等等共同导致了在65nm及更低精度上开发时间和开发成本的增长(参见4.1节)。
5.老CW:研究人员通过建造新的芯片来展示体系结构的新想法。
新CW:在65nm精度下的刻画成本,使用计算机辅助设计软件设计芯片的成本以及设计GHz数量级的时钟频率的成本意味着研究人员不能再实际流片出令人信服的原型。因此必须开发非传统的评测体系结构的机制(参见7.3节)。
6.老CW:性能提升得益于低延迟和高带宽。
新CW:很多技术表明,带宽的增加和延迟增加的平方成正比。
7.老CW:乘法费时较长,但load和store很快
新CW:”存储墙”:load和store很慢但乘法很快。现代微处理器可能需要200个始终周期来访问DRAM,但是即使一个浮点乘法指令可能仅需要4个时钟周期。
8.老CW:通过编译器和体系结构上的创新我们能获得更多的指令间并行。历史上的例子有:分支预测、乱序执行、猜测以及超长指令字系统。
新CW:“指令间并行墙”:寻找指令间并行所得到的回报越来越小。
9.老CW:单处理器性能每18个月翻一番。
新CW:能源墙+存储墙+指令间并行墙=砖墙!图2绘出了将近30年间处理器性能变化曲线。2006年性能与1986-2002年之间我们拥有的每18个月性能翻一番的理论低3个百分点。也就是说现在单核处理器的性能可能需要5年才能翻一番。
10.老CW:不要并行化你的应用来迷惑自己,因为你只要稍等一下就能把它在一个更快的串行计算机上运行。
新CW:更快的串行计算机的诞生将是一个漫长的等待(见上面)
11.老CW:增加时钟频率是提高处理器性能的主要手段。
新CW:增加并行性将是提升处理器性能的关键(参见4.1节)。
12.老CW:对于多处理器应用,低于线性的性能提升都是失败的。
新CW:对于向并行计算的移植,任何通过并行化获得的加速比都是一个成功。
虽然上面这些形成对比的经验展现硬件非常消极的一面,但实际上也有非常令人欣慰的方面。摩尔定律在继续,因此我们不就将能在单个低成本的芯片上放置数以 千计的简单处理核(参见4.1.2节)。例如,思科公司正在研发一个新产品,它将在一个精度为130nm的单芯片上集成188个精简指令级处理核。其次, 这些片上核心之间的通信将具有非常低的延迟和非常高的带宽。这些单片众核微处理器展示了一个与传统多片未处理非常不同的设计理念,因而也将为新体系结构和 新编程模型的开发提供了新的方向。第三,开放源代码软件运动意味着软件栈将以比过去更快的速度革新。例如,Ruby on Rails的快速传播,实质上其 1.0版本是在2005年12月才出现的。
====================================================================
翻译者:erlv,转载请注明出处 http://lingcc.com

相关文章:

此条目发表在 算法和计算理论, 编译技术 分类目录,贴了 , , , , , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>