新颖的大规模并行超级计算机的制作方法

文档序号:6354484阅读:327来源:国知局
专利名称:新颖的大规模并行超级计算机的制作方法
相关申请的交叉引用本发明请求共属的且共同待审的美国临时专利申请序列号60/271,124的优先权,该临时专利申请于2001年2月24日提交,题目是“MASSIVELY PARALLEL SUPERCOMPUTER”(“大规模并行超级计算机”),在此将其整个内容和公开内容明确地引入以供参考,就好像在此将其完全地进行了阐述。本专利申请还涉及到以下与本申请于同一天提交的、共属的、共同待审的美国专利申请,在此将它们每个的整个内容和公开内容明确地引入以供参考,就好像在此将它们完全地进行了阐述美国专利申请序列号(YOR920020027US1,YOR920020044US1(15270)),标题为″ClassNetworking Routing″(“类别联网路由”);美国专利申请序列号(YOR920020028US1(15271)),标题为″A Global Tree network forComputing Structures″(“用于计算结构的全局树形网络”);美国专利申请序列号(YOR920020029US1(15272)),题目是“GlobalInterrupt and Barrier Networks″(“全局中断和障碍网络”);美国专利申请序列号(YOR920020030US1(15273)),题目是“OptimizedScalable Network Switch”(“优化的可扩展网络交换机”);美国专利申请序列号(YOR920020031US1,YOR920020032US1(15258)),题目是“Arithmetic Functions in Torus and Tree Networks”(“在环形和树形网络中的算术函数”);美国专利申请序列号(YOR920020033US1,YOR920020034US1(15259)),题目是“Data CaptureTechnique for High Speed Signaling”(“用于高速信令的数据捕获技术”);美国专利申请序列号(YOR920020035US1(15260)),题目是“Managing Coherence Via Put/Get Windows”(“通过Put/Get视窗管理一致性”);美国专利申请序列号(YOR920020036US1,YOR920020037US1(15261)),题目是″Low LatencyMemory Access And Synchronization″(“低等待时间的存储器访问和同步”);美国专利申请序列号(YOR920020038US1(15276),题目是“Twin-Tailed Fail-Over for Fileservers Maintaining FullPerformance in the Presence of Failure”(“用于文件服务器在存在故障时维护全性能的双节点故障转移”);美国专利申请序列号(YOR920020039USI(15277)),题目是“Fault Isolation Through NoOverhead Link Level Checksums”(“通过非开销链路级校验和的故障隔离”);美国专利申请序列号(YOR920020040US1(15278)),题目是″Ethernet Addressing Via Physical Location for MassivelyParallel Systems″(“通过物理位置对大规模并行系统进行以太网寻址”);美国专利申请序列号(YOR920020041US1(15274)),题目是″FaultTolerance in a Supercomputer Through Dynamic Repartitioning″(“通过动态重划分在超级计算机中的故障容错性”);美国专利申请序列号(YOR920020042US1(15279)),题目是″CheckpointingFilesystem″(“对文件系统进行检查点操作”);美国专利申请序列号(YOR920020043US1(15262)),题目是“Efficient Implementation ofMultidimensional Fast Fourier Transform on a Distributed-MemoryParallel Multi-Node Computer″(“在分布式存储器并行多节点计算机上的多维快速傅立叶变化的有效实现”);美国专利申请序列号(YOR9-20010211US2(15275)),题目是″A novel Massively ParallelSupercomputer″(“一种新颖的大规模并行超级计算机”);以及美国专利申请序列号(YOR920020045US1(15263)),题目是″Smart FanModules and System″(“智能风扇模块和系统”)。
背景技术
发明领域本发明一般涉及超级计算机系统及体系结构领域并且更具体地,涉及一种新颖的大规模并行超级计算机。
现有技术的论述大规模并行计算结构(也被称作为“超规模计算机”或“超级计算机”)互连大量的计算节点,一般地,采用诸如栅格,点阵或环形结构的很规则的结构形式。用于该最高成本/有效的超规模计算机的传统方法已被使用配置在单处理机或对称多处理机(SMP)结构内的标准处理机,其中SMP与网络互连以支持消息传递通信。今天,这些超级计算机器展示了实现每秒钟运算十亿次规模的计算性能。然而,在用目前的SMP集群的方法来建造超规模计算机的计算机工业中具有两个长期存在的问题(1)增大的距离,在处理机与存储器之间的,用时钟周期所测得的以及(2)用主流单处理机或对称多处理机(SMP的)建成的并行计算机的高功率密度。
第一个问题中,到存储器的距离问题(如用等待时间和带宽量度所测的)是面对计算机体系结构的一个关键问题,因为它提出了以远超过每年存储器速度的增加以及通信带宽的增加速率的在性能上所增加的微处理机问题。尽管存储器分层结构(高速缓存)以及等待时间隐藏技术提供了示范解决方案时,但是这些方法却需要应用软件程序员来使用很正规的程序以及存储器引用方式来获得良好的效率(即,最小化指令流水线气泡以及存储器局部性)。该技术因而不适合于现代的应用程序技术(例如,用于非结构化的网格以及面向对象的编程的复杂数据结构)。第二个问题中,高功率密度涉及用于这类每秒钟运算十亿次规模的计算机的高成本以及设施要求(功率,冷却及占地面积)。
将会非常期望提供一种将通过至少一个数量级来减少存储器的等待时间,如以处理机周期所测得的,以及以降低的成本,功率和占地面积优化每秒钟运算万亿次规模的大规模并行计算的超规模超级计算机系结构。
将会非常期望提供一种拓展在启用把许多处理机集成到一个单独的ASIC内情况下的计算模型的VLSI方面的技术进展的超规模超级计算体系结构。
将会非常期望提供一种包含用于最佳地实现各种规模可伸缩性等级的处理节点的一独特互连的超规模超级计算体系结构。
将会非常期望提供一种包含被优化而用于有效和可靠地计算全局归约,分布数据,同步,以及共享有限资源的处理节点的一独特互连的超规模超级计算体系结构。
发明概述本发明的一个目的是提供一种新类别的用于以降低的成本,功率及占地面积实现万亿次OPS规模计算及以上的新的大规模并行的,分布式存储器可伸缩计算机体系结构。
本发明的另一个目的是提供一种从互连的观点看用于允许处理节点的最大装配密度的实现万亿次OPS规模计算及以上的新的大规模并行的,分布式存储器可伸缩计算机体系结构。
本发明的还一个目的是提供一种拓展在启用许多处理机能够被集成到一单个ASIC内的情况下的计算模型的VLSI方面的科技进展的超规模超级计算体系结构。更好地,使用简单的处理核心,该处理核心已被优化用于把功耗减到最小并且能够实现对于可从当前体系结构中得到的那些核心的最好的性能/价格比,同时具有大型服务器所期盼的可靠性,可用性及可服务性的系统属性。特别地,每个计算节点都含有使用两个或更多被集成到一个电路小片内的处理机的片内系统ASIC,而每个都可完全存取所有系统资源。在单个电路小片上的许多处理机启用处理机的自适应划分以通过应用原理起到诸如一应用程序上的计算或消息传递I/O的作用,并且更好地,根据一应用程序内的各种算法阶段而启用功能的自适应划分,或者如果I/O或其它处理机处于使用之中,那么就能够参与计算或通信。
本发明的又一个目的是提供合并了多个网络互连范例的超规模超级计算体系结构。更好地,这些范例包括三维环形,全局树形以及全局异步信号网络。该体系结构允许并行处理消息传递算法以单独或是同时地利用这些互连,结果产生用单个互连范例不可得到的性能级。另外的最佳协同作用来源于在各个节点内的多个处理元件的同时使用,每个节点能够同时访问这些互连中的任何一个或是全部,按最高容量使用它们。
本发明的再一个目的是提供一种新类别的大规模并行的、分布式存储器可伸缩计算机体系结构,该体系结构具有低等待时间的全局通信功能,该功能包括对于任何节点按高带宽和低等待时间向所有其它节点广播的能力以及执行全局归约运算的能力。这种全局通信功能对于涉及全局“或”或是全局“与”运算,除了诸如全局加或取最大值的简单算术功能以及集体运算之外的应用程序之类的很有利。
本发明的一个另外目的是在超规模可伸缩计算机体系结构内提供关键协作,该关键协作允许新的和新颖的技术和算法被在大规模并行处理领域内加以。
本发明的还一个另外目的是提供一个被安排成树形互连的单个物理网络以便进行全局、集体运算和文件系统I/O这二者,其中该两种类型通信都被承载以便均分该网络的成本。更好地,该树形网络另外把I/O操作以及集体通信量从该环中分离出来,并提供用于把任意数目的I/O维修节点加到该应用程序上的装置。由于这些I/O节点物理或逻辑地处于该环的外部,因此该应用程序能够执行I/O及外部交互作用而不会使该环的节点的性能不平衡。这就导致了大大增强的可伸缩性,因为这是由于该环的节点将给予可预知的和可重复的性能,同时I/O节点承担所有异步和不可预知的外部交互的负担。
此外,这些技术还提供把大规模并行超级计算机划分成可灵活配置的若干较小的,独立的并行计算机,而其中的每一个都保持该较大机器的所有特征。假定该超级计算机的巨大规模,这些划分技术还提供了透明移除,或绕过这里称为“中平面”的任何出故障的机架或部分机架而进行映射的能力,因此能够维修它们而不会干扰该系统的其余组成部份。
本发明的还有一个目的是增加可维护性,诸如经由物理位置所进行的以太网寻址,以及与以太网的JTAG接口。
根据本发明的一个方面,这里提供了一种可伸缩的,大规模并行超级计算机,包括由多个独立网络以n维互连的多个处理节点,每个节点都包含一个或多个处理元件,该处理元件用于执行在执行并行算法运算时所要求的计算或通信活动;以及,该多个独立网络包括这样的网络,该网络用于启用在其独立划分的子集的节点之间的点对点和全局树通信,其中为优化并行算法处理性能,互连所述节点的所述多个独立网络的组合被根据并行算法的带宽和等待时间需求而协作地或独立地利用以。
在一优选实施例中,该节点体系结构以片内系统(SOC)技术为基础,该技术中基本构件块是包括单独的专用集成电路(ASIC)的完全处理“节点”。当被聚合时,这些处理节点中的每一个都被称为‘蜂房’,允许人们把用多个相同蜂房构造而成的这一种新的大规模并行机器定义为“蜂窝”计算机。每个节点最好包含多个(例如,两个或更多的)处理元件,每个处理元件都包括中央处理单元(CPU),多个浮点处理机,以及多个网络接口。更好地,为了这些多个处理元件之间的快速低开销协调,提供一种新颖的“锁箱”。
节点的SOC ASIC设计允许计算性能,封装密度,低成本,以及功率与冷却需求的最佳平衡。它进一步结合新颖的封装技术使可伸缩性达到空前级别。片内系统级的集成允许对于含有与各个节点相关的本地主存储器的所有等级的存储器的低等待时间,从而克服了日益影响传统超级计算机系统的性能瓶颈。在每个节点内,多个处理元件中的每一个都被单独地或同时地使用,以便工作在由正在被求解或在任何时间点上执行的特定算法所要求的计算或通信的任何组合上。
在操作的一种示例模式中,处理元件之一执行该算法所需的计算,同时其它节点执行通信活动。这就允许使用处理元件之一的计算能力来卸载复杂消息匹配协议,同时其它处理元件继续独立地计算。通常利用复杂形式的消息传递协议,通常被称作为“归约函数”的特定算术函数,需要在消息数据到达时被调用。一个处理机,即I/O处理机,可以被实现来执行这些函数而不需分散第二个计算处理机。另外,由于该I/O处理机的计算能力,因此应用程序能够任意定义复杂的归约函数,支持把增大的计算能力与通信活动相联系的新算法的开发。对于特定类别并行算法,或是部分并行计算,这一体系结构可以应用两个处理元件的能力来在通信活动上协作地工作。例如,在当要求大量数据的交换期间,处理元件之一能够发送数据同时另一个接收数据。对于特定类别并行算法,或部分并行计算,该体系结构可以大约实现两倍的期望计算性能。该体系结构允许同时地,单独地,或协作地来使用该多个网络。由于片内系统级的集成,与被设计成利用该体系结构的优点的操作系统软件合作,这些运算模式之间的替换能够以最少的开销出现。在其中计算在等待消息到来的情形中,这会自动发生。
多个网络范例被实现来互连节点以单独或同时使用并且包括用于并行算法消息传递的三个高速网络。为用于输入/输出,系统管理和配置,以及用于超级计算机节点的调试与监视服务的外部连接而提供了另外的网络。该高速网络最好包括n维环,全局树,以及全局信号配置。这些网络中每一个的使用都可以基于算法需要或算法阶段而来回转换。例如,部分计算可以在该环上执行,或是部分在全局树上执行,这样就方便以新颖的方式同时使用多个网络的新并行算法的开发。
就环形网络而论,它最好是支持立方形或矩形通信及划分的3维设计。3维设计允许对于该环形网络的许多物理现象的计算模拟的直接映射。不过,较高维数,即,4、5、或6维环,允许以更多的芯片对芯片连接以及大为增高的布线成本为代价的更短和更低的等待时间路径。较低维数引起了更长的等待时间和更少的芯片对芯片通信。另外实现的是,基于使用虚拟直通(VCT)包的自适应路由的最短路径的交换网络,通过自动路由绕过网络拥塞的任何点而提供了持续高带宽。它还另外提供了确定性最短路径路由,以便进行受益于它的并行计算,或是高优先级的消息。
另外,该环提供了使用“类路由”的自动组播技术,该技术中被注入到该网络内的一个单独的包能够被存放在多个目的地上。更好地,该网络通过采用两个动态虚拟电路加上两个逃脱“气泡”电路以避免死锁,而达到无死锁。虽然环形网络以前已被使用,如在这里所并入的,共同拥有的,序号为No.__的题为“Optimized ScalableNetwork Switch”的未决美国专利申请中所描述的,但是使用了新颖的仲裁策略来实现在整体可伸缩系统内的低等待时间和高吞吐量。点对点基于记号的流量控制最有效地利用了网络缓冲同时分配通信量远离热点。通过在报头上采用分开的CRC错误检测,以及对破坏的网络包的自动重发采用整包CRC错误检测能够在该环内进一步使实现包的有保证的可靠传递。
就全局树形网络而论,一个基本的功能性是支持全局广播(下行树)以及全局归约(上行树)操作。另外的功能性被提供来支持被用于输入/输出,程序装载,系统管理,并行作业监视和调试的可编程点对点或子树消息传递。该功能性使“服务”或输入/输出节点能够被该环中分离出来以便不妨碍并行计算。就是说,该环内的所有节点都可以按全计算速率运行,同时服务节点卸载异步外部交互。这就保证了并行计算的可伸缩性和可重复性,因为所有节点都按完全的并且一致的速率执行计算操作。更好地,全局树支持实现归约消息传递操作的那些数学函数的执行。更好地,全局树形网络另外支持多个独立虚拟信道,允许多个独立全局操作同时进行。该设计是可配置的并且计算节点与服务节点之比是灵活的,这取决于并行计算的要求。替换封装策略允许任何比率,包括由所有服务或输入/输出节点构成的机器,这对于极端数据密集计算会是理想的。
第三个网络包括全局信号网络,该网络支持多个异步‘信号’的通信以提供全局逻辑“与”或“或”功能性。该功能性被专门提供用来支持全局障碍操作运算(“与”),用于向所有节点表明,例如,该分区内的所有节点已经到达该计算或并行算法阶段内的特定点,以及,全局通知(“或”)功能性,用于向所有节点表明,例如,该分区内的一个或任何节点已经到达一特定状态或条件。这一网络类型的使用启用了用于新颖的并行算法,协调,以及系统管理的技术。
另外的独立网络包括一外部I/O网络(诸如千兆位以太网),该网络提供了把服务或输入/输出节点连到外部服务器和主计算机上;以及,一IEEE 1149.1联合测试访问组(JTAG)网络,该网络提供了对于整个机器内的所有节点的完整的低级调试,诊断以及配置能力,并且可以被从一个独立的主机器远程执行。更好地,同或是不同在该并行机器的节点上所执行的任何软件的合作来运行该JTAG网络的使用。节点可以透明于可能正在执行的任何软件而被调试或检查,因为该网络提供了同时寻址所有节点或该机器内节点的任何子集的能力。这种诊断与调试级别是一种实现硬件和软件二者的大规模可伸缩性级别的技术。
新颖的封装技术被应用于实现该允许多个网络,以及多个处理机配置的空前的可伸缩性级别的超级计算系统。在一实施例中,被提供有多节点“节点卡”,该卡包含多个计算节点,加上实现外部I/O网络的可选I/O节点。这样,计算对外部输入/输出之比可以通过用期望数目的I/O节点来填充“中平面”而灵活地选择。使用新颖的自适应低功率数据俘获技术来引导高速串行信令。该封装技术允许多个子网络可划分性,实现对多个独立问题的进行同时工作。由此,可以生成较小的开发,测试及调试划分,不干扰其它划分。
中平面与机架之间的连接基于划分被选作为是可操作的。分割进一步建立相互隔离的划分,每个划分都保持所有连接的全部能力,提供可预测的和可重复的性能。这实现了在相同大小和形状的任何划分上都保持有效的细粒度的应用程序性能调整及负载平衡。在其中遇到极细微的错误或问题的情形中,该划分体系结构允许大规模并行应用程序的精确可重复性。可划分性,如由本发明实现的,提供了分割能力以使得可以设计网络结构以避免,或在周围映射,该超级计算机内的非工作机架或中平面以使它们可以被维修,同时其余组件计算运行。
有利地,本发明的该新颖的封装与系统管理方法及装置支持把计算节点聚合到空前的可伸缩性水平,支持在并行计算上的“重大挑战”问题的计算,以及致力于包括那些其中高性能计算内核涉及有限的不同方程,密集或稀疏线性方程解法或傅立叶变换,以及能够被自然映射到多维栅格上的大量类别的问题。在生命科学领域内会遇到本发明所特别适当针对的问题类别。
附图的简要说明参照以下描述,附带的权利要求书,以及附图,本发明装置及方法的进一步的特征,方面以及优点将变得更好理解,其中

图1描绘了互连了8个计算节点的三维环形的一小部分10;图2是说明根据本发明原理的计算节点ASIC的详细方框图;图3是说明图2的链路缓冲器以及虚拟直通路由选择控制块26的详细方框图;图4是说明一单个节点的存储系统的详细方框图;图5说明根据本发明的包含全局信号与外部网络连接的一全局组合树形网络;图6说明根据本发明原理的该全局组合树与障碍网络;图7说明一单个环形路由器70的基本体系结构/;图8(a)是图7的链路输入电路72的一示范实施例的详细框图;图8(b)是图7的链路输出电路74的一示范实施例的详细框图;图8(c)是说明图7的局域网注入电路73的一示范实施例的详细框图;以及,图8(d)是说明图7的局域网接收电路76的一示范实施例的详细框图;图9描绘了根据本发明一优选实施例的传送包100的格式;图10是描绘本发明的该超规模可伸缩超级计算机的概念形顶视图;图11说明根据本发明的全局时钟分布系统;图12(a)是说明一计算卡的处理机节点与树形连接的示意图;图13描绘了根据本发明的在机架内的基本气流;图14描绘了根据本发明的环形与树形的一个可能的物理路由;
图15描绘了根据本发明的用于控制系统重新划分的系统链路芯片及操作;图16描绘了根据本发明的规则及分开划分的例子,并举例展示了中平面可以被怎样分隔;图17是驱动一互连双节点的电缆相对端的一对差分同时双向驱动器/接收器电路450的方框图;图18(a)和18(b)分别说明用于可靠,高速串行数据俘获,具有低功率的接收宏块及发送宏块;图19说明了用于具有故障转移(Fail-Over)的双尾部(Twin-Tail)SCSI RAID的概念重复结构550;以及,图20描绘了利用来为在图6的全局中断及障碍网络60内实现的异步全局信号生成的逻辑。
优选实施例的详细说明本发明的大规模并行超级计算机体系结构是采用被互连并被设计成用来以大约数以百计的每秒钟运算万亿次规模(每秒万亿次浮点运算)为广泛范围的应用传送处理能力的三维环形形式。在这里所述的一示范实施例中,该大规模并行超级计算机体系结构包括被组织为一64×32×32的环形的64k个处理节点,其中每个计算节点12经由如在图1所示的三维环形近立方体部分10中所描绘的6个双向环形链路13而连到六个(6)相邻节点12。不过应当理解,包含不同环形结构内的更多处理节点的其它结构也被考虑。
如同在这里将更详细描述的,每个节点12包括一单个的ASIC以及多个SDRAM-DDR存储器芯片。这些节点通过至少六个(6)网络而互连,其中最高的总带宽是把这些节点映射到一物理三维环形内的最近的相邻链路。在所描述的实施例中,该互连结构包括最好是非对称性的环,这是由于这些节点用相同的带宽以及几乎相同的等待时间来与和那些在物理上位于相邻机架上的节点物理上靠近的节点进行通信。这就方便了更简单的编程模型。驱动这些节点的ASIC是基于片内系统(s-o-c)技术并且合并了该系统所需的所有功能。它另外还包括4Mb或极高带宽的多数的嵌入DRAM。这些节点自身物理上很小以允许处理的很高密度以及优化成本/性能。
在所述的实施中,系统封装包括512位于双面板或“中平面”上的个处理节点。每个节点含有用于处理消息传递操作的第二处理机。另外,与所述的多个处理节点相关联的是专用I/O节点,该专用I/O节点包含具有扩展外部存储器且用于处理与该计算节点来往地进行I/O通信的双处理机。每个I/O节点都具有能够处理基本I/O任务以及高性能实时代码所需的全部功能的一个小的操作系统。为了编译,诊断,以及分析,需要一个主机。这些I/O节点含有在用于处理主机通信的计算节点上的层之上的一个软件层。主机的选择将依赖于应用程序的类别及其带宽以及性能要求。
节点综述图2是说明根据本发明原理的一个单独的计算节点ASIC20的方框图。每个节点12最好基于把计算机的所有功能集成到使得节点大小及功耗急剧减少的一单个的计算ASIC20内的片内系统处理。在一超级计算机内,这样就能够被进一步调节以便增加节点密度从而为该机器降低总体成本/性能。如图2所示,这样设计的ASIC,在该系统内既可以起到计算节点的作用,又可以起到I/O节点的作用,包括两个处理核心22a,22b,它们中的每一个分别具有包括给出每个计算机周期执行四个浮点运算的峰值性能的两个耦合标准浮点单元的“双”浮点单元24a,24b。在一实施例中,该节点的嵌入式处理核心为可从IBM微电子部买到的PowerPC440,尽管该核心的下一代版本可被用作技术改进。PowerPC440核心的功能性说明可在http//www.ibm.com/chips/products/powerpc上找到。“双”FPU单元24a,24b通过把数据通路从64比特增大到128比特而增大了数据带宽以允许四倍字长浮点装载及存储(即,为数据移动)。另外,该单元已被构造成通过把这些执行单元分离成实数与虚数的复数对来允许两个浮点乘-加指令被在一个周期内分配和执行。新近构造的(单个指令,多个数据)SIMD型指令向该复数对提供每个周期执行两个浮点乘-加的能力同时普通的标量指令将仅仅利用实数或主侧。如表1内所示的例子,考虑在三个复数,A,B,及C上执行A*B+C运算的代码片断。假设在计算之前,寄存器ar与ai包含A的实部及虚部,并且类似地,br与bi对,以及cr与ci对保存B和C的值。编译器将会自动地能够生成下列代码,只需要两条指令,它把结果放到寄存器对dr与di内。
表1采用SIMD模式在双FMA上的复数A*B+C节点12进一步把其它功能并入到ASIC20内。除了嵌入式处理核心与浮点核心外,该系统还包括嵌入式DRAM 35,一集成式外部DDR存储控制器43,消息处理机,以太网适配器45,48以及允许任何两个节点以低等待时间通信的所有网络链路直通缓冲器和路由控制块26。计算节点12特别包括两个嵌入式核心,诸如IBM PowerPC 440,每一个核心都能够被用于消息处理及计算操作。该体系结构另外支持虚拟直通路由。
如图2所进一步示出的,在被集成到ASIC内允许消除网络适配器的硬件框26内支持虚拟直通路由。更好地,用两个(2)动态及两个(2)确定性通道来支持虚拟通道路由网络。
图3是说明用于包路由的链路缓冲器及虚拟路由框26的详细框图。数据流从左到右仅示出单个的输入17及输出通道19。提供了判优逻辑元件37a,b,用于在通过两个阶段的处理在硬件内执行的输出通道判优。第一阶段37a位于该输入虚拟通道的句柄而第二阶段37b位于该输出通道的局部。如所示,框26包括多个输出/输入FIFO,用于向/自同时启用所有6个双向链路端口的完全利用的网络注入/接收包。关于该链路缓冲器以及虚拟路由框26的操作的进一步细节可以在这里所引入的,共同拥有的,序号为No.____(YOR920020030US1(15273)),题为“Optimized Scalable NetworkSwitch”的未决美国专利申请中找到。
往回参见图2,另外提供一暂存区SRAM 39以用作为高性能处理机间通信机制。处理机22a,22b二者对SRAM 39具有相同的访问权,SRAM 39对于“计算”处理机与“消息”处理机之间的网络通信描述符的有效交换是临界的。该暂存区SRAM的大小可以在32-128K字节级的范围上。由于对于处理机间通信的常见瓶颈为软件锁的交换,因此该节点存储器系统包括一特别适合于处理锁交换的共享资源。也就是说,提供一“锁箱”40以启用这些多重处理元件之间的快速低开销协调。关于为该多处理机内的多个处理机之间的同步提供支持的该硬件加锁设备与该资源的顺序共享的进一步细节可在这里所引入的,共同拥有的,序号为No.____(YOR920020036US1,YOR920020037US1(15261)),题为“Low Latency Memory Access and Synchronization”的未决美国专利申请中找到。应当进一步理解可在该节点的存储器系统内提供适合的预取或相干硬件,如在这里所引入的,共同拥有的,序号为No.____(YOR920020035US1(15260)),题为“ManagingCoherence Via Put/Get Windows”的未决美国专利申请中所描述的。
往回参见图2,另外还提供了启用低成本商品DDR外部存储器的使用的一DDR控制器43。如已提到的,对于该外部存储器的等待时间为临界设计参数中之一并且可以用该内部DDR控制器来支持不同的存储器结构从而允许许多的系统存储器结构。一个目标存储器系统基于具有以1/2,或1/3的处理机频率运行的128比特数据接口的256MB DDR存储器。提供了附加存储器来支持ECC以及潜在预取指针。当起I/O节点的作用时,该ASIC利用该DDR控制器的灵活性并支持较大的外部DDR存储器,例如512MB。
在一优选实施例中,同样的计算节点ASIC 20可以作为I/O节点加以使用,该I/O节点与计算节点的子集例如64个节点相关联,以便处理文件服务器通信及I/O操作。即,该I/O节点与计算节点非常相似,不过除了例如像千兆以太网这样的外部网络接口之外,仅仅在外部存储器的结构方面不同。虽然出于论述目的,计算节点可以具有集成的Gb以太网(它们共享一公共的ASIC),但是在这些节点上还是提供了Gb以太网接口48以用于提供服务及I/O功能。所有节点都具有到100Mb以太网网络45的直接连通性。
该节点ASIC另外包括连到一外部文件系统以及连到引导,调试及支持RAS所必需的I/O。存在为该目的可被集成的两个网络,如图2所示1)具有逻辑以太网功能的100Mb/s以太网45可被集成到该ASIC内。照此方式,每个节点ASIC将可被独立寻址以允许主计算机直接访问该系统内的任一节点。这是对引导及诊断非常有用的极为有力的工具。在另一实施例中,多个节点可在媒介独立接口(MII)层上的8路计算卡上直接相连接,以便减少外部组件计数,成本并改进可靠性;以及,2)具有被集成到该节点ASIC内的Gb以太网逻辑层的Gb以太网48。优选地,将该网络利用在I/O节点上并且该Gb以太网驻留在该ASIC内的PLB(处理机本地总线)上。这就允许在一I/O节点内的I/O处理机建立DMA发送及返回以便用很少的开销来处理消息。此外,如图2所示,可以用Infiniband链路49来调节高速文件及主I/O。
如已提到的,对于I/O,调试,以及各种类型的处理机内通信,该计算机利用多达6个的互连网络。千兆位以太网或Infiniband,这取决于适当低成本切换与RAID系统的可用性,被用来支持本地附连的磁盘存储器。快速或100Mb/s以太网被用于诊断,调试,以及初始化的某些方面。两种类型的高带宽,低等待时间的网络组成系统“结构”,并且JTAG被用于访问内部处理机元件。因而,在该节点内进一步集成一个到内部JTAG控制器(未示出)且在以太网MII层(直接在ASIC管脚上)之间的接口以方便在该嵌入式领域的调试。
节点存储器计算节点存储系统包括片内高速缓存分层结构,片外主存储器,以及以及两个ASIC处理机22a,b之间的加锁和通信的优化的片内支持。该存储系统针对目标应用范围之上的峰值性能而被加以构造的,如将要描述的。该机器的合计存储器是采用多计算机的样式而被完全分布,,在节点之间没有硬件共享。每个节点可以,例如,拥有物理存储器的256兆字节,导致在64K节点系统内的总计16太字节。如图2所示,节点12的物理存储器被该ASIC内的两个处理机共享,并且该硬件提供了可选的相干支持。
图4说明了单个节点的存储系统25的基本组件。如图2和4所示,第一级(L1)高速缓存28a,28b分别设置在核心宏22a,22b内。各自的第二级L2R及L2W高速缓存30a,30b相对较小并且基本上起到用于L1数据的预取及回写缓冲器的作用。第三级(L3)高速缓存35较大,由指令与数据共享,并提供对大多数应用程序的工作集的高带宽,低功率的访问。最终,该节点存储系统包括由片外,双数据率(DDR)DRAM组成的主存储38。更具体地,该L1指令高速缓存(I-Cache 27a,27b)作为每个440核心宏的一部分,并与数据高速缓存29a,29b分开。在一示例实施例中,该I-Cache大小为32K字节,具有32字节的线大小。它是64路组相联的,并包含16组。线被与虚拟地址标记存储在一起,并被按循环次序替换。如果被启用,那么该I-Cache能够预测性地预取跟在高速缓存未命中后的接着的的3条线。如图2所示,通过从每个各自的440核心22a,b出现的一专用128位总线来执行I-Cache线的填充。优选地,这些填充回避L2高速缓存,并被从L3高速缓存运行以使它们不妨碍对L2高速缓存的数据存取。L1数据高速缓存(D-Cache 29a,29b)是440核心宏的一部分,并与指令高速缓存分开。它具有与I-Cache相同的基本组织,但是被物理地标记。在一实施例中,L1数据高速缓存大小为32K字节,具有32字节的线的大小,并且每个都与16组的64路是组相联的。类似I-Cache,它使用循环替换策略。该数据高速缓存产生两条分离的128位数据总线,一条用于读取,一条用于写,每条都按处理机频率运行。如图2所示,为了甚低等待时间的L2命中存取,该L1 D-Cache总线直接连到L2高速缓存。L1与L2高速缓存之间的线传送然后会要求两个连续的16字节传送,并最佳地首先返回临界字。440存储系统允许存储器页按照回写可高速缓存的,写直通可高速缓存贮藏的,或被抑制高速缓存那样而加以映射。D-Cache不支持探听或抄袭,因此按照回写被高速缓存的页就不能够被外部无效或更新。D-Cache提供单周期命中等待时间,并且在标称设计频率700MHz使,例如,峰值填充速率约为11.2G字节/秒。
如图4所示,每个L2高速缓存30a,b包括一只读线存储器(L2R)以及写缓冲器(L2W)。440核心中的每一个都具有其自己的L2结构,但是硬件能够维护二者之间的相干性。因此,在L1内按照回写被高速缓存的数据能够在两个核心之间被相干地共享。L2R很小,并且基本上起到L1线填充的预取缓冲器。L2R最好是全相联的并包括8条线,其中每一条都为64字节大小(即,L1线的大小的两倍)。希望L2R命中具有3个周期的等待时间,并匹配峰值L1填充速率。L2写缓冲器(L2W)的存在允许该核心很快地完成回写并允许较大的L2/L3线的大小在执行存储之前被合计在一起。L2高速缓存30a,b二者实现某些形式的预取。
L3高速缓存35由IMB CU-11Embedded DRAM(EDRAM)构成,并且,在一实施例中,为4兆字节大小,或是更大。用于该高速缓存的组织的几种选择都是可能的。例如,在一实施例中,实现了被两个处理机共享的直接组相联高速缓存。在另一实施例中,实现了两个高速缓存,其中的每一个都被共享。这双高速缓存结构使得两个处理机能够以最佳情形同时存取L3。为直接存取而将一部分L3高速缓存划分开也可能的。
在标称设计核心频率为700MHz时,例如,L1高速缓存可以维持每1.4纳秒周期16字节的峰值填充速率。EDRAM宏能够以页模式提供每5纳秒32字节的数据。因此,需要并行的两个EDRAM宏以匹配该峰值L1填充速率,结果产生对于L3高速缓存的最小线大小为64字节。L3与L2高速缓存之间的数据通道可以按该核心频率的一半运行并每周期返回32字节(256比特)。再次,L3高速缓存可以被分割以便同时地进行处理机存取,这样就会导致要求4个EDRAM宏库的实现。作为直接映射,4M字节高速缓存能够存储所期望的256M字节主存储器的1/64,这就导致了大小为6比特的标记。假设线大小为64字节,目录33将具有每个条目为6比特的64K个条目,需要384K比特的SRAM。如果高速缓存为4路组相联的,则线的数目保持相同,但是标记大小却增大到8比特。该节点存储系统25另外包括共享资源41,共享资源41包括用于处理机间通信以及用于避免瓶颈的交换的锁。
主存储器位于节点ASIC之外并且,在一示例实施例中,为256M字节大小。它是用商品双数据速率同步DRAM(SDRAM-DDR)设备构成的。关于该节点存储系统的进一步细节可在这里所并入的,共同拥有的,序号为No.____(YOR920020036US1,YOR920020037US1(15261))的未决美国专利申请中找到。
系统互连(类型及拓扑)以太网及IEEE1149.1(JTAG)在一实施例中,该超级计算机将对于一主计算系统50或外部服务器来说就象是被通过两个标准网络访问的大量节点(例如,64k)。一个网络是“快的”,或100Mb以太网98,被用于初始程序装载并调试对每个节点的访问,这样就使得对ASIC节点的主控制非常简单和直接。另外,JTAG,它允许通过例如IBM RiscWatchTM软件层对该处理机的寄存器进行访问,被连到ASIC内的100MHz以太网端口45,并且使用标准以太网I/P是可访问的。
全局组合树图5说明根据本发明的第二网络,被称为全局组合树形网络59,以树结构互连计算节点12并包括全局信号及外部网络连接。包含在该树内的是一被通过该全局组合树连到一预定数目计算节点12的相关联的I/O处理节点12’。在如图5所示的一优选实施例中,一个I/O节点12’是专门用于为64个计算节点12提供服务与I/O操作的。应当理解I/O节点与计算节点的这一比率是可配置的以优化该超级计算机的物理封装。也就是说,该封装设计使得能够改变结构以使计算节点与服务节点之比可以依据并行计算的要求而改变。在一优选实施例中,封装技术支持从256∶1到8∶1的比率。交替封装策略允许任何比率,包括由所有服务或输入/输出节点组成的机器,这对于极端数据密集的计算会是理想的。
如图5所示,100Mb/s以太网网络98例如通过网络转接18把计算节点12与相关联的I/O节点12’都连入到很大的网络中。如在这里所并入的,共同拥有的,序号为No.____(YOR920020040US1(15278)),题为“Ethernet Addressing Via Physical Location forMassively Parallel Systems”的未决美国专利申请中所更详细描述的,每个节点ASIC都具有允许主系统50与每个节点通信的唯一的MAC地址。与该MAC地址相关联的TCP/IP地址含有该超级计算机内的节点的编码几何位置。因此,例如来自一故障节点的诊断报告能够被直接通过它的TCP/IP地址跟踪到它的机架的行与列,以及它在超级计算机机架内的位置。因为与该高速网络相耦合,所以提供了同时冻结该机器内的所有节点的状态的能力。由于该超级计算机的一个实施例包含81,920个计算节点加上1,280个输入/输出节点,所以这就提供了空前的诊断,调试及检查级别。
当充当I/O节点12’时,ASIC 20包括千兆位以太网99或诸如Infiniband这样的类似接口,它可被用于访问充当该节点的本地磁盘的大的RAID磁盘系统55。RAID系统55针对冗余是双工的,并且被通过开关(未示出)而连到该通过千兆位以太网99或Infiniband的1024个通道的系统。这些开关还接口到主机,允许该主机通过简单的以太网I/P事务来访问系统节点或是RAID磁盘系统。在该机器内,作为具有附加外部存储器的ASIC的专用I/O处理机,终止该千兆位以太网/Infiniband连接。任何I/O节点都能够以千兆位全速读或写该RAID盘。在所述的该示例实施例中,该系统的64k个节点被配置成具有每每秒1太位以上的至盘或者主机的峰值合计I/O带宽。
优选地,该类二叉树的组合树59可以遍布整个超级计算机机器,允许数据被以低等待时间从任一节点12发送到所有其它节点(广播),或节点12的子集。应当理解该树可以具有3个以上的端口(3端口意指二进制(2入1出))。就象在该环内,更高程度的树,即,4-,5-或6-D,允许以更多的芯片到芯片的连接以及高得多的布线成本为代价而得到的更短和更低的等待时间通路。较低的维数给出了较长的等待时间以及更少的芯片到芯片的通信。消息传递在该全局组合树59上得到支持,并受每个ASIC内的所述处理机中的任意一个控制,允许独立于计算节点进行像全部到全部通信这样的密集操作。在发送和接收方向上,该树的每个分支都具有1.4GB/s,或是每个处理机周期2字节的一个优选目标带宽。
建造到树59内的硬件功能为整数加法,减法,最大值,最小值,逐位与,或,异或,以及广播。以最低的等待时间的可能方式来实现这些功能。例如,加法功能导致字的最低字节在该全局网络上被首先发送。利用把结果移出到该树的下一级而把这一低字节立即加到来自其它源的其它字节上(在硬件内)。照此方式,64位的字在高位字节被移出之前就已经被进展到该树的几个层。这就导致了在整个机器上进行很低的等待时间的加法的可能性。该低等待时间加法对于要求全局内积的迭代稀疏线性方程求解技术是关键的。
同样的树可被利用来进行数据的全局广播而不是将其传送到该环内的别处。对于来自一到全体的通信来说,从软件的角度来看,这在最近的邻近3D链路网络是极大的改进。当存在需要与该3D链路网络上的通信并发的一到全体的传送时,该广播功能也是很有用的。也可以在该3D链路网络上处理广播。
最后,通过两次利用该二叉树而可以在几个毫秒内执行整个机器上的全局浮点求和。第一次,求出所有阶码的最大值,第二次,采用全局操作把所有被移位的整数相加。关于在该环上的算术功能的实现进一步细节可以在这里所并入的,共同拥有的,序号为No.____(YOR920020031US1,YOR920020032US1(15258)),题为“ArithemeticFunctions in Torus and Tree Networks”的未决美国专利申请中找到。关于全局组合树网络的操作的进一步细节,特别是有关支持用于输入/输出,程序装载,系统管理,并行作业监视以及调试的可编程的点对点或子树消息传送的进一步细节能够在这里所并入的,共同拥有的,序号为No.____(YOR8-2001-10051,YOR920020028US1(15271)),题为“A Global Tree Network for Computing Structures”的未决美国专利申请中找到。
全局组合树与障碍网络图6说明根据本发明原理的全局组合树与障碍网络60。该全局中断与障碍网络60(图6)的功能性密切关系到全局组合树网络59(图5)的功能性并可以用作与其并行的“边带”网络。例如全局“或”功能为中断,全局“与”为“全体等待”。这些功能是被通过生成及传送包含如下的全局异步信号而在全局中断与障碍网络60内加以利用的(1)在逻辑划分(例如,子树网络)内的每个节点都能够设置及检测的信号;(2)执行所有输入信号的全局“与”或“或”的硬件逻辑功能;以及(3)收集并把结果分布给每个节点的全局网络。几种不同的信号能够共存于一大的系统中并且可以以许多方式来实现这一想法。优选地,以并行于组合树50(图5)的方式运行一位宽差分对以方便低等待时间全局中断与障碍。
往回参见图6,全局中断与障碍网络60的每个根节点65都沿着该全局组合树的路径被连接到该计算结构的预定数目的计算节点12,并与之联合操作以便启动在计算结构例如大规模并行超级计算机内的全局异步操作,这对于特定并行算法是需要的。优选地,该类二叉树的组合树与障碍及中断网络可以遍布整个超级计算机,允许用低等待时间使数据被从任一节点12发送到所有其它节点(广播),或节点12的子集。应该理解,为了用更低的等待时间得到更多的互连,其它树的实施例,例如三叉树、四叉树等等也可以权衡地被实现。。
图20描绘了被用于在全局中断与障碍网络60内实现的异步全局信号生成的逻辑。具体地,由图20看来,全局中断与障碍网络60在当被实现为对于图5的全局组合树网络的边带网络时,包括一互连路由器设备网络,每个节点一个。每个路由器设备包括大量的端口,这些端口或者被连接到另一个路由器,或者在不连接时被禁止。然而,出于论述的目的,如图20所示,该路由器具有提供数据路径的四个端口101-104,它们允许构建一棵3叉树。这四个端口中仅仅有一个被指定为至亲代节点的连接,例如端口121,其余端口中的最多3个端口能够被连接到子代节点。在该树底部的叶子节点将只有一个端口被连接到它的启用的亲代节点,而该树的根没有任何启用的亲代,但是至少有一个启用的子代。
图20是在一个路由器设备中所实现的异步逻辑125的示意图,该路由器设备被包括在图6的全局信号树和障碍网络的每个ASIC节点12中。在该全局信号异步网络中,对于每个边带信号,存在4个逻辑双向端口,一个到上部树端口(图20的121),3个到下部树端口(图20的122、123以及124)。这4个逻辑双向端口被映射到4个物理双向端口上。通过软件配置,这些物理端口中的任何一个都可以被映射为上部树逻辑端口。这就允许在板上灵活地进行布局,在该板上将大量的这种节点放置在一起。除了上部树和下部树端口之外,还有从每个节点的ASIC处理机核心所生成的附加输入信号125,以及用于输入到该处理机的中断单元的结果信号126。在上部树的路径130上,来自下部树的端口122、123、124的所有输入加上来自中央处理机(CPU)的输入135,在被送出到上部树路径之前,被输入到逻辑门127。这一逻辑门127在被实现来执行全局障碍操作(输入从逻辑‘0’转变为逻辑‘1’,0->‘1’)时将执行逻辑”与”功能,或者可以在被实现来执行全局中断操作(输入从逻辑‘1’转变为逻辑‘0’,‘1’->‘0’)时作为或功能网络来加以实现。在下部树路径140上,来自上部树的输入信号由缓冲器设备128加以缓冲,然后被广播到所有的下部树端口122、123和124以及作为信号136被广播到该处理机。在该树的最顶部,用于上部树端口(图20的121)的这两个信号或者在顶部节点或者在链路芯片设备允许的环和树形子网划分中通过初始软件配置被简单地连接在一起。关于全局组合树网络的操作,特别是关于功能性支持生成与全局障碍与中断处理的进一步细节能够在这里所并入的,共同拥有的,序号为No.____(YOR920020029US1(15272))题为“Global Interrupt and Barrier Networks”的未决美国专利申请中找到。
三维环形如根据图1所描述的,该物理机器体系结构与n维环形10有关,在该示例实施例内,该n维环形10为边缘被“环绕”的简单的三维最邻近互连。所有邻站为相等间隔,除了诸如存在于ASIC的不同机架间的架间时间外,使得代码容易写和优化。在一示例实施例内,最近邻站的链路可以是处理机速度(例如,在各个方向上为2.8Gb/s)的四倍(4×)。因此每个节点都支持具有4.2GB/s合计带宽的6个独立的双向最近邻站链路。如将进一步详细描述的,该系统电路卡被连线成2×2×2的近立方体,同时中平面,每机架两个,被连线成8×8×8的近立方体。整个64k机器为一64×32×32的环形,尽管其它划分也是可能的。
消息传递环形图1的环形网络10被用于通用的,点对点消息传递以及对于一选定节点“类别”的组播操作。该拓扑为用嵌入在该ASIC之内的路由器之间的双向,点对点,串行链路构成的三维环形。因此,每个ASIC具有六个最近邻站连接,它们中的一些可以穿过相对长的电缆。该环形网络提供自适应的以及确定性的最短路径路由这二者,并且是无死锁的。通过使用如这里所述的以及在关于这里并入作为参考的计算机网络1979年第3卷第267-286页上由P.Kermani和L.Kleinrock所著的题为“Virtual Cut-ThroughA New Computer CommunicationSwitching Technique”中所述的虚拟直通(VCT)路由来优化吞吐量以及等待时间。可以由多个包组成消息,这些包是路由的原子单元。因此,来自同一消息的自适应路由包可以无次序地到达。包在大小上是可变的,从32字节到256字节变动,粒度为32字节(即,每包1到8个32字节块)。
虚拟通道(VC)被用来提供无死锁自适应路由以及增加吞吐量,并且该超级计算机内的环形网络在结构上可以具有四个或更多个VC,由此两个VC使用自适应路由,而两个使用确定性路由。确定性VC中的一个被用作为用于该自适应子网络的“逃脱通道”以便保证无死锁,而另一个专供高优先级包之用。由于希望大多数通信量将被自适应地路由,因此提供了两个自适应VC以便降低线路前端的阻塞,并允许在路由器内使用简单的FIFO缓冲器。
通过使用记号来提供路由器之间的流量控制,这是由于通过电缆的等待时间允许多个包同时处于运行中。存在足够的VCT缓冲器空间以在缺乏争用时保持完全的链路带宽。
该网络将可靠地传递所注入的每个包的一个单独的拷贝。路由器通过保存每个包的好的拷贝直到下游路由器确认成功接收来保证可靠转发。使用链路级奇偶校验或CRC(或是二者),路由器可以检测传输中被破坏的包。当这一情况发生时,把一“错误”指示符加到包上,表明它应被接收机丢弃。因此,只有每个包的一单独的,好的拷贝将离开该网络。
由此,可以使用类似于在关于这里所并入作为参考的1994年8月的Proceedings of HOT Interconnects II的第122-133页上由William J.Dally,Larry R.Dennison,David Harris,Kinhong Kan,以及Thucydides Xanthoppulos所著的题为“Architecture andImplementation of the Reliable Router”中所述可靠路由器方案的惟一记号协议的方案,它在任何时间都保存该网络内每个包的至少两个拷贝。不过,根据一示例实施例,本发明在当一个包在链路上有危险时仅保存一个备份拷贝,该链路是几乎所有包破坏发生的地方。在路由器硬件破坏包的极少事件中,消息级上的错误检测可以向发送机提交重发请求。
图7说明了包含链路输入电路72和链路输出电路74的一单独的环形路由器70的基本体系结构。本地输入包括7个(7)网络注入队列73,其中的6个被用于指定用于任何方向上的普通包,而第7个被用于指定用于任何方向上的高优先级包。本地输出包括12个(12)接收队列76,6个队列用于来自各个方向的普通包,6个队列用于来自各个方向的高优先级包。
每个链路输入72包括至少四个VCT队列(一个用于每个虚拟通道),以及至纵横开关78的两个输入通路以减少线路前端的阻塞。存在确定VCT FIFO中的哪一个,或者可能是一到达包,开始使用该纵横输入的一有关的输入仲裁器。每个链路输出74包括一用于可靠性的重发FIFO,以及把来自输入或注入队列的包排定到相关链路上的一输出仲裁器。应当理解是在每个链路端口上提供输入与输出电路之间的通信以便协调流量控制记号的传输。关于本发明超级计算机内的VCT路由的实现的进一步细节可以在这里所并入的,共同拥有的,序号为No.____(YOR920020030US1(15273))的未决美国专利申请中找到。
路由器输入图8(a)是图7的链路输入电路72的一示范实施例的详细框图。每个输入电路72的基本责任是接受输入包,检验它们的完整性,如果需要缓冲它们,以及最终把它们转发到输出链路或是一CPU接收队列。如图8(a)中所示的,存在四个虚拟通道(VC)FIFO 82,对应于两个自适应VC 82a,b,一个确定性VC 82以及一个高优先级,确定性VC82d。所实现的VC FIFO的实际数目主要由路由算法来确定。
如所提到的,通过使用记号来管理流量控制,其中的每一个与VCFIFO缓冲空间的32字节相关联。因此,一个单独的包可以用掉多个记号。用于每个VC FIFO的记号由下游路由器到上游路由器批量管理和准许。上游路由器将从不发送包除非它具有足够数目的记号来覆盖整个包大小。换言之,包从不被发送,除非如果需要的话,在下游路由器上存在足够的缓冲空间来存储它。这是对于保证无死锁一个重要的属性。
由于一个包不能被发送,除非存在足够的空间来向下缓冲它,因此VC FIFO的大小由链路带宽以及相邻路由器之间的等待时间来规定。它们的大小允许在没有争用的条件下完全利用链路带宽。在最坏的情形中,当该机器被划分时,两个相邻路由器能够被5段电缆的跳隔开,并且每个电缆的跳具有大约30ns的等待时间。如将描述的,相邻电缆的跳必须穿过一个链路芯片,它被期望具有大约10ns的等待时间。因此,相邻路由器之间的最坏情形的链路等待时间为200ns左右。
下面的情况能够被用来计算VC FIFO的大小上游路由器发送一256字节的包。下游路由器全部接收该包并检验其完整性。由于该包已被转发并且没有被存储,因此下游路由器意欲立即返回8个记号。然而,上游链路被已经刚开始传输的一个265字节的包阻塞。一旦该上游链路空闲,则该记号就被返回。VC FIFO必须足够大到存储在该情况的等待时间期间能够被发送的所有数据。假设一2.8G比特/秒的链路带宽,则按如下进行计算事件时间说明------------------------------------------------
开始发送256字节 0包的报头到达下游200包尾到达下 928(2048比特/2.8G比特/秒=728ns)包被处理938256字节的“阻塞”包被完成 1666记号到达上游路由器 1866记号被处理 1876(1876ns)×(2.8比特/ns)/(8比特/字节)=657字节因此,大约657个字节的VC FIFO大小是足够的。不过,较大的FIFO允许某些松弛以使记号能够被批量返回,并允许容忍某些数量的网络拥塞。假设ASIC技术用在本发明中,那么很容易可以实现2K字节或是更大的VC FIFO大小。输入电路具有至全局纵横的两个连接(通路)83以便降低线路前端的阻塞。因此,输入电路72包括允许两个VCFIFO,或是一个VC FIFO以及一个到达包,去到输出链路的一个5×2纵横87。本地输入电路72包含用于六个输入方向中的每一个的两个专用接收FIFO一个用于该2处理机中的每一个,加上两个用于高优先级包的接收FIFO(一个用于每个处理机)。当把一个处理机专用于通信时,它能够存取两组FIFO。因此,在路由器上终止的包能够被直接转发到它们的相关联的接收FIFO而无需通过该全局纵横。不过,普通优先级包可以在任一VC上被接收,因此通过输入纵横而把它们转发到接收FIFO。
当包到达时,路由选择功能86被用来确定该包能够使用的潜在输出VC组。一般地,该组将包括在有益的(即,最小的)方向上的自适应合确定性VC二者。如果该到达包存储于一VC FIFO内,那么该潜在路由将随同它一起被存储。关于大规模并行超级计算机内的包的路由的进一步细节可以在这里所并入的,共同拥有的,序号为No.____(YOR920020030US1(15273))的未决美国专利申请中找到。
每当一全局纵横连接空闲(或不久将变为空闲)时,输入仲裁器88选择等待包之一或是到达包来为输出进行仲裁。该选定包将每次为它的潜在输出中的一个进行仲裁并企图进行某个数目次。如果它在有限数目的企图内没有获得一输出,那么该输入仲裁器根据其自己的优先级规则来选择相同的或是不同的包以争取它的输出之一。因此,在每个仲裁周期上,每个输入电路将只请求一个输出VC直到成功。高优先级包由输入仲裁器88自然赋予优先。普通优先级包是根据给予最满的FIFO内的包的优先的优先级规则而被服务的,但是通过以随机,或是循环次序周期性地服务包而防止了得不到服务。
接收包流水线81在深度上受限,所以如果一到达包未被选择来仲裁或未以及时方式获得输出VC,那么它就被路由到适当的VC FIFO。当该包到达那个FIFO的头部时,它能够再次为输出而得到仲裁。如果该FIFO为空,那么该包能够再次几乎立即地开始进行仲裁。因此,对于包来说有可能基本上“流过”该FIFO,在它进入的同时就离开了它,这是一项重要的优化。包的报头上的隔开的CRC被用来确保只有该报头被正确地接收,该包才会赢得仲裁。
为了改进成功率,输入仲裁器从输出VC接收表明哪些链路忙,哪些VC不能接受附加包以及VC内可用的缓冲空间的等级的状态指示符。仅当该物理链路是可用的并且该VC能够接受包时,输出VC才被仲裁。自适应包具有一优选方向和VC,该VC是具有在链路空闲方向上的最有效缓冲空间的VC。仲裁硬件被流水线以使得在一个包的尾部与离开该输入链路的下个包的报头之间不存在间隙。
除了消息通信量外,输入电路72从准许记号或释放为可靠性而被存储的包的拷贝的下游路由器接收流量控制包。由流量控制电路90来检测这些包并导致该下游记号的补充存储于共享同一物理链路的输出的流量控制电路内。相反地,该流量控制电路检测正确到达的包并使该共享同一物理链路的输出的流量控制电路生成记号准许包。
路由器输出图8(b)是说明图7的链路输出电路74的一示范实施例的详细框图。该输出电路74的基本责任是在输出链路上排定包以获得高吞吐量和公平性,为可靠性保持所有被发送的包的拷贝,以及管理链路级流量控制和重传。
由图8(b)看来,输出仲裁器电路98每个仲裁周期从6个输入中的每一个以及7个注入FIFO中的每一个接收多达13个的请求(如根据图8将描述的)。它将仅仅返回1个准许并且之后等待确认。如果该确认到下个仲裁周期还没有到,那么该仲裁器将再次进行仲裁。如果该确认确实到了,那么输出控制将设置该全局纵横以使获胜输入连接到输出上。
物理输出链路既可以被视为包的下游连接,又可以被视为用于与在对应的输入链路上的到达下游的通信量相关联的流量控制的上游连接。流量控制电路92处理这两种责任。它代表朝向下游的分组管理每个VC的记号存储,并代表上游包生成含有记号或所存储的包释放的流量控制包。每当发送一个包时,下游记号就被用掉,并且由共享同一物理链路的输入的流量控制电路92来加以补充。相反地,当被对应输入的流量控制电路请求时,该流量控制电路还负责生成流量控制包。重传FIFO 95是该网络可靠性方案的关键组件。在操作中,通过该物理链路的每个包都被存储,直到从下游路由器返回一确认为止。用肯定确认以非常及时的方式响应是下游路由器的责任。如果该包成功穿越链路,那么返回一肯定确认,使该包被从重传FIFO中删除。如果检测到一传输错误,那么该包的尾部被用一错误标志标记,并且不向上游路由器返回一肯定确认,导致超时及重传。在重传的情况下,被破坏的包将总是处于重传FIFO 95的头部,这是由于确认被按次序返回。此外,当在另一次故障的情形下,包被重传时,它们就被返回到该FIFO的尾部。应当理解,该方案仅仅覆盖路由器之间的传输错误。它并不防止或检测发生在路由器内的破坏。
重传FIFO的大小能够按照非常类似于VC FIFO的计算方式来计算,它建议用657字节数量级的大小。不过,该大小要更加大些以便给予下游路由器额外的时间来报以确认。在输出上使用重传FIFO 95而不是使用另外的VC FIFO空间的好处在于单个的FIFO就能满足所有VC。如果VC FIFO被用来保留被转发的包的拷贝,那么每一个都会不得不用与重传FIFO大小相同的数量被扩展。因此,存储器的节省按照VC数目是线性的。此外,重传被简化,这是由于它被在输出上整个地处理。
本地注入的细节图8(c)是说明图7的局域网注入电路73的一示范实施例的详细框图。局域网注入电路73的基本责任是允许处理机(通常为消息处理机)把包注入到网络内以便传输。如图8(c)所示,在该示例实施例中,有7个(7)注入FIFO 94,6个(6)用于普通优先级包,1个(1)用于高优先级包。所有的FIFO都能够被路由到任一输出VC上,并且它们都能够同时进行仲裁。这一安排使用于最近邻站通信的性能最大化。就是说,该CPU可以基本专注于至单一的方向的6个普通优先级FIFO中的每一个。把高优先级FIFO想象成对于先于大量消息传送的侦察包,以及网络拥塞的软件解决都有用。高优先级包绕过高优先级VC上的普通优先级包,并在高优先级接收FIFO内被接收,如将根据图8(d)所论述的。
本地接收的细节图8(d)是说明图7的局域网接收电路76的一示范实施例的详细框图。该电路的基本责任是缓冲终止于路由器内的包。如图8(d)所示,有12个接收FIFO 95,对于6个方向中的每一个方向都有一个高优先级和一个低优先级。使FIFO专用于每个方向就允许终端包避免全局纵横。该隔开的高优先级FIFO使系统软件从高拥塞的条件中恢复,并降低大的消息侦察包的等待时间。
环形路由算法该环形路由算法试图通过每当可能时就自适应地路由单独的包来使网络吞吐量达到最大。该路由算法可证实地为无死锁,并且只使用最少的路径。通过使用虚拟直通(VCT)路由,它表现为类似普通负载下的虫孔路径选择法,而使包等待时间最小。包在大小上是可变的,允许软件支持等待时间或是带宽。该环形路由算法后的基本思想是把两个虚拟网络嵌入到该物理网络上一个自适应网络和一个确定性网络。该自适应网络不是无死锁的,但是该确定性网络是。由于包总是能够选择确定性网络,因此该确定性网络在自适应网络内用作对于死锁的逃脱路径。关于该通路的进一步细节可以在关于1993年11月的第4卷,第12期IEEE Transactions on Parallel and DistributedSystems上的第1320-1331页由JoséDuato所著的题为“A New Theoryof Deadlock-Free Adaptive Routing in Wormhole Networks”,以及关于1996年8月的In Proceedings of HOT Interconnects IV上由Steven L.Scott和Gregory M.Thorson所著的题为“The Cray T3ENetworkAdaptive Routing in a High Performance 3D Torus”的两篇文章中找到,每篇文章的内容及公开的事物都被并入作为参考,如同这里充分陈述的。这一算法相对来说容易实现,这是由于该网络使用VCT路由。此外,如果在下游路由器上不存在足够的缓冲空间来保持整个包,则包就永不被发送。因此,包占据一条链路的时间总是有限的并且,由此,死锁仅仅因缓冲空间依赖性而发生。确定性网络路由算法被保证没有任何循环的缓冲依赖性,以及自适应网络路由算法包括在每个路由器上切换到确定性网络的可能性。
在一实施例中,该自适应网络利用了两个同等的VC。就是说,使用自适应网络的包在每一跳将可以任意使用任一VC。这两个自适应VC的优点仅在于减少了被缓冲的包之间的线路前端阻塞。因此,两条路径被需要进入到该全局纵横内。
如果按照诸如根据1997年12月的Proceedings of the FourthInternational Conference on High Performance Computing上第322-329页上由C.Carrión,R.Beivide,J.A.Gregorio,以及F.Vallejo所著的题为“A Flow Control Mechanisn to Avoid MessageDeadlock in kary n-cube Networks”一文的方式来使用气泡流量控制,那么对于该确定性网络仅仅需要一个VC,上述文章的内容及公开的事物都被并入作为参考如同这里充分陈述的。该算法确保了在每个网络周期内至少存在一个空闲包缓冲器以使得基于循环缓冲依赖型的死锁是不可能的。存在其它众所周知的使用一个以上VC的确定性的无死锁路由算法。例如,在根据1987年5月的IEEE Transactions onComputers第547-553页上由W.J.Dally和C.Seitz所著的题为“Deadlock-Free Message Routing in MultiprocessorInterconnection Networks”一文中所描述的典型的,规则维数算法,该文的内容及公开的事物都被并入作为参考,该算法仅仅需要两个VC来实现。因此,确定性网络最好使用不多于两个的VC。
优选地,自适应网络和确定性网络二者都使用最小路径路由选择。就是说,包仅仅可以在有益的方向上任意移动,此处有益的方向是指把包移动到较靠近其目的地的方向。此外,该路由算法不能容忍任何节点故障,通过重新划分该机器来处理节点故障,如这里将更详细解释的。
当把包注入到该网络内时,软件规定该包是否能够使用自适应网络。期望大多数的通信量将使用自适应网络。在注入队列前端的包由路由器象对进入的包一样类似地来加以处理。
没有在路由器终止的每个进入的包触发路由选择功能86(见图8(a)),它生成一组可能的输出VC。那一组属于该包直到输出被准许为止。在一轻负载的网络中,期望包将能够进行仲裁并快速赢得一输出,避免在VC FIFO内进行缓冲。无论如何,该包在它到达该VC FIFO的头部时能够进行仲裁。
为了保证免于死锁,要求每个包把符合确定性算法的VC包含到它的潜在输出VC组中。在每一跳,仅仅存在一个这样的VC。另外,被准许使用自适应网络的包将包括在每个潜在方向上的两个自适应VC。因此,当一个(或多个)被死锁的包选择确定性VC时,自适应网络内的死锁将总是被解决。最终,由于确定性网络在有限的时间量内被保证排尽(以及变为有效),所以这总会发生。
被启用用于自适应路由选择的包将总是选择第一个可用VC,不管它是自适应的还是确定性的。因此,该包能够在两个嵌入时网络之间跳转。由于VCT路由选择,这仍然可证明是无死锁的。简言之,从确定性网络的观点看,把从自适应网络到确定性网络的移动视为注入。相反地,从确定性网络的观点看,把从确定性到自适应网络的移动视为接收。因此,组合网络保持无死锁。
环形内的类操作诸如线性解算器以及FFT的一些算法要求将在物理上映射到三维环的一维或二维表面上的一群节点内的信息进行广播。为了有效支持这些组播要求,将利用该环形网络内的第二种路由选择,这里把它称作为“类路由选择”。最好通过使用在每个环形链路的接收端上的少量(例如,4到16)的本地寄存器来实现类路由选择。对于被划分为“类”包的消息,包的路由选择就不由目的地来确定,而是由携带一个每个可能输出的位以及一个表明除了可能继续之外该包是否应当被本地地存储的位的该本地寄存器来确定。该路由选择使有效的组播能够在广范围的几何形状上进行。关于在环中的类网络路由选择操作的进一步细节可以在这里并入的,共同拥有的,序号为No.____(YOR920020027US1,YOR920020044US1(15270))的题为“类连网路由选择”的美国专利申请中找到。
包格式通信子系统的责任是可靠地传递整个消息包括进行分组,重新组装,以及验证。此外,该通信子系统包含用于增强消息传递接口(MPI)的性能的特征。该包是路由选择的原子单元,但常常是一片较大的消息。由于自适应路由选择,包可以无序地到达。因此,每个包必须包括足够的信息以指定它属于哪条消息,以及它在那条消息内属于哪个位置。就网络硬件而言,它的唯一责任是可靠地把每个包从源路由器的注入FIFO传输到目的路由器的接收FIFO。
图9描绘了根据本发明一优选实施例的传送包100的格式。如图9所示,第一字节102包括一类型字段以及一些数量的标志比特。类型字段区分诸如流量控制,应用消息,以及错误恢复,并需要由路由器按不同方式来处理的几个基本包类型。类似地,标志比特进一步区分包并能够直接激活硬件而无需解码。该硬件设计确定把何特征编码到TYPE字段内以及哪一个被用标志来指定。类型比特基本上包括用来选择哪组接收FIFO将保持该包的位。
该传送包的第二字节104包含路由线索比特104以及VC号106。由于串行互连,所以尽可能地使用该线索比特开始输出仲裁是有利的,该线索比特中有用于6个可能输出方向中的每一个的一个比特。一组线索比特表明该包仍需要在对应的方向上前进以到达其目的地。在目的坐标到达后更新该线索比特,并与本地路由器坐标比较。VC字段指定该包依靠4个虚拟通道中的哪一个通道上进入路由器,并依据所使用的输出虚拟通道而在每一跳被更新。第三,第四,以及第五字节110,112以及114分别代表目的节点的绝对坐标,该节点在此处被编号为一3-D网格。每个节点配有其自己的坐标,这样它把这些字段与一选定输出方向一起使用以更新用于下游路由器的线索比特。一旦包到达时,它们也被用来确认包目的地。
传送包在从32到256字节的大小上是可变的,例如,以32字节为增量。大小字段115表明包内32字节的“块”的数目。序列号字段118被用来保持链路级序号以使丢下的包能够被检测到。如果诸如端对端协议的另一种机制提供了必要的检测的话,就不需要该字段。还提供了用于检测包的报头错误的报头CRC字节119。包120的末尾包括错误检测及指示比特,以支持链路级和端对端错误检测以及这里所更详细描述的恢复方案。简要地,端对端错误检测可以由本地注入电路(见图8(c))生成的并由本地接收电路(见图8(d))检验的CRC码来提供。链路级错误检测由每个路由器的输出电路(见图8(b))生成的并由每个路由器的输入电路(见图8(a))检验的奇偶校验位来提供。如果检测到破坏包,那么该链路级奇偶校验码被用一错误指示符改写,以使该包在到达某处时被丢弃。应当理解,错误的检测还导致如这里相对于路由器输出电路所描述的链路级的重送。
存在许多在该所述的网络体系结构内尚未被提出,但是正被考虑的问题。应当理解,在一优选实施例中,实现了一种超时机制以处理丢失包,以及用于检测并避免坏的链路或路由器的相关联的机制。
消息传递全局组合树通过使用类似于环形网络的包结构的一种包结构来执行全局组合树上的消息传递。存在对于树形网络上的少量类广播操作的附加支持。该树形网络是也可被应用于系统中断的一个基于记号的网络。把消息不阻塞块地穿过VC。中断被携带在相同的数据流内,并可以被通过使用一特殊的“中断”带外比特在任何时间包括在包传输期间交织在该数据内。关于全局异步网络内中断及障碍的生成的进一步细节可以在这里并入的,共同拥有的,序号为No.____(YOR8-2001-1009,YOR9-2002-0029(15272))的未决美国专利申请中找到。在该系统内的任一节点上把消息注入到该树形网络内,并且它们爬上行树直到到达树的顶点或是,到达最终目的地,这取决于传送类型。
与该树有关的硬件被包含在计算和I/O节点ASIC内。到计算和I/O处理机的接口为存储器映射的FIFO。每个VC都具有一个保证不阻塞地穿过VC的独立的FIFO。还把该树的算术及广播功能集成到该计算ASIC内。在该本地顶点上,在导致很低的等待时间的硬件内执行广播及算术操作。由于树形结构在物理的512个节点中平面边界上被自然地“缩成颈状(neck-down)”,因此该树的带宽就电缆来说不象最邻近链路那样昂贵。因此,可以提供能够在各个方向上同时支持2B/处理机时钟的高带宽树接口。输入阶段还包含在VC级上被分段的一个FIFO接口。
依据包内的目的地是否与节点ID匹配而将使包简单经由该树发送或是丢下。如根据图1和5所示的,Gb以太网通信量利用该网络来向I/O节点发送文件和主机数据。
系统封装图10是描绘本发明的超规模可伸缩超级计算机的概念性顶视图。在图10所描绘的该示范实施例中,本发明的超级计算机200包括81,920个处理机和总共80个(80)机架202,80个机架中的72个机架被电缆连接成一个单独的73,728个处理机系统(它包括与一65,536系统一起的备用部件的8个机架),而8个(8)机架204被电缆连接成两个分开的4,096个处理机系统。该73,728个处理机系统包括72个电的计算机架,被布置成例如每行8个机架202的9(9)行205。假定某一接线组织,被优化用于该具有备用行的(x-y-z)64×32×32机器。使用基于光谱带双绞线的电缆,例如,像用在企业服务器中的那些,把这些计算机架连接到一起。每对机架202完成Z维中的一个环形。由此,每对机架包含被组织成(x-y-z)8×8×32的2048个计算ASIC。一行或通道包括4(4)个这样的对,被组织成(x-y-z)8×32×32,并完成“y”方向。列完成“x”方向。全部的73,728个处理机机器被物理地用电缆连接成(x-y-z)72×32×32但却被作为64×32×32逻辑地使用。9个通道中的一个可以被留作为备用的,并且不成为64k计算节点系统的一部分。
优选地,每个计算机架由2(2)个“中平面”组成,每一个中平面包括512个计算处理机。中平面被垂直地布置,一个在另一个的上面,并且被从机架的前面和后面存取。每个无源中平面都包括12(12)个接受电缆的链路卡,每个都具有8个处理机ASIC的64个计算卡,2或4个接受千兆位以太网和/或Infiniband连接的I/O卡,1个分布系统时钟的时钟卡,以及用以合并来自各个计算卡的100Mb/s以太网链路的1个快速以太网交换卡。中平面右边和左边缘上的电源连接器分配来自电源的48V DC。
优选地,如将描述的,该超级计算机被用空气冷却。在每个计算机架内热气流是水平的,从左边流到右边。室内空气从左侧进入到机架内并从该机架右上端上的垂直退出强制通风处排出。在该机器运行的同时,布置在模块内的数排冷却风扇能够被单个地存取和维修。关于用于超级计算机系统的冷却模块的进一步细节可以在这里并入的,共同拥有的,序号为No.____(YOR920020045US1(15263))的题为“Smart Fan Module”的未决美国专利申请中找到。
每个计算与I/O卡都含有一个唯一的地址。该18位的地址由底板上的卡位置(9位),以及一个底板(9位)的地址来定义。另外的位被在卡它们自身上进行编码以使得每个处理机都具有一个唯一的地址。该地址被用来,例如,构成该卡的以太网地址,或是为了通过主机诊断码来报告故障。
时钟分布在该优选实施例中,给系统200内的72个机架202提供了公共的,全速时钟。另一方面,可以以两倍(2×)于处理机速度提供时钟以方便四倍(4×)于处理机速度上的串行数据通信。本发明特别地消除了在各个处理机上用PLL再生时钟的要求以便避免长期相位抖动。对于共享时钟的另外的动机是通过把每个处理机的本地时钟保持在公共频率上而消除长的软件上下文切换次数的可能性。还提供了全局广播功能的初始时钟同步。
用于分布该时钟的一个示范装置示于图11内,被覆盖在该大型超级计算机阵列210的空间准确顶视图上。最好使用时钟分离器把靠近被描绘成电缆215的该阵列中心的一个高频源分离成9(9)个输出,并被沿着长度约为4.5米的差分电缆分布到发出电缆220的二级扇出盒218。这些二级盒218,除了电缆输入取代了时钟源之外与第一级完全相同,按顺序地把时钟分布到第三时钟分离器223,该分离器223接着把描绘成电缆224的一个时钟发送到每个中平面。在中平面上,时钟分布卡为该中平面上的所有卡产生时钟。计算与链路卡接着使用同一时钟分离器,为该卡上的所有ASIC产生时钟。该时钟树的深度为6阶。
在该优选实施例中,至ASIC的所有时钟都具有大约相同的延迟并经过相同数目的电缆,连接器,缓冲器,等等。使用基于双极性技术的低压阳极发射器耦合逻辑(LVPECL)时钟芯片,通过时钟缓冲器的延迟几乎独立于电压,这样就几乎消除了由于不同时钟芯片的温度变化而导致的时钟抖动。抖动的主要源被认为是温度差,它被认为是缓慢的并由如这里所述的一个新颖的数据捕获方案来跟踪。另两个独立的4097个节点系统具有它们自己的独立时钟分布。
环形电缆接线如所提到的,该系统的每个计算ASIC都是连接具有6个高速串行链路的一单独的系统图像的所有计算节点的3维环形的一部分。每条链路都是双向的,使用两个差分信号对(例如,每条链路共4(4)条线)并在每个方向上以4倍于处理机频率的位速率运行。用700MHz的示例处理机频率,则最高数据速率为2.8Gb/s/方向,并允许在3个主要方向,X,Y,和Z的每个方向上与相邻点进行达每个ASIC总计为16.8Gb/s(2.1G字节/s)的环形带宽的通信。如表2所示,把计算卡环形连接安排在逻辑的(x-y-z)2×2×2结构内。在每个逻辑维内的连接都经由连接器从中平面进入到卡内,穿过串联的两个计算ASIC并通过同一连接器离开该卡。类似地,中平面的512个计算ASIC以逻辑的8×8×8环形布置连接。在每个逻辑维内的连接都从链路卡上的链路ASIC进入中平面,穿过4个计算卡以及串联的8个计算ASIC并返回到同一链路ASIC。这些链路芯片为离开中平面的信号向串行链路重新提供动力。
表2全局组合树电缆连接如已提到的,每个计算ASIC都是全局组合树的一部分,连接单独的系统图像内的所有计算节点12。每个ASIC 20都具有4个可重新配置的树形链路连接。该树内的每条链路都是双向的,使用8个差分信号对(每条链路总共16条线)并在每个方向上以16倍于处理机频率的位速率,或在每个方向上以两倍于处理机频率的字节速率运行。用一700MHz的处理机频率,则沿着树向上或向下的最高数据速率为11.2Gb/s/方向,或1.4Gb/s/方向。这是任何方向上的环形链路数据速率的4倍。计算卡树形链路连接250被布置为如图12(a)所示。每个卡都具有一条经由连接器225离开卡而至树顶的上行链路252。每个卡还具有两条离开卡而至该树的逻辑底部的下行链路258。每个计算卡上的本地树的头节点121使用其树形链路连接的全部4个,以便向连接器以及在树上逻辑地位于其下的其它卡提供两个低等待时间的下行链路。
图12(b)说明I/O卡树形链路连接。如图12(b)所示,中平面上的树被逻辑地布置以使每个I/O卡260a,260b处于本地树的前端,其中该中平面的处理机中的一半都逻辑地在它之下。该两个I/O 260a,260b卡被接线以使I/O ASIC中的四个能够处于该中平面的树的前端。这四个I/O ASIC中逻辑地处于该树的前端的那个I/O ASIC是软件可配置的。之后这些顶部四个I/O ASIC以类似于计算卡上的顶部计算ASIC从计算卡上发出上行和下行信号的方式来从该中平面上发出上行和下行信号。
机架设计用于本发明超级计算机的封装系统310按照能够被空气冷却的数量而在每个机架312上放置许多处理机。包括ASIC,多个DRAM模块,以及本地DC-DC转换器的无效的计算卡所需的目标功率例如为10W。由于除了计算卡之外,完整的机架还包括鼓风机(air mover),AC-DC电源,链路芯片,以太网开关,I/O卡,时钟,等等,因此这就增加了额外的热负荷。因此,在所述的该示例实施例中的优化设计选择在每个机架312上放置1024个计算节点,每个机架上的预期热负荷总和约为15KW。如将描述的,这1024个计算节点被按照使得电缆以及连接器的数量为最少的方式配置,同时避免每张电路卡放置许多组件,因单个组件的故障会导致非常昂贵的替换。
冷却系统310的机架312通过强制空气对流来进行冷却。图13描绘了机架312内的基本气流。通过安装在该机架相对侧上的风扇阵列315来把空气吸入机架的一侧内。冷空气流过插入到中平面内的处理机卡(计算与I/O卡)。该多个并行气流被机架上的强制通风320收集,为卡提供均匀的和有效的冷却。阵列中的风扇被成组封装。每组风扇都被安装到具有内建冗余的可热交换的模块内。该风扇模块能够被替换而不影响机架的运行。在操作期间,可以监视和控制风扇速度以及空气温度。关于用于超级计算机系统的冷却模块的进一步细节可以在这里并入的,共同拥有的,序号为No.____(YOR8-2001-1058,YOR9-2002-0045(15263))的未决美国专利申请中找到。
电源分配由分布式电源系统来给系统机架供电。优选地,由于DC-DC转换的高效率,因此把一48.0伏分配用作为该电源分配方案,至少对于较小的电源模块。
优选地,该分布式电源系统的中间被从三个AC/DC转换器得到并分配给机架内的中平面。按2+1拓扑来连接转换器以向分布式电源总线提供所需的冗余。该转换器是可热交换的并且在任何时候都能够被替换而不需关闭机架。用远程主机可访问的一个微控制器来监视它们的状态。
该分布式电源的一部分是不变的,另外部分被切换。一条非切换电源总线向风扇模块,时钟,以及链路芯片提供连续电源。如这里将进一步描述的,关于系统划分,即使该机架正被维修,至链路芯片的电源也被维持,以保证至相邻机架的信号能够被传过消息网络。链路芯片需要时钟,以及风扇。切换电源总线控制供给处理机卡的电源。电源的DC/DC转换被安排在处理机卡上进行,这是由于电压控制是精确的,具有用于反馈的高带宽,并且被限于高电流。最好使用两个电源电压,2.5V的用于DRAM系统,以及约为1.2V-1.5V的用于ASIC。通过使用并行的冗余电源来解决可靠性问题。
中平面环形及全局组合树网络的一个可能的物理路由选择示于图14内。从概念上讲,中平面300包括用于64个计算卡302,12个链路(电缆)卡,2个I/O卡,时钟,以太网以及电源单元(用于链路卡)的卡连接。它提供了用于时钟以及环,树,以及以太网网络的高速差分连线。
系统划分本发明的超级计算机可以通过软件控制来被逻辑地重新划分,由此允许大组的机架,被作为一个系统物理地用电缆连接在一起,以便被逻辑划分成多个系统。然后,这些被逻辑分开的系统中的每一个都能够同时运行不同的代码,或者某些被分开的系统能够被维修而其它的仍然计算。因此,逻辑的重新划分方便了代码的开发和系统维护。现在将根据图15描述控制重新划分的该系统链路芯片的操作。
链路芯片如图15所示,该环,全局组合树及全局中断信号网络通过一链路设备400。该链路设备,被称作为链路芯片,起到两个功能。第一个,它重新驱动中平面之间的电缆上的信号,改进在不同中平面上的计算ASIC之间的长的,松散的跟踪-电缆-跟踪连接中间内的高速信号形状和幅度。第二个,该链路芯片重定向在它的不同端口之间信号。该重定向功能是一项使该超级计算系统被划分成多个,逻辑分离的系统的功能。
有规则的重定向链路芯片400执行两种类型的信号重定向,称为规则的以及分离重定向。规则重定向把一个中平面从该大型计算系统的一个逻辑方向上移开。在被表示成图15的模式1和2的模式中示出该规则改向。它包括链路芯片400的端口401,404,405以及406。把端口401和404以特定环逻辑方向x,y或z接到当前中平面与较高或较低次序的中平面之间的正向和负向电缆上。这些电缆连接在图16中被用箭头表示出来。端口405和406连到通过串联的8个计算处理机在该中平面内环绕的一个环形回路。这些中平面环形回路的路由选择在这里相对于图10来描述。当按模式1操作时,链路芯片400把信号从先前的中平面,通过当前的中平面并且路由到下个中平面上。它由此使当前的中平面成为该较大的计算系统的一部分。当按模式2操作时,通过端口404的来自先前的中平面的电缆信号被通过端口406直接传递到下个中平面,把当前的中平面从该较大的计算系统中移开。而且在模式2中,通过端口405和406的在中平面内的当前中平面回路上的信号,建立了一个较小的计算系统。
分离重定向分离重定向允许把大的64×32×32的系统划分成两个相等的32×32×32的半份。如在该链路芯片400内实现的,分离重定向允许非常多的种类的系统划分。不过,由于对于长电缆的成本以及信号完整性的关注,因此最好是分离重定向仅仅被物理地在逻辑X方向上用电缆连接,并且仅仅根据允许把该大的系统划分成相等的两半所需的机架通道数量而进行。在图15的模式3和4中示出该分离重定向。从3到10的8种模式对于实现分离重定向是必须的,不过只有两种模式模式3和4在图15中示出。在分离重定向中,链路芯片400重新定义它所认为的至相邻中平面的正的或负的电缆方向的电缆端口。它或是把从规则端口401到分离端口402或403都重新定义为正向端口,或是把从规则端口404到分离端口402或403都重新定义为负向端口。在图16中用带有箭头的细线示出规则电缆,并且分离电缆被描绘成长的Y电缆,例如如在图16中标记为425b的机架行中所示出的。
划分逻辑重新划分使得对于本发明超级计算系统可以被怎样再分具有选择范围。图16提供了规则的和分离划分的示例说明,并且表示出可以怎样把一个中平面从系统中隔离开以便维修。
分离划分可以导致把大的72×32×32的电缆连接的系统划分成近似相等的两半,一个40×32×32的系统,以及一个32×32×32的系统的两个系统。这可以用两种方式之一来完成,以便确保当一中平面发生故障时,两个32×32×32的系统总是可以被建立,而不管那个中平面物理上位于何处。任一40×32×32的系统是顶部的5个通道,而32×32×32的系统是底部4个通道,或者相反。例如,如果指示为图16中机架410的机架内的一个中平面需要进行维修,那么分离划分可以被用来在顶部4个通道与底部5个通道之间划分系统。在此情形中,含有该(图16的底部5个通道)的机架415构成一个40×32×32的系统以及顶部4个通道的机架420构成一个隔开的32×32×32的系统。这两个系统都可以按这些大小运行,或者能够使用规则划分来进一步细分它们。
规则划分被用来把一个8节点的片从任一逻辑方向上隔离出来。如果机架410内的一个中平面发生故障,那么为了40×32×32较低系统的其余部分,规则划分可以被用来在逻辑x方向上把第二个从底部通道中隔离出来,建立用在通道425a,425b,425c以及425d内所提供的机架所示出的32×32×32的系统(在附带的图例中被表示成#1系统)以及含有通道430内所示出的机架的一个8×32×32的系统。在逻辑y方向上的该8×32×32部分的规则划分把机架410和411机架从通道430内的剩余机架中隔离出来,给出一个8×24×32的部分(在附带的图例中被表示成#2系统)以及一个8×8×32的部分(含有机架410和411)。在逻辑z方向上的该8×8×32的部分的两次规则划分把机架410和机架432a,...,432f隔离出来,结果形成了一个8×8×16的部分(在附带的图例中被表示成#3系统)以及两个8×8×8的部件(在附带的图例中被表示成#4/5系统),其中之一可以被维修同时所有其它的细分仍计算。沿着逻辑y方向的上面4个通道的类似划分结果形成了32×16×32的细分435(在附带的图例中被表示成#6系统),32×8×32的细分440(在附带的图例中被表示成#7系统)以及32×8×32的细分445(被表示成#8系统)。
规则划分可以另外被用来细分在图10的底部示出的,两个小的8×16×32(4096或4个机架)的系统204。由于这两个系统被与大的72×32×32的系统分开地在物理上用电缆连接,因此它们不能与该大系统组合在一起来形成80×32×32的系统,也不能彼此组合在一起。分离划分可以不被另外提供于这两个小的8×16×32的系统。
全局组合树以及全局控制信号被作为该环的信号路由通过相同的链路芯片以及电缆。因此规则以及分离划分将该树分解为与该环确切相同的逻辑细分。于是,在一逻辑细分内,每个中平面上的I/O处理机都被软件重新配置成在该划分内连接该树,如早先相对于图12(a)所解释的。关于本发明的该超级计算机结构的划分的进一步细节可以在这里并入的,共同拥有的,序号为No.____(YOR920020041US1(15274))的题为“Fault Tolerance in a Supercomputer ThroughDynamic Repartitioning”的未决美国专利申请中找到。
信令如这里所述的,该超级计算机包括两重相互独立的的高速通信网络,一个3D的环和一个全局组合树。现在将相对于图17来描述这些网络上的信令的优选电设计以及实现细节。
单向和同时的双向信令优选地,环形网络的带宽是这样以使得能够每个处理机周期在每个方向上传送4(4)位数据。用于达到该高速速率的一种实现是利用两个单比特的单向链路一每个方向一个。由此,每条链路必须以等于4倍于该处理机时钟频率的数据速率运行。优选地,这些连接为串行链路,并且只传送数据(无需单独的时钟)。这些链路的数据捕获以及同步在这里并入的,共同拥有的,序号为No.____(YOR920020033US1,YOR920020034US1(15259))的题为“Data CaptureTechnique for High Speed Signaling”的未决美国专利申请中有更详细的描述。另一种实现使用同时的双向(BiDi)信令,诸如根据1990年10月的Proceedings ICCD Conference第430-433页上由KevinLamb,Larry R.Dennison,以及William J.Dally所著的题为“Simultaneous Bidirectional Signaling for IC Systems”一文,以及1997年8月的Hot Interconnects V Proceedings第149-156页上由Matthew Haycock和Randy Mooney所著的题为“A 2.5Bb/sBidirectional Signaling Technology”一文中所描述的,上述每篇文章的全部内容及公开事物都在此并入作为参考,如同这里所完全陈述的。就是说,每个节点之间的链路同时在两个方向上携带信号。因此,通过使用同时BiDi,在一条链路上的每个方向上的数据速率可以降为两倍于该处理机的时钟频率。被同时BiDi所允许的这一较低的数据速率,以更复杂的驱动器/接收器电路为代价,降低了所需的互连带宽,并允许在数据捕获电路内的更为松懈的定时预算。出于这些原因,同时BiDi还可以更多地扩展。然而,由于“反向信道”串扰引起的附加噪声必定被包含在该噪声和定时预算之内。图17是驱动互连两个节点的电缆455的相对端的一对差分同时双向驱动器/接收器电路450的方框图。
如图17所示,该同时BiDi设计450通过将线路的每个端460a,460b上的被驱动信号的拷贝施加到相同的对应端上的差分接收器470a,470b的一个输入来运行。这就有效地为来自另一端的信号的检测设置了阈值,从而取消了近端驱动器对该接收波形的贡献。关于在本发明超级计算机内的双向链路的实现的进一步细节可以在这里并入的,共同拥有的,序号为No.____.(YOR920020033US1,YOR920020034US1(15259))的未决美国专利申请中找到。
全局树形形网络最好使用与3D环完全相同的电路和互连技术。由此,每条连接的原始数据速率是相同的。不过,该全局树包括在每个方向上的4(4)条单独的数据链路。因此,该全局树能够在每个处理机周期传送16比特。由于在这些互连网络上要求高数据速率,因此差分信令被用于所有连接。如所知的,差分信令提供了各种优点,包括改进的噪声容限,共模抑制,以及较低的电源(同时切换)噪声生成。本发明的封装结构指定了这些高速差分互连基本上为两种类型。最普通的连接为通过印刷电路卡或卡与底板接线的组合节点到节点地进行。
时钟分布把本发明的超级计算机内的串行数据捕获设计成为要求非常低功率。为此,数据被随本地时钟起动,并数据随本地时钟被捕获,这两个本地时钟处于同一频率,但却任意相位的。这就避免了将数据与该起动时钟的副本一起发送的要求,这在实现串行链路的情形中,会增加除了ASIC之外的连线以及驱动电路的数目。
实现这一条件的最直接的方法是按处理机的速度把时钟(全速时钟)分布到系统内的所有处理机。另一方面,一个低速时钟被分布并被转换为在该ASIC中具有的期望的处理机频率,但是所要求的PLL已被证明对数据捕获是不利的。另一个可选方法是按两倍于要求提取该ASIC内的处理机时钟的处理机速度来分配时钟。这可以无需PLL而被实现,并按所希望的允许精确的时钟边沿以便按两倍或四倍于处理机速度的速度把数据从芯片上驱出。
可以把包括所期望的多样性的时钟扇出板时钟分配,和所要求长度的电缆连在一起以达到所期望的深度。例如,用一10个的时钟扇出,5(5)级重新打入将生成100,000个时钟。例如,如这里相对于图11所论述的,为该超级计算机把电子设备分成为卡,板,等等要求6(6)级重新打入。按此方式,实现了具有最大时滞在100ps以下且采用至少700MHz以及希望的1.4Ghz的频率的一个稳定分布时钟。
串行数据捕获作为用于ASIC节点的2.8Gb/s(各个方向上)的串行链路以及至少在每个方向上的1.4Gb/s的数据速率的带宽,该带宽为双向的,如这里所描述的。如这里论述的,按与符合低功率和低代价运行约束的许多方式来处理该双向需求。与该方法有关的一项特定挑战是该低功率约束。这与用于链路传输的相对相位信息的缺乏相耦合消除了标准PLL时钟以及数据恢复设计。利用与数据一起行进的源同步时钟而不用PLL来完成数据传输的任务在本技术领域内是众所周知的。优选地,在本发明中,因为这一时钟由于有效地加倍I/O和信号计数而没有与与数据一起被发送,所以仍然执行相位提取以及数据恢复。存在许多可用于恢复该相位信息的可能方法。
现在将相对于图18(a)和18(b)来描述优选用于这些目的一项数字数据捕获方案。图18(a)和18(b)分别说明用于串行数据的捕获的接收宏块500和发送宏块520,它们实现按2倍-4倍于时钟速度的速率来捕获数据,并可靠地以低功率利用少量单元来把它带入本地时钟域的目标的。如图18(a),(b)所示,内部时钟频率为位时间频率的1/2,即,它是数据速率(DDR)的两倍。该方法在SDR模式下也可以被利用或如果希望的话被扩展到四倍数据速率方案。该方法例如相对于双向信令候选使用700MHz时钟并按1.4Gb/s/对/方向的同时双向通信而同作。
接收宏块500内的等待时间在7与12位时间之间,取决于数据的字节相位,不过,通过跳过字节输出也可以把等待时间降到3至4位时间。当数据内容能够被忽略时,这对于信号的重新打入是合理的方法。
相对于图18(a)所示的数据捕获块,通过沿着一条快速分接延迟线发送位并随本地时钟采样所有抽头来实现捕获数据的方法。把每个抽头与它近邻比较以便查看它是否是相同的。这些比较的聚合形成了一个计时串(clocked string),它与先前的计时串组合以生成能够被用来确定最佳采样点的一个历史。可以通过寻找数据在延迟抽头之间从未改变的那一区域而从该历史串找到该最佳采样点。在每个本地时钟都更新该历史。存在另外的“眼”流水线寄存器,由于允许开发捕获方案,这些寄存器不被频繁地更新,该方案具有一可编程的持续周期以及不受被隔离的位错误的影响。该持续时间可以被设置成任意长但是必须不短于可靠采样数据边沿所需的最大时间。为了调节比本地时钟周期快的位时间,该时钟的两个边缘都被用来捕获DDR数据。该时钟的每个边缘都有它自己的相关联的捕获寄存器和独立逻辑以寻找最佳眼。因此该技术很大程度上不受本地内的非对称性以及发送边时钟空周期的影响。关于用于本发明超级计算机内的高速信令的数据捕获技术的实现的进一步细节可以在这里并入的,共同拥有的,序号为No.____.(YOR920020033US1,YOR920020034US1(15259))的未决美国专利申请中找到。由于该历史寄存器将变化,因此该最佳采样点也移动。这一更新是按短于持续时间的时标执行的。在直方图和采样点确定单元内执行该功能,如在序号为No.____.(YOR920020033US1,YOR920020034US1(15259))的未决美国专利申请中所描述的。
系统软件由于软件是任何计算机内的关键性组成部分并且在具有新体系结构的计算机内特别重要,因此实现了一种软件的健壮的分层系统,该系统在最底层是非常简单和有效的,还足以运行多数的并行应用程序。在一示范实施例内,该系统软件包括7个集成的子系统,它们一起被统称为“操作环境”。这些子系统中的每一个都由分布式组件,以及它们的接口组成,这些接口横跨主复合体,计算节点以及I/O节点。子系统包括1)机器管理,配置与诊断;2)可靠性,可用性,可维修性(RAS);3)划分与作业管理;4)科学/技术计算内核与运行时环境;5)文件系统与I/O;6)应用程序开发与调试工具;以及7)性能跟踪与可视化工具。
主复合体主复合体提供了进到机器内用于应用程序开发与系统管理的接口,并包括含有系统内核操作和提供给应用程序编程员的软件界面的计算节点软件,包括消息传递软件;以及,I/O节点软件,它把应用程序连接到主复合体上。该主复合体可以是与运行软件所要求的一样小或一样大,如现在所描述的。
系统控制台及划分管理系统控制台,与RAS数据库相结合,负责将节点分配到划分。硬件划分策略,如这里所述的,相对于图15和16,采用一个建立独立的及电隔离的划分的空间划分模型。在本发明的系统内,在机器上同时可用的划分数目范围可在1到128之间。最小划分由一8×8×8的环加上8个I/O节点组成,并且划分能够在任一维上按8个节点的倍数来增加。主复合体软件使这些划分能够经由交互界面,或是经由用于无人操作的批管理系统来访问。可被使用的批管理系统包括LoadLevelerTM。
文件系统主复合体的最重要任务之一是服务在该系统上运行的并行应用程序的文件输入/输出的需要。在一实施例中,把硬件和软件设计成使得独立于该机器所提供的计算资源在绝对容量以及合计带宽两方面该文件系统缩放,,高达每秒1太位上的峰值可维持带宽。许多应用程序都具有非常适中的文件I/O需求,而其它的则是不满足的。在确定文件系统大小上的另一个因素是操作环境的期望,该操作环境用于在没有对总体应用程序性能的过多影响的情况下提供对于检查点以及重启能力的支持,其中所述检查点以及重启能力这二者是透明与和应用程序辅助的。
图19说明用于具有故障转移的双尾部SCSI RAID的概念重复结构550。图19的文件系统由热交换SCSI盘盒553a,b,等等构成,每一个都包括在一标准机架安装框内的多个盘驱动器。这些盘盒最好包括一多通道的硬件RAID(廉价磁盘可靠阵列)控制器,冗余电源,以及两个外部SCSI总线连接。该硬件RAID控制器把多个盘驱动器分组成RAID“条组”,并支持从RAID-0(简单无保护条)到RAID-5(带奇偶校验保护的块转动)范围内的几个条组构造。更高级的RAID也被该硬件机构支持,称作“跨越”,其中多个RAID条组跨过较大的盘驱动器阵列而被分在一条。这样的一个例子是RAID-50,其中两个或多个RAID-5条组跨过较大的盘驱动器集群本身被分在一条。为了本发明,RAID-5提供了所需的可靠性。在该配置中,多磁盘RAID-5条组被用每个盒至少一张盘来配置,该盒可用作为一个在线备件。万一活动盘驱动器之一出故障了,那么硬件RAID控制器将透明地把数据从故障驱动器重建到备件上,并且还把该问题通知给系统管理软件,同时闪烁该故障盘驱动器的热交换底板上的发光二极管。
除了盘盒外,文件系统550还采用了机架安装的商品PC。这些PC中的每一个都包含两个通道的SCSI控制器。在一优选配置中,SCSI通道之一被指定至RAID盘盒例如553a的“主要”接口,而另一个被放到至第二个盘盒例如553b的热备用,或“故障转移”模式中,准备假设该文件系统接口会是用于那一RAID盒故障的主要PC。在此结构中,RAID盘盒为“双尾的(Twin-Tailed)”的,意指它们的在每个端上的通到不同主机的内部SCSI总线接口被描绘成服务器555,556等等。关于在本发明中有用的双尾故障转移(failover)系统的进一步细节可以在这里并入的,共同拥有的,序号为No.____.(YOR920020038US1(15276))的题为“Twin-Tailed Fail-Over forFileservers Maintaining Full Performance in the Presence ofFailure”的未决美国专利申请中找到。
存在至服务器PC的两个附加组件。第一个为诸如“基础管理控制器”(BMC)的“远程管理”接口组件,它提供远程配置,引导,电源开/关,以及经由以太网或至每个PC的串行连接来监视PC的能力。第二个组件是千兆位以太网连接。该连通过一多端口千兆位以太网开关提供至I/O节点的接口。
RAS数据库在本发明的超级计算机内,跟踪和分析每个可能的故障条件,是短暂的(软)还是永久的(硬)的能力,对于该端是很重要的,封装计划向系统软件提供了该机器的每个主要组件的完好及状态方面的全部信息。在每种情形下,该信息携带上在该机器内的准确位置,以及何处适当标识了机架,与机架内部在一起的中平面,该中平面上的节点卡,以及该节点卡上的节点。对于整个系统内的每个以太网适配器,由机架,中平面以及节点卡的位置来指派适配器的唯一的“MAC”硬件地址,从而以它的以太网地址编码设备的准确位置。一些传感器和监视器,诸如风扇和电源中的那些,独立于计算和I/O节点操作,同时其它的诸如ECC故障向运行于这些节点上的系统软件提供信息并把它转发给主复合体,其中该节点用于收集该信息。
任何落在标称范围外的条件都具有生成“RAS事件”(RAS对应可靠性,可用性,以及可维修性)的能力。运行于主复合体上的系统软件经由100Mb以太网RAS网络把这些RAS事件聚集在一起,而不管它们是来自以太网连接的微控制器管理的传感器和监视器,还是来自计算节点及I/O节点上的节点内核。把该信息记录到被保持于主复合体上的一多重索引的RAS数据库内。在该数据库内将被跟踪的RAS事件包括1)存储器故障,包括ECC校正单个位错误,以及被用物理地址隔开的不可校正的多位错误;2)网络故障,包括由于不管是在环或全局树高速链路上,还是在100M比特或1G比特以太网上的CRC错误比较引起的包重发;3)标称范围外的电压及功率波动,包括机架电源以及节点卡DC到DC转换器的状态;以及,4)在机架内所检测到的或是由每个单独的节点检测到的温度变化,包括风扇状态及RPM。
RAS数据库按如下被利用首先,它是提供系统管理员,以及划分管理软件并具有机器完好情况的实时图片的一个在线工具;第二,由于RAS事件被针对单个部件按照它们在该机器内的地理位置被隔离开,因此它将被用来使封装,功率以及冷却设计生效,并因此改进该机器的可维修性;以及,第三,通过维护该机器的全部“体检历史”,它支持数据挖掘分析,该数据挖掘分析随着时间将成为对该机器的在线可靠性的预测,允许人们可能在实际的组件故障之前安排和计划系统维护。表面上无害事件的预测性质的例子发生在存储芯片内,此处它已被表示出在内存条内的重复的软件错误或软件加速速率错误是即将发生的硬故障的强烈预示。类似的分析已经被成功地应用于数据电缆和I/O驱动器,并被应用于硬盘驱动器。
低级调试环境在本发明的超级计算机内,每个ASIC都提供了自包含的低级调试客户机,它支持完全IEEE 1149.1 JTAG接口。该低级调试环境被紧密地耦合到该RAS及诊断环境。该环境从主系统(主复合体)为该芯片内的所有建造状态及设备把可视性提供到ASIC内。它还提供了观察每个处理机的能力并允许所有状态都被检查或修改,并支持单步或断点调试。透明地,它允许指令被插入到可以在稍高级上检查或修改状态的指令流内。该调试环境被通过100Mb RAS网络支持,该RAS网络接口到片内的完全IEEE 1149.1 JTAG端口。对JTAG调试端口的访问对于应用程序操作是透明地发生的。在一些情形中,它接口到系统内核。主复合体软件可以基于RiscWatchTM,IMD标准的嵌入式软件开发工具。另一个选择是增强的BlackWidowTM调试环境,该环境现在在高端服务器提供上使用。
高级并行调试环境除了上述的低级调试环境外,该操作环境另外支持并行应用程序的高级调试。提供多处理机应用程序调试接口的一个通用工具是由Etnus,LLC开发的TotalViewTM,它包含两个主要组件第一个组件是图形用户界面(GUI),它作为“调试服务器”运行于主计算机上,该“调试服务器”被用来调试运行于数百个节点上的并行应用程序。它提供了运行于不同节点上的应用程序源代码的独立视图,并提供能够跟踪该并行应用程序内的数据状态的变量窗口。TotalView还支持该并行应用程序内的分布式数据结构的内容的可视化。第二个组件是支持ptrace()界面的“调试客户机”。
应当理解另外的分布式调试环境也是可以实现的,诸如Gnu调试器(gdb),它已经支持非常类似于TotalView的客户机-服务器模型的客户机-服务器模型。
由于并行应用程序内的大多数正确性故障,竞争条件,或寻址故障在程序被扩展到数百节点以上之前被除去很长时间,因此源代码级调试器极适合于寻找这些错误类型。为了数百节点以上的可伸缩性,并行编程中的大部分工作处于性能调整和负荷平衡中,该性能调整和负荷平衡最好被通过应用程序可视化以及诸如UTE甘特图这样的跟踪工具来完成,UTE甘特图是一种用于使单独的UTE间隔文件和合并的UTE间隔文件可视化的工具。
科学与技术的计算内核现在将描述为计算及I/O节点所建议的该科学与技术的计算内核。
在体系结构上,在节点ASIC内,计算处理机和I/O处理机是完全相同的,并且从硬件的观点来看,它们具有对所有片内设备的对称性访问。两个处理机之间的仅有区别是提供唯一的实例号的片内的每个核心的“处理机标识寄存器”(PIR)内的一个位的短接。按照惯例,并为了帮助低级JTAG调试,系统软件例如用等于0的PIR来把核心标记为计算处理机,以及例如用等于1的PIR来把核心标记为I/O处理机。
简言之,计算处理机的工作是在不转移的情况下执行应用程序代码。I/O处理机的工作是从计算处理机上卸载并行操作系统所需的所有活动,包括消息传送和接收的工作的大部分。这种功能性的隔开以及在该两个处理器之间的简单和有效的编程接口,允许每个处理器来执行它的任务而不用在传统操作系统中所固有的开销和异步,包括中断、定时器滴答、环境交换、保护域相交、多数核态调用。然而,这种结构能够维护有特权和受保护的内核环境,该内核环境保持响应并在应用程序错误、崩溃或者死锁以及非致命的RAS事件的也能够继续存在。总而言之,这种结构以比传统方法要细得多得粒度来提供可预测的和可重复的性能,并且该性能导致并行应用程序的增大的可伸缩性。
I/O处理机在核心态将它的多数时间都花费在监视用于进入的包的高速通信链路缓冲器和以太往控制器。它自动地监视用于诸如消息传送或者文件I/O这样的服务请求的应用程序,并且将监视用于RAS事件本身的节点。如果消息接收匹配开销被保持得与在单侧通信的情况下一样简单和有效,则I/O处理机在以完全带宽来服务通信链路的同时,还能够执行所有这些任务,包括由MPI-2所提供的。
总而言之,该组织是“平衡的”,因为它为大多数应用程序提供了计算对通信的最佳比例。然而,一种称为“高度计算约束”的候选方法,在计算和通信没有被均匀地分布但却突发地改变的地方,对于那些应用程序也是可用的。在这一模式下,附加应用程序线程会被建立,该线程在通信会是空闲的时间窗期间利用该I/O处理机的计算的功率。然而,当在计算处理机线程和I/O处理机线程之间的数据的共享不得不显示地由该应用程序来加以管理时,这一操作模式并非不用一些代价的。在大多数情形下,这仅仅会涉及到一个系统调用,该系统调用在写直通或者可能的高速缓存抑制的模式下置于L1高速缓存。此外,任何未预料到的消息都可能生成中断,从而窃回一些预期的收益。万一在该模式中出现RAS事件,那么它也会生成一个中断。
虚拟存储器,高速缓存以及预取管理尽管每个节点将支持一单独的应用程序上下文的事实,但是该内核将充分利用由PC-440处理机按照许多重要方式所提供的虚拟存储管理,保护及翻译措施的优点。首先,该内核通过一应用程序来保护自身以防错误的,或‘粗野的’装载及存储,因此它不可能被破坏。这将保证由内核所提供的高级调试及跟踪措施保持完整,以及保证主复合体即使仅仅经由RAS网也总是能够与该内核交互。第二,通过支持翻译,该内核能够通过映射绕过物理存储器的任何坏页来增加系统的“可用性”而不需重新编译或重新链接该应用程序,或是必须声明节点离线。存储器的该虚拟视图还通过确保静态分配的数据区与函数地址在使用相同的可执行映像的不同节点上是相同的来简化单侧通信以及活动消息编程。第三,如这里将更详细描述的,该内核能够基于应用程序或运行库指令来控制高速缓存以及预取硬件的行为以优化应用程序的性能。第四,通过把地址空间组织成区域,动态分配的数据及堆栈区能够增大或收缩而不需过度复杂的无垃圾回收。这还提供了对于透明检验点支持的优化,这是由于该内核将知道服从应用程序所作修改的区域的数目。
由于PPC-440处理机在翻译后备缓冲器(TLB,或为在该情形下的‘软TLB’)内采用了翻译的软件管理,因此该内核不必导致大量翻译表的存储开销。一个进一步的优化源于PPC-440含有大量的TLB条目(64)的事实,其中每一条目都能够覆盖可变数目的地址空间(例如,从1KB到256MB的范围内)。这意味着,对于所有的但是大多数复杂的应用程序,一旦被建立,这些翻译将在某个时候需要需要被更新或替换就不太可能了。对于这一点的例外是当运行堆大小,应用程序堆栈大小,或高速缓存管理策略需要这样的变化时。
该内核另外使用该虚拟存储系统来控制存储器层次的高速缓存以及预取机制的行为。这对于被在计算处理机与I/O处理机之间明确共享的存储区尤为重要。它还可以被用来优化和微调存储器层次的行为及性能。在PPC-440内,每个TLB条目都包含被用于这一目的的下述配置位。使这些属性在位于存储器总线上的传送属性内是可用的,并因此能够被用来在每TLB条目的基础上配置整个存储器子系统的操作。
U0用户定义的存储器属性0。被440核心忽略。
U1用户定义的存储器属性1。440核心能够被MMUCR[U1TE](U1瞬时启用)位编程以便用该位来选择存储器存取是否应使用I/D高速缓存的‘正常’或‘瞬时’部分。
U2用户定义的存储器属性2。440核心使用MMUCR[U2SWOAE](具有外分配启用的U2存储)位来控制错过数据高速缓存的存储是否在该高速缓存内分配一条线。如果被设置,那么L3也应尊从该策略。
U3用户定义的存储器属性3。被440核心忽略。
这就提供了信息的两个位,U0和U3,被表示在存储器总线上以控制预取策略,或是其它任何感兴趣的。这些位的可能的编码包括0b00禁止对于该页在所有级别上的预取。见下面的‘G’。
0b01明确在L3上的预编程的预取。禁止学习模式。
■0b10启用预取‘学习’模式。
■0b11可用的,可能启用一替换的预取策略。
TLB内的并被表示在该总线上的其它感兴趣的位,,包括■写直通(W)内核将仅仅在被明确共享的数据区上才设置此位,因为它将强加一项性能处罚。
■高速缓存抑制(I)当被设置时,抑制在L1和L2上的高速缓存。L3是一致的,虽然被弱排序。对于I/O空间,以及SRAM也将抑制高速缓存。
存储器一致性要求(M)如果L2上的窥探向存储器等待时间增加了一个周期,那么该内核将仅仅在被明确共享的区域上才设置此位。当M被设置时,L1将被设置写直通。
防卫(G)该位用作为预取及投机禁止,并强制按次序存取。典型地对于I/O空间设置,但是对于某些共享SRAM区域也是需要的。
内核RAS管理内核负责向主机复合体内的RAS数据库服务器报告它所遇到的所有RAS事件。在良性事件的情况下,可以累积错误以便稍候报告。与所发生的事件类型一起,内核还汇集尽可能多的相关信息以帮助隔离或了解错误条件。例如,在存储器错误的情况下,该信息将包含错误发生处的物理以及虚拟地址,以及该地址所引用的段的类型。此外,万一该存储器错误已经发生在非ECC保护的设备或地址上,那么该信息也会被捕获并报告,可能导致应用程序运行的暂停或终止。一般地,将不会丢弃任何状态直到在低级调试与诊断工具被给予机会来检查该节点之后为止。
报告RAS事件的默认方法是通过100Mb以太网向主复合体发送消息。万一该RAS事件表明该以太网本身的问题,那么该消息会被转发到I/O节点以便报告。
应用程序检验点以及重新启动支持该内核,与主复合体所提供的文件系统接口,提供对于应用程序辅助的检验点以及重新启动的支持。另外提供了一种包含将帮助并改进该内核的捕获以及恢复应用程序的全部状态的能力的这一性能的硬件体系结构的透明检验点机制。
许多应用程序都不要求对于检验点的任何特定支持。这样的应用程序能够通过简单的文件I/O调用来管理其分布状态的保存及恢复。其它应用程序不能够容易地达到静止状态,不过全局碍为系统启动的透明检验点提供了良好的机会。这样的检验点能够依据时间,或是来自主复合体的表明检验点应在下个全局障碍是被采取的通知而被启动。
检验点及重新启动支持接口与RAS管理软件的接口。如果可靠性与可用性计划要求诊断或验证软件以有规律的间隔定期运行,那么执行这一维护的一个自然点处于检验点的边缘上。关于在本发明中有用的独特的检验点方法的进一步细节在这里并入的,共同拥有的,序号为Nos.____(YOR920020042US1(15279))的题为“CheckpointingFileSystems”的美国未决专利申请,以及(YOR920020039US1(15277))的题为“Fault Isolation Through No-Overhead Link LevelChecksums”的美国未决专利申请中有所描述。
消息传递支持现在将描述由内核所提供的消息传递软件支持。在最低级上,该内核输出被设计用来有效地支持系统的内部高速网络的系统编程接口(SPI)。对于环形网络以及全局树形网络这二者,SPI将提供对于点对点以及集体的,或基于类的通信的支持。SPI为高级应用程序编程接口(API),诸如MPI,提供了移植基础,并有效地支持MPI-1,MPI-2以及MPI-IO的子集。
单侧消息传递如这里所描述的通过使用一简单有效的消息传递协议,所有链路的全部带宽都被支持,甚至对于短消息。用单侧消息传递,该消息携带数据的目的地的或是在“取”的情况下为源的存储器地址。这就允许硬件把来自许多小的信息包的数据块诸如矩阵置换直接装配到存储器内而不会导致在处理这些信息包时的过多的软件开销。被支持的单侧通信协议的一个例子被包含在MPI-2内。该协议使用“放”和“取”模型来把数据移到或移出预建立的或是‘打开的’通信视窗。该模型对于该系统尤其运行良好,这是由于通信视窗的使用为管理计算与I/O节点之间的存储器相干性提供了机会。由于存储器相干性被在视窗上管理,因此这一开销能够被在许多消息上分期偿还。在本发明的超级计算机内,因为“取”需要一附加的协议消息,所以“放”比“取”更为有效,这样就基本上把把“取”转换为远程节点驱动的“放”。关于在本发明中有用的利用放/取视窗的相干性管理的进一步细节在这里并入的,共同拥有的,序号为No.____(YOR920020035US1(15260))的美国未决专利申请描述。
可以实现的单侧消息传递的一种更有功效的形式类似于“放”,但是增加了要在目标节点上调用的函数地址。消息传递的这一形式,此处消息到达触发操作,被称作“活动的”。当数据到达时必须按照某种方式被转换或计算时,该激活的消息尤为有功效。MPI-1通过允许用户定义在集体通信上操作的归约函数来提供活动消息传递的简单和限定的形式。在本系统内,这对于提供选择哪个处理机,计算或I/O,来执行该函数的能力是通用的。这些函数将在该应用程序上下文内在用户模式下来执行。这是应用程序能够利用I/O处理机的计算能力的另外一种方式。活动消息另外可以被系统操作环境为内核到内核的消息传递而在内部加以使用。当计算节点请求I/O节点为文件I/O请求服务之时,该例子会发生。
集体通信当把集体通信映射到系统网络上时,必须首先确定该特定通信更适合于环形网络,还是更适合于树形网络。要考虑的因素包括该通信组的拓扑,该通信的预期带宽要求,该通信是否可以充分利用该树所支持的“全局函数”,以及此时在网络之一上的活动是否支持使用另一个网络来分配通信量。节点的任意分组可以在任一网络上建立。最简单的情形是当该通信是在所有节点上的真实广播时,这样就会清楚地支持全局树。不过,如果组播到一列节点,则如这里所描述的环上的类路由选择也可被支持。
运行时库优选地,计算节点软件对于应用程序程序员而言就像熟悉的类unix的开发环境一样。为了实现这一点,例如,提供了用于C,C++,以及Fortan95的运行时库的标准集的子集。在可能的程度内,被支持的函数将维持开放标准POSIX依从界面。不过,很清楚,并不是所有的由这些库提供的功能都将被系统应用程序所使用,或者即使在并行计算环境中也是有意义的。
提供了另外的界面,用于把低级系统编程接口(SPI)传递给捕获硬件体系结构的功能性的系统。因而,该SPI起到用于高级应用程序编程接口(API),包括MPI(-1,-2,以及-IO的子集),以及用于C,C++以及Fortan95的运行时间的有效移植基础的作用。SPI还被用来提供应用程序跟踪与概况描述支持,对于调整并行应用程序是需要的。在许多情形中,该支持将接口到诸如统一跟踪环境(UTE)可视化工具这样的主复合体上的环境。
如所提到的,该系统内的每个节点都包括集成到ASIC内的一个以太网端口(或作为替换的,InfinibandTM端口)。该端口可被通过TCP/IP而披露给应用程序。对于I/O节点,可以使以太网端口直接适用于应用程序,或者作为替换,适用于常规运行环境。一般而言,100Mb以太网端口(图2)可以被用作机器管理和错误报告的RAS网络。用于该RAS网络的外部网络体系结构,包括切换与划分,可以另外针对主复合体所要求的通信量的预期流量和类型而被优化。或是通过IP,或是经由把联网细节隐藏到标准MPI调用后面的MPI“交互通信机”来使I/O节点的千兆位以太网可用,同时实现为外部通信提供灵活的高带宽链路的所期望的功能。
标准并行数学库,诸如包括BLAS和BLACS并行数学库的“ScaLAPACK”,得到普及,并且这些库在本发明的超级计算机系统上得到支持。这些库所执行的通信使用了MPI的很小的子集。通过支持这些MPI调用,移植努力集中在数学例程以及调整问题上。单节点数学库,诸如ESSL,或是它的并行版本PESSL也被广为使用,并且这些库都是可用的并可被移植到该系统内。
I/O节点软件内核以及运行时操作环境经由至主复合体的千兆位以太网来除了盘和主机I/O。计算节点上的运行时库通过函数例如通过高速全局树形网络把I/O请求运送到I/O节点来完成文件I/O操作,这样就将请求以及数据经由千兆位以太网传送到主复合体文件系统服务器。由于主复合体采用“故障转移”策略来确保可靠的文件系统I/O,因此I/O节点具有把来自出故障的主服务器的请求重定向到备用服务器,透明地重定向到应用程序的机会。而且,通过在I/O节点上隔离主复合体文件系统的实现细节,就使它容易支持用于文件系统服务器的不同的实现及策略,并允许在该文件系统服务器的可伸缩性方面的灵活性。
由于I/O节点被放置在全局树(图5)上,所有集体I/O操作,诸如在MPI-IO中所定义的那些,特别被该系统支持。集体I/O的一个例子发生在当应用程序内的所有或是许多节点都请求读取一文件的相同部分时。在此情形下,文件读取将只发生一次并且结果会被经由全局树而广播给请求节点。
优选地,I/O节点在主复合体内不执行盘驱动器上的设备级控制。进一步,在主复合体内可以采用端口守护程序,该端口守护程序在功能级上与I/O节点接口,以及在文件系统级上与主机管理的文件系统接口。这就进一步增强了支持该主文件系统的另一可选实现的能力,这是由于主操作系统经由其本身的接口执行低级文件系统。最终,它提供了用于实现文件系统软件的增量的开发路径。
引导现在把引导算法描述为一个四步的过程,从上电开始而结束于在每个节点上运行的内核。1)当向节点供电时,自动发生第一步骤。该步骤中,每个节点都执行用于验证逻辑与存储器阵列的上电自检,然后自动地配置并启用以太网以便从主复合体接受JTAG命令。2)第二步,被主复合体启动并被并行地执行,实现JTAG接口来检查上电自检的结果,以及执行每个节点的进一步诊断和配置。该步骤中,还验证每个机架内的所有传感器和监视器的状态。当引导指令程序以及每个节点的个性化(personalization)信息被经由100Mb以太网JTAG接口装载到每个节点内,并被允许开始执行时,该步骤就完成了。该引导指令程序完全初始化芯片内的计算及I/O处理机,检查嵌入的和DDR存储器,以及测试和配置环形和/或全局树形网络以及100Mb和/或1Gb以太网,并最终用状态消息来联系主机。正是这种情形包括在该步骤期间所需的引导指令程序的装载的大多数JTAG交互被经由以太网广播包来加以处理,这样就显著地降低了主复合体要求的工作负荷,并增加了引导处理的并行性。3)第三步开始于在引导指令程序的软件控制下各个节点都完全可使用,该节点使用它的节点的个性化信息来确定下一步怎样进行。该引导通过联系主复合体内的指定服务器来经由以太网装载全部内核而进行。从概念上讲,该步骤类似于所熟悉的“bootp”网络引导操作,但是被按照与系统机器以及主体系结构相一致来设计。4)当每个计算节点以及I/O节点正运行全部系统节点内核时,第四步开始。此时,I/O节点联系主复合体来装载这里所描述的I/O节点专用软件,,该I/O节点专用软件提供了文件系统接口以及其它I/O服务。该软件对于该内核而言就像专门构造的,有特权的“应用”程序。另一方面,计算节点等待来自主复合体的联系直到该应用程序就要被装载为止。应当理解系统的重新划分不必要求在该划分内的所有节点的全部重引导,但却要求所有节点都具有内部高速链路的完全停顿的使用。在重新划分之后,该内核仍然需要复位所有的路由选择以及类使用的配置。
上电复位状态当上电时,每个节点赶上它的通电的并被配置成接收单播或广播包的以太网端口。把该以太网端口直接接口到通常被用来调试处理机的JTAG扫描字符串。这就启用了被设计用于该系统上的单处理机的非常成熟的调试环境的利用。任何节点都能够被寻址并被主机利用这一很有功效的技术来完全加以调试。该节点仍然处于允许ASIC内的所有扫描寄存器的上载和调试复位中的同时,该接口可以被映射以便操作。
节点将上电并为了最初的系统检验而运行所有可用的LBIST以及所有可用的ABIST。硬件定序器在上电时自动控制该测试,并使从这些诊断获得通过/失败签名处于对于引导代码是可用的寄存器中。一个例子就是440核心内的MISR签名寄存器。被上述LBIST/ABIST覆盖的逻辑数量确定多少附加诊断对于该系统的软件检验是需要的。上电复位状态使硬件被配置成通过100Mb以太网总线来接受JTAG命令,并将保证其它的IO控制器将不与100Mb以太网冲突。另外,在运行LBIST/ABIST后,使用于ASIC的所有时钟都运行。
对于每个节点的唯一可寻址性,对于10/100以太网控制器的以太网MAC地址被通过I/O终端而设置到到ASIC上。这就能够进行节点故障检测,并提供并行节点引导。
可靠性,可用性,以及可维修性(RAS)为了针对最大正常运行时间而优化超级计算机系统,提供了最频繁出故障的单独元件的冗余。这是用于隔离已知的故障区段的重新划分系统的能力之外。系统的可靠性依赖于“硬”和“软”组件的固有故障率或是暂时故障,组件数目以及当故障发生时系统响应这些故障的方式。因此,提供了用于潜在组件故障(ASIC及其组件,DDR,连接器(诸如卡边缘接触以及电缆连接器),电源(DC-DC以及AC-AC),空气鼓动设备等等)的故障保护方法。
故障保护方法节点ASIC把错误检测与纠正电路并入到具有由于软和硬错误而导致的高故障率的组件上。这些组件包括外部DDR存储器,内部EDRAM L3,内部L2,以及设计者控制下的所有SRAM阵列。外部DDR存储器和内部EDRAM还包括用于导向的冗余位。硬件控制的擦洗可以被实现以便以把累积的软错误从外部DDR存储器和内部EDRAM中去除。内部寄存器阵列以及关键数据流总线将具奇偶性以便进行错误检测。
而且,如所提到的,用在该系统内的所有电源都是双倍的,即,实现了N+1的冗余。在服务期间内有两(2)个故障的可能性极其小。此外,本发明内的所有空气鼓动设备都为N+i的冗余。例如,两个风扇用来冷却被覆盖的节点卡,第三个风扇用作冗余。当所有三个风扇都在运行时,降低风扇速度以增加可靠性。当一个风扇出故障时,另两个的速度提升直到出故障的风扇被替换为止。在服务期间内同一风扇单元内的两个风扇出故障的可能性非常小。
总之,存在建造到本发明中所实现的节点ASIC内的广泛的错误检测以及纠正能力。在故障事件中,可以重新划分系统以移开故障,假设这被限制为不多于该机器的1行(9个机架),如这里所论述的。在系统重新划分后,可以从上个检验点重新启动该系统。
环形网络可靠性环形网络可靠地传递注入其内的每个包的单独的拷贝,或者它将表明一个不可恢复的错误条件。因此,发送侧的软件不必保留所注入消息的拷贝,并且接收侧的软件不必保持序号。通过端到端,以及链路级,错误检测的组合而提供了网络可靠性。在大多数情形下,链路级错误检测特征将发现,并且常常从一错误中恢复。端到端错误检测主要被用来发现由路由器自身引起的错误以及被链路级协议遗漏的错误。
链路级错误链路级错误检测方案基于使用附加到每个包上的多个奇偶校验位。由于多位错误可能移连续突发的形式出现,所以按照循环次序把数据位赋予给校验位。因此,每个校验位都覆盖了在非重叠组内的每个第四数据位。用该赋值,检测多位错误的可能性要比顺序复制方案的可能性大。
由于虚拟直通路由选择,所有被检测为破坏的包会已经通过多个下游路由器被转发是可能的。因此,它不可能被仅仅被丢下或是被重发。取而代之,检测错误的路由器修改该包的用于指示该错误条件的最后一个字节,使该包被最终接收它的那个路由器丢下。在破坏包被整个地存储于虚拟直通FIFO内的情形下,有可能立即丢下它。
除了标记破坏包外,检测错误的路由器另外还使用这里相对于图7和8(a)所描述的机制引起链路级的重发。该恢复机制确保了每个包仅有一个“好”拷贝将到达预计的接收机。被标记为破坏的包被路由器的本地接收电路自动丢弃,并不再被插到接收FIFO内。
链路级错误的另一个可能的来源是“丢失”位,它会导致一个被错误路由的,畸形的包。网络将简单地报告这一条件并允许系统软件恢复。
端到端错误端到端错误检测机制被用来保证包被正确地处理并不被路由器破坏。链路级错误检测机制不能够发现这样的错误,因为奇偶校验位在每个路由器被去除并被重新生成以便覆盖修改了的报头位。用于端到端错误检测的机制最好是关于诸如包的类型,目的地,以及有效负载这样的在运送中不被修改的包字段的循环冗余校验(CRC)。端到端CRC错误的检测由硬件加以报告,并导致一个校验点回退。
可用性本发明系统内的可用性被根据单个机架的粒度来定义和管理。就是说,包括1024个节点的“机架”被根据那个基础来确定是好或坏并被管理。在初始程序装载时,由诊断来处理该确定。在运行时,经由错误检测及报告方案来处理它。建造了一个配置矩阵来标识所有机架的状态,因为有故障的机架不适用于包含在功能划分中。
应用存在许多得益于本发明可伸缩超级计算机的独特特性的应用程序,因为针对先前困难的算法,可以产生许多新的协作。从这些应用程序来看,已被包含在该系统内的体系结构的改进最显著地包括双倍于4比特/pclk/方向的环形链路带宽;全局树形网络;增至256MB/节点的基准存储器大小;以及,用于辅助消息传递而加到各个节点上的第二个处理机核心。
科学应用概要从头计算(基于基本原理)量子分子动力学(MD)被惟一地定位在模拟在微观级别上的材料行为上,并且已经发现在几个科学领域内的应用。已经把它称作用于超级计算机的“杀手应用程序(the KillerApp)”。JEEP代码是从从头计算分子动力学的技术状态的实现。不像在经典MD代码中所作的,JEEP并不做出关于在一材料内的电子结构以及原子间交互作用的行为的经验假设。电子可以自由形成或打破键,并且原子可以仅仅根据量子力学原理以及运动方程而自由移动和构成分子。
类似JEEP的第一原理MD代码在感兴趣的广泛的各种学科领域都有应用。一个例子就是在温度或压力的极端条件下对材料的认识。另一个例子涉及形成对复合生物系统和材料属性的更好的认识。希望以106-107体积元素内的103-104个原子,在每个时间步骤与当时的计算相比在计算上有系数或大约102-104的增加来模拟问题。另外,要求103-104的较长的模拟时间。
材料应用诸如JEEP这样的代码提供了对暖物质物理特性,凝聚态物质间的间隔物理特性(例如,固体密度上的冷材料)以及一直难于从理论及实验这两个角度来接近的等离子体物理特性(例如,电离材料)的了解。JEEP已经被用来建立碳化硅(一种非晶体半导体)的微观块在被拉伸到断裂点时的响应的模型。该模拟是第一次对乱序合金从第一原理来算出硬度的。这项研究允许把故障的开始与材料的化学性质联系起来,这在过去对于从理论上和从实验上进行刻画一直是个难题。
振动压缩的液体氘。计算异常条件(压力和温度)下的氢EOS。这些探查固体与等离子体一非凝聚态物质冷凝态物质—落于1/2eV与10eV之间的暖物质从科学的观点来讲非常困难。状态方程(EOS)和不透明数据在该状况下是最弱的。
仅在这类超级计算机上可获得的对于JEEP在材料科学中的其它应用包括压力下的水(与实验程序有关);在高压时的二氧化碳的晶体结构“特硬”聚合二氧化碳。
生物学应用JEEP目前检查DNA主干的小的分离片段在水中会发生什么。这些动工的模拟是重要的,因为它们确实是真实生物环境(水溶液)中的第一个DNA片段。例如,模拟调查来自该片段的二甲基磷酸酯分子如何与水分子相互作用。这些从头计算模拟被与广泛使用的相互作用的经验模型进行比较。希望这些模拟将使在标准DNA相互作用模型中作出的假设无效或是有效。不过,目前的模拟被限于具有少数碱基对和最少量的水分子的小的基本构架片段。另外,该模拟被限于微微秒时标。生物学上感兴趣的时标是数百微秒。用本发明的系统,生物学上有意义的DNA片段能够在生物学相关时标上在完全水的溶液中被建立模型。用本发明的能力,能够通过模拟来获得对生物准确情况下的DNA的重要了解。这预示了一个对于生物化学的潜在重大进展。
在JEEP的另一个生物学应用中,提取单个的DNA碱基对来查看互补碱基如何相互作用。这项研究的目标是了解什么引起DNA结合以及哪种分子相互作用对于结合是关键的。希望是发现结合机制如何影响DNA的复制。从损坏和突变来看,这将支持对DNA复制的精确的了解。用本发明的非凡的计算能力,这些详细检查可以数次被实现。这将导致在生物学重要氛围内的用于DNA结合及相互作用的较好模型。
JEEP算法JEEP目前是用MPI和OpenMP以C++编写的有所有权的算法。密度函数理论(DFT)被用来描述环绕更慢运动的原子核的电子运动(电子-电子以及电子-原子核),以及用来计算原子核在空间的运动的经典动力学。该模拟的最重要的和费时的部分是在每个分子动力学步骤上的电子结构的计算。这包括Kohn-Sham方程的求解,该方程对于每个电子态是耦合的的非线性积分微分的方程。
用在JEEP的算法是基于该解的傅立叶展开式。该算法的关键部分是三维复傅立叶变换,几个数以千计的长的(106-107)的复数向量的规格化正交。这两种运算的有效实现可能保证了整个算法的有效执行。
本发明超级计算机有效实现了该应用所需的FFT,线性等式,以及矩阵转置运算。关于三维(快速傅立叶变换)FFT的执行的进一步细节在这里并入的,共同拥有的,序号为No.____(YOR920020043US1(15262))的题为“Efficient Implementation of MultidimensionalFast Fourier Transform on a Distributed-Memory ParallelMulti-Node Computer”的未决美国专利申请中有所描述。
科学应用概要在Fermion Monte Carlo的最近研究提供了对于解决量子多体问题,包括出现在电子及原子结构,凝聚态物质,核物理,以及生物学中的问题的能力的重要进展。用于多体系统Schrdinger方程的数值解法已经是六十年来的研究项目了,但是至今,还没有出现不涉及不受控制的近似法的能够准确解法的方法。实际上那一问题是如此难以克服以致主要研究界(以及最近化学领域的诺贝尔奖)的一个项目就是密度函数理论,其前提是多体等式的解法基本上是不可能的。主要的困难在于维数一个描述一20电子的系统(诸如两个水分子)的状态的等式是60维数的部分微分方程。没有把它精确地映射到三维上的一种公知的方法,而传统的用于部分微分方程的数值解法在该高维空间上失败。
一般众所周知的是Monte Carlo方法提供了用于高维内数学问题的数值处理的实用方法。常规地把它们用于辐射传送(用于高达7维)以及用于统计物理学(高达数百维)。用于求解某些Schrdinger方程的方法(对于其解法在任何地方都为肯定的最低状态)也已经数十年来都可用。但是对于多数物理兴趣问题的明确应用已经受到这一问题—本领域内公知的—被称作“Fermion符号问题”的阻碍。对于该简要报告来说,其完整说明过于技术性,但本质上它来自这样的事实多电子系统必须满足波函数在同一粒子的交换内必须是反对称的Pauli原理。标准Monte Carlo方法建立在这样的事实上虚时内的Schrdinger方程为扩散方程,其是本地的。Pauli原理强加了一个非本地边界方程,该方程对于Monte Carlo方法是一个极度的障碍。
能够克服这一严重困难的一类新的方法已经被建议作为被在本发明系统内执行的应用。该新方法的中心要素是使用对于携带代数符号的对象的校正随机游动(walk)。最新的发展已经论证了算法改变能够按照许多数量级加速程序的执行。
这些量子Monte Carlo计算将产生(对于第一次)对于多费米子Schrdinger方程的准确数值解答而不需任何物理,数学,或数值近似。它们将适用于科学界关注的各种物理系统原子和分子结构,凝聚态物质(诸如高压下的氢)以及原子核结构。
科学应用概要可以预见位错模拟将能够致力于“重大挑战”问题,诸如在张力大于10%上的工作硬化,高达100%的位错模仿以及塑料不稳定性与流动定位的,多微晶内的模拟位错,建立易碎可延展转变的模型。
在通过分析用于位错动力学的算法致力于这些问题方面该发明体系结构非常有用。位错动力学致力于中等规模范围,原子论的与宏观的范围之间的中间体内的问题。大部分真实材料的特性都由这一规模上的位错特性来确定。
虽然已经根据其中说明性的和已履行的实施例来详细表示和描述了本发明,但是本领域内的技术人员应当理解上述以及其它形式和细节上的变化在这里都是可以作出的而不脱离本发明的精神和范围,本发明将仅由附带的权利要求书的范围来限制。
权利要求
1.一种大规模并行计算结构,包括由多个独立的网络互连的多个处理节点,每个节点都包括一个或多个处理元件,该处理元件用于执行在执行并行算法操作时所要求的计算或通信活动;以及,所述多个独立的网络包括这样的网络,该网络用于启用在所述节点或者所述节点的独立划分的子集之间的点对点的全局树通信和全局障碍与通知操作,其中为了优化算法处理性能,互连所述节点的所述多个独立网络的组合是根据算法的带宽和等待时间需求而被协作地或是独立地利用的。
2.如权利要求1所述的大规模并行计算结构,其中所述多个独立网络的第一个网络包括一个n维环形网络,该n维环形网络包括采用为提供在所述节点或者所述节点的独立划分的子集之间的高速、低等待时间的点对点和多播包通信而被优化的方式来互连所述节点的通信链路。
3.如权利要求2所述的大规模并行计算结构,其中所述多个独立网络被协作地加以利用,以便根据正被执行的算法的带宽和等待时间的需求而启用在单独的节点和节点的划分子集之间的同时计算和消息通信活动。
4.如权利要求2所述的大规模并行计算结构,其中所述多个独立网络被协作地利用,以便根据并行算法的需要而启用在所述多个节点的一个或多个划分子集之间的同时的独立的并行处理。
5.如权利要求3所述的大规模并行计算结构,其中所述多个独立网络被协作地利用,以便根据算法的需要而启用单独的节点之间的计算和消息通信活动之间的动态切换。
6.如权利要求2所述的大规模并行计算结构,其中所述第一独立网络包括这样的装置,该装置启用沿着从源节点到目标节点的互连链路进行包的虚拟直通(VCT)路由,以优化吞吐量和等待时间,所述VCT装置为方便沿着网络链路进行路由的包而提供单独的缓冲虚拟信道。
7.如权利要求6所述的大规模并行计算结构,其中所述用于启用消息包的虚拟直通的装置使用自适应路由算法以避免网络争用。
8.如权利要求2所述的大规模并行计算结构,其中所述第一独立网络包括这样的装置,该装置用于为并行计算启用确定性最短路径路由。
9.如权利要求2所述的大规模并行计算结构,其中所述第一独立网络包括这样的装置,该装置用于对包进行自动多播,由此包被根据节点或包种类而存放到多个目的地。
10.如权利要求2所述的大规模并行计算结构,其中所述第一独立网络包括嵌入式虚拟网络,该嵌入式虚拟网络用于启用包的自适应及无死锁的确定性最短路径路由。
11.如权利要求10所述的大规模并行计算结构,其中每个所述的多个节点都包括路由设备,所述第一网络实现用于控制路由器之间的包的路由的基于记号的流量控制装置。
12.如权利要求2所述的大规模并行计算结构,其中所述多个独立网络的第二个包括可伸缩的全局树形网络,该全局树形网络包含方便在所述网络的节点或节点子集之间的同时全局操作的节点互连。
13.如权利要求12所述的大规模并行计算结构,其中所述全局操作包括在所述树的任一节点上为从根节点到所述树网络或所述树网络的子树网络的叶节点的下游广播而启动的全局广播操作,以及从节点向着每个树或子树网络内的所述根节点上行的全局归约操作。
14.如权利要求12所述的大规模并行计算结构,其中所述多个树或子树网络的所述根节点与I/O节点耦合,该I/O节点独立于在其它网络中所执行的处理而为所述树网络执行高速I/O操作。
15.如权利要求14所述的大规模并行计算结构,进一步包括用于启用在每个所树全局树形网络的节点之间的点对点和子树消息传递的可编程装置,每个节点都具有与其相关联的一个唯一地址,该唯一地址使得主系统能够与每个节点直接通信。
16.如权利要求15所述的大规模并行计算结构,其中所述相关联的唯一地址包括在该计算结构中的该节点的被编码的几何位置。
17.如权利要求12所述的大规模并行计算结构,其中服务节点与节点的子集之比可被配置成启用所述计算结构的优化封装及利用。
18.如权利要求2所述的大规模并行计算结构,其中所述多个独立网络的第三个包括用于启用异步全局操作的全局信号网络。
19.如权利要求18所述的大规模并行计算结构,其中所述异步全局操作包括用于启用全局障碍操作的全局逻辑″与″功能的实现。
20.如权利要求2所述的大规模并行计算结构,其中所述异步全局信号操作包括用于启用全局通知操作的全局逻辑″或″功能的实现。
21.如权利要求14所述的大规模并行计算结构,其中所述多个独立网络的第四个包括将每个I/O节点连接到外部主系统上的外部高速网络。
22.如权利要求21所述的大规模并行计算结构,其中所述外部高速网络是千兆位以太网。
23.如权利要求2所述的大规模并行计算结构,其中所述多个独立网络的第五个包括一个独立网络,该独立网络用于为所述计算结构内的所有节点或节点的子集提供低级调试,诊断及配置能力。
24.如权利要求23所述的大规模并行计算结构,其中节点的内部处理元件的所述低级调试和检查可以通过所述第五个网络从在那个节点上执行的任何软件被透明实施。
25.如权利要求23所述的大规模并行计算结构,其中所述第五个网络包括IEEE 1149(JTAG)网络。
26.如权利要求15所述的大规模并行计算结构,其中所述多个独立网络的第六个包括一个独立控制网络,该独立控制网络用于向单独的节点提供诊断和控制功能。
27.如权利要求1所述的大规模并行计算结构,其中每个节点都包括两个或更多的处理元件,每个处理元件都能够单独地或同时地工作在执行特定类别的并行算法时所要求的计算或通信活动的任何组合上。
28.如权利要求27所述的大规模并行计算结构,进一步包括这样的装置,该装置用于启用所述处理元件的每个之间的计算或通信活动的快速切换。
29.如权利要求28所述的大规模并行计算结构,其中每个处理元件都包括中央处理单元(CPU)以及或多个浮点处理单元,所述节点进一步括本地嵌入的多级高速缓存器,和被并入到用于为较高级高速缓存预取数据的较低级高速缓存内的可编程预取引擎。
30.如权利要求1所述的大规模并行计算结构,其中每个节点都包括片内系统专用集成电路(ASIC),该片内系统专用集成电路实现高封装密度,并降低用电及冷却需求。
31.如权利要求1所述的大规模并行计算结构,其中所述计算结构包括被装配在电路卡上的预定的多个ASIC节点,多个电路卡被配置在封装于所述计算结构内的不可分的中平面单元上。
32.如权利要求31所述的大规模并行计算结构,其中把电路卡组织成包括被逻辑地连接成近立方体,或矩形的节点。
33.如权利要求31所述的大规模并行计算结构,进一步包括用于根据各种逻辑网络构造划分节点子集的装置,用于根据正被处理的并行算法的带宽及等待时间需求来启用在所述节点之间的独立处理。
34.如权利要求33所述的大规模并行计算结构,所述划分装置包括链路设备,该链路设备用于在互连不同中平面的导体上重新打入信号,以及在不同端口之间重新定向信号,以便使该超级计算系统能够被划分成多个,逻辑地隔开的系统。
35.如权利要求34所述的大规模并行计算结构,进一步包括用于编程所述链路设备的装置,所述链路设备用于绕过被确定为正有故障的要加以维修的任何中平面来映射通信和计算活动而不妨碍其余系统操作。
36.如权利要求34所述的大规模并行计算结构,其中所述多个独立网络之一包括一个独立控制网络,该独立控制网络用于控制所述链路芯片来编程所述划分。
37.如权利要求31所述的大规模并行计算结构,进一步包含时钟分布系统,该时钟分布系统用于按最小抖动向中平面单元的每个电路卡提供时钟信号。
38.如权利要求37所述的大规模并行计算结构,其中所述时钟分布系统利用可调重新打入的信号来按相位时钟启用对所述计算结构的所有节点及所述计算网络的联网划分的分布。
39.如权利要求1所述的大规模并行计算结构,进一步包括互连所述处理节点的高速,双向串行链路,该双向链路用于同时在两个方向上携带信号。
40.如权利要求30所述的大规模并行计算结构,其中每个节点ASIC进一步包括在存储器中的可由所述处理单元存取的共享资源,该共享资源针对锁交换而被配置以便防止在所述处理单元内的瓶颈。
41.如权利要求6所述的大规模并行计算结构,其中每个被传送的包都包括一个报头,该报头含有用于携带信息的一个或多个字段,一个所述字段包括对改进的串行位的网络通信的进行错误纠正的能力。
42.如权利要求41所述的大规模并行计算结构,其中所述包报头的一个所述字段包括规定数目的位,该规定数目的位代表在所述网络内的节点上路由包的可能的输出方向,所述位被设置成表明为降低网络争用而包需要在相应的方向上前进以到达节点目标0。
43.如权利要求39所述的大规模并行计算结构,进一步实现用于捕获在所述链路上发送的的数据的装置,所述数据在没有将时钟信号与该数据流一起发送的情况下允许最佳采样和异步数据流的捕获。
44.一种可伸缩的大规模并行计算结构,包括由独立网络互连的多个处理节点,每个节点都包括一个或多个处理元件,该处理元件用于执行在执行并行算法操作时所要求的计算或通信活动;以及,包含n维环形网络的第一个独立网络,该n维环形网络包括采用为提供在所述网络的所述节点或者节点的子集之间的高速、低等待时间的点对点和多播包通信而被优化的方式来互连所述节点的通信链路;所述多个独立网络的第二个包括可伸缩的全局树形网络,该全局树形网络包含方便在所述网络的节点或节点子集之间的同时全局操作的节点的互连;以及,划分装置,用于根据一个或多个算法的需要来动态配置独立处理网络的一个或多个组合,每个独立网络都包括由所述第一和第二网络的可分部分互连的处理节点的一个可配置子集,其中所述被配置的独立处理网络的每一个都被利用来为优化算法处理性能而启用同时协作处理。
45.如权利要求44所述的可伸缩的大规模并行计算结构,所述多个独立网络的第三个包括一个可伸缩的全局信号网络,该可伸缩的全局信号网络包含用于启用所述网络的节点或节点子集之间的异步全局操作的节点互连。
46.如权利要求44所述的可伸缩的大规模并行计算结构,其中每个节点都包含一个片内系统专用集成电路(ASIC),该片内系统专用集成电路含有两个处理元件,每个处理元件都能够单独地或同时地工作在执行特定类别的并行算法时所要求的计算或通信活动的任何组合或者两者上。
47.如权利要求44所述的可伸缩的大规模并行计算结构,进一步包括用于在执行特定类别的算法时启用在一个或多个被配置的独立处理的网络之间的处理切换的装置。
48.在一种包括由多个独立网络互连的处理节点的大规模并行计算结构内,每个处理节点都包括片内系统专用集成电路(ASIC),该片内系统专用集成电路包括两个或多个处理元件,每个处理元件都能够执行计算或消息传递操作;用于启用在每个所述处理元件上的处理及消息传递活动的快速协调的装置,其中该处理元件之一或两个执行该算法所需的计算,同时另一个或两个处理元件执行在执行特定类别算法时所要求的消息传递活动,该消息传递活动用于与所述网络的其它节点进行通信。
49.一种可伸缩的大规模并行计算系统,包括由链路互连以构成环形网络的多个处理节点,每个处理节点都由多个链路连接,该多个链路包括至所有相邻的处理节点;通信链路,用于互连所述处理节点以构成全局组合树网络,以及用于传送含有中断信号的全局信号的一个类似组合树;链路装置,用于接收来自所述环形和全局树形网络的信号以及所述全局中断信号,用于在该链路装置的不同端口之间重定向所述信号以使该计算系统能够被划分成多个,逻辑地隔开的计算系统。
50.如权利要求49所述的大规模并行计算系统,其中该链路装置提供在包含多个处理节点的中平面设备之间的电缆上重新打入信号的功能,以改进信号的高速形状和幅度。
51.如权利要求49所述的大规模并行计算系统,其中该链路装置执行第一类型的信号重定向和第二类型的信号重定向,其中第一类型的信号重定向用于从一个沿着该计算系统的预定轴的逻辑方向除去一个中平面,第二类型的信号重定向允许把该计算系统划分成两半或四等份。
52.一种大规模并行计算系统,包括由独立网络互连的多个处理节点,每个处理节点都包含片内系统专用集成电路(ASIC),该片内系统专用集成电路电路包括两个或多个处理元件,每个处理元件都能够执行计算或消息传递操作;包含n维环形网络的第一个独立网络,该n维环形网络包括采用为提供在所述网络的所述节点或者节点的子集之间的高速、低等待时间的点对点和多播包通信而被优化的方式来互连所述节点的通信链路;所述多个独立网络的第二个包括可伸缩的全局树形网络,该全局树形网络包含方便在所述网络的节点或节点子集之间的同时全局操作的节点的互连;以及,划分装置,用于根据一个或多个算法的需要来动态配置独立处理网络的一个或多个组合,每个独立网络都包括由所述第一和第二网络的可分部分互连的处理节点的一个可配置子集,以及,用于启用在每个独立处理网络中的每个所述处理元件上的处理及消息传递活动的快速协调的装置,其中该处理元件之一或两个执行该算法所需的计算,同时另一个或两个处理元件执行在执行特定类别算法时所要求的消息传递活动,该消息传递活动用于与所述网络的其它节点进行通信,其中所述被配置的独立处理网络及其节点处理元件中的每个都被动态地利用来启用协作处理以便优化算法处理性能。
全文摘要
一种数百万亿OPS规模的新颖的大规模并行超级计算机,包括基于片内系统技术的节点体系结构,其中每个处理节点都包含一个单独的专用集成电路(ASIC)。ASIC节点(20)被多个独立网络(26)互连,该网络最佳地使包通信吞吐量达到最大,并把等待时间减到最小。该多个网络可以包括用于并行算法消息传递的三个高速网络,包括一环,全局树,和提供全局障碍及通知功能的全局异步网络。可以根据需要或是算法的阶段而协作地或独立地利用这些多个独立网络以优化算法处理性能。
文档编号G06F13/24GK1494688SQ02805532
公开日2004年5月5日 申请日期2002年2月25日 优先权日2001年2月24日
发明者马赛厄斯A·布卢姆里奇, 马赛厄斯A 布卢姆里奇, で , 陈东, M 西珀拉, 乔治L·丘, た铺赜人, 托马斯M·西珀拉, ぜ永, 保罗W·科特尤斯, ぜ帜放僚, 艾伦G·加拉, 海德伯格, 马克E·贾姆帕帕, V 科普克塞, 菲利普·海德伯格, S 莫克, 杰勒德V·科普克塞, に , 劳伦斯S·莫克, 托德E·塔肯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1