近两个世纪前,英国化学家汉弗莱·戴维(Humphrey Davy)写道:“没有什么比新仪器的应用更能促进知识的进步了。”不同时代的人们的固有智力与其说是他们工作取得不同成功的原因,不如说是他们所拥有的手段和人工资源的特殊性质。”戴维观察到,那些拥有最强大的科学工具的人会获得优势,这在今天也同样正确。2013年,Martin Karplus, Michael Levitt和Arieh Warshel因为他们在计算建模方面的工作获得了诺贝尔化学奖。诺贝尔委员会表示:“反映现实生活的计算机模型对当今化学领域的大多数进展至关重要。”17“计算机揭示了化学过程,如催化剂净化废气或绿叶的光合作用。”
无论是描述高能粒子加速器(如大型强子对撞机和2013年发现希格斯玻色子)的优势,强大的天文仪器(如哈勃太空望远镜,它洞察了宇宙的膨胀和暗能量),还是高通量DNA测序仪和宏基因组学生态探索,越来越强大的科学仪器不断推进知识。每一个这样的科学仪器,以及其他许多仪器,都严重依赖于传感器控制、数据处理、国际合作和访问的计算。
然而,计算不仅仅是科学的增广器。不像其他工具,它们局限于特定的科学领域,计算建模和数据分析适用于科学和工程的所有领域,因为它们为科学模型的底层数学注入了活力。它们使研究人员能够理解细微的预测,并更有效地塑造实验。它们还有助于捕捉和分析新一代科学仪器产生的大量实验数据,这些仪器由于计算和微电子学的进步而成为可能。
计算建模可以阐明复杂数学模型的微妙之处,并推进科学和工程,在这些领域,时间、成本或安全排除了单独的实验评估。天体物理现象的计算模型,在时间和空间尺度上,如行星系统的形成、恒星动力学、黑洞行为、星系的形成,以及重子和假定的暗物质的相互作用,为理论提供了新的见解,补充了实验数据。复杂的气候模型捕捉到温室气体、森林砍伐和其他行星变化的影响,是理解人类行为对天气和气候变化的影响的关键。
计算科学和工程也可以实现多学科设计和优化,减少原型时间和成本。先进的模拟技术使康明斯能更快、更便宜地制造出更好的柴油发动机,固特异能更快地设计出更安全的轮胎,波音能造出更省油的飞机,宝洁能制造出更好的家用产品材料。
同样,“大数据”、机器学习和预测数据分析被誉为科学的第四大范式,12允许研究人员从科学仪器和计算模拟中提取见解。通过对社交网络、网络搜索查询和医院数据的分析,机器学习对健康风险和疾病传播产生了新的见解。在高能物理和分子生物学等不同领域,它也是事件识别和关联的关键。
与其他几代大型科学仪器一样,每一代先进计算都带来了新的能力,同时也带来了技术设计挑战和经济权衡。一般来说,大多数科学领域的数据生成能力比计算能力增长得更快,导致这些领域变得数据密集型。23高性能计算机和大数据系统与更广泛的计算生态系统及其设计和市场密不可分。它们还以不同于大多数其他科学仪器的方式支持国家安全需求和经济竞争力。
这种“两用”模式,加上越来越大的计算和数据分析系统的成本不断上升,以及大量新的设计挑战,正在提出关于先进计算研究投资优先次序、设计和采购模型,以及全球合作和竞争的新问题。本文探讨了其中的一些技术挑战、计算建模和数据分析的相互依赖性、全球生态系统和先进计算领域领导地位的竞争。我们从高级计算的历史入门开始。
根据定义,一个先进的计算系统包含硬件、软件和算法,以在任何给定的时间提供最高的能力。就像在图1在美国,计算和数据分析生态系统有一些共同的属性,尤其是对开源软件和x86硬件生态系统的依赖。但是,它们在重点和技术方法上有明显的不同。随着科学研究越来越依赖高速计算和数据分析,这两个生态系统的潜在互操作性和规模收敛对未来至关重要。
科学计算。在20世纪80年代,向量超级计算主导了高性能计算,体现在已故的西摩·克雷设计的同名系统中。20世纪90年代见证了Thinking Machines、Silicon Graphics和其他公司构建的大规模并行处理(mpp)和共享内存多处理器(smp)的兴起。反过来,商品(英特尔/AMD x86)集群和专门制造的处理器(如IBM的BlueGene)占据了前十年的主导地位。
如今,这些集群被英特尔的协处理器和英伟达的图形处理器(gpu)形式的计算加速器所增强;它们还包括高速、低延迟的互连(如Infiniband)。存储区域网络(san)用于持久数据存储,每个节点上的本地磁盘仅用于临时文件。这个硬件生态系统首先优化的是性能,而不是最低成本。
在集群硬件之上,Linux提供系统服务,并使用并行文件系统(如Lustre)和批处理调度器(如PBS和SLURM)进行扩充,以进行并行作业管理。MPI和OpenMP用于节点间和节点内并行,并通过库和工具(如CUDA和OpenCL)增强用于协处理器的使用。数值库(如LAPACK和PETSc)和特定于领域的库完成了软件堆栈。应用程序通常用FORTRAN、C或c++开发。
数据分析。就在几年前,最大的数据存储系统只包含几tb的二级磁盘存储,并由自动化磁带库支持。今天,商业和研究云计算系统都包含许多pb级的二级存储,而单个研究实验室通常处理由他们自己的科学仪器产生的tb级数据。
与高性能计算一样,一个丰富的硬件和软件生态系统已经出现在大数据分析领域。与科学计算集群不同,数据分析集群通常基于商用以太网网络和本地存储,以成本和容量为主要优化标准。然而,现在业界正转向fpga和改进的网络设计来优化性能。
在这个硬件之上是Apache Hadoop25系统实现了MapReduce模型进行数据分析。Hadoop包括一个分布式文件系统(HDFS),用于管理大量的大文件,跨集群的本地存储进行分布式(带有块复制)。HDFS和HBase,一个谷歌的BigTable键值存储的开源实现,3.是Lustre用于计算科学的大数据类似物,尽管针对不同的硬件和访问模式进行了优化。
在Hadoop存储系统之上,工具(如Pig18)为两阶段MapReduce模型提供了一个高级编程模型。加上流数据(Storm和Flume)、图形(Giraph)和关系数据(Sqoop)支持,Hadoop生态系统是为数据分析而设计的。此外,工具(如Mahout)通过有监督和无监督学习实现分类、推荐和预测。与科学计算不同,数据分析的应用程序开发通常依赖于Java和Web服务工具(如Ruby on Rails)。
鉴于技术变革的快速步伐,前沿能力是一个移动的目标。今天的智能手机的计算速度和过去的超级计算机一样快,今天的个人音乐收藏和过去的企业级存储一样大。
尽管这似乎有些夸张,但苹果iPhone 6或三星Galaxy S5在标准线性代数基准上的测量性能现在大大超过了被广泛认为是第一台成功的超级计算机的cray1。这款智能手机的存储容量可以与大型研究图书馆的文本内容相媲美。
就在几年前,万亿次浮点运算(1012浮点运算/秒)和tb (1012字节二级存储)定义了最先进的先进计算。如今,同样的数值代表一台配备英伟达或英特尔Xeon Phi加速器和本地存储的台式电脑。高级计算现在被定义为每秒千万亿次浮点运算(1015浮点运算/秒)超级计算系统和云数据中心具有许多pb级的二级存储。
图2基于广泛使用的高性能LINPACK (HPL)基准,概述了高级计算能力的指数级增长6以及世界上最快的计算机Top500榜单。16尽管密集线性方程组的解不再是复杂科学和工程应用中交付性能的最佳衡量标准,但这些历史数据说明了高性能计算的发展是多么迅速。虽然高性能计算得益于与商品计算相同的半导体进步,但由于系统规模和并行性的增加,持续的系统性能提高得更快。
个人、商业、政府和科学数据的增长更加引人注目,也得到了充分的记录。商业云提供商正在构建全球范围内的数据中心网络,每个数据中心花费数亿美元,以支持Web搜索引擎、社交网络和云服务。同时,每年产生的科学数据量现在挑战着国家研究机构的预算。
作为一个例子,图3概述了亚马逊简单存储服务(S3)中存储的对象数量的指数增长。在这些低级服务之上,公司(如Netflix)实现了先进的推荐系统,向订户推荐电影,然后进行流媒体选择。科学研究人员也越来越多地探索这些相同的云服务和机器学习技术,以从科学图像、图表和文本数据中提取见解。在数据密集型科学和百亿亿次计算所面临的挑战之间,存在着自然的技术和经济协同效应,这两者的进步对于未来的科学突破是必要的。数据密集型科学依赖于对大量数据的收集、分析和管理,无论这些数据来自科学模拟还是实验设施。在每一种情况下,对“极端规模”系统的国家和国际投资都是必要的,以分析科学和工程领域目前普遍存在的海量数据。
奔向未来。对于科学和工程计算,百亿亿次(1018每秒操作次数)是持续了半个多世纪的性能指数增长的长轨迹中的下一个代表。同样,学科内部和学科间的大规模数据保存和可持续性、元数据创建和多学科融合以及数字隐私和安全定义了大数据的前沿。高级计算的这个多方面的定义不仅仅包括对持续算术运算率或存储容量和分析率的量化度量;它也是一个相对的术语,包括各种规模的先进计算系统可用能力的质量改进。因此,它旨在建议一个实用的新前沿,交付能力的科学和工程研究人员跨越所有学科。
然而,在通往更先进的计算的道路上存在许多挑战,包括但不限于,系统功耗和环境友好的冷却,大规模并行,组件故障,数据和事务一致性,元数据和本体管理,大规模精度和召回,以及多学科数据融合和保存。
最重要的是,先进的计算系统不能变得如此神秘和复杂,以至于除了少数专家外,所有人都无法使用它们及其服务。开源工具包(如Hadoop、Mahout和Giraph),以及越来越多的领域特定工具和语言,使得许多研究小组可以在不深入了解机器学习算法的情况下,将机器学习应用于大规模科学数据。用于计算科学建模的社区代码也是如此。
硬件、软件、数据和政治。从历史上看,高性能计算的进步很大程度上依赖于算法、软件、体系结构和硬件的并行进步,这些进步为计算模型提供了更高级别的浮点性能。今天的进步还受到数据分析管道、数据架构和管理大量科学和工程数据的机器学习工具的影响。
然而,正如科学仪器规模的变化带来了新的机遇,它们也带来了新的挑战,一些是技术上的,但另一些是组织上的,文化上的,和经济上的,它们在不同的规模上并不自相似。今天,百亿亿次计算系统无法以一种负担得起和可靠的方式生产,或受制于资本和运营成本、可用性和可靠性方面的现实工程约束。随着先进计算和数据分析系统的成本,无论是商业还是科学,已经从数百万美元上升到数十亿美元,设计和决策过程必然变得更加复杂,充满争议。这对那些从事高能物理和天文学的人来说是一个熟悉的教训,在这些领域,粒子加速器和望远镜已经成为了行星级的仪器,成为了国际财团和全球政治的领域。高级计算也不例外。
据许多专家估计,打造一个百亿亿次级计算机系统的研发成本超过10亿美元,每年的运营成本为数千万美元。与此同时,人们越来越认识到,政府和研究机构在数据保留和管理方面的投资严重不足,私营部门在大数据和云计算方面的数十亿美元投资就是明证。最大的商业云数据中心每个的建设成本都超过5亿美元,谷歌、亚马逊、微软、Facebook和其他公司运营着此类中心的全球网络。
在这种背景下,经通货膨胀调整后,美国对基础研究的支持处于十年来的最低点,2美国和欧盟都在继续从2008年的经济衰退中缓慢复苏。进一步加剧挑战的是,先进计算霸权的全球竞争与国家安全需求、经济竞争力和主流计算生态系统的未来交织在一起。
从个人电脑到移动设备的转变也进一步加剧了美国主导的x86架构生态系统和全球授权的ARM生态系统之间的竞争。与此同时,对国家主权、数据安全和互联网治理的担忧引发了关于数据服务和云计算运营的新的竞争和政治担忧。
尽管面临这些挑战,我们仍有理由保持谨慎乐观。从新兴的物联网到无处不在的移动设备,再到世界上最强大的计算系统和最大的数据档案,计算技术的每一次进步都推动了整个计算领域的创新和经济增长。这些进步也刺激了各个科学领域的基础和应用研究。
孤立地解决无数技术、政治和经济挑战既不容易,也不可能。相反,它需要政府、行业和学术界的协调规划,致力于数据共享和可持续性,合作研究和开发,并认识到竞争和合作都是成功的必要条件。大数据和分析的未来不应与百亿亿次级计算相对抗;两者对先进计算和科学发现的未来都至关重要。
长期以来,物理科学和工程领域的研究人员一直是高级计算和计算模型的主要用户。最近,生物、环境和社会科学的应用部分是由大数据分析的兴起所推动的。此外,先进计算现在广泛应用于工程和先进制造业。从了解涡轮机械中气流的细微之处,到消费产品的化学分子动力学,再到燃料电池的生物质原料建模,高级计算已经成为多学科设计、优化和高级制造的代名词。
计算技术正处于重要的拐点,在非常大的规模,或前沿的高性能计算,和非常小的规模,或半导体工艺。
展望未来,只需要几个例子就可以说明先进计算在科学和工程方面的深刻和多样化的好处:
生物学和生物医学。通过获取大量遗传数据,生物学和生物医学已经发生了改变。廉价、高通量的基因测序仪能够捕获生物体DNA序列,并使人类疾病和人类微生物组调查的全基因组关联研究以及宏基因组学环境研究成为可能。更普遍地说,生物学和生物医学的挑战跨越序列注释和比较、蛋白质结构预测;分子模拟和蛋白质机器;代谢途径和调节网络;全细胞模型和器官;还有生物、环境和生态;
高能物理。高能物理是计算密集型和数据密集型的。量子色动力学第一性原理计算模型为标准模型提供了数值估计和验证。同样,粒子探测器需要测量大量观测中“有趣”事件的概率(例如1016或者在一年内观察到更多的粒子碰撞)。大型强子对撞机及其实验需要创建一个用于数据共享和精简的全球计算网格,推动先进网络和协议的部署,以及数据存储库的层次结构。所有这些都是识别寻找已久的希格斯玻色子所必需的;
气候科学。气候科学还严重依赖于在全球范围内管理和访问大量异质数据的可靠基础设施的可用性。它本质上是一项协作和多学科的工作,需要对多个地球区域、大气层、陆地、海洋和海冰之间的物理过程和交换机制进行复杂的建模,并将这些模拟与长期收集的各种来源的观测数据进行比较和验证。为了鼓励探索,NASA已经通过Amazon Web Services提供了气候和地球科学卫星数据;
宇宙学和天体物理学。宇宙学和天体物理学现在严重依赖先进的计算模型来理解恒星结构、行星形成、星系演化和其他相互作用。这些模型结合了流体过程、辐射传递、牛顿引力、核物理和广义相对论(以及其他过程)。它们的基础是一套丰富的计算技术,基于自适应网格细化和单元内粒子、多极算法、蒙特卡罗方法和光滑粒子流体动力学;
天文学。与之相辅相成的计算、全天巡天和新一代的自动望远镜正在提供新的见解。天文学家现在经常查询现有的数据集,以发现以前未知的模式和趋势,而不是捕捉观测数据来回答已知的问题。大数据约简和无监督学习系统是这种探索性图像分析的重要组成部分;
癌症治疗。有效的癌症治疗依赖于早期发现和通过手术、放疗和化疗进行的靶向治疗。反过来,肿瘤的识别和治疗计划依赖于图像增强、特征提取和分类、分割、配准、三维重建和量化。这些和其他机器学习技术不仅提供诊断验证,它们也越来越多地被用于对治疗方案进行比较和纵向分析;
实验与计算材料科学。实验和计算材料科学是理解材料特性和工程选择的关键;例如,中子散射通过提供从原子尺度(原子位置和激发)到中尺度(如应力效应)的材料内部结构数据,使研究人员能够了解材料的结构和性质、大分子和生物系统以及中子的基本物理;
对于所有的计算机科学来说,设计尽可能少通信的算法是很重要的,在理想的情况下,达到所需通信量的下限。
钢铁生产。连铸炼钢是全球能源消耗和温室气体排放的重要组成部分。即使是对这一过程的微小改进也会产生深远的社会效益,并节省数亿美元。高性能计算机用于通过综合计算模型来提高对这一复杂过程的理解,并应用这些模型来寻找操作条件以改进过程;而且
文本和数据挖掘。研究出版物的爆炸性增长使得寻找和跟踪相关研究变得越来越困难。除了大量的文本之外,原则在不同的领域有不同或相似的名称。文本分类、语义图可视化工具和推荐系统越来越多地被用于识别相关主题和推荐相关论文进行研究。
这些科学和工程挑战有两个共同的主题。第一个是极其广泛的时间和空间尺度范围,以及跨越多个生物和物理过程的复杂的非线性相互作用。这些是对计算模拟要求最高的,需要合作的研究团队,以及非常大的和最有能力的计算系统。在每一种情况下,目标都是预测模拟,或收集检验理论的见解,识别微妙的相互作用,并指导新的研究。
第二个主题是科学数据的巨大规模和多样性,以及数据同化、多学科关联和统计分析的前所未有的机会。无论是在生物或物理科学、工程或商业领域,大数据都在创造新的研究需求和机会。
先进的计算和数据分析为科学和工程带来了巨大的机遇,但设计、建造和操作规模空前的先进计算和数据分析系统所面临的技术挑战同样令人生畏。尽管云计算中心和百亿亿次计算平台看起来非常不同,正如前面所讨论的,潜在的大规模技术挑战是相似的,许多相同的公司和研究人员正在探索适用于两者的两用技术。
在过去五年的一系列研究中,美国能源部确定了10个研究挑战10,15,24在开发新一代先进计算系统时,包括以下系统,并将其与云计算进行比较:
节能电路、电源和冷却技术。以目前的半导体技术,所有提出的百亿亿次级设计都将消耗数百兆瓦的电力。需要新的设计和技术将这种能源需求降低到更可管理和经济上可行的水平(如20MW-40MW),可与商业云数据中心使用的水平相媲美;
高性能互连技术。在百亿亿级计算体系中,移动一个数据的能源成本将超过浮点操作的成本,这就需要非常节能、低延迟、高带宽的互连,以便在数十万个处理器之间进行细粒度数据交换。即使有了这样的设计,也需要位置感知算法和软件来最大化计算性能和减少能源需求;
在成本需求的驱动下,商业云计算系统采用了商品以太网互连,采用了批量同步并行计算模型。尽管这种方法已经被证明是有效的,正如MapReduce工具包(如Hadoop)的广泛采用所证明的那样,低成本的聚合互连将使计算和数据密集型平台都受益,并为细粒度数据分析开辟新的可能性。
先进的内存技术提高容量。最小化数据移动和最小化能源消耗也依赖于新的内存技术,包括内存中处理器、堆叠内存(美光的HMC是一个早期的例子)和非易失性内存方法。尽管计算和数据分析的细节不同,内存容量的算法决定因素将是整个系统成本的一个重要驱动因素,因为非常大的系统每个核心的内存必然比当前的设计要小;
可扩展的系统软件,电源和故障感知。传统的高性能计算软件建立在故障很少发生的假设之上;当我们接近百亿亿级水平时,面对常规组件故障的系统恢复能力将是至关重要的。同样,由于经济和技术原因,动态的、自适应的能源管理必须成为系统软件的一个组成部分。
数据分析的云服务,考虑到它们的商业服务质量协议,体现了大量的弹性技术,包括地理分布、自动重启和故障转移、故障注入和内省监控;Netflix的《猿军》一个说明了这些技术。
能够处理数据量、速度和多样性的数据管理软件。无论是计算生成的还是从科学仪器获取的,高效的现场数据分析都需要重组科学工作流程和应用程序,建立在从商业数据分析管道收集的经验基础上,以及数据协调、学习和挖掘的新技术。没有它们,I/O瓶颈将限制系统的实用性和适用性;
用于表示大量并行性、数据局部性和弹性的编程模型。广泛使用的通信顺序流程模型(MPI编程)将局部性和并行化的负担放在了应用程序开发人员身上。百亿亿次计算系统将具有十亿路并行性和频繁故障。需要更有表现力的编程模型来处理这种行为并简化开发人员的工作,同时支持动态的、细粒度的并行性。
从Web和云服务中可以学到很多东西,其中抽象层和特定于领域的工具包允许开发人员部署自定义执行环境(虚拟机)并利用高级服务来减少复杂的数据。科学计算的挑战是在提供高性能的同时保持表达性和生产力。
科学问题的重构和求解算法的重构。在当前的科学和工程代码以及数据挖掘和学习软件上已经投入了数千人年的时间。使科学代码适应十亿路并行需要重新设计,甚至重新发明算法,并可能重新表述科学问题。将数据分析软件和工具与计算结合起来同样令人生畏;编程语言和模型不同,社区和文化也不同。理解如何高效和有效地做这些事情将是解决关键任务科学问题的关键;
确保在面对错误时的正确性、可重复性和算法验证。由于频繁的瞬态和永久性故障,在集体通信中缺乏可再现性,以及验证有限的新数学算法,计算验证和正确性保证将对下一代大规模并行系统更加重要,无论是为科学计算、数据分析优化,还是两者都优化;
用于发现、设计和决策的数学优化和不确定性量化。大规模计算本身就是探索数值模型样本空间的实验。理解计算预测对模型输入和假设的敏感性,特别是当它们涉及复杂的、多学科的应用时,需要新的工具和技术进行应用验证和评估。在大规模数据分析和机器学习中,同样重要的类比是精度(检索到的相关数据的比例)和召回率(检索到的相关数据的比例);而且
支持生产力的软件工程和支持结构。尽管编程工具、编译器、调试器和性能增强工具塑造了所有计算系统的研究生产力,但在规模上,为了可靠、高效和正确计算而进行的应用程序设计和管理尤其令人生畏。除非研究人员的生产力提高,否则解决问题的时间可能被应用程序开发所支配,而不是计算。
类似的硬件和软件研究1,14由美国国防高级研究计划局特许,确定了以下挑战,最类似于能源部的研究:
节能的操作。节能操作,在整体耗电的情况下,达到预期的计算率;
内存容量。主要和次要内存容量和访问速率,受电源限制;
并发性和局部性。并发性和局部性以满足性能目标,同时允许一些线程在长延迟操作期间暂停;
弹性。弹性,考虑到大的组件数量,缩小的硅特征尺寸,低功耗运行,瞬时和永久组件故障;
应用程序扩展。受内存容量和通信延迟限制的应用程序伸缩;
管理并行性。在系统软件和可移植编程模型中表达和管理并行性和局部性,包括运行时系统、调度器和库;而且
软件工具。用于性能调优、正确性评估和能源管理的软件工具。
此外,美国国家科学院(NAS) 2011年的一项研究9这表明,除非取得突破,否则由半导体功能尺寸缩小和架构创新带来的性能指数增长将接近尾声。这项研究和其他研究表明,计算技术正处于重要的拐点上,在非常大规模的,或前沿的高性能计算,和非常小规模的,或半导体工艺。计算界在可能的解决方案上仍然存在分歧,有强烈的观点认为限制当前方法扩展的技术障碍将被克服,而另一些人则认为可能需要更激进的技术和设计方法(如量子和超导器件)。
硬件和架构挑战。尽管对刚刚概述的硬件和软件技术挑战的完整描述超出了本文的范围,但回顾一个选定的子集有助于阐明问题的深度和广度,以及它们对高级计算和下一代消费和业务计算技术的更广泛部署的影响。
Post-Dennard伸缩。几十年来,由于许多人的辛勤工作和创造力,以及在工艺技术和硅铸造厂上数十亿美元的投资,摩尔定律一直成立。它还建立在登纳德缩放的原理上,5,13提供了一种缩小晶体管并在相同功率密度下产生更小电路的方法。将晶体管的线性尺寸减少1 / 2,功率就减少1 / 4,或者电压和电流都减半。
虽然晶体管的尺寸继续缩小,22纳米的特征尺寸现在很常见,但晶体管的功耗不再相应降低。这导致了芯片时钟速率和功耗的限制,以及多核芯片的设计和暗硅芯片的兴起,由于热和功率的限制,暗硅芯片的晶体管数量超过了可以同时激活的晶体管数量。8
这些半导体的挑战刺激了对芯片设计的重新思考,其中架构技巧的潜在性能优势——超级流水线、记分板、向量化和并行化——必须与它们的能耗相平衡。更简单的设计和特定功能的加速器通常能更好地平衡功耗和性能。如果整型、分支和浮点操作的平衡转变为支持就地数据分析和计算,那么这种架构上的转变将尤其正确。
芯片的功率限制激发了人们对ARM处理器生态系统的极大兴趣。因为ARM的设计是针对嵌入式和移动设备进行优化的,在这些设备中,有限的功耗一直是设计的驱动因素,所以它们的管道和指令解码器比x86设计更简单。
在这个新世界中,硬件/软件协同设计成为一种必需,设备和软件系统相互依赖。这意味着更少的通用性能提升,更多的硬件多样性,编程模型中多变量优化(如功率、性能和可靠性)的提升,以及新的系统软件资源管理挑战。
大规模的弹性和能源效率。随着先进的计算和数据分析系统越来越大,完全可靠运行的假设变得越来越不可信。尽管单个组件的故障前平均时间持续增加,但这些系统的整体组件数量庞大,意味着系统本身将更频繁地发生故障。到目前为止,经验表明,故障是可以管理的,但只有通过改进的技术来检测和理解组件故障。
来自商业云数据中心的数据表明,一些长期以来关于组件故障和生命周期的假设是不正确的。11,20.-222009年谷歌研究22显示DRAM错误率比之前报道的高了几个数量级,超过8%的内存在一年内受到错误的影响。同样令人惊讶的是,这些都是硬错误,而不是可纠正(通过错误纠正代码)的软错误。
除了弹性,规模也给能源管理和散热带来了新的挑战。今天先进的计算和数据分析系统消耗兆瓦的电力,冷却能力和峰值电力负载限制了许多系统的地理位置。正如商业云运营商所了解到的,能源基础设施和电力是整个系统规模成本的很大一部分,因此需要新的基础设施方法和运营模式,包括低功耗设计、冷却方法、能源责任和运营效率。
软件和算法的挑战。许多针对高级计算和大数据分析的软件和算法挑战本身就是极端系统规模的结果。如前所述,先进的科学计算具有Web和云服务的许多扩展性问题,但在其性价比优化平衡方面有所不同,强调高水平的性能,无论是用于计算还是用于数据分析。这种区别是设计选择和优化标准的核心。
考虑到百亿亿级计算系统的规模和预期错误率,必须从基本原理重新思考算法的设计和实现,包括探索全局无同步(或至少最小)算法、无故障和容错算法、适用于异构和分层组织硬件的体系结构感知算法、支持混合精度算法和用于节能计算的软件。
位置和规模。如前所述,极端规模计算系统的假定设计预计需要十亿路计算并发性,在所有系统级别都具有积极的并行性。在算法和平台层次结构的所有级别上保持负载平衡将是高效执行的关键。这可能需要动态的、自适应的运行时机制4自我意识的资源分配不仅可以容忍算法不平衡,还可以容忍硬件性能和可靠性的可变性。
反过来,通信的能量成本和延迟将比今天更重视计算局部性。通过对长期持有的模型进行反演,算术运算的能量消耗将远远低于通信,效率也会更高。算法复杂度通常用执行的操作的数量而不是数据移动到内存的数量来表示。这与大规模计算的预期成本直接相反,在大规模计算中,内存移动将非常昂贵,而操作将几乎是免费的,这对浮点密集型和数据分析算法都很重要。
编程模型和工具可能是科学计算和大数据生态系统之间最大的分歧。
数据移动的时间成本将挑战传统的算法设计方法和比较优化,使冗余计算有时更适合数据共享,并提高通信复杂性与计算相当。因此,对所有计算机科学来说,设计尽可能少通信的算法是很重要的,在理想情况下,要达到所需通信量的下限。它还需要模型和方法来最小化和容忍(隐藏)延迟,优化数据移动,并删除全局同步。
自适应系统软件。今天的高性能计算系统的资源管理仍然植根于一种解决方案模型,具有协调调度和紧密同步的通信。然而,极端的规模、硬件异构性、系统功率和散热限制以及不断增加的组件故障率不仅会影响应用程序的设计和实现,还会影响能源管理和I/O等不同领域的系统软件设计。同样,随着科学数据量的增长,技术计算使用的传统文件抽象和并行文件系统是否能扩展到千兆级数据分析也不清楚。
相反,新的系统软件和操作系统设计将需要支持异构资源和非缓存一致的内存层次结构的管理,为应用程序和运行时提供更多的任务调度策略控制,并管理全局名称空间。它们还必须公开用于更精细测量、预测和电源管理控制的机制,允许调度器将计算映射到特定功能的加速器,并管理热包膜和应用能量剖面。商业云提供商已经面临了许多这样的问题,他们在大规模资源管理方面的经验可以为科学计算生态系统提供很多帮助。
并行编程的支持。随着先进计算硬件的多样性、复杂性和规模的增加,开发应用程序的复杂性和难度也增加了,许多操作功能现在都包含在应用程序中。由于应用程序的多学科性质日益增加,应用程序的复杂性进一步加剧,这些应用程序结合了跨越一系列时空尺度和算法方法的算法和模型。
考虑典型的单程序多数据并行编程或大容量同步并行模型,其中应用程序数据被分区并分布在计算节点的各个内存或磁盘上,节点通过网络消息传递共享数据。反过来,每个节点上的应用程序代码管理本地的、多级计算层次结构——通常是多个、多线程、可能是异构的内核,(通常)还有一个GPU加速器,协调I/O,管理应用程序检查点,监督电源预算和散热。这种令人生畏的复杂性以及详细的配置和调优使得开发健壮的应用程序成为一门神秘的艺术,只有少数专注的、有能力的人才能访问。
理想情况下,未来的软件设计、开发和部署将提高抽象级别,并在一开始就考虑性能和正确性,而不是在原地考虑。除了基于集成的性能和正确性模型进行更多性能感知的应用程序设计和开发之外,这些工具还必须与编译器和运行时系统集成,为异构硬件和混合编程模型提供更多支持,并提供更复杂的数据处理和分析。
编程模型和工具可能是科学计算和大数据生态系统之间最大的分歧。后者强调简单的抽象(如键值存储和MapReduce),以及语义丰富的数据格式和高级规范。这使得许多开发人员可以在不了解底层硬件或系统软件的情况下创建复杂的机器学习应用程序。相比之下,科学计算在很大程度上继续依赖于传统语言和库。
除了C和FORTRAN之外,新的编程语言和模型也会有所帮助。考虑到技术计算的应用软件已经到位,彻底背离是不现实的。在新语言(如Chapel和X10)中发现的编程特性已经对现有的程序模型产生了间接影响。现有的编程模型(例如OpenMP)已经通过最近的扩展(例如任务并行性、加速器和线程亲和性)而受益。
领域特定语言(DSL)是专门用于特定应用程序领域的语言,表示通过承载DSL扩展来扩展现有基本语言的一种方法。嵌入式领域特定语言是利用标准语言编译器的复杂分析和转换功能的一种实用方法。开发人员使用高级原语编写应用程序,编译器将把它转换为高效的低级代码,以优化底层平台上的性能。
算法和数学挑战。百亿亿次计算至少在两个方面对算法提出了更高的要求:需要增加数据局部性的数量以高效地执行计算,需要获得更高级别的细粒度并行性,因为高端系统支持越来越多的计算线程。因此,并行算法必须适应这种环境,必须开发新的算法和实现来利用新硬件的计算能力。
重要的模型开发、算法重新设计和科学应用程序的重新实现,都需要在百亿亿级编程模型的支持下,才能充分利用百亿亿级架构的力量。从目前的次千万亿次和千万亿次计算到百亿亿次计算的转变,其颠覆性至少不亚于上世纪90年代从矢量计算到并行计算的转变。
经济和政治挑战高级计算和大数据分析的技术挑战是由更广泛的计算领域的其他元素决定的。特别是,功能强大的智能手机和云计算服务正在迅速取代个人电脑和本地服务器,成为计算标准。这一转变还引发了工业和商业优势的国际竞争,各国和地区纷纷投资于新技术和系统部署。
计算生态系统转变。互联网和网络服务革命是全球性的,美国的影响力虽然很大,但正在减弱。尽管苹果取得了惊人的成功,但现在大多数智能手机和平板电脑的设计、制造和购买都是在全球范围内进行的,智能手机和平板电脑的年销量超过了个人电脑和服务器。
消费者偏好和市场的这种持续变化伴随着另一种技术变化。智能手机和平板电脑基于节能微处理器,这是使用ARM架构的百亿亿次级计算设计和片上系统(soc)的关键组件。与设计和制造x86芯片的英特尔(Intel)和AMD不同,ARM不生产自己的芯片。x86芯片存在于当今的个人电脑、大多数前沿服务器和高性能计算系统中。相反,它将自己的设计授权给其他公司,这些公司将ARM架构整合到定制的soc中,由台湾台积电(TSMC)等全球半导体代工厂生产。
国际exascale项目。围绕先进计算的国际竞争混合了对经济竞争力、不断变化的技术生态系统(如ARM和x86)、商业和技术计算(如云计算服务和数据中心)以及科学和工程研究的担忧。欧盟、日本、中国和美国都已经启动了百亿亿次计算项目,每个项目在硬件技术、系统软件、算法和应用方面的重点不同。
欧盟。欧盟(EU)于2011年10月宣布启动其百亿亿次研究计划,为其框架7努力中的三个互补研究项目提供2500万美元的资金。“百亿亿次级系统软件、工具和应用协同研究”(CRESTA)、“百亿亿次级动态入口平台”(DEEP)和“万宝龙”项目将分别使用跨硬件、系统软件和软件应用的协同设计模型来研究不同的百亿亿次级挑战。这一计划代表着欧洲在百亿亿次级研究方面的首次持续投资。
CRESTA汇集了四个欧洲高性能计算中心:爱丁堡并行计算中心(项目领导)、斯图加特高性能计算中心、芬兰IT科学中心有限公司、瑞典合作伙伴发展中心,以及德累斯顿理工大学,后者将提供性能优化方面的专业知识。此外,CRESTA团队还包括来自欧洲科学和工业的应用专业人员,以及HPC供应商,包括HPC工具开发人员Allinea和HPC供应商Cray。CRESTA专注于将应用程序用作软件开发环境、算法和库、用户工具以及基础和横切技术的协同设计驱动。
由巴塞罗那超级计算中心领导的montblanc项目汇集了欧洲技术供应商ARM、Bull、Gnodal和参与欧洲先进计算伙伴关系(PRACE)项目的主要超级计算组织,包括Juelich、Leibniz-Rechenzentrum或LRZ、GENCI和CINECA。该项目计划部署由节能嵌入式技术构建的第一代高性能计算系统,并进行必要的研究,以通过节能设计实现百亿亿次性能。
DEEP公司由Forschungszentrum Juelich领导,旨在开发一个百亿亿级平台,并优化一组大挑战代码。该系统是基于商品集群和加速器设计的集群助推器架构,作为100 petaflop/s的PRACE生产系统的概念验证。除了主要合作伙伴Juelich外,项目合作伙伴还包括英特尔、ParTec、LRZ、Universität海德堡、德国模拟科学研究学院、Eurotech、巴塞罗那超级计算中心、Mellanox、École Polytechnique Fédérale de Lausanne、鲁汶Katholieke大学、中心Européen de Recherche et de Formation Avancée en calcalscientifique、塞浦路斯研究所、Universität雷根斯堡、CINECA(意大利70所大学的联盟)、和公司Générale de Géophysique-Veritas。
日本。2013年12月,日本文部科学省(MEXT)选定理研研究所在2020年之前开发和部署百亿亿级系统。评选的依据是其开发和操作K计算机的经验,该计算机以每秒10千万亿次的速度,在2011年被评为世界上最快的超级计算机。预计耗资1400亿日元(13.8亿美元),百亿亿次级系统设计将基于通用处理器和加速器的组合,涉及日本三大计算机供应商富士通、日立和NECas,以及来自东京大学、筑波大学、东京工业大学、东北大学和理研的技术支持。
中国中国的天河二号系统是当今世界上最快的超级计算机。它包含16,000个节点,每个节点有两个英特尔至强处理器和三个英特尔至强Phi协处理器。它还包含一个专有的高速互连,称为TH Express-2,由国家国防技术大学(NUDT)设计。nust对处理器、编译器、并行算法和系统进行研究。基于这项工作,中国有望在2016年生产出完全由中国制造的芯片(特别是深威处理器)建造的100-petaflop/s系统,并实现互连。天河二号原本计划在2015年从峰值的55千万亿次/秒升级到100千万亿次/秒,但出于国家安全考虑,美国商务部限制了英特尔处理器出口到国防科技大学、位于长沙的国家超级计算中心、位于广州的国家超级计算中心和位于天津的国家超级计算中心。
美国历史上,美国网络和信息技术研究与发展计划跨越了多个研究任务和机构,主要由能源部(DOE)、国防部(DoD)和国家科学基金会(NSF)领导。能源部是当今最活跃的高性能计算系统部署者和百亿亿次计算计划的开发者。相比之下,国家科学基金会和国防部更多地关注广泛的网络基础设施和使能技术研究,包括研究云服务和大数据分析。尽管计划还在继续,但美国还没有发起类似欧洲和日本正在进行的先进计算计划。
国际合作。尽管先进计算和数据分析领域的全球竞争仍在继续,但国际合作也很活跃。国际百亿亿次级软件项目(IESP)就是高级计算领域的一个例子。借助来自日本、欧盟和美国政府的种子基金,以及来自行业利益相关者的补充贡献,IESP的成立旨在支持到2020年的超高分辨率和数据密集型科学和工程研究。
在一系列的会议中,国际IESP团队为千兆级/百亿亿级系统制定了一个通用的、高质量的计算环境计划。相关的软件开发路线图将把社区从目前的位置带到百亿亿级计算。7
计算机在经济和技术上都处于一个深刻的拐点。登纳德扩展的终结及其对半导体设计持续进步的影响,向移动和云计算的转变,科学、商业、政府和消费者数据的爆炸性增长,数据分析和机器学习的机会,以及对更强大的计算系统的持续需求,以促进科学和工程的未来是关于百亿亿次计算和大数据分析的争论的背景。然而,有些事情是明确的:
大数据和百亿亿次级。高端数据分析(大数据)和高端计算(百亿亿次级)都是综合计算研发议程的基本要素;任何一方都不应牺牲或降低对方的利益;
算法、软件应用程序。下一代算法、软件和应用的研发与半导体器件和硬件的投资同样重要;从历史上看,研究界对这些领域的投资不足;
信息技术生态系统。全球信息技术生态系统处于变化之中,向新一代低功耗移动设备、云服务和丰富的数据分析过渡;而且
私人和全球研究。私营部门的竞争和全球研究合作对于解决设计、测试和部署百亿亿级计算和数据分析能力都是必要的。
高级计算在计算和数据分析方面既有巨大的机遇,也有巨大的挑战。通过计算科学和数据分析的科学发现,确实是万尼瓦尔·布什(Vannevar Bush)在1945年雄辩地谈到的“无尽的前沿”。所有计算机科学都面临的挑战是,如何维持高性能计算基础设施的研究、开发和部署,以实现这些发现。
我们非常感谢DARPA和DOE百亿亿次级硬件、软件和应用研究小组提供的见解和观点。我们也感谢本文早期草稿的审稿人的见解和建议。Daniel A. Reed感谢国家科学基金会在NSF拨款ACI-1349521下的支持。Jack Dongarra感谢国家科学基金会ACI-1339822拨款和能源部DEFG02-13ER26151拨款的支持。
1.阿马拉辛赫,S.等。百亿亿次软件研究:极端规模系统中的软件挑战。国防高级研究计划局,阿灵顿,弗吉尼亚州,2009年;http://www.cs.rice.edu/~vs3/PDF/Sarkar-ACS-July-2011-v2.pdf
2.美国科学促进会。研发经费指南-历史数据。美国科学促进会,华盛顿,2015;http://www.aaas.org/page/historical-trends-federal-rd
3.张,F.等。Bigtable:结构化数据的分布式存储系统。ACM计算机系统汇刊, 2(2008年6月),4:14:26。
4.数据,K.等人。最先进的多核架构上的模板计算优化和自动调优。在2008年ACM/IEEE超级计算会议论文集(德克萨斯州奥斯汀,1521年11月)。电子工程出版社,2008,112。
5.丹纳德,r.h.,盖恩斯林,f.h.,于,h -n。,Rideout, V.L., Bassous, E., and LeBlanc, A.R. Design of ion-implanted MOSFETs with very small physical dimensions.固态电路学报5(1974年1月),256268。
6.LINPACK基准测试:一个解释。在第一届超级计算国际会议论文集(希腊雅典,812年6月)。斯普林格-弗拉格,纽约,1988,456474。
7.唐加拉,J.J.等人。国际百亿亿次级软件项目路线图。国际高性能计算应用杂志1(2011年2月),360。
8.esmailzadeh, H., Blem, E., Amant, r.s., Sankaralingam, K.和Burger, D.暗硅和多核扩展的终结。在38人会议记录th计算机体系结构年度国际研讨会(加州圣何塞,6月48日)。ACM,纽约,2011,365376。
9.富勒,S.H.和米莱特,L.I.计算性能:游戏结束还是下一个阶段?电脑441(2011年1月),3138。
10.Geist, A.和Lucas, R.亿亿次级计算机科学的重大挑战。国际高性能应用杂志23, 4(2009年11月),427436。
11.吉尔,P.,贾恩,N.和纳加潘,N.理解数据中心的网络故障:测量、分析和影响。ACM SIGCOMM学报414(2011年8月),350361。
12.嘿,T, S,坦斯利,K,托尔。第四范式:数据密集型科学发现。微软研究院,雷德蒙德,华盛顿州,2009年;http://research.microsoft.com/en-us/UM/redmond/about/collaboration/fourthparadigm/4th_PARADIGM_BOOK_complete_HR.pdf
13.Kamil, S., half, J.和Strohmaier, E.高性能计算的功率效率。在第四届高性能、功耗感知计算研讨会论文集(4月)佛罗里达州迈阿密的。IEEE出版社,2008年。
14.科格,P.,伯格曼,K.,博卡,S.等。亿亿次级计算机研究:实现亿亿次级系统的技术挑战。美国国防高级研究计划局,阿灵顿,弗吉尼亚州,2008年;http://www.cse.nd.edu/Reports/2008/TR-2008-13.pdf
15.卢卡斯,安,J,伯格曼,K,博卡,s等。十大百亿亿次研究挑战。美国能源部科学办公室,华盛顿,2014年2月;http://science.energy.gov/~/media/ascr/ascac/pdf/meetings/20140210/Top10reportFEB14.pdf
16.H.缪尔,E.斯特罗迈尔,J.唐加拉和H.西蒙。超级计算机网站500强,2015;http://www.top500.org
17.Nobelprize.org。2013年诺贝尔化学奖;http://www.nobelprize.org/nobel_prizes/chemistry/laureates/2013/press.html
18.Olston, C., Reed, B., Strivastava, U., Kumar, R.和Tomkins, A.。在2008年ACM SIGMOD数据管理国际会议论文集(加拿大卑诗省温哥华,6月9-12日)。ACM出版社,纽约,2008,10991110。
19.欧洲高级计算伙伴关系。2014;http://www.prace-ri.eu/
20.皮涅罗,E,韦伯,w。,而且Barroso, L.A. Failure trends in a large disk drive population. In第五届USENIX文件和存储技术会议论文集(加利福尼亚州圣何塞,1316年2月)。USENIX协会,伯克利,加州,2007年。
21.理解磁盘故障率:1,000,000小时的MTTF对您意味着什么?ACM存储事务3(2007年10月),8。
22.B.施罗德,E.皮涅罗,和w .韦伯。野外动态随机存取存储器误差:一项大规模的实地研究。在十一届会议记录th计算机系统测量与建模国际联合会议(6月,西雅图,华盛顿州)。ACM出版社,纽约,2009,193204。
23.美国能源部。数据密集型科学与百亿亿次计算的协同挑战。先进科学计算咨询委员会小组委员会报告,2013年3月30日;http://science.energy.gov/~/media/ascr/ascac/pdf/reports/2013/ASCAC_Data_Intensive_Computing_report_final.pdf
24.美国能源部。百亿亿次计算的机遇与挑战。科学办公室,华盛顿特区,2010;http://science.energy.gov/~/media/ascr/ascac/pdf/reports/Exascale_subcommittee_report.pdf
©2015 0001 - 0782/15/07 ACM
允许为个人或课堂使用部分或全部作品制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。除ACM外,本作品的其他组件的版权必须受到尊重。允许有信用的文摘。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,都需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org传真(212)869-0481。
数字图书馆是由计算机协会出版的。版权所有©2015 ACM, Inc.
自20世纪70年代以来,地震勘探一直在悄悄地处理大数据/大计算问题,被大多数人忽视或不承认。(我们明白了。)
显示1评论