新一章2文档格式.docx
《新一章2文档格式.docx》由会员分享,可在线阅读,更多相关《新一章2文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
1.9集群
1.10单体巨型机
1.11复体巨型机
1.12源自小微巨型机的可伸缩性
1.13云计算平台
第一章硬件并行设施
从上世纪七十年代以来,主要受益于芯片集成度与并行处理技术的进步,经过不断更新换代的并行计算机(包括向量巨型机及其演变而来的小型、微型巨机,以及多核芯片、大规模和超大规模多机并行系统、高性能网络分布式系统,直至云计算平台)如雨后春笋般地涌现,把人类推入计算机技术向国民经济、国防建设和人民生活各领域全面渗透的新纪元。
作为数据相关性研究的基本驱动力之一,本章主要介绍由向量巨型机开创,正日复一日地向小巨机和微巨机、多核、大规模和超大规模多机与网络分布式系统转移的硬件并行设施。
其中有三点例外:
1、由于跟指令系统密不可分,本属于下一章的汇编语言破例地划进此章;
2、由于非高级语言讲解不清,本属于此章的链接和屏蔽又例外地归入下一章;
3、尽管“云计算本质上是一个软件概念”,但它“内软外硬”,作为最新一种操作平台,向用户呈现出偏硬的面孔。
所以,它被当做本章最后一节,并且以形影不离的异构并行程序设计作为桥梁,承前启后地跨入下一章的语言并行机制。
“流水线”,起源于美国汽车大王福特开创的汽车制造流水线,经过100余年的发展,业已成为制造业规模化工业生产的一项成熟技术。
在第三产业盛行的今天,服务业也普遍地采取流水线处理。
例如在洗衣房中,把洗衣服务全过程分解为洗、漂和甩三段流水。
当第一批衣物经过洗而进入漂时,第二批开始洗;
当第一批经过洗和漂而进入甩时,第二批经过洗而进入漂,第三批开始洗。
从此刻起,构成洗衣流水线的洗、漂、甩三段可长期地保持并行。
并且,每过一段(而非全过程)的时间间隔,收获一批干净衣物。
显然,流水线所含段数越多(比如再把烘干纳入洗衣流水),划分段越细(比如把一遍长时间的漂分成两遍短时间的漂),则并行度越高。
在计算机领域,这些原理都得到最充分的利用。
类似地,把许多指令所重复的时序过程分解为若干共有的段,交由各段专用的功能块去重叠执行。
一条指令顺序流过所有段,这条指令即执行完毕并获得结果。
当本条指令在本段处理完毕而流入下段时,后续指令便可流入本段,无须等待前条指令整个地执行完毕。
因此,在一条流水线上可以同时处理多条指令。
为叙述的简便,设各段的执行时间均为一个时钟节拍,则经过几个节拍短暂的初始阶段之后,每拍可以输出一个结果,从而把指令执行时间压缩到段执行时间,藉以开发时间并行性。
图1.2是将指令操作划分成取指令、译码、取操作数、执行等四段的示意性流水线结构。
其中,方框内的数的整数部分为指令序号,小数部分为段序号。
从第五拍起,每拍输出一个结果。
图1.2流水线上的指令"
流水"
示意
最早实现流水线设计的计算机系统有IBM/360-91、IBM/360-195、CDC-6600和CDC-7600;
我国上世纪八十年代由中国科学院计算技术研究所主持研制的“757”千万次级大型机,和由国防科学技术大学主持研制的“YH-1”亿次级巨型机,也成功地采用了流水线构造向量并行。
尽管向量并行并不囿于流水线,但发展之初(上世纪七十年代至八十年代)的巨型机,流水线向量方式并行是各种类型巨型机占绝对多数的主流形式,这类机器统称向量机。
1972年问世的STAR100首开向量处理之先河,被公推为全世界第一台向量机。
1976至1990年是向量机的鼎盛时期。
八十年代末至九十年代初,多机构造逐渐成熟,但作为基本构件的节点机大多依然是向量机。
例如,日本1990年投入使用的多处理机巨型机“HPP”(用于科学技术的高速运算)系统,内含四台向量机;
富士通1992年底发表的“VPP500”序列,耦合222台足以跟过去的向量巨型机相匹敌的向量处理机;
又如我国同年年底宣布的“YH-2”,由四台性能五倍于“YH-1”的向量机组成,所以其峰值速度等于:
1亿次/秒*5*4=20亿次/秒
而小巨型机和微巨型机,迄今几乎清一色地取向量结构。
至于作为一种运算部件的向量加速器(跟微机常用的80387浮点加速器一样,就是一块插件板),既便在九十年代中后期多机并行为主的系统中,仍然顽强地占据着一席之地。
还有采纳向量原理,为隐藏消息传递而设的伪向量机制,则生存至今。
向量也叫矢量,渊源于数学和物理学。
只有大小没有方向的量称作标量;
既有大小又有方向的量称作向量。
给定空间(包括一、二、三维具体空间和高维抽象空间)坐标系之后,向量与有序的标量(坐标值)组一一对应,这些标量就是它们所对应的那个向量的分量(也叫向量的元素,或径直称作元素)。
分量的数目在计算机界被定义为向量的长度,而数学和物理学界传统地把向量长度定义为向量的模,即端点至原点的距离。
二者是截然不同的。
在通常的标量机中,机器指令的操作对象全部是标量;
而向量机除了标量处理外,还专门地配备一套功能齐全的向量运算指令系统,以增强处理器操作和处理器操作步骤的并行度。
对一个向量的各分量执行同一运算,或者一个向量的各分量都与同一标量执行同一运算,或者对等长的两个向量的对应分量执行同一运算,均可产生一个新的向量。
由于全是“同一运算”,这些基本的向量运算尽管能够融入并行处理的各种实现方式中,但就其本身固有的性质而言,都在单指令流多数据流之列。
以向量传送为例,它的机器流程如图1.3所示。
在计算出始地址,取第一分量时,它同步地计算第二分量的地址(等于始地加偏移δ);
在取第二分量时,它又同步地计算第三分量的地址;
依次类推。
因此,严格说来,对各分量施行的操作并非绝对同时,它们之间在流水线上相差一个(或不变的几个)拍节。
图1.3向量传送的机器流程示意
从图1.3可知,向量运算取指令译码跟标量运算完全一样,而并行部份无需通常的同步和互斥等通讯机制与开销,本身是一种极为自然,极其清晰,立足于时间重叠而非空间重叠的并行操作。
与多机上的多任务相比,向量并行的获取手段简单,达到的效果明显。
大约在两个年代的跨度内,向量运算能力是各类巨型机高速高效的主要源泉。
由于适用面宽,机器(相对轻巧的设备和相对少量的控制)实现容易,硬软件支出小,使用方便等优点,向量运算的自身效率高得出奇,致使无法消灭的标量运算,以及数据的吞吐能力等等配套设施难以适应,成为不匹配的卡脖子瓶颈。
多机构造开辟广阔的入出通道空间,藉以缓解“千军万马过独木桥”的拥堵局面。
这是巨型机从单体过渡到多体的内在原因之一。
勿庸置疑,向量机创造了单体巨型机的无冕之王。
简便易行的向量运算,其硬件设计大多嵌入流水线和阵列两种结构之中,用来改进它们的性能。
譬如说,早先的流水线计算机一般都包含先行控制和重叠操作,以及运算流水线、交叉访问的并行存储器等并行机构,对于提高运算速度起过重要作用;
然而,当实际运行时会出现指令处理量太大,存储访问不均匀,数据颠簸,相关等待严重,流水不畅等缺点。
向量运算很适合流水线的结构特点,向量型并行计算与流水线相结合,能在很大程度上弥补以上不足,进一步地显著提高运算速度。
延续至今,向量机自身又始终处于精益求精的变动之中,比如向量链接的诞生。
上世纪七十年代初的第一代首创向量流水技术,其代表作TI-ASC和STAR-100机,是向量巨型机的开拓性产品。
七十年代中期问世的向量链接技术,是第二代从第一代脱颖而出的主要标志。
在前一条指令的操作结果是后一条指令的源操作数的情况下,两条指令即发生相关等待。
由于程序中频繁出现,严重的相关等待往往堵塞流水线。
向量链接中的向量寄存器在同一时钟周期内,既有能力接受一个功能部件送来的操作结果,又有能力把它作为下一次运算的源操作数并行不悖地旋即送达另一功能部件。
于是,相关等待化消极因素为积极因素,不仅不使流水受阻,而且增强线上操作的重叠度,圆满地解决了操作数前后相关的矛盾。
其代表作CRAY-1机,设有向量、标量、地址等通用寄存器,拥有十二个运算流水部件,指令控制和数据存取也都流水线化,机器主频八十兆赫(初期的微机2.5兆赫,九十年代初最先进的微机也才30至40兆赫),每秒可得八千万个浮点结果,主存容量一百万至四百万64位字,外存容量十亿至一千亿64位字。
我国八十年代开发成功的757机(图1.4)、KJ-8920机和YH-1机(图1.5),均属第二代向量机。
前者是我国自行设计,自行研制的第一台向量机,主要采取独立提出的向量纵横加工体系结构,运行着我国第一个扩充有向量功能的FORTRAN77向量编译程序。
后者是一个具有多功能部件,双向量阵列(可实现多重向量链接),全流水线化的分布式系统;
采用素数模块,可无冲突地进行成组访问;
配备多对I/O快速通道,具有庞大的内外存容量;
运行着我国最早的,在世界上也是较早的一个向量识别器,采用独创的向量化理论。
经过十年的努力,我国的向量机在九十年代已逐步形成高科技产业。
除去上述三个单体序列外,又有9038型向量处理单元,JNC-860I型配备可选向量化工具的超高速处理板和以向量机为节点机的YH-2大规模多机并行系统陆续问世。
图1.4757机系统配置
图1.5YH-1主机