HPC演义:高性能计算的过去、现在和未来

高性能计算的过去、现在和未来∗
安竹林刘晓平
一、 史前时代
自从1946年ENIAC(E lectronic N umerical I ntegrator A nd C omputer)在美国宾夕法尼亚大学的摩尔电子工程学院(Moore School of Electrical Engineering,University of Pennsylvania)诞生起,人类对高性能计算的追求就一直没有停止过。ENIAC是第一台真正意义上的电子计算机使用电子管和继电器存储器,但却不具有“存储程序”(Stored Program)体系结构。由ENIAC的发明人普雷斯伯·埃克特(J. Presper Eckert)和约翰·莫契利(John William Mauchly)研制的UNIV AC I(UNIV ersal A utomatic C omputer I)被认为是第一台商业化的计算机,成为电子管计算机走向成熟的标志。UNIV AC于1951年6月14日正式移交给美国人口统计局(U.S. Bureau of Census)使用,这标志着人类社会从此进入了计算机时代,电脑最终走出了科学家的实验室,直接为大众事业服务。
ENIAC UNIV AC
正当电子管计算机横行于世的时候,晶体管已经在贝尔电话实验室(Bell Telephone Laboratories)悄然诞生了。晶体管不仅能替代电子管整流、检波和放大,而且比电子管体积小、寿命长、不发热、耗电省,计算机世界的第一场革命就这样爆发了。1955年,贝尔实验室研制出世界上第一台全晶体管计算机TRADIC(TRA nisitor DI gital C omputer)。而麻省理工大学林肯实验室(MIT Lincoln Laboratory)于次年研制成功的TX-0(T ransistorized E x perimental computer zero)是第一台通用的全晶体计算机,它接替了ENIAC成为当时最快的计算机。
∗本文的所有图片均引自互联网,其所有权归其各自的所有者;部分资料翻译自全书
/wiki/Main_Page
TRADIC TX-0
1951年,雷明顿•兰德(Remington Rand)公司首次在世界上出售商业计算机UNIV AC I,许多公司相继涉足商业计算机领域,包括后来的蓝巨人IBM。几年后,美国加州大学辐射实验室(University of California Radiation Laboratory)的“之父”爱德华·特勒(Edward Teller)博士提出建造一台进行三维水利计算的计算机的计划,他给这台计算机起名LARC (L ivermore A utomatic R eaction C alculator)。雷明顿•兰德和IBM都希望使用大约250万美元建造一台计算能力为1-2 MPIS(M illion I nstructions P er S econd)的超级计算机。IBM的波基普西工程实验室(Poughkeepsie Engineering Laboratory)负责这项任务,正当准备提交自己的提案的时候,实验室主任拉尔夫·帕尔默(Ralph Palmer)的阻止了这项提案。原因是提案中建议使用点触式晶体管(Point Contact Transistor)或者表面势垒晶体管(Surface Barrier Transistor),而不是新发明的扩散晶体管(Diffusion Transistor)。于是,他们修改了计划希望加州大学辐射实验室能够接受再添加100万美元,再宽限一年的条件,建造一台10 MPIS的机器。加州大学辐射实验室没有同意,而接受了UNIV AC公司(由雷明顿•兰德公司商业计算机部重组建立的公司)的计划。1955年,IBM担心美国洛斯阿拉莫斯国家实验室(L os A lamos N ational L aboratory,LANL)定购UNIV AC公司正在研制的LARC计算机,而修改了先前的提案向LANL提出了一项制造一台速度是“IBM 704”100倍(约为4 MIPS)的高性能计算机的预案。1956年,IBM与LANL正式签订合同启动名为“Stretch”的计划,预定于1960年提交名为IBM 7030的超级计算机。
1960年UNIV AC公司的LARC交货,这台计算机包含两个CPU(当时称作Computer)和一个输入输出处理器(当时称作Processor),速度达到500k FLOPS(FL oating point O perations P er S econd),成为当时世界上最快的计算机。
婚恋问题
1961年IBM向LANL提交了IBM 7030。尽管比预订的交货时间晚了一年,IBM 7030却还是没有达到当时预定的“IBM 704”100倍的计算速度,只有30倍左右,IBM将其定价为778百万美元,IBM 7030共生产了5台,造成2000多万美元亏损。IBM的“Stretch”项目失败了,但是IBM 7030仍然取代了LARC成为当时世界上最快的计算机,并保持了3年之久。
LARC Stretch 7030
1957年,威廉•诺瑞斯(William Norris)带着雷明顿•兰德公司的一批工程师出走自立门户,成立了控制数据公司(C ontrol D ata C orporation,CDC)。三年后,控制数据公司接受美国原子能委员会的委托,涉足万难之险的超级计算机领域。CDC公司的总设计师,是被誉为超级计算机之父的西蒙•克雷(Seymour Cray)博士,接下来几十年超级计算机的发展都与克雷有着紧密的联系。当时克雷年仅31岁,曾经是UNIV AC设计小组的成员。他是一位性格内向的“隐士”般人物,念念不忘的是建造心目中
的巨型机,甚至想“隐退”回家去独自研究。诺瑞斯慷慨地满足了克雷的愿望,在克雷的家乡为他建立了一个实验室。克雷带领他的研究小组,远远避开“人世”。小组仅有34人,包括克雷本人在内。1963年8月,克雷终于复出,把名为CDC 6600超级计算机公布于世。CDC 6600是世界上公认的第一台商业超级计算机,它仍属于第二代电脑,共安装了35万个晶体管。CDC6600是一台标量计算机,但却使用了一个中央处理器(C entral P rocessor,CP)和多个外围处理器(P eripheral P rocessor,PP)的结构,同时在引入了多重算术部件,提高其并行性。CDC 6600和10倍于它的计算速度的升级产品CDC 7600统治了世界高性能计算十年之久。
FIKFAP
CDC 6600 CDC 7600
亿目CDC 6600取得成功的一个重要的原因是使用了指令流水线(Instruction Pipeline)。指令流水线是由重叠(Overlap)发展而来的。通常,CPU执行一条指令的过程分为三步,从内存中取指令,分析这条指令,然后执行。CPU每一步的时候,其它的部分的功能处于闲置状态。如果能够将这些步骤重叠起来,比如说在分析一条指令的同时将下一条指令取出,则会的提高CPU的效率。而流水线是对重叠的引申,它将CPU执行较复杂一条指令的处理过程分成更对复杂程度相当、处理时间大致相等的子过程,每个于过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,多个部件同时进行不同的操作,完成对不同子过程的处理。
保罗 沃克尔二、 向量机时代
二十世纪七十初,克雷开始研制CDC 7600的后继产品CDC 8600。CDC 8600由4台CDC 7600组成,采用了一种通过锁步(lock-step)进行同步的单指令流多数据流(S ingle I nstruction stream M ultiple D ata stream,SIMD)模式。克雷希望CDC 8600能够达到10倍于CDC 7600的速度而占领高性能计算市场。与此同时,CDC 6600的系统设计师吉姆•桑顿(Jim Thornton)开始了名为CDC STAR-100的项目,CDC STAR-100使用与CDC 8600不同的技术,在CDC 6600/7600结构的基础上添加了向量处理指令,以提高对于数学计算任务的计算能力。到了1972年,CDC 8600的研制进入了死胡同,过度复杂的系统结构导致其不能正常运行,克雷希望诺瑞斯能够增加研制费用对CDC 8600进行重新设计,但是当时CDC公司正面临财政危机,同时CDC STAR-100项目似乎更有市场,诺瑞斯拒绝了克雷的提案,CDC 8600的研制于1974年中止。就在同一年,CDC STAR-100上市了,CDC STAR-100是首先使用向量处理器(Vector Processor)的计算机。STAR-100上市后尽管性能超过CDC 7600,但却比期望值差很多,由于当时只有很少的程序能够通过一系列简单的指令而向量化执行,因此导致STAR-100性能直线下降。STAR-100的失败导致了桑顿的失业和CDC公司最终退出了超级计算机市场。
STAR-100 Cyber 205
尽管STAR-100失败了,但是其存在的许多问题都是可以解决的,十九世纪八十年代初,CDC解决了STAR-100存在的问题,并且凭借Cyber-203又重新回到了高性能计算市场。稍后推出的改进版本Cyber-205提供了一条向量流水线到四条向量流水线的四种版本,因此在各个领域得到广泛的好评,并且在十九世纪八十年代初成为世界上最快的计算机。
CDC STAR-100被认为是第一台向量机,但是对向量机的探索早在十九世纪六十年代就已经开始了。
当时,计算机的设计进入了收益递减阶段,可以通过向硬件添加更多的指令的方式提高计算机的性能,但是代价却是相当大的。事实上,添加硬件会潜在的降低计算速度,这是因为系统的最快计算速度是由硬件的信号时序(signal timing)决定的,而信号时序是与系统的规模相关的。当时的硬件设计技术是使用晶体管构造逻辑电路,因此,逻辑处理规模的增大会导致机器规模的增大。CPU的速度的提高似乎遇到了瓶颈。
这一问题可以从时间上和从空间上分别解决。从时间上解决的方案是前面我们提到的CDC 6600所使用的指令流水线,指令流水线是克雷设计的高性能计算机的一个重要特征。而从空间上的解决方案是处理器阵列(Processor Array),通过重复设置大量相同的处理单元(P rocessing E lement,PE),将它们按一定方式互连成阵列,在单一控制单元(C ontrol U nit,
CU)控制下,对各自所分配的不同数据并行执行同一指令规定的操作。处理单元PE是不带指令控制部件的算术逻辑运算部件,使用按地址访问的随机存贮器。
威斯丁豪斯电力公司(Westinghouse Electric Corporation)首次在其Solomon项目中对上述后一种解决方案进行了探索。他们认为,高性能计算机的主要用途是科学与工程中的数学计算问题,所以他们只关注于提高高性能计算机对数学计算问题的处理能力。他们设计了一个系统,该系统由一个主CPU(即CU)和大量的PE构成。CU处理指令流,PE在CU的时钟控制下对不同的数据施加相同的指令,
这使Solomon计算机可以在大量的数据集上运行单一的算法。遗憾的是随着合同的中止,Solomon项目也在开发出一个原型系统之后被取消了。
不久,Solomon项目的一个主要参与者丹尼尔•斯劳尼克(Daniel Slotnick)来到了伊利诺斯州立大学(University of Illinois),成功的说服学校继续该项目。1964年,该校与美国国防部高级研究计划局(D efense A dvanced R esearch P rojects A gency,DARPA)签订合同,在以前项目的基础上研制名为ILLIAC IV的高性能计算机,新的项目得到了许多公司的合作支持。
ILLIAC IV最初的设计目标是具有1GFLOPS的浮点计算能力。以Solomon的体系结构,需要由4个CU驱动的256个时钟频率为13MHz的PE。PE具有2048 Word的内存,CU可以访问全部CE的内存,但每个PE只能访问属于自己的内存。PE有6个通用寄存器,但可以通过一个特殊寄存器与相邻的8个PE传递数据。
由于技术和资金的限制,ILLIAC IV的设计目标一减再减,1972年设计完成时,浮点计算能力已从当时的目标1GFLOPS减为150MFLOPS。但是凭着对于并行化问题的求解速度,ILLAC IV仍然成为了当时世界上最快的计算机,速度是CDC 7600的2-6倍。尽管ILLIAC IV并不是一款成功的计算机,但是其提出的新的体系结构推动了对并行计算机的研究,ILLIAC IV被认为是大规模并行处理(M assively P arallel P rocessing, MPP)计算机的鼻祖。卫星电视接收卡
ILLIAC IV在1972年设计完成时,其可操作性极差,直到1976年才得到全面的应用。就在这一年第一台“克雷1号”(Cray-1)交货了,尽管Cray-1的计算能力比ILLIAC IV略差,但其影响却比ILLIAC IV深远的多。
建筑工程消防验收
ILLIAC IV Cray-1
1972年,由于CDC 8600项目的失败,克雷告别CDC公司,独创一家以自己名字命名的“克雷研究公司”(Cray Research),专攻超级计算机。这时革命性的集成电路(Integrated Circuit,IC)早已经出现了,使用集成电路的小型机PDP-8获得了广泛的成功。克雷也第一次用上集成电路。1975年享誉全球的超级计算机“克雷1号”(Cray-1)完成,实现了当时绝无仅有的超高速——可持续保持每秒1亿次运算,然而体积却并不巨大,就像一套开口的沙发圈椅,靠背处立着12个一人高的“大衣橱”,占地不到7平方米,重量不超过5吨,共

本文发布于:2024-09-23 02:25:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/75810.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:计算机
下一篇:多核体系结构
标签:计算机   公司   指令   使用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议