
| 出版日期:1999-08-09 总期号:847 本年期号:57 |
|
积木般搭建的超级计算
超立方体连接的cc-numa结构计算机 许耀昌 cc-numa(高速缓存一致性非均衡存储器访问)体系结构把多个处理器互连在一起,连接数目随系统规模扩大而增长,从而可以避免基于总线的对称多处理(smp)体系结构对带宽的限制。由于采用超立方体的多维互连特性,使系统的可伸缩性也达到了空前未有的水平。 基本的积木块 为使讨论简化,可把cc-numa体系结构看作由节点和路由器两个基本部件组成的系统。节点是装有2个cpu的线路板,路由器由纵横开关(crossbar switch)芯片组成,该专用芯片装在路由器板上。节点板与路由器板之间共有6条连接通路(connection),其中三条连接经由craylink光纤电缆与其他路由器相连,还有三条与系统的背板(backplane)连接。背板再与两块节点板及位于同一机箱内的第二个路由器相连。这样在同一机箱内有两个路由器相连,每个路由器可以和4个cpu相连,因此一个机箱可以使8个cpu互连。系统进一步扩展可通过craylink电缆把不同的机箱连在一起。cc-numa体系结构可以看作通过一个超立方体(hypercube)把多个路由器与节点连在一起构成的。超立方体具有下列特性: ·超立方体的空间维数为n,n为大于或等于0的整数; ·超立方体有2 n个顶点; ·超立方体每个顶点有n个连接(边); ·超立方体各个顶点上所有的连接彼此正交。
从概念上说,每个路由器芯片与超立方体的一个顶点等价,两个顶点之间每条光纤电缆与超立方体的一条边等价。因此,超立方体的基础结构是路由器的互连。 由于2 0=1,0维超立方体实际上就是一个顶点。该顶点代表一个路由器,它可以与2个节点即4个cpu相连。 由于2 1=2,因此1维超立方体实际上是一根线或一条边,两端含有2个顶点。因此,1维超立方体的cpu数为8,连接数为1。 由于2 2=4,因此2维超立方体实际上就是一个正方形,它有4个顶点、4个连接,cpu数为16。 同理,由于2 3=8,3维超立方体实际是一个普通的立方体。由上可见,随着维数每增加1,超立方体中的顶点数要加倍,因此cpu数也随之加倍。 4维超立方体可以通过加倍-延伸的方法,由三维超立方体和一维超立方体构成,4维超立方体有16个顶点、64个cpu及32个连接数。 依此类推,可以得出8维超立方体的顶点数为256,cpu数为1024,顶点之间连接数为1024。 基于超立方体系统的带宽 评价一个系统互连性的优劣,通常是考察该系统的对分带宽。对分带宽把一个系统剖分二半,在剖分面上计算被切割的点数。对于一定的介质而言,每个切割点上的最大流量是一定的,因此对分带宽可以衡量一个系统在全双工方式时的带宽。实际应用中用对分带宽峰值或对分带宽持续值来表示系统带宽。由于超立方体每个cpu的切割点数是常数,它不随系统的规模而变,而总线结构的多处理机每个cpu的切割点数随系统规模加倍而减半,因此当cpu数量增加一定数量时,会引起严重的瓶颈效应。从理论上讲,超立方体的体系结构,随着超立方体的维数增加,带宽可以线性增加。 这是因为在超立方体系统中,当维数从n维增至n+1维时,它的顶点数将加倍,而每个cpu的对分带宽仍保持常数,所以随着维数增加、cpu的增加,总的带宽呈线性增长。 应当指出,对于cc-numa的origin服务器,在2至64个cpu的系统中,采用标准的路由器把2至32个节点板连接在一起。在65至128个cpu的大系统中,采用元路由器(meta router)把2至64个节点板连在一起,而所谓元路由器实质上是由标准的路由器按加倍延伸规则形成的路由器组。表1给出origin系统的cpu从2增至128个时,对分带宽呈线性增长的情况。
高速缓存一致性 在cc-numa系统中,每个cpu有一个私有的高速缓冲存储器(cache)。为了得到较好的性能,cpu经常在它私有的cache中存取指令及数据,在这种系统中,一个存储单元的内容可以有许多独立的副本给物理上分布在cpu附近的cache。 如果某一个cpu改写该存储单元的内容后,必须通知其他各个cache原来的数据已经无效,如果要新的数据就要从该cpu改写的存储单元中去取,这就是所谓cache一致性(cc)的问题,那么如何保证所有的cache都能反映存储器的当前状况呢? 在origin系统中不采用总线结构常用的基于窥探(snoopy-based)的协议,而是采用基于目录(directory-based)的协议来解决cache的一致性问题。 在基于目录的协议中,存储器中的存储块(或称cache-line)伴有一个目录入口。在这些入口中含有cache的状态信息及位矢量(bit-vector)信息。位矢量中除了有存储块的副本外,还有指向cache的信息。通过检查状态信息及位矢量信息,存储器可以确定对哪一些cache执行规定的存储操作,从而保持高速缓存的一致性。 采用基于目录的协议可以避免基于窥探协议带来的带宽问题,因为它不需要向每个cpu广播关于存储器的访问情况,而只需要向那些具有某存储块副本的cache发送原来存储的数据无效信息,执行这种“无效”操作后,只有每个处理器中的cache才保存某存储单元的原始拷贝,其他有关的cache可以从与这个cache有关的存储器中去取经改写后的数据,这样每次改写后就不需要向所有的cache广播存储器的访问情况。换句话说,由于基于目录的协议实质上是采用类似网络中点对点的通信方式来代替总线结构的通信方式,因此可以打破对称多处理器对总线结构带宽的限制。在sgi的origin服务器中这种高速缓存器的一致性是采用硬件hub芯片来实现的,因此降低了延迟时间,并使整机的带宽可以迅速扩展。 系统的特点及应用 origin服务器是cc-numa体系结构的典型实现。应该说这是采用超立方体连接及craylik互连网络的结构。craylink互连网络把路由器、hub连接在一起,使存储系统的延迟时间缩短、系统的带宽可随cpu扩展。
采用256处理器的cc-numa超级计算机 origin服务器是可伸缩的积木式结构,由于采用craylink互连和高速的xio接口,极大地提高了系统的i/o吞吐量。它用于web服务多次打破了性能方面的世界纪录。 |
|||||||||||||||||||||||||||||||||||