Intel Xeon Phi协处理器高性能编程指南 第1章.DOC
PAGE 18 第1章 绪论
STYLEREF \l "标题 2" \* MERGEFORMAT 1.15 超线程与多线程 PAGE 17
第1章
第1章
1
绪论
本书中,我们会逐个讲解Intel Xeon Phi高性能编程的要领。如我们所见,Intel Xeon Phi协处理器编程方式大部分与基于Intel Xeon的系统相同,但是在如何有效利用并行性上需要更多的关注。当然,这些工作也会在CPU系统上得到回报。我们将看到“移植与优化的双重优势”会成为Intel Xeon Phi协处理器编程极具回报性和保护编程投资的关键因素。
Intel Xeon Phi具备通用编程性,同时可用于解决高度并行的问题。因此,它可在苛刻的并行应用中使用。我们将阐释如何确保应用程序的构建可以充分利用如此大规模的并行能力。作为自然而来的副作用,这些技术通常在更少的并行机器上提高性能,同时也为未来计算机准备了更好的应用程序。总体来说,这就是“可移植的高性能编程”(Portable High Performance Programming)思想。
赛车并不是为在迟缓不前的拥堵的高速公路上的卓越体验而设计的。如大家所见,Intel Xeon Phi协处理器和赛车之间的相似性在下面几个章节中将被多次提及。
两种情况下的跑车:左边是交通道路,右边是赛道
1.1 更加并行的趋势
为了在新设计中获取更多的性能,计算机设计者们依靠增加更多的晶体管朱实现“一箭多雕”的效果。这代表从依赖于较高频率但需要更高功耗的方法,转向依赖能效更高的并行方法。从并行硬件获得的硬件性能对软件设计的破坏性比加速硬件更大,因为它有利于并行应用程序排除非并行程序。
下面来看几张量化了这一趋势背后因素的图表。图1.1展示了“更高处理器频率时代”(Era of Higher Processor Speeds)的终结。图1.2和图1.3解释了“并行时代”(Era of Higher Processor Parallelism)的趋势。因为在这两个时代中,计算机设计的晶体管数量总是在稳定地增长,符合图1.4所示的摩尔定律(Moore’s Law),出现了时代的变更。晶体管密度的持续增长驱动计算机设计更加并行化,以使应用程序获得更好的性能。
1.2 为什么需要Intel Xeon Phi协处理器
Intel Xeon Phi协处理器是为扩展应用程序范围而设计的,这些应用程序已经被证实它们充分利用了基于Intel Xeon处理器系统的扩展性、向量能力以及内存带宽的能力。对于这些应用程序,Intel Xeon Phi协处理器提供了更具能效的扩展性、向量支持以及本地内存带宽,而且仍旧保持了可编程性以及与Intel Xeon处理器类似的支持。
世界上的大多数应用程序并没有结构化,所以不能够充分利用并行,这使得几乎每一台计算机系统都留有大量尚未开发的性能。只有当这些应用程序有需求的时候,才被并行编程在高度并行的设备上以扩展出应有的性能。
图1.1
处理器/协处理器速度时代(对数坐标)
图1.2
处理器/协处理器 核/线程并行(对数坐标)
图1.3
处理器/协处理器 向量并行(对数坐标)
图1.4
摩尔定律,处理器/协处理器晶体管数量(对数坐标)
成功的并行编程可总结为:编程时,在喜欢的编程语言和模型中使用更多充分向量化的线程。既然大部分程序还没有被结构化以充分利用任一处理器上的并行,那么如何调整以展现出更好的并行性这对发挥Intel Xeon处理器和Intel Xeon Phi协处理器的最佳性能是至关重要的。这种调整一般可以在大多数通用计算系统上受益,此红利(Bonus)缘于处理器和协处理有着相同的编程语言、模型和工具,于是把这种红利(Bonus)叫做移植优化双重优势(Dual-Transforming-Tuning Advantage)。
有人说,一张图即可表达千言万语,那么Intel Xeon Phi协处理器(或者其他任何高度并行的设备)即可用图1.5来表达。在此不必纠结于确切的数字,因为它们是以需要应用程序尽可能典型的一些模型为基础的。这张图片表述了这样一个原则:Intel Xeon Phi协处理器使系统具有潜在的提供特殊性能的能力,并且系统依然是可信赖的、高能效的。Intel Xeon处理器可以较容易地为更多应用提供良好性能,但是会受到如图1.5中横线所示的峰值性能的实际限制。关键是要“为使用并行做好准备”。可以看到图片中需要更多并行才能使Intel Xeon Phi协处理器达到相同的性能水平,这就需要编程适应于此实现所需更高级别的并行。作为编程投资的回报,我们可以获得额外的珍贵性能。英特尔产品的移植与优化的双重优势使用了相同的并行模型、编程语言以及相似的工