** **
摘要:高性能计算简称HPC(High Performance Computing),是计算机科学的一个分支,特指当今具有超强计算能力的一类计算机。它致力于开发高性能计算机,主要采用模拟方法,解算当今超大、超高、超复杂的计算任务,研究并行算法及开发相关软件。高性能计算已被公认为继理论科学和实验科学之后,人类认识世界改造世界的第三大科学研究方法。本文就这一领域技术的地位作用、优势、现状与发展、分类、技术难点和研究方向、应用、发展展望等问题作一概要介绍。
关键词:超级计算;高性能计算;高效能计算;大规模并行处理
1 引言
高性能计算( High Performance Computing,HPC)是计算机科学的1个分支,主要指从体系结构、并行算法和软件开发等多个方面研究开发高性能计算机的技术。高性能计算本身并没有确切定义,它是指通过一定途径,获得比当前主流计算机更高性能的计算能力的技术。 高性能计算已被公认为继理论科学和实验科学之后,人类认识世界、改造世界的第三大科学研究方法,是科技创新的重要手段。在当前社会情况下,高性能计算已经成为一个国家综合实力的体现,对国家战略的发展有着重要影响。目前,高性能计算技术已经广泛应用于航空航天、汽车制造、核试验模拟、军事情报搜集处理、天气预报等多方面。通过高性能计算,人们可以完成很多目前计算机无法完成的实验,既可以免除真实实验的巨大费用,又不会对环境造成任何的影响。
通常来讲,高性能计算有2种表现方式:①提升单机的计算能力;②通过网络连接多台计算机,进而提升计算能力。第一种方式多是指提升CPU的处理能力,而随着CPU主频的提高受制于制作工艺,CPU的发展方向已经由单核向多核发展。事实证明,很多情况下CPU 过多的核心反而会降低CPU的处理能力。近几年出现的GPGPU技术已经成为提升单机处理能力的主要技术。第2种方式是通过整合多台网络计算机而提升计算能力,因此性价比较 高,已经逐渐成为主流方式。
2 高性能计算的地位作用
美国在计算机与信息技术领域,一直处世界霸主地位。高性能计算机与高性能计算技术被认为是美国国家的制高点技术,历届都高度重视,重点发展。克林顿总统时代,大力推进HPCC(High Performance Computing & Communications)计划,大力研制一代代新机
1 / 16
器, 建设许多超级计算中心,利用高性能计算机解决许多科技方面的“大挑战问题”,推动众多科学和技术领域的大发展。HPCC计划还把因特网(Internet)公开民用,推向全球,推动了信 息化时代的到来。布什总统时代,虽然重点是反恐,但对高性能计算的发展丝毫没有放松。2005年总统IT顾问委员会的专题咨询报告,再次提出“HPC是国家核心竞争力,要大力发展”。奥巴马总统执政以来,经济问题、医改问题一直是当务之急,但也没有放松HPC发展。2011年1月25日总统国情咨文报告中,再提到中国拥有了世界上最快的计算机,美国决不能松劲。
科学技术发展历来依靠“理论、试验”,而今天“计算”已是第三手段,而且是越来越 重要的手段。许多科技领域的发展已离不开“计算”,许多学科已与计算相互复合。HPC在国家科技、国防、产业、金融、服务、生活等方面都占有不可或缺的重要地位。譬如:核物理、核能、核动力、核安全技术;空气动力学(航天、航空、航海、高速运载器);大气、 海洋与空间(天气与灾害预报,全球变暖);能源(油气勘探与开采,新能源);生命科学、生物工程、新药研制;新材料;高新制造(汽车、微电子);信息与社会安全(密码学、监控);数据中心与服务中心等等。
中国自1958年开始自主研制计算机,并用于解决中国国内的各种需求,成绩卓著。1983年国防科技大学研制成功中国第一台HPC机———银河亿次计算机YH-1,使中国成为 继美、日后国际上少数能自主研制HPC机的国家之一。2010年8月国防科技大学为“ 国家超级计算天津中心”研制成功的天河机TH-1A,其计算速度在当年11月国际TOP500排名中,列世界第一,为国家赢得荣誉,为中国HPC发展与应用作出了新贡献。
全球HPC机的研制,美国占绝对优势,全球最快500台计算机中,美国研制的占3/4以上。其次是日本和中国,欧洲研制的极少。但世界各国都高度重视HPC能力的建设与应用,2011年6月底世界最高性能,500台计算机的装备使用情况如下: 美国:256台,世界绝对第一;
中国:62台,世界第二;
欧洲:125台,其中,德国30台,英国27台,法国25台;
亚洲:103台,其中除中国62台外,日本26台,其他国家拥有很少。
2011年6月底世界最快的10台机器(运算速度均达每秒1000万亿次以上),美国拥有5台,中国和日本各2台,法国1台。
高性能计算机的发展水平已经成为衡量一个国家高新科技水平和综合实力的重要标志。高性能计算机可以对所研究的对象进行数值模拟和动态显示,从而获得实验很难甚至无法得到的结果。它相对于理论科学和实验科学,有其独特的优越性。首先,高性能计算既免除了真实实验的昂贵代价,而且不会对环境产生任何影响,即所谓无损伤研究。第二,高性能计算可以实现全过程全时空的研究 ,获取研究对象发展变化的全部信息。第三,高性能计算可以低成本地反复进行,获得各种条件下全面系统的数据。
事实证明,有了高性能计算不再需要进行核试验,有了高性能计算可以预测海啸和地震的危害,有了高性能计算可以通晓人类大脑的奥秘和生命的密码。在我国为满足国民经济发
2 / 16
展的需要,高性能计算的需求正在迅速增长。无论是、石油气象等主要领域,还是以生物医药、微观结构研究为代表的新一代科技,都高度依赖高性能计算。它们的发展很大程度上取决于高性能计算的发展。尤其是基础科学领域,对计算的需求永无止境,而且越高性能的计算机越能产生高精度高时效的成果。
3 高性能计算的优势
3.1 计算科学应用是高性能计算技术发展的源动力
计算科学的兴起是 20世纪后半叶最重要的科技进步之一,大大丰富了当今世界的科学研究活动。高性能计算作为计算的高端,代表计算机发展的方向和应用的前沿,更加得到关注和重视。有关高性能计算的突破和发展都被视为科技的重大进步,随着技术的下移,对相关产业的发展有广泛的带动作用。回顾历史,任何时候研制的最高性能的计算机总是服务于当时的科学计算需求,主要研究领域包括新型材料、药物设计、气候模拟、核武器模拟、电磁学、工业产品、海量数据处理、国防和安全等,或者称是以科学计算为最初应用的靶子进行设计的,如日本地球模拟器系统与IBM蓝色基因系统两个项目。而高性能计算机技术逐步向商用领域转移与转化,计算性能及与其相匹配的存储容量、互连网络带宽等指标成为高性能计算机设计者追求的持续关键指标。
我国早期的高性能计算机依赖于进口,极大地了应用,这也激发了我国自主研发高性能计算机的决心。随着自主研制的高性能计算机“神威”、“银河”、“曙光”等的发展,美国和日本对我国的也一步一步放宽,大型计算机的价格也在下跌。各种因素的综合促进了高性能计算的应用。近几年随着我国在高性能计算技术和应用方面的大力支持,我国各个领域的计算应用开始利用高性能计算工具,高校纷纷开设并行计算相关课程。随着社会信息化步伐的加快,高性能计算应用将快速发展。
3.2 高性能计算机研制推动应用的发展
经过近半个世纪的发展,高性能计算机从最初的向量计算机,历经对称多处理机(SMP)、大规模并行处理机(MPP),一直发展到机群系统( cluster )和星群系统(constellation ),实现了飞速发展。万亿(Tflops)、百万亿乃至千万亿(Pflops)次的高性能计算机将逐渐进入人们的视野。
近两年,关于研制千万亿次高性能计算机的讨论日渐火热。美日两国更是在千万亿次高性能计算机的研制上进行了激烈的竞争,相继推出千万亿次机器的研制计划。例如日本 Riken 高性能计算中心和NEC针对生化领域的MDGRAPE-3,预计在2008年安装在美国能源部橡树岭国家实验室的Cray Baker和IBM的蓝色基因P P计划等。目前预计千万亿次系统将在2009~ 2011年间集中涌现在我国,千万亿次高性能计算机的研制也提上了议事日程。根据十一五高性能计算机研发计划,我国将在2008年完成2台百万亿次高性能计算机系统的研发,并适时推出千万亿次高性能计算机。
3 / 16
高性能计算机性能的提高必将推动应用的发展。在美国,高性能计算主要用于核武器研究、国家防御、、能源与环境、生物科学、地球科学、材料科学、天文学、药物设计、物理化学、电子器件及金融领域。日本的高性能计算主要为重大的科学探索和研究服务,如地球模拟器主要用于大气与海洋模拟、固体地球模拟、多尺度模拟等。欧盟国家投资高性能计算主要鼓励生命科学、信息技术、纳米技术、天文和空间科学、食品质量和安全、可持续发展等项目。我国高性能计算以经济发展为目的,涉及气象数值模拟与预报、地震预报、生物信息、药物设计、环境科学、空间科学、材料科学、计算物理、计算化学、流体力学、地震三维成像、油藏数值模拟、天体星系模拟、金融、制造等众多领域。
3.3 高性能计算应用促进科技创新和社会进步
随着研究的深入和竞争的加剧,各领域越来越多地使用高性能计算技术来解决科研和生产中的实际问题。高性能计算应用的发展不但促进了科技创新,也促进了社会的进步。高性能计算应用发展水平逐渐成为衡量一个国家综合国力和国际竞争力的重要指标。
国外的高性能计算应用已经具有相当的规模,在各个领域都有比较成熟的应用实例。在物理、化学、生物等科学研究领域已广泛利用高性能计算手段,在其它领域也广泛被应用。例如在部门大量使用高性能计算机,能有效地提高对国民经、社会发展的宏观监控和引导能力,包括打击走私、增强税收、进行金融监控和风险预警、环境和资源的监控和分析等等。例如在能源领域,世界上石油公司通过高性能计算机处理石油勘探数据,为能源的发现提供了支撑。在工业产品设计领域,例如美国通用机械(GM)和通用电气(GE)等集团用网络将全球各地设计中心的服务器和贵重设备连接成一个整体,以便于工程师和客户共同设计产品,设计时间可缩短100倍。对很多大型企业来说,采购成本是总成本的重要组成部分,例如福特等集团用高性能计算机构造了一个网上集市,通过网络连到它的3万多个供货商。这种网上采购不仅能降低价格,减少采购费用,还能缩短采购时间。此外,制造、后勤运输、市场调查等领域也都是高性能计算机大显身手的领域。随着“网络计算”和“后PC时代”的到来,全世界将有数十亿的客户端设备,它们需要连到数百万台高性能服务器上。高性能计算机将越来越得到产业界的认同,成为重要的设计、生产和管理工具。
高性能计算应用在高性能计算技术的支持下为我国的科技创新作出了巨大贡献,并且和高性能计算技术在相辅相成中不断发展。近年来,我国对大规模科学计算和高性能计算都给予了极大的重视和投入。国家973计划和863计划均有对高性能计算方面的大量投入,而且包括计算机界的许多学者认识到应用的重要性,特别是高性能计算的应用,给予了高度的关注。 在传统的高性能计算应用领域如国防安全,核爆模拟,石油勘探数据处理,天气预报,洋流研究等有更大的发展。在新的应用领域,如生物信息,基因,纳米材料,微电子,工业产品设计和制造等方面也有很快的发展。在信息处理领域,、金融、流通领域纷纷用高性能计算资源处理海量数据。高性能计算的应用得到各方面的关注和重视。
高性能计算相对于理论科学和实验科学,有其独特的优越性。首先,高性能计算既免除了真实实验的昂贵代价,而且不会对环境产生任何影响,即所谓无损伤研究。第二 ,高性能
4 / 16
计算可以实现全过程全时空的研究,获取研究对象发展变化的全部信息。第三 ,高性能计算可以低成本地反复进行,获得各种条件下全面系统的数据。事实证明,有了高性能计算不再需要进行核试验,有了高性能计算可以预测海啸和地震的危害,有了高性能计算可以通晓人类大脑的奥秘和生命的密码。
3.4 网格是高性能计算应用发展的新趋势
21 世纪网络化是高性能计算应用最重要的趋势,网格(grid)已经成为高性能计算的一个新研究热点。用美国网格计算领导人Foster的话来说,网格是构筑在互联网上的一组新兴技术,它将高速互联网、高性能计算机、大型数据库、传感器、远程设备等融为一体,为科技人员和普通百姓提供更多的资源、功能和交互性,让人们透明地使用计算、存储等其他资源。
在网格方面美国大大领先于其他国家,美国当前对于网格研究的支持可与其70年代对 Internet研究的支持相比,10 年后可望普及到国民经济和社会发展的各个领域。TeraGrid是由美国国家科学基金会发起,由9个超算中心和国家实验室针对科学研究中出现的资源共享、合作研究等问题提出的。T eraGrid利用高性能网络,将分布在全国的高性能计算机、高端科学仪器、数据资源连接在一起,具有超过102Tflops的计算能力和15PB的存储能力。其他国际上比较知名的网格还有欧盟的EGEE、英国的 e -Science和环太平洋网格应用与中间件联盟PRAGMA等。
我国对网格技术的研究也给与大力支持,十五、八六三计划的高性能计算专项和软件专项等重大科研项目都与网格技术有关。中国国家网格(China National Grid, CNGrid)就是“八六三计划”高性能计算机及其核心软件,重大专项支持建立的网格示范平台。CNGrid一期项目有8个计算结点遍布全国六大城市,总计算能力达到16Tflops,存储能力达到200TB,已经支持科学研究、资源环境、制造业和服务业的11个行业应用,包括资源环境网格、航空制造网格、气象网格、科学数据网格、新药研发网格、森林资源与林业生态工程网格、生物信息网格、教育网格、城市交通信息服务网格、仿真应用网格和国家地质调查网格。
3.5 发展公共超级计算中心具有战略意义
超级计算中心是一个现代发达国家不可缺少的信息基础设施。从全球来看,超级计算中心在主要工业化国家和第三世界的部分大国都有部署,都得到的大力支持,超级计算中心由为主投资进行设备更新和运营支持是全球的普遍模式。我国目前为数不多的超级计算中心由特定的部门建设和应用,有部分的开放,但很难被外界使用。国家科技部和教育部也曾经投资建设了一些高性能计算中心,但缺乏长期持续的支持和发展。近年来有地方建立超级计算中心,但缺乏国家级的高性能计算中心,缺乏长远的规划和目标。
从我国的国情出发,设立少数公共超级计算中心不仅能满足我国高性能计算的强烈需求,同时能使有限的资源得到最有效的利用。众所周知,高性能计算机的发展速度快,初始投资和日常维护都需要大量的资金,如果机器在生命周期内不能最大效益的发挥作用,必然形成资源浪费。一个部门和机构很难建立大规模的计算中心,但峰值的需求又不能得到满足。超
5 / 16
级计算中心有大量的用户,各用户之间对资源的峰值需求有交错性,从而使超级计算机保持稳定的高利用率。超级计算中心的初始投资和运营维护费用分摊到所有用户上,能大量节约社会投资,提高资金的效率。客户能够使用的高性能资源超出了自身能够建设的范围,但成本却大大降低。所以超级计算中心在美国又被称作“Cycle Shop”。
超级计算中心在高性能计算产业链中扮演着独特的承上启下的重要作用。超级计算中心直接面对高性能计算终端用户,深刻理解用户的需求、各类应用特点,其经验对于高性能计算软硬件厂商非常重要,对高性能计算用户的培养和教育对于扩大高性能计算市场极其重要。 同时目前绝大多数的超级计算中心的非盈利特性,使得其没有把运行重点放在直接经济利益回报上,从而能够代表去做与产业集合紧密、合作各方多赢的事情。这都有利于一个健康、良好、多赢的高性能计算市场的形成和发展。超级计算中心要自觉地、主动地在学术和市场间广泛合作,游刃有余,串接起不同的价值链,让更多的人力资源、资金、技术、商誉更快地流动和转移。
超级计算中心是各学科知识聚集融合的场地,远远有别于一个单纯在计算机科学方面开展研究的IT研究机构 ,对于推动高性能计算应用的深度和广度至关重要。通过各类基础科学、工程科学的各类科学家和专业技术人员与计算机专家、计算科学专家的互动,能积累丰富的经验、知识和成果。同时,超级计算中心在多学科交融的过程中,可以有更多的机会、更创新的模式为国家知识创新、科技创新提供更有效的支撑。
4 现状与发展
4.1 高性能计算的现状与发展
高性能计算与传统计算相比较,其最大特点是速度快、计算结果精确。而对高性能计算的研究也正围绕着这样一个特点,主要从两个方面进行研究:①致力于开发尖端高性能计算机。②利用现在迅猛发展的网格技术,实现高性能计算。
自1946年第一台计算机ENIAC在宾夕法尼亚大学问世以来,在这短短的50年左右的时间里,\"冯、诺依曼\"体系的高性能计算机的迅猛发展,并且日益走向成熟
大体来讲,高性能体系结构主要包括:\"Cra式\"的向量超级计算机集群、可扩展的单处理器和多处理器集群。目前集群系统也正从大规模并行计算机和运行专用软件的集群向运行标准软件的专用集群和由商用硬件和软件自制而成的 Beowulf系统集群系统转变。
网格计算是网络技术发展的新阶段。我们采用网格技术可以将Internet或者某个局域网中的所有这些闲置的软件或者硬件资源都联系起来形成一个潜在的资源池,产生了强大的计算能力。当用户需要进行大规模计算时,他可以使用这个资源池里的资源进行计算,这时就像家里的用电不需要考虑我们所使用的电源是由哪个发电厂生产的一样,不需要考虑所使用的具体资源所在的位置。这样的话,不管是何时何地,我们的计算机资源都能得到合理的应用,而且能够得到一个理想的计算效果。
在未来的高性能计算的发展中,尖端的高性能计算机是网格计算中的重要计算资源,而
6 / 16
网格技术也为未来取得一个高性能计算的能力提供了一个优良的环境。
4.2 中国高性能计算的现状与发展
由于我国在高性能计算技术上起步比较晚,工业水平及相应的经济发展程度低,再加上美国等西方国家一直把高性能计算技术作为重要的战略资源,长期以来对我国的实行全面的封锁和禁运,一直以来我国的高性能计算技术远远地落后于世界先进水平。
20世纪90年代以来,随着“神威”、“银河”、“曙光”、“深腾”等一批知名产品的出现,我国成为继美国、日本之后的第三个具备高性能计算机系统研制能力的国家,被誉为世界未来高性能计算市场的“第三股力量”。我国在高性能计算机研制方面取得了较好的成绩,掌握了研制高性能计算机的一些关键技术,参与研制的单位也由科研院发展到企业界,有力地推动了高性能计算的发展。目前,我国的高性能计算环境已得到重大改善,总计算能力与发达国家的差距逐步缩小。 我国的高性能计算技术拓宽了我国科学技术研究的深度和广度,提高了我国工业的生产效率,同时也节约了很多生产成本。我国的高性能计算技术目前主要在石油行业、天气预报、核能模拟、生物工程等领域得到了广泛的应用。
但是中国高性能计算的应用还不够广、不够深入,应用水平和应用效率都比较低下。我国对高性能计算应用的投入还远远不够,应用研发力量薄弱且分散,缺乏跨学科的综合型人才,从事高端应用软件研发的单位很少,企业界基本未介入,没有良好的相互交流的组织渠道等。高性能应用软件的开发和高效并行算法研究尚不能与高端计算机发展同步,在一定程度上存在为计算机“配”软件的思想。我国高性能计算应用的研究与发明明显滞后于高性能计算机的发展。国外品牌还占领着很多关乎国计民生的关键领域和行业,国产高性能服务器的市场份额仍然偏低。
4.3 高性能计算的发展阶段
自1946年ENIA诞生以来,人们就没停止对高性能计算的追求,总体经过以下几个阶段:
4.3.1 PVP
20世纪70年代出现的向量机可以看作是第一代的高性能计算机,以Cray Research公司开发的 Cray系列计算机为代表。当时的并行向量机( Parallel VectorProcessing,PVP) 通过增加处理器个数、扩展存储器的方式不断提升计算能力,占领高性能计算市场达20年之久。其架构如图 1 所示,不过随着并行向量机处理器数目的增加,使得定制费用和维护费用越来越昂贵,性价比越来越低,已难以满足高性能计算机市场化的要求。这个类型的计算机以 CDC公司的CDC8600和CDC STAR- 100为代表。
7 / 16
4.3.2 SMP
随着大规模集成电路的出现,微处理器应运而生.随着微处理器性能的不断提高,对称多处理( Symmetric Multi-Processing,SMP)计算机取代了 PVP,直接导致并行向量机退出了高性能计算市场。这种技术在IL-LIAC IV时代就开始尝试应用了,其架构如图 2 所示:
但是SMP计算机可扩展的处理器数目有限,加之对I /O和存储器操作的不便都了其发展。
4.3.3 MPP
20世纪90年代初,大规模并行处理(MassivelyParallel Processing,MPP)成为HPC发展的方向,并以ILLIAC IV和Cray I为代表,MPP架构下多个节点间通过网络进行连接,微处理器之间通过消息传递进行通讯。如图3所示,MPP系统使用专门的网络和操作系统,而与此同时,随着个人 PC 的发展,集群出现了。
8 / 16
4.3.4 集群
集群是价格低廉并且方便的高性能计算方法,通过本地网络连接多台计算机来共同完成工作,集群中的计算机处于平等地位,通过相互协作完成计算。集群以较低的成本获得计算能力大幅度的提升,使高性能计算趋于平民化。集群结构如图4所示,集群获得了计算能力成倍的提高,与之相伴的就是并行与分布式计算技术。
并行计算(Parallel Computing,或并行处理、平行计算)一般是指许多指令得以同时进行的计算模式。分布式计算(Distributed Computing)是一种把需要进行大量计算的工程数据分成小块,由多台计算机分别计算,上传运算结果后,将结果统一合并得出数据结论的计算模式。目前实现并行与分布式计算最常见的技术是PVM和MPI。MPI已经成为并行计算的标准。
集群的扩展毕竟是有限的,于是人们想将互联网上尽可能多的闲置计算机资源纳入到集群中来,这样就产生了网格计算技术,网格计算是分布式计算的1 种。
4.3.5 网格
网格(Grid)这个词源于电力网格(Power Grid)。“网格”与“电力网格”形神相似。一方面, 计算机网纵横交错,很像电力网络;另一方面,电力网格用高压线路把分散在各地的发电站连接在一起,向用户提供源源不断的电力,用户只需插上插头、打开开关就能用电,不需要知道电能是从哪个电站送来的,也不需要知道它是水电、火电还是核电。建设网格的目的也是一样,其最终目的是希望它能够把分布在因特网上数以亿计的计算机、存储器、贵重设备、 数据库等整合起来,形成一个虚拟的、空前强大的超级计算机,以满足不断增长的计算、存储需求,并使信息世界成为一个有机的整体。网格的架构如图 5 所示:
9 / 16
网格本质上是计算机集群,但是与集群有所不同。集群只是将多台计算机通过网络连接在一起,通过软件分工合作,来共同完成任务,然后将结果反馈集中。对用户来讲,面对的好像不是多台计算机的集群,而是1台计算机。集群要提升计算能力,只能通过增加服务器1种途径。而对于1个集群来讲,能增加的服务器数量显然是有限的,这也就了集群计算能力的进一步提升,而且随着服务器数量的增加,集群的性价比也会不断地下降。而对于网格来说,它面对的是整个因特网上的计算机,理论上具有无限扩展的可能,可以虚拟出空前强大的计算机。另外,集群在执行任务时要求集群中的每台计算机都是同构的,而网格则不需要。网格可以动态地获取资源并加以利用,也可以在任务完成后马上释放资源,合理使用负载,而这一点集群是做不到的。
4.3.6 云计算
随着高性能计算技术的进一步发展,出现了“云计算”技术,云计算的核心思想是将大量用网络连接的计算资源虚拟化后进行统一管理和调度,构成1个计算资源池向用户按需提供服务。提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,按使用付费。云计算网络的架构如图6所示:
网格计算和云计算看起来比较相似,都是将网络上的资源形成1个资源池,然后按需分配给使用者,很多人甚至将云计算叫做“网格2.0” ,但实际上两者在本质上是有所不同的。
一般情况下,网格是针对某种具体的需求而开发出来的,用于完成特定的任务,因此会出现各种各样的网格,比如生物网格、地理网格、国家教育网格等等。网格的作用是为了获得更强大的计算能力,它将1个需要巨大计算量的任务细化成多个相互之间不关联的子任务,然后通过网格软件从纳入网格中的所有计算机资源中寻找空闲资源,将子任务分发给空闲节点进行计算。子节点在完成计算后会将结果返回进行汇总,然后再接收下个任务。若子节点在运算过程中发生崩溃,没能及时返回结果,也不会影响整个项目的进行,其所承担的任务
10 / 16
会被调度系统分配给其他的节点继续完成。从这一方面讲,作业调度是网格的核心价值,而云计算网络是通用的,目前还没有出现以某个具体应用命名的云网络。云计算网络的目的不再是单纯追求强大的计算能力,而更像是为了按需分配资源。比如某企业在云计算网络中租用了1台虚拟服务器,当某些特定时刻,计算量或者网络的访问量激增的时候,云计算网络会动态地增加该服务器的计算能力和网络带宽,以满足企业的需要。当需求变小的时候,云计算网络又会动态地释放部分资源,使资源的调度总是维持在一个比较合理的水平。企业只需要按照使用情况付费,而不需要像以前那样必须去购买能够满足最大需求的物理设备。 云计算作为一种新的高性能计算网络目前仍在发展中,上述几种高性能计算方式的优缺点总结如表1所示。
4.3.7 GPGPU
近几年,出现了GPGPU( General Purpose GPU 通用计算图形处理器),即使用GPU进行通用运算的技术,并由此产生了CPU + GPU的高性能计算方式。该方式下CPU专注于串行计算,而并行计算部分交由GPU 来完成。GPU 参与并行运算后,将计算机的运算能力提升了几倍到几十倍,将 PC 转变成了高性能计算机。
目前的GPU并行运算技术有2种,分别为NVIDIA公司的基于Geforce8以上显卡的 CUDA技术和AMD公司的基于ATI显卡的 Stream 技术。而 Intel公司也在开发自己的 GPGPU技术。
5 高性能计算机的分类
依据市场对HPC机的应用需求,HPC机可以分为两大类: (1)服务型(容量型)
1)普及计算型:一般的计算中心,面向各种各样用户算题需求,同时为多个用户算题服务,系统要易得,用得起,一般不特别追求计算高效高速,也不强调一 个用户独霸全系统。 2)数据型:各种数据中心、服务中心,面向大量或巨量用户的同时访问,要求 响应快、服务好。譬如Google搜索服务,全球有600万台服务器构成的HPC系统来支撑服务。 3)音视频型:视频制作,大片点播中心,网游支持中心等。譬如,“阿凡达”3D影片制作,用了一台每秒运算205万亿次的HPC机,是HP公司生产的总共3.5万核的Cluster机。
11 / 16
这类HPC机大量需求,市场巨大。它要求便宜易得,用得起,其应用特性是同时为众多用户服务,高性能主要表现为巨大的用户量,故可称为“容量型HPC机”, 是一群小鸡共同吃一堆谷物的方式。“商用CPU+商用互连网络+开源软件” 组成的cluster机非常合适。 (2)计算型(能力型)
该型HPC机主要应用于大规模的科技工程问题计算求解,系统可以同时支持多 个用户算题,但特别强调全系统同时为一个用户题高效便捷求解服务。机器能力表现为如同一头大象,可扛起千斤重担。这类机器被称为“能力型HPC机”,是高端HPC机,要求其大规模处理器的访存快捷、并行协同计算好、相互通信高效、 机器能耗合理、系统可靠可维。无疑这类机器需要特殊设计、制作。
这类HPC机,市场需求不大,但是是高端需求,是技术制高点。能做这类机器的单位、公司全球仅少数几家。设计制作这类机器的技术途径大致有:①自己设计定制专用CPU; ②商用CPU+自己设计定制的专用高效加速处理器,构成异构型 机; ③自己设计定制的高速高效互连网络。
6 高性能计算的主要技术难点和研究方向
架构HPC机至今唯一技术途径是:由CPU+本地存储器构成一个结点机,然后把 大量结点机互连成系统,以大规模并行计算来获得高速、高性能。并行的结点机数或称“核”(core,可执行计算程序的基础单元)数,现已高达几十万个。HPC计算技术发展的难点均由此产生,规模越大,矛盾越突出,这可能是相伴HPC终身的永恒主题。高性能计算的主要技术难点是: (1)难用: 如何把一个计算问题分解为可并行协同计算的几千、几万、几十万个 小问题,即“大规模的并行算法”,是个巨大的难题;计算对象———数据,如何合理放置到几千、几万、几十万个结点上去,使核的计算能方便快速得到和交换数据(结点间数据交换是很低效的),是相关的又一大难题,即“数据流的组织”问题;人的思维及传统的程序概念是串行执行的,如此大规模的并行,程序 怎么编,所编程序如何在结点机架构不同的系统间可移植,都是很困难的,即“可编程、可移植”问题。
(2)低效:由于上述的难题难以很好解决,实际问题的有限并行度与机器大规模并行的架构不匹配,高速运算能力与访存取数很慢的不匹配,结点机高性能与结点机之间的极慢的通信传输能力不匹配等等导致HPC机解算实际问题时低效, 全系统的计算能力实际能用上的只有几成,譬如30%就不错了,差的只有5%。当然,对特定问题、针对特定的机器架构,由高手精心设计程序,也可以获得很高的可用率,这也是HPC机的魅力所在。
(3)高成本:大规模,几百个大机柜,成千上万个结点机,机器价格很高,1千万亿次/秒的HPC机要上亿美元,而巨大的功耗(兆瓦级)及相应的散热冷却, 也代价高昂,年电费需上千万元,有人戏称买得起用不起。如此庞大系统,如此 高功耗高热,又会使系统稳定可靠性大为降低,有的平均只能稳定几小时,系统 维护成本也很高。
由此10年前就有人提出,高性能计算要向高效能方向努力,highperformance改为(或强调)
12 / 16
highproduc-tivity。高效能就是要解决或缓解上述难题,其含 义是:①提高:HPC系统的实用性能,HPC系统的可编程性,HPC系统的可靠、可信性;②同时降低:HPC系统的开发与硬件成本,HPC系统的运行成本(特别是 功耗),HPC系统的维护成本。因此,HPC技术的主要研究方向是:
(1)高效能并行计算机体系结构:首先是处理器的高效架构,CPU既是高性能的核心动力,也是高性能的核心基础,单片上众核已是CPU的主流方向,Intel展示过80核的单片CPU;CPU内嵌加速处理器(如GPU)也是成功的方向;面向计算领域的专用新型异构众核体系结构,算法与体系结构紧密结合,可能是有前途的方向。
(2)以存储为中心的体系架构:访存速度的提升远落后于CPU计算速度的高速 增长(即“存储墙”壁垒),如何加速数据流的提供是提高HPC计算效率的核心关键。目前流行的是越来越复杂的多级Cache(缓存),需要有创新思路和精巧的新设计。性的举措是以存储为中心来设计组织系统,让计算部件从目前的主导地位变为从属地位。但这一思想提出多年难有突破,也许专用机上有希望。
(3)基于光的高可扩展互联网络技术:HPC内大量结点机之间的互联网络是数 据流组织及机间通信的渠道,是HPC效率发挥的关键。机间访问比结点机内部访问慢几个量级,提高互联网络的性能(带宽、时延)可大为提升HPC的效能,是 HPC机研制的核心技术。另一方面,光互连比电互连有许多优势,目前HPC机机柜之间已普遍采用光互连。下一步是在机柜内实现光互连,进一步在板内、以至 芯片内采用光互连。这方面的研究在广泛深入展开,竞争极为激烈。光传输中一个重大技术壁垒是交换,目前仍借助电。如能突破“全光交换技术”,将是信息技术中的一次性的发展。
(4)多层次低功耗控制技术:HPC的高功耗是其发展的主要障碍之一,是影响成本、节能、系统可靠性的主要因素,降低功耗是一巨大挑战。目前接近10PFLOPS的顶级HPC机功耗达10兆瓦,若无有效技术创新,1EFLOPS(即1000PFLOPS)的HPC机功耗达1000MW,是无法接受的。控制、降低功耗要多层次上下功夫,芯片低功耗是基础,是最重要的举措。需要工艺、体系结构两方面的创新。此外控制硬件分而治之(不工作的部件降功耗,休闲),软硬件结合控制分而治之(编译给出部件忙闲状态,操作系统管理硬件资源)……也是重要技术途径。
(5)面向体系结构的编译与优化技术:大规模并行是编译和优化的大难题,几十万、上百万个核的并行编程与优化是巨大挑战。面向体系结构,算法、体系结构、编译三结合来研究,可能是一条有效的技术途径。面向新的体系结构,创新新的编程语言、编程平台、编程和优化工具,以隐藏复杂的体系结构,方便用户使用,提高硬件应用效率,是推广HPC机应用的重要工作。
(6)系统可靠稳定性:巨大的规模,巨大的功耗,使HPC机可靠性大为降低, 以至不可接受。后果是大型算题经常中途夭折,得不到结果,大量浪费机器资源和人力资源。如何把故障部件从系统中隔离出去,进行维修,修好再加入系统,这一全过程中仍保持系统及用户题计算持续有效运行是巨大挑战。有人已提出“连续故障”(即系统不断出故障,稳定工
13 / 16
作时间很短)的概念,要求此时全系统不崩溃,仍能让联机用户题有效计算下去。
7 高性能计算的应用
在国际高科技竞争日益激烈的今天,高性能计算技术已成为体现一个国家综合实力的一种标志。最早高性能计算主要面向科学计算、数值计算等应用,例如:天气预报、航天飞行、地震资料处理、基因匹配与拼接研究等。在飞机制造方面,为了确保飞行的安全,飞机在飞行前必须经过大量的试验。传统的飞机设计通过\"风洞实验\",模拟飞机在空中飞行的环境,这需要逾亿元的费用,目前我们采用了高性能计算机来模拟仿真\"风洞实验\",从而精确计算各种指标。这样不仅使飞机研发周期缩短了,而且研发费用也大幅下降。
目前随着信息社会的迅猛发展,越来越多的领域都涉及到处理海量的数据。这些需求迫使高性能计算已经不只是局限在科学计算、国家高端科技上,在工业和商业领域也不断地体现其价值。例如:船舶设计、汽车制造、证券指数计算、电力安全评估、建筑工程抗震性评估、电磁辐射计算等。在大型建筑和桥梁的设计和施工过程中,设计者必须考虑到许多因素, 诸如材料承受力、天气、温度、共振等方面,而且这些因素之间是互相关联,相互作用的。我们要保证建筑和桥梁在竣工后能够安全可靠地使用,必须充分分析这些所有因素相互作用对建筑和桥梁产生的所有影响,在这个分析过程中涉及到大量复杂的计算。采用高性能计算机辅助设计,在计算机中不仅计算各个因素所产生的影响,而且能够有很明显的视觉效果。这样不仅大大的提高了效率,减少了研发成本,而且设计出来的建筑、桥梁不但满足各项安全指标,而且还美观。
汽车设计方面,上海超级计算中心把基于大规模并行计算机和并行商业软件的计算资源提供给用户用于汽车碰撞模拟和汽车外形 CFD模拟,同时和专业工程咨询公司联合为汽车设计和制造厂家提供汽车设计的工程咨询服务。满足了不同用户、不同层次的需求,对推动中国汽车自主研发起到了重要作用。例如,目前典型的汽车碰撞计算题目规模在50万到80万有限元单元。用一般的工作站计算,需要100多小时,而使用“曙光4000A”的32CPU,可以在4小时内完成计算,对缩短汽车研发周期具有重大的作用。
航空航天是高性能计算传统的应用领域。飞机的外形布局、构形都需要通过计算和试验的方式进行筛选、优化、评定和验证。传统的风洞试验非常昂贵,而计算机模拟可以大大减少试验次数,同时加快研制进程。航空航天设计中采用了大量的计算模拟,这些计算需要大规模的计算机和商业程序。上海超级计算中心自2003年6月以来为上海飞机设计研究所提供支线飞机的空气动力学计算,计算规模达到了600万单元,至今共完成几百个飞行工况的计算分析,总机时超过了40万个CPU小时,获得的有效数据量超过800GB,为支线飞机的研制提供了重大保障。另一方面的应用,飞机大攻角气动特性分析需要更大规模的计算,上海超级计算中心利用“曙光4000A”对1300万网格的飞机CFD课题进行了计算,这也是目前国内该领域最大规模的计算。物不仅阻碍节点移动,也了信号的无线传输,利用现有算法进行分簇,簇的数目将增多。OCA算法通过设置备用节点改善了网络的连通性,并且对最小ID
14 / 16
算法进行改进来减少簇的数目,降低簇的更新,从而适应了障碍物环境下的分簇。 模拟结果表明OCA算法可以在一定程度上改善网络性能。
材料设计是高性能计算的重要应用领域。红外光电技术是世界各国共同关注的战略性高技术,目前国际上对红外光电功能材料的研究已从一般性常规的基本科学问题转向器件应用中高准确度物理模型的建立与相应的特定物性的科学研究。上海技术物理研究所利用“曙光 4000A”主要研究红外光电子器件材料中的缺陷、杂质和沉积的量子特征体系对电子结构、声子结构和电导等物理性质的影响,计算的理论方法基于当今广泛采用的密度函数理论和线性响应理论。在长期的研究中得到了很有价值的成果。
地质勘探方面,高性能计算主要用于研究地震波在地下各种复杂介质中的传播规律,通过地球内部结构的研究,进行工业油气勘探和开发。在求解三维波动方程中庞大的计算量成为实际模拟面临的主要难题,而高性能计算机是使用维波动方程实现地震波传播数值模拟的重要保障。同济大学地球物理系和上海超级计算中心合作,实现了自行开发的波动方程数值模拟程序在超级计算机上的并行化,并对国外已完成的案例进行了对比计算,结果优于国外,同时对大庆油田陆相断陷模型进行了实际计算,获得了重要的地层发现。
市政工程方面,目前地震安全性评价仅限于对工程场地的地震动参数进行评价,并且仅采用一维等效线性模型计算土层的地震反应,没有考虑地面三维形状的影响和土层与结构的耦合效应。考虑地面三维形状和土层结构耦合效应的特大型工程地震安全性评价的核心是一个大规模非线性结构动力学正问题,采用普通计算机根本无法完成,必须采用大规模的超级计算机。上海交通大学,上海超级计算中心,上海隧道设计院,上海地震工程研究所针对特大型工程地震安全性评价的要求,设计并行算法,开发并行软件,利用上海超级计算中心的曙光 4000A超级计算机解决特大型工程地震安全性评价中的海量计算问题。应用于上海外环线沉管式隧道,复兴东路盾构式隧道,上海液化天然气工程,上海世博会变电站工程等重大工程的地震安全性评价,取得了出色的实用性成果。
总而言之,越来越多的领域应用到高性能计算技术,高性能计算不仅极大幅度地加快计算的速度,缩短了研制和生产周期,同时,其配套的一些技术如计算机仿真模拟、计算机辅助设计让生产和研制结果更直观呈现在我们面前。中国科学院计算技术研究所所长李国杰院士说,高性能计算机是真正的先进生产力,是最典型的第一生产力。它对保障、促进科技进步、推动经济发展有着不可替代的重要作用,被各个国家提到一个重要的战略地位。
8 展望未来
高性能计算的最终目标是应用。为了更好地完成预定的大规模科学计算任务,不仅要有好的高性能计算机,还要有与之相匹配的高质量的高性能应用。但是,目前我国高性能计算机的实用效率还停留在较低的水平,应用水平低成为高性能计算的薄弱环节。我国的高性能计算事业要走可持续均衡发展的道路,如何使当前的建设成果充分发挥其效益并可持续发展, 改善应用水平较低的现状,是我们必须思考的问题。
15 / 16
我国对加强高性能计算环境和超级计算中心建设一直给予高度重视和大量投入,,但是高性能计算环境建设不能盲目地以追求计算机峰值为目的,而是以应用需求为向导,以应用水平为依据,针对不同应用的计算特点,引进不同体系结构的计算机系统。在高性能计算环境建设中,还需要软件和硬件建设并重,优化编程模型和并行算法,改进操作系统、编译器等系统软件,加大自主软件的开发和集成力度,使高性能计算环境真正发挥应有的作用。在高性能计算环境运行过程中,需要加强管理,对作业进行合理调度,提高系统利用率。
高性能计算机的问世给科学研究及工农业生产等带来了前所未有的发展,同时对用户使用计算机也提出了更高的要求。高性能计算机规模的不断扩大、多核处理器的出现都加大了用户使用计算机的难度。针对拥有多处理器(核)的高性能计算机系统,开展操作系统多核版本的研究、多级并行编程模型、软件工具和编译器的开发、现有M PI,OpenM P编程模型的优化,并行算法的改进等工作,对提高应用软件在多核(16 核P节点)、流计算 ( IBM Cell,GPU) 等下一代计算机系统上的运行效率至关重要。并行应用的可扩展性也是百万亿次、千万亿次大规模计算机系统面临的一个很大的挑战。只有开发易于使用的高性能计算机系统,,进一步优化系统配置,根据用户的使用特点实现按需定制,降低高性能计算机的使用门槛,才能提高高性能计算机的实用效率。
高性能计算应用的目标往往是解决综合性、系统性的复杂问题,涉及问题抽象、模型建立、并行算法、并行编程、应用测试等多个领域。因此,加强既懂专业知识又懂计算科学的复合型人才的培养,及不同学科科技人员之间的交流与合作是当务之急。此外,需要积极拓展多种形式的国内外合作,建设各领域的应用网格系统,实现高性能计算资源的整合与共享, 提高资源利用效率,为全国更多的用户提供高性能计算应用服务,推进中国网格技术与应用的发展。
参考文献
[1] 周毓麟, 沈隆钧. 高性能计算的应用及战略地位[J]. 中国科学院院刊, 1999(3):184-187. [2] 韩冀中. 高性能计算技术的发展现状及趋势[J]. 中国工程科学, 2000, 2(1):85-86.
[3] 李根国, 桂亚东, 刘欣. 浅谈高性能计算的地位及应用[J]. 计算机应用与软件, 2006, 23(9):3-4. [4] 郑晓鸣. 浅析高性能计算的现状与发展[J]. 福建电脑, 2007(2):211-211.
[5] 赵毅, 朱鹏, 迟学斌,等. 浅析高性能计算应用的需求与发展[J]. 计算机研究与发展, 2007, 44(10):10-16. [6] 张军华, 臧胜涛, 单联瑜,等. 高性能计算的发展现状及趋势[J]. 石油地球物理勘探, 2010, 45(6):918-925. [7] 周兴铭. 高性能计算技术发展[J]. 自然杂志, 2011, 33(5):249-254.
[8] 李波, 曹福毅, 王祥凤. 高性能计算技术发展概述[J]. 沈阳工程学院学报(自然科学版), 2012, 08(3):66-68+83.
16 / 16
因篇幅问题不能全部显示,请点此查看更多更全内容