理论教育 超级计算机集群:联通计算机引领的新时代

超级计算机集群:联通计算机引领的新时代

时间:2023-05-27 理论教育 版权反馈
【摘要】:受到联通计算机设计理念的启发,不少超级计算机研究人员开始探索用标准化的计算机软硬件来搭建超级计算机的可能性,由此引发了集群技术。局域网技术的成熟使得集群计算机可以通过高速局域网以超过千兆的传输速度相互连接,减少了网络连接速度给并行计算带来的瓶颈。

超级计算机集群:联通计算机引领的新时代

1994年,美国航空航天局的两名计算机研究人员托马斯·斯特林(Thomas Sterling)和唐纳德·贝克尔(Donald Becker)因为对超级计算机供应商提供的解决方案不满意,决定自己研制超级计算机。

在这之前,超级计算机产业已经发展了40多个年头。20世纪50年代,为当时的大型军工和科研工程提供高速计算服务的并行计算(Parallel Computing)技术开始出现。早期的并行计算因为硬件成本的限制,研究方向主要在大型机的内部优化上。比如通过多个专门设计的中央处理器共享内存硬盘来分割计算任务,整合计算结果。这种技术通常由一个处理器负责将一个庞大的计算任务分割成相对独立的若干个计算任务,再分配给其他的中央处理器去运行处理。处理器可以通过信息传递通道来交换数据,将计算任务按照最优的顺序完成。这些处理器共同分享经过特别设计的各级存储器以及输入输出系统,所以整个计算机尽管有多个中央处理器,却仍然是不可分割的一台计算机。为了充分利用其高速运算的功能,需要为这些计算机的算法进行特别设计,很多并行运算的理论和模型都是从这段时间开始趋于成熟的。除了多处理器的设计方式外,也有一些公司设计了专门用于矩阵计算的向量处理器,这种向量处理器因为可以将整列数据而不是单元数据当作数据单元进行运算,所以在进行矩阵运算时效率特别高。

并行计算的发展方向在20世纪60—70年代是由当时的大型计算机公司主导的。这些公司不断地进行设计上的竞争,以求创造最快的计算速度,逐渐衍生出“超级计算机”这一新的计算机种类。70和80年代的超级计算机技术尽管可以为大型计算项目提供比较完美的解决方案,但是缺点也很明显。首先超级计算机价格昂贵,其次因为每一个公司的设计方案都不同,所以它们提供的软件无法与其他计算机兼容。一旦用户使用了一个公司的产品,往往需要花很多时间去了解其复杂系统的架构和编程方式。除了这两个主要原因,多处理器的发展模式在80年代也开始遇到瓶颈。因为随着中央处理器的增多,总运算速度开始受制于连接它们的输入输出设备的速度以及存储器速度。为了克服这一缺陷,科研人员想尽了各种设计方法,比如有的超级计算机被设计成圆形来缩短处理器之间的传输距离,但总的来说收效不高。

20世纪80年代中期,IBM个人计算机的公开架构模式和这一模式所带来的计算机软硬件成本的降低吸引了很多人的注意,也使得超级计算机的设计结构开始向标准化发展。从麻省理工学院毕业的丹尼尔·希利斯(Daniel Hillis)研制的联通计算机(Connection Machine)就是一例。希利斯将固定数量的普通中央处理器安置在一个特别设计的主板上,其中每个处理器都配备独享的小容量内存,处理器之间通过通信信道连接在一起。然后通过简单叠加这些主板来达到高速运算的目的。这一模式使得超级计算机架构设计进入大规模并行处理机(Massively Parallel Computing)的阶段。与早期强调特殊多处理器的复杂模式相比,新模式开始强调尽量用低成本硬件和软件的组合来达到相同的运算效果。这种方式具有很强的伸缩性,可以在不增加算法复杂度的情况下,通过简单的累加方式不断提高计算性能。从成本来看,90年代初期的传统超级计算机每千兆浮点运算(也就是每秒钟10亿次)的制造成本为100万美元,而希利斯的联通计算机在90年代中期则将这一成本降至30~40万美元[1]

希利斯在1982年和其他人一起创立了思考计算机公司(Thinking Machine Corpora-tion)。通过美国国防部高级规划署的合同,公司在1989年开始盈利。90年代初,该公司一度成为并行计算产业的明星公司和媒体的关注对象。1993年放映的电影《侏罗纪公园》里克隆恐龙和管理恐龙园的超级计算机就是以该公司的产品命名的。但是好景不长,因为规划署对该公司的过度扶持遭到了其他研制并行计算机公司的反对,规划署不得不减少了对其产品的采购,后来该公司在1994年宣告破产[2]

受到联通计算机设计理念的启发,不少超级计算机研究人员开始探索用标准化的计算机软硬件来搭建超级计算机的可能性,由此引发了集群技术(Cluster Computing)。有三大趋势推动了这一研究方向的出现。首先是随着工作站服务器和个人计算机市场的不断竞争和技术更新换代,中央处理器、内存和硬盘等零部件的价格不断下降,大批这类计算机遍布在大学校园、各大研究所和消费者市场上,这为集群技术提供了廉价硬件资源。其次是以Linux操作系统为代表的开源软件运动的出现和成熟。1991年,芬兰出现的Linux操作系统通过几年来全球志愿者的不断协同努力,已经成为一个稳定和成熟的开源操作系统。它不但免费,而且因为与UNIX有较好的兼容性,使得一些在UNIX平台上开发的开源并行计算软件可以被其使用。另外,几乎所有的商业化并行计算软件都有了其对应的开源软件版本,这两大趋势使得搭建一种软硬件成本都比较低廉的大规模并行计算公开架构成为可能。第三大趋势是网络技术的逐渐成熟。局域网技术的成熟使得集群计算机可以通过高速局域网以超过千兆的传输速度相互连接,减少了网络连接速度给并行计算带来的瓶颈。互联网主干速度的提高则使得通过网络实现计算资源共享成为一个新的发展方向。

在这三大趋势的推动下,1994年前后不同的计算机科学家开始尝试集群计算(Cluster Computing)和网格计算(Grid Computing)两种相关联但是理念不同的整合计算资源的方式。

最先受到学术界和业界关注的是网格计算。1994年,阿贡国家实验室(Argonne National Laboratory)的数学和计算机分部主任里克·史蒂文斯(Rick Stevens)和伊利诺伊大学芝加哥分校电子可视化实验室主任汤姆·迪梵迪(Tom DeFanti)提出了将当时国家科学基金支持的全美11个超级计算中心通过临时的高速网络连接在一起,进行计算资源共享的国家级计算网格的设想。阿贡国家实验室的伊恩·福斯特(Ian Foster)领导的一个筹备小组为该计划开发了新的通信协议,使得用户可以方便地调用远程计算机的计算资源来运行自己的程序。试验成功后福斯特获得了计划署的资助,同南加州大学的卡尔·凯瑟曼(Carl Kesselman)以及他在阿贡国家实验室的助手史蒂夫·图克(Steve Tuecke)一起发起了名为Globus的网格计算开源程序项目。1997年,他们开发出了第一版工具包,该工具包被80多个计算中心使用[100]。后来在美国能源部和国家科学基金的资助下,各种大型的网格计算项目开始出现。(www.daowen.com)

网格计算和集群计算虽然在整合计算资源上有类似之处,但是在设计理念上却大不相同。网格计算的设计理念最初是从电网的联网节能设计理念衍生出来的[3]。它采取自愿加入的方式把各种计算资源通过联盟的形式整合在一起。为了避免资源使用冲突,每一个加入网格的计算资源都明确规定可以贡献出的资源的限度和使用政策。当某个格点需要索取其他格点的资源时,不会影响其他格点的正常运行。集群计算的设计思想源于并行计算。它的底层是同质的计算资源,而且所有的计算资源都遵从统一调配。所以,网格计算的算法优势在于协调和利用处于不同架构下的计算资源(不同操作系统、软硬件配置等),但是不同资源的协调工作也成为网格计算的主要发展障碍。而集群计算的优势是协调同质计算资源对计算任务进行有效分割的并行计算,避免了使用资源冲突现象和需要对计算资源进行协调所带来的额外成本。

与网格计算相比,在同一年出现的以Linux单机为基础的集群计算思想一开始并没有吸引太多学术界和业界的关注。受到关注的是结合了网格和集群计算思想的NOW(Network of Workstations)工作站联网项目。NOW项目是加州大学伯克利分校计算机系的几个教授在1994年提出的把校园里的众多利用率不高的实验室UNIX工作站服务器通过ATM高速局域网连接实现超级计算机的想法。NOW计划最初连接100台UNIX升阳工作站[4],使用工作站本身的操作系统,工作站之间用异步传输模式(ATM)局域网传输协议连接[5]。因为这两种技术都已经商品化,所以成本很低。在此基础上,他们为每一台工作站提供一个工作站之间的通信模块和一个层面软件,该层面软件负责管理每一个工作站节点并将所有工作站资源整合在一起成为一台超级计算机。

在NOW设计出台之前,有过几次将小型机或者更低端的计算机通过集群方式来搭建超级计算机的尝试,不过都没能成功。除了当时的联网速度太慢外,需要为这些计算机编写专门的操作系统软件来达到整合效果也是障碍之一。而NOW计划一方面借助了网络传输技术的成熟,另一方面采用了普通的UNIX操作系统,这使得NOW的设计简单化,而且易于扩展。不过,NOW计划的缺陷是它沿袭了网格计算的利用工作站闲置资源的设计思路,所以在设计中需要较多地考虑运算任务在不同工作站上的协调。而且管理软件还要考虑到不同工作站的资源使用差别带来的运算反应滞后的情况。尽管如此,用工作站联网来打造超级计算机比起联通计算机仍然有更高的性价比。

伯克利团队在设计NOW项目时,美国航空航天局的斯特林和贝克尔两个人也在探索更廉价的超级计算机架构。他们把NOW的设计思想向前推进了一步,开始动手设计一种比NOW的性价比还要高的集群方案,这就是用普通个人计算机和开源软件来搭配出具有同样性能的超级计算机。

斯特林和贝克尔都在并行计算领域研究多年。斯特林比贝克尔年长十多岁,1984年斯特林在麻省理工学院获得计算机系的电子工程博士学位时,贝克尔作为学生正在实时系统实验室从事编程工作。从麻省理工学院毕业后,斯特林先后在美国联邦政府的一些研究机构工作过。1992年,他来到马里兰州美国航空航天局下属的戈达德太空飞行中心继续从事并行计算的研究工作,同一时间他还在马里兰大学兼职教授计算机课程。贝克尔从麻省理工学院本科毕业后,留在了学校里的国防分析研究所超级计算研究中心从事并行计算的编程工作。他是Linux开源软件的主要志愿者之一,为Linux编写了20多个应用于不同设备的网络驱动程序。后来由于该研究中心没能获得新合同,他转入了斯特林的研究项目。斯特林他们所在的研究中心需要超级计算机做各种计算工作,但是外面公司提供的超级计算机无法完全满足他们提出的设计要求,另外每次购买超级计算机都需要他们学习专门的编程语言。更糟糕的是他们经常需要与中心其他部门分享计算资源,影响了研究工作的进行。于是这两人开始琢磨能否通过有限的经费以集群方式来自己搭配一台超级计算机。

与伯克利的NOW计划相比,他们两人手头只有一些闲置的486个人计算机,没有足够的工作站可以使用,也没有开发集群管理软件的经费。不过田纳西大学在1989年开发出了用于并行计算教学的“并行虚拟机”(Parallel Virtual Machine)开源软件。1991年,并行计算业界在众多组织的联合下,形成了标准化的“信息传递界面”(Message Passing Interface)协议。以太局域网技术也已经非常成熟,每台486计算机都有现成的10KB以太网卡。于是他们经过一番调试,通过并行虚拟机开源软件和信息传递界面协议把16台配备Linux操作系统并通过10KB以太网连接起来的486计算机组成的集群变成了可以进行高速运算的超级计算机。受到了Linux开发过程的启发,他们两人将该项目作为一个开源软件来推广,鼓励整个计算机业界通过志愿的方式为其提供各种需要的软件。斯特林受到古代英格兰关于斩怪英雄贝奥武夫的传说的启发将这一集群设计架构命名为“贝奥武夫”(Beowulf)[6]。这个名字恰如其分地将Linux集群模式与伯克利NOW模式区分开来。后者因为需要考虑到联网工作站的不同资源使用情况而不得不在任务分配和通信等待上付出额外的成本,而贝奥武夫Linux集群则将所有个人计算机全部用来运行超级计算任务,这样就减少了软件设计的复杂性和计算效率。斯特林和贝克尔两人因为这一贡献在1997年获得了美国计算机协会专门为高性能计算机应用所设立的戈登·贝尔奖(Gordon Bell Prize)。

Linux集群模式出现不久就以低成本、易升级维护和无上限的扩展能力等优势而被广泛应用于从好莱坞的电影制造业到石油数据分析,再到药品开发、蛋白质分析等生物医学行业中[7]。不久,各种适用于不同功能的Linux服务器农场(Linux Server Farm)开始出现。一个服务器农场通常是将几千台Linux计算机通过各级交换机连接起来做各种大型计算或信息服务工作。服务器农场的重要用途之一就是为互联网访问提供网络服务。一个中型以上的电子商务公司通常需要上百台服务器来满足网上顾客的访问需求,峰值时段需求可能达到上千台。这些服务器农场成为后来云计算的雏形,最先将Linux集群的优势应用到极致规模的是谷歌

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈