2013年10月,ACM和IEEE Fellow,美国特拉华大学杰出教授(endowed Distinguished Professor)高光荣在中国计算机大会获2013年海外杰出贡献奖并应邀在大会上做了“大数据流动之美”的主题报告,阐述了数据流思想及其在大数据处理中的应用。2014年12月,应CCF大数据专家委员会和李国杰院士的邀请,高教授在中国大数据技术大会上作了“大数据系统核心技术”的主题报告,进一步阐述了大数据系统若干核心技术及其在大数据处理中的应用。这两次主题报告在国内学术界和工业界产生了很大影响,数据流研究受到越来越多的关注。2015年6月,受上海交通大学计算机系主任过敏意教授和超级计算创新联盟理事长、北京航空航天大学钱德沛教授的邀请,高光荣教授再次回国,先后在上海交通大学和中科院计算机网络信息中心做了两场有关数据流的专题研讨会,深入阐述了数据流技术的思想、最新进展、及其在大数据和高性能计算中的核心问题,吸引了包括清华大学、北京大学、上海交通大学、浙江大学、北京航空航天大学、南京大学、华中科技大学、西安交通大学、中科院计算所和中科院深圳先进技术研究院在内多所重点高校和科研院所的学者参会,并就如何在国内启动数据流技术的研究工作进行了深入探讨和交流。
一、数据流研究及最新进展
数据流模型是一种数据驱动的并行程序执行模型。数据流程序逻辑基于数据流图表达,是一种优美、直观和强大的并行计算模型,程序单元的输入数据可用时,该程序单元就被激活,当所需资源也可用时就可以在运行时(Runtime)中被执行。数据流是对传统冯诺依曼模型的颠覆式创新,最初由麻省理工学院的Jack B. Dennis教授和他的学生们在上世纪60年代末70年代初提出,至今40多年的时间中,数据流研究经历了几起几落。随着CPU多核技术的发展,并行对于大规模处理越来越重要;而内存和SSD等存储技术的发展,也使得大数据系统的性能瓶颈逐渐从I/O转向计算。在硬件技术发展与大数据处理需求的双重作用下,数据流以其对并行算法支持的弹性好、扩展性强及性能功耗比高等特点,重新得到学术界和工业界的关注。Dennis教授也因其在数据流领域的卓越贡献在2013年荣获IEEE冯诺依曼勋章。
美国联邦大力资助的国家exa-scale超算项目群中,尤为瞩目的是由Intel公司牵头并巨额投资的UHPC (Runnemede)等的启动。该项目是建立在高光荣教授提出的数据流执行模型Codelet模型基础上的软硬件协同设计(Co-design)为基础。后面还要讲到的数据流模型的诸多良好特性不仅体现在软件执行模型中,也直接影响了硬件设计,如设计了两类不同的核用于运行系统/运行时程序和基于Codelet的应用程序,获得了更好的性能功耗比。
最近出版的《Guide to DataFlow Supercomputing》一书中给出了Maxeller公司基于数据流的FPGA硬件实现的性能测试结果,对于不同类型的大数据应用,初步测试已经实现了平均20-200倍加速,20倍功耗降低。清华大学最近的研究表明,对于特定大数据问题,以每1U设备计算,Maxeller的数据流处理硬件的计算能力是天河2(基于小数据的Linpack测试中,世界排名第一的超级计算机)的14倍。而ETI公司基于数据流模型实现的大数据系统HAMR,仅部分实现了数据流模型,在初步评测中,就已经取得了超过目前主流大数据系统Spark近10倍的性能。
二、数据流的优势
对于数据流为什么在多核、大数据和高性能计算中受到重视,以及数据流的优势体现在哪里是与会专家和学者重点讨论的问题。对此,高光荣教授从体系结构研究的角度,提出数据流打破了“两墙一锁”的新颖观点:(1)数据流打破了并行度的限制“墙”(barrier)。传统基于冯诺依曼模型的最流行的Bulk Synchronous Processing (BSP) 并行处理模式需要通过在控制流中加入global(全局性)barrier来维持冯诺依曼模型本身自有的的串行时序。而数据流模型是一种天然的并行模型,不需要集中控制,对于任一程序单元,只要输入就绪,就进入激活状态,只要运行时有可用资源就可以开始运行,可以实现超大规模的并行。(2)数据流也打破了传统冯诺依曼模型的CPU-Memory瓶颈 (one-word-at-a-time, J. Backus 1981 Turing Award) ,提供了tight/smooth 处理和数据的结合,memory概念上是分布的,是无处不在的, 是与处理紧密耦合的(processing-in-memory)。(3)现有技术基于存在上述两个限制的假定,需要OS/VM来实现大规模并行计算,但基于传统冯诺依曼模型的VM/OS对硬件资源利用的管理方式不能提供数据流程序执行模型所需要的高度灵活的并行性,而虚拟机(VM)又“锁”住了用户(包括compiler和runtime)直接管理(在bare-metal层面)所需硬件资源的任何途径,如现有大数据处理系统普遍运行在Java虚拟机上,虽然Java虚拟机的垃圾自动回收机制就对系统性能造成极大影响,但用户却无法直接管理内存获得更高效率,而数据流通过运行时技术,直接控制硬件资源,从而实现更高的资源利用率。
在具体工程实践中,前面提到的Intel公司领导的Runnemede项目在HPCA 13上发表的介绍该项目的第一篇论文中就重点提到这个项目的程序执行模型是高光荣教授提出的基于现代数据流的Codelet模型,并指出数据流执行模型非常适合超大规模系统的四个特性:(1)可以非常容易的在应用的每个阶段充分利用所有可用的并行性,而不是将应用静态分配到不同线程。(2)数据流执行模型只有producer和consumer(s)需要同步(synchronize),减少了同步开销。(3)Codelet执行模型中每个Codelet只能“完成或者失败”,具有天然的非阻塞的特性,可以避免传统OS中的上下文切换开销。(4)数据流执行模型使得一个计算任务的输入和输出很容易确定,因而可以将程序调度到靠近需要处理的数据去执行。
三、研究趋势
在大数据和大规模高性能计算的应用需求下,大数据与高性能计算逐渐成为共生(Symbiotic)关系,对体系结构提出了更高的要求,当前的并行优化技术局限于静态优化,无法满足动态调度、自适应管理和自感知弹性控制的需求。传统OS的垄断地位正在受到挑战,运行时系统软件独技术和学科正在兴起。新的模型和结构需要满足来自五个特性的挑战:(1)可扩展性。体系结构和系统软件的结合和交叉前进,使应用能很好的扩展到超大规模并行平台。(2)可编程性。动态细粒度编程模型,显著减少那些影响编程效率的障碍。(3)兼容性。去除或显著减少移植到未来平台的约束要求。(4)弹性。对软件栈的全部组件提供良好的管理、故障检测和恢复。(5)能效。最大化利用动态节能机会,平衡能效、弹性和性能。数据流在上述方面都有其独特的优势,亟待深入研究。
四、后续
据悉,高光荣教授拟应邀出席2015年11月在江苏无锡召开的全国高性能计算学术年会(HPC China 2015)并在开幕式上做主题报告,届时他将详细谈及几项前几次没有讲到或没有完全讲透的内容,如:在数据流技术落地的舞台上中国计算机工业应发挥的领军作用、在并行计算逐渐成为大家共识的潮流下并行软件和软件工程的研发重点、微处理器和芯片核心技术长远规划, 以及大数据、高性能计算、云计算诸学科的长远性有机互补的关系,与国内有关专家和学者做进一步交流。
供稿:于俊清 华中科技大学;范东睿 中国科学院计算研究所;郑龙 上海交通大学;凃浩 华中科技大学
超级计算创新联盟版权所有 京ICP备09112257号-82 京公安网备1101082030548号
电话:010-58812541 Email:scalliance@sccas.cn