摘要:“2009年全国高性能学术年会”29日-30日在湖南长沙召开,会上,国防科大副校长杨学军与参会者一起探讨了目前高性能领域中存储墙的问题。
杨学军:刚才陈院士讲解一些模型,思考非常深刻。下面我来给大家共同探讨一个问题,也是很头疼的问题。我谈几个方面:
首先,今年在国际某一个年会,讲浪费提升计算速度的第十个障碍。1,防层墙的问题。那么为什么防层墙的问题会制约提升计算速度的一个难题。道理大家都明白,我简单两个图,说明处理器单个引较八的信号传输速度受限。2,结点内部,存储器读写速度远远地域CPU处理速度。90NSVS0.3NS。3,在结点之间。处理器之间的通信速度远远低于本地存储访问速度,2000NSVS90NS。并行计算效率下降,目前大规模并行计算及在实际应用中并行效率在5%左右。那么之所以说比较低,防层墙的问题也是一个。我们认为存储墙问题之可能解决途径:
第一,体系结构技术的发展。
第二,性能技术的发展。
我们看这段话:多核将我们防灾存储墙问题的错误一面。多核处理器最终是否因为存储墙问题窒息而死。从另外一个角度给予我们的思考。目前在主要片上为级层次存储墙有那些:
第一种是集中式,往往讲是纯硬件管理难以实现大容量。现在最大的障碍是难以实现很大的容量。尤其是涉及相连的地方。比如英特尔也是这样的芯片。
第二种是分布式,这一方面研究很多,这样的结构需要软硬件配合管理,管理复杂。
第三种筏便捷存储墙,纯软件管理,管理复杂,开销大。
第四种流寄存储文件。那么它也是纯软件管理,随机访问困难。
这些是它的结构。但是实际上存储墙的问题,它本来就存在固有的隐患。因为在存储器当中是编辑而存起。这个说明在1997年,某一个专家获奖的时候讲过这样的话。我们认为,数据访问特性的分析理论与方法是解决存储墙的问题的基础。就是怎么分析这种访问的特征?
最近我们对这个问题进行的广泛的思考,那么对数据访问的特征,我们把归纳之后,我们认为六种特征来描述:第一一致性。第二,依赖性。第三,重用性等。我们分为两个方面:第一如何约束程序的正确性。第二如何有效程序的性能?从如何来约束程序正确角度来说,主要指依赖性跟一致性。怎么保障依赖性跟一致性的不变。从程序性能,我们分类:资源相溶,包括通用性跟相应性等。因此我们的考虑我们要分析六个性能,我们把这一方面提出来,抛砖引玉,让大家分析一下。
依赖性:我们要保证程序依赖性关系,不能变化。实际上这种依赖性主要分为四种类型:1,流依赖。2,反依赖。3,输出依赖。4,读读依赖。
我们快速回顾一下,有一些经典的例子:WAIFE等提出了利用距离向量和方向向量来刻划的等案件。那么应该说,几十年以来,基于依赖性的分析也有很多,比如循环交换,循环倾斜,并行化等。
那么我们给一个例子,依赖主要是约束正确性,但是通过依赖关系来提高CACHE的失效率。这是关于依赖,我们快速的回顾一下。
下面我们回顾一下重用性:时间跟空间。比如空间重用性,比如说AB,我访问A后来又访问B,就有重用性。我们回顾这个方面的进展:WAIF等提出了基于矩阵的数据重用性,区分了重用性和局部性的不同。那么我们最近的工作就是将WAIF扩展至并行程序,针对并行程序我们增长了重用一维分类。那么通过定义循环并行程序,我们导出各种类别并行数据重解方法。证明OP程序在ST等相互用。证明了OP程序在ST程序里面夸边界的程序。通过重用指导性循环TIFIND,优化CACHE。这关于重用性。
第三方面,我们研究一下相似性,前面两个性或许听到,但是相似性相对比较陌生,我们考虑指不同的执行体,两个进程里面现在并行程序设计用SPMD,实际上单程序多数据,往往数据变量名字在不同的地域描述是一样。但是有很多程序里面,很多的变量,它的值在执行过程保持不变。实际上,你是多核是四个进展,但是数据不变,这种方法经常用。但是在多核里面,每一个进程有这样的地址跟变量,这样一个空间,这种相似被挖掘出来我们觉得有利于压缩的容量。我们把这方面的性格描述出来。那么这个启发,某一个专家有一篇文章,谈到这点,但是我们把这个思想分析这个程序,就产生这种的方法。我们的分析研究相似的互补的概念。建立程序中差异的传播模型,根据差异在同程序进行的分类,通过分析方法,研究数据流生成一个差异方法。那么,机遇加权依赖图研究了数据元素间的差异的地方。
我举一个例子,共享具有相似的数据,缓解共享CACHE,共享主存中数据保存量,一优化共享CACHE时,加速比达到1.2775,那么优化共享主存时,达到4.22。
什么是亲和性?来描述数据单元在多个处理器中访问频度之间的关系,决定了数据分布对处理器访问性能的影响。我们觉得有一个定量分析了数据访问的亲和性:
第一,从单个处理器访问数据的角度定义来纵直亲和度。
第二,从多个处理器竞争访问数据的角度了水平亲和度。
我们通过纵直亲和度计算也证明这点。在水平亲和度计算,我们证明了水平亲和度等于两两处理器的数据访问次数成绩之间,揭示了水平亲和度的程度。
那么下面介绍一下一致性。应该说一致性描述了数据单一个个或多个副本访问的数据内容之间的关系,如没有一致性,就影响着程序执行的正确性。CACHE一致形成,决定了读操作访问什么值,使多个处理器看到的数据一个方面。那么在存储一致性,决定操作数什么时候能够被读返回,使得多个处理器什么时候看到的数据是一致的。那么就引用胡教授研究中,在顺序一致共享存储系统中,使用乱序执行技术,系统效能提高50% 左右。
那么介绍一下生存性。所谓生存性指,描述了多个数据访问的活跃程度之间的关系,是资源分配类问题的求解的重要的约束。应该说,生存性,实际上早就有,它的运用过去主要寄存器分配。对应到对相干图的图着色问题。那么聚合数据对象(数组、流)存储分配。对应到对相干图的区间着色问题。
那么这一篇文章发表08年国际会议上,有兴趣的朋友可以去看。
因此,在随机产生了12003满足流应用特性相干图中,我们的在算法98%以上的达到。我们综合考虑六种数据访问特性,传统优化技术往往只考虑单一访问性质。
那么,过去的分析方法往往注意单一性质,我们觉得我们发展综合分析方法,这是一个想法。我们认为六个性质综合方法可能是突出存储墙一个理论的问题。若有一种综合方法根据这种分析方法来找软硬件结合一种结构,以及自动化,半自动化的管理,也可以缓解大家攻克这种墙。那么综合度六种数据访问特性,推动这和谐的优化算法,来建立新的软硬件配合的体系结构。
今年9月份,我去一趟英国,就发现一个消息,英国工程和物理可学研究委员会出资6亿来研制光计算机。
实际上,第一期目标比较明确,我个人觉得是做芯片光互联。那么我们这边芯片光互联是解决或者缓解存储墙的问题技术之一。为什么说?因为从物理属性来,光频率高,多重复用,弱酸解。从运用角度来说,传输高,可以远距离通行。当然有光跟点的比较。大家都知道,我就不展开讲。
目前,机柜间光互联的应用已经非常广泛。那么版间光互联的应用正在逐渐兴起。而芯片间光互联技术具备解决存储墙的问题,但是处于探索阶段。但是现有光互联的器件主要基于3—V等族化合物机柜间,版间光互联用到的光收法器到调制器等。这些技术应用于芯片间光互联的问题:第一材料昂贵,不兼容CMOS等。
我们在硅光器件取得一系列突破。比如在06年美国某大学宽带光放大器极大地拓宽了光信号放大和突破的族长范围等。08年IBM最小的光开关。可以看出来,进展非常快,国际上新建间光互联的研究项目发展也比较快,自1998亿,美国 DAPRA现货投入了研究。比如美国UNIC项目,它的目标研究高贷款、低延迟、低功耗,CMOS兼容。那么欧盟在05年也启动,多个国家参与芯片之间光互联的项目。那么欧盟某一个项目在08年到2012年耗资1200万欧元也是研究芯片之间的光互联。那么日本也有相应的计划。我们国家也有一些单位在探索这一方面,在这个方面研究取得可喜的成绩。
IBM对光互联发展趋势有一个预测,那么它的预测现在正在走在一个卡上。那么芯片之间做一个预测,应该在2020年之后,甚至更远,但是没有一个更准确的看法。
IBM关于2020年光互联技术的观点:在3—D堆叠技术的背景下通过一系列方面来解决。
还有其他的技术:比如纳米电子学,这一方面的进展:08年斯坦福大学的制备出基于探纳米管互联先的圆形芯片工作频率达到1GHZ以上等。纳米电子学在向着高密度方向发展的同时,也为具有更高宽带和工作频率新型器件发展带来的发展。
往前,当然量子计算跟生物计算完全有可能改变存储墙的问题。总的来说,存储墙的问题解决任重而道远,还需要我们不懈的努力。以上的是我的看法。
责任编辑:鲁媛媛 联系邮箱:lu_yuanyuan@cnw.com.cn