专利名称:一种面向粒子模型的多层直连集群并行计算系统的制作方法
技术领域:
本发明涉及高性能计算机数值模拟技术领域,尤其涉及一种面向粒子 模型的多层直连集群并行计算系统。
背景技术:
目前实现高性能计算的主流方式是大规模并行处理(MPP),由于这 样的系统耗资巨大,如何充分利用其硬件资源是MPP设计中需要重点考 虑的问题。传统的思路是让系统能适应许多不同的算法和应用问题,即依 靠通用性来保证业务量的饱满,使系统资源得以充分利用。
为此,原则上应实现全局性的快速数据交换,包括处理器与存储器之 间以及处理器之间直接或间接的数据交换。在这样的设计思路下,当处理 器数量增加时,通信方面的硬件开销必然非线性地增加,反过来系统的实 际速度却无法达到与处理器数量成线性关系的增长,从而造成了提高机器 性能的主要瓶颈。
系统的规模由于受到元器件的集成度在技术上的严重制约而存在一 个极限。目前即使对单处理器的微型计算机来说,处理器的数据处理速度 和存储器数据存取速度之间的速度差距拉大也使它运行许多计算程序的 实际效率只有其峰值的10%左右,而对MPP系统来说常常更降低到只有 1 2%。另一方面,虽然存在一些针对特定算法和问题的专用并行计算机, 但因为其应用面狭窄,业务量小,导致无法成批生产和充分利用,经济性 很差,所以也没有得到重点发展。
本发明的动机就在于寻找介于通用和专用设计的高性能设备之间的 第三条道路。我们希望找到一种能够涵盖尽可能多的数学物理模型的算法 框架,以尽量扩大其应用范围,而同时又希望这种框架有很突出的专门性 和简单性,使针对它进行的硬件设计能极大地简化。
发明内容
(一) 要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种面向粒子模型的多层直连 集群并行计算系统,以简化高性能计算机系统的设计,提高高性能计算机 系统的效率。
(二) 技术方案
为达到上述目的,本发明提供了一种面向粒子模型的多层直连集群并 行计算系统,该系统由多个节点组成,所述节点在逻辑上排成一层或多层 的一维或多维阵列,同层的相邻节点之间直接进行通信连接,不同层的节 点通过交换机进行通信连接。
上述方案中,所述节点为具有独立的运算、存储与通信功能的逻辑结 构单元,包括芯片、芯片组、板卡和独立计算机中的任意一个或任意多个
的组合;所述节点间具有网格状连通的高速mesh网络和树状连通的低速 tree网络;邻近数据通信在mesh网上进行,全局数据通信以及统计或控 制信息与指令的交换在tree网上进行。
上述方案中,所述阵列为可任意扩展的阵列,或为按任何可重复的排 列方式组成的阵列,至少包括按矩形或长方体、三角形或四面体、六边形 或十四面体形式形成的阵列;所述阵列的边缘为开放的,或为与对应边相 连的。
上述方案中,所述通信连接适用于所述节点间的任何连接方式,至少 包括通信总线、交叉开关、网卡与网络连接线、串口或并口与串口或并口 连接线、USB 口及其连接线连接方式。
上述方案中,所述交换机为支持所述通信连接的任何多路输入、单路 输出或多路输出的交换设备。
上述方案中,所述同层的节点被分为若干组,每组分别通过交换机与 上层的一个节点实现通信连接。
上述方案中,该系统的并行计算采用多层次空间分解,各层的维数均 等于或低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或 节点组间的拓扑关系相同。上述方案中,该系统的并行计算采用由节点对应的区域四周向中心逐 步向后续时间步推进,消除小尺度上的负载波动,每个节点处理的流程为
a、 检查是否有数据准备己完成的可计算的边界区段;
b、 如没有,先向能提供数据的节点发出请求,然后开始计算一个不
依赖于其它节点数据的区段,算完后在回到步骤a;
C、如果有,计算该区段,然后将数据发送给需要的相邻节点,并回
到步骤a。
上述方案中,该系统的并行计算在大范围的负载平衡时采用调整各节 点计算区域大小的方式,具体包括-
1) 负载信息经过逐层归约上传至根节点;
2) 根节点据此计算形成调度指令回传给各节点;
3) 实际的数据传递由节点间的直连通信完成。
(三)有益效果
从上述技术方案可以看出,本发明提供的这种面向粒子模型的多层直 连集群并行计算系统,采用多层次空间分解,各层的维数均等于或低于同 层节点阵列的维数,且计算区域间的拓扑关系与相应节点或节点组间的拓 扑关系相同,通过这种设计和粒子模拟的特点,简化了高性能计算机系统 的设计,提高了高性能计算机系统的效率,并使本发明还具有以下优点
1) 各节点上的计算与通信操作逻辑上能够充分重叠;
2) 能大量减少系统中数据交换设备的使用;
3) 各节点同步地对不同方向的区域依次计算,避免了通信与内存访 问的冲突;同时允许计算由节点对应的区域四周向中心逐步向后续时间步 推进,从而消除了小尺度上的负载波动;
4) 大范围的负载平衡通过将负载信息经过逐层归约上传至根节点, 据此计算形成调度指令回传给各节点;并由节点间的直连通信完成实际的 数据传递。这种设计能在较小的投入下显著提高粒子方法在大规模并行系 统中的实际运行速度;
5) 以本技术方案建造的并行计算系统具有高可扩展性,理论上对粒 子算法有完全线性的可扩展性。
图1为本发明提供的面向粒子模型的多层直连集群并行计算系统总体
结构的示意图;其中,CE为控制节点,TM为用户终端,DM为数据管 理节点,PE为处理节点;
图2为本发明提供的面向粒子模型的多层直连集群并行计算系统中节 点与交换机连接的示意图3为本发明提供的面向粒子模型的二维划分的多层直连集群并行计 算系统中计算区域与节点的对应关系的示意图 ,
图4为本发明提供的面向粒子模型的二维划分的多层直连集群并行计 算系统中处理节点局部分时通信的时序示意图5为本发明提供的面向粒子模型的多层直连集群并行计算系统中一
个计算节点对应的计算区域的处理顺序示意图6为本发明提供的面向粒子模型的二维划分的多层直连集群并行计 算系统中处理节点局部直连通信硬件复用的示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实 施例,并参照附图,对本发明进一步详细说明。
本发明应用的领域是采用各种"粒子方法"进行的各种计算机数值模 拟,而"粒子方法"是我们对这样一类模拟方法特定的统称。它们将模拟 系统离散为大量相互作用的粒子,通过动力学计算描述每个粒子的行为, 从而直接或通过统计与组合复现系统的行为。虽然目前已经出现了多种具 体的粒子方法和大量相应的实例模拟,但学术界对这些方法的统称还缺乏 共识。为此先对粒子方法的特征和涵盖的范围作更具体的表述。
实际上,有几种典型的粒子方法已广为人知,并且是非常直观的。如 分子动力学(molecular dynamics, MD)方法通过将原子、原子团或分子简化 为通过有势力和刚性约束等方式相互作用的质点来描述分子、分子团以至 材料的微观行为,目前已广泛应用于化学制剂的合成,生物大分子和新材 料的研究、设计与制备,对生命本质的探索等领域。而在广义上,像中子 扩散等对核辐射的模拟也归入分子动力学方法中。而对像沙石、谷物、各种粉末等固体颗粒物,模拟它们的集体运动最 直观的方法就是计算其中自然存在的每个离散颗粒间的相互作用力(如相 互接触产生的压力和摩擦力,以及非接触时也能存在的静电力等),并进
而计算它们各自的轨迹,这被成为离散单元法(distinct element method, DEM)。目前也在工业过程、农业工程和地质、水文等方面广泛应用。
而在更大的尺度上,我们也不难发现,从星球、星系,到星系团甚至 整个宇宙,世界的离散的特性也是非常明显的,后者都可视为组成前者的 粒子。而事实上,天体动力学模拟的一种主流手段就是通过计算这些巨大 "粒子"间的万有引力来跟踪它们的轨迹和集体的行为。这种方法为探索宇 宙的形成与演化及未来的航天领域提供了有力手段。
粒子方法也不局限于直观上能处理为粒子集合的系统。近年来,对于 流体的流动和材料的变形等传统上采用连续介质方法模拟的行为,通过构 造粗粒化的或者简化的模型粒子也提出了很多粒子方法。如介观的耗散粒 子动力学(dissipative particle dynamics, DPD)方法和格子波尔兹曼(Lattice Boltzmann, LB)方法,以及宏观的光滑粒子动力学(smoothed particle hydrodynamics, SPH)方法等。从物理背景上说,这些模型粒子大致可以被 理解为一大团分子或一个物质微元的拉格朗日(Lagrange)表达。这些采用 模型粒子突破了计算量随系统自然含有的粒子数量必然增大的问题(这是 采用连续介质方法的重要理由),并且特别适合处理复杂边界、多相介质 和大变形等对连续介质方法具有挑战性的问题,目前已在舰船、飞行器和 车辆的设计,核武器与反应堆的研究与设计,能源、化工、水利、地质勘 探开发,气象和海洋预报等广泛的领域中获得大量应用。
在一些文献中还可以找到对更多粒子方法的介绍。粒子方法虽然种类 繁多,应用广泛,但在算法上却有很突出的共性。本发明中提出的并行计 算系统考虑了它们如下的共同特征
首先,无论是自然存在的粒子还是人为构造的模型粒子,它们之间的 作用强度普遍随距离的增长而迅速降低。物理粒子间的作用本质上无非是 四种基本力造成的(实为三种或更少),其中引力和电磁力的强度与质点间
距离平方成反比,而强和弱相互作用的衰减更快,因此一般可忽略相距足够 远的粒子间的作用,或者通过估计大量粒子的合力来代替每对粒子间的受力计算。这就导致了局部性,即尽管整个系统可拥有任意多个粒子,但直接 决定任一粒子瞬时运动的粒子却主要是很少量的邻近粒子。
同时一对粒子间的作用函数一般可通过常微分方程描述,而一个粒子 同时受到的各对作用是可迭加的。也就是说,我们可以按任意顺序分别独 立处理每对粒子间的作用,通过简单的加和得到粒子的合力。虽然在对硬 球粒子或由多个粒子通过一些约束组成的复合粒子(如链状的高分子)的 具体处理上并非那么简单,但在稍大的尺度上,如对复合粒子的整体,其 算法总体上依然具有此性质。
另外,在相当于或大于粒子间作用特征时空尺度的范围内,粒子系统 常接近均匀状态,而在两者中间的时空尺度上系统表现出较强的非均匀 性,并且是动态变化的。这是物理世界的结构层次性在模型中的自然表现。
值得指出的是,任何连续介质模型除非解析求解,最终也都要按一定 的离散格式数值求解的。而很多离散格式,主要是显格式,也可以理解为 某种特殊的静止粒子系统,而这些特殊粒子间的作用也符合上面的几个特 点,因此它们也属于本发明提出的并行计算系统适用的范围。它具体包括
了很多所谓无网格方法(Meshless Methods),神经网络(Neural Network)算法,
和很多信号与图像处理算法。虽然许多隐格式具有更高的效率和更好的稳 定性,但是当计算量很大时,它并行性差的缺点往往足以掩盖这些优点。 因此随着高性能计算的发展,目前那些可以粒子化的显格式已越来越受到 关注。因此粒子方法的算法框架的适用面是相当宽泛的。
总结上面的说明可以发现,粒子方法突出地具有应用上的普遍性和对 硬件设计的专门性和简单性。即各种粒子间的作用方式可模块化地嵌入通 用的总体算法和数据结构中;而通过空间分区,粒子方法几乎可获得线性 加速比,且硬件系统的每个节点可只提供对特定的极少数相邻节点的内存 共享或消息传递,可相当简便地大规模扩展;并保持接近峰值的实测速度。 同时节点的复杂性和规模可大大降低(如可以只有缓存,没有主存),从 而提高处于计算操作中的元器件的比例,即提高其使用效率,降低成本。 与一般的通用高性能计算机相比,针对这种框架设计的硬件系统应用范围 虽然有所缩小,但仍会有大量的需求。而硬件成本的降低和效率的提高所 产生的效益将远远超过前者造成的影响。因此发展这样的系统将具有非常广阔的前景。
在并行计算领域发展较早的是所谓处理器阵列。它的基本思想是将大 量比较简单的处理单元组成阵列,在统一的控制下对不同的数据执行相同
的操作,即所谓的单指令多数据(single instruction multiple data, SIMD)模
式。这些组成单元一般拥有少量存储器和执行一种或几种逻辑运算的硬 件,如加法器、加乘运算器等。由于它的简单性,它们之间可以非常紧密 地耦合,并大量集成到同一芯片上。对于特定运算,这种方式能达到非常 高的并行度和计算速度。
实际上一些具体的简单粒子方法,如格子气(Lattice Gas Automaton, LGA),格子波尔兹曼和许多图像处理过程就特别适合这种模式实现。由 于这些方法中的粒子实际上只和邻近格点上的其它粒子有作用,这些处理 单元也只要提供与相邻单元的连接,因此系统的设计可以相当简化。如美 国专利US4740894(1988-04-26公开)就提出了一种具有多各输入输出端口 的处理单元,而美国专利US3970993(1976-07-20公开)则采用单向链通道 (Chaining Channel)将处理单元串联起来,使数据可以传到下一处理单元。 这样的单元都可以用来组成适合一些简单的粒子算法的处理器阵列。这方 面一个比较典型的例子是美国专利US5432718(1995-07-ll公幵)提出的采 用组合逻辑(combination logic)和双重网格计算规则格子上粒子运动的方 法与系统,它对应LGA是非常高效的,通过适当改造,也可适用于LBM 等其它一些基于格子的粒子方法。
但处理器阵列的局限性也是显而易见的。由于每个处理单元原则上只 能处理其硬件预先设定的少数几种运算,而不具备存储和解释指令、从而 独立运行程序的功能,因此它的通用性很差。实际上,在执行通用程序时, 宿主计算机只是将适合处理器阵列处理的有关阵列运算的那些指令传递 给它执行,而其它计算仍由宿主计算机完成,此时,它的利用率可能会很 低甚至根本未被使用。所以并行计算技术的后续发展更多地集中在所谓多 处理器系统和多计算机系统方面。顾名思义,这些系统中的基本构造单元 是能独立运行程序的处理器及相应的存储器和输入输出设备,或者能独立 使用的完整的计算机。因此它们可以按多指令多数据(multiple instructions
10multiple data, MIMD)方式运行。
采用更复杂的构造单元自然能通用地处理更复杂的计算问题,但如果 不想对各种可能性加以限制,那么单元间连接方式也不可避免地同样需要 更加复杂而通用。目前总体上有两类连接方式,即共享存储和消息传递。 共享存储是让多个处理器能够共同访问一个存储器。 一种比较简单的情况 是为系统中的每个处理器提供完全等同的连接方式来访问所有的存储器, 这称为对称多处理(Symmetric Memory Processing, SMP), 一般通过总线或 交叉开关来实现。但这两种方式本质上都是对数据存取的模式不加任何限 制,或者说不考虑数据存取的特定路径结构的通用方法,只是总线是完全 分时共享而交叉开关具有部分的并行数据交换能力,但都无法避免接入的 节点数量增加时硬件复杂度或访问延时非线性增加的问题,即缺乏可扩展 性。
因此在需要进一步扩大并行计算的规模时,只能在系统中采用几种不 同的连接方式,即所谓非统一的内存访问(Non-uniform memory access, NUMA)。 一个处理器可以和若干存储器有较紧密的耦合,访问延时较短, 而与其它存储器连接较松散,访问延时较大。 一种典型的方法是采用多级 总线或开关网络,如美国专利US5983323(1999-ll-09公开)提出了处理节 点(ProcessorNode)的概念,采用局部总线连接各处理器和网络总线连接 各局部存储器的方式来提高共享内存并行处理器存储效率,并分级构造更 大规模的并行系统。又如美国专利US6457100 (2002-09-24公开)提出了 采用局部总线减少全局共享存储中访问冲突和解决缓存一致性的方法,它 本质上也体现了这种分级构造的思想。
消息传递方式主要用在多计算系统中,它显式的输入输出操作来完成 处理器间的通信。在共享存储方式中这样的通信则可以通过两个处理器先 后分别写和读被共享的存储器中同一地址的数据来隐式地实现。由于显式 的通信需要按协议执行不少打包和解包操作量、侦听、同步和中间转存过 程,速度难以和共享存储方式相比,特别是对少量数据的传递,这些辅助 操作带来的延时会占很大的比例。当然它也有系统构建和并行编程方面的 灵活性。
虽然共享存储和消息传递方式在并行编程的角度看是明显不同的方式,但在硬件实现上现在也出现了日益融合的趋势。消息传递中的网络接 口虽然属于输入输出设备,但也越来越深地集成到了存储系统中,比如可 以直接按地址传送数据到另一台机器,而共享存储方式下的远程访问也可 以通过底层的消息传递实现。因此也不难理解,当并行节点的数量增多时 消息传递方式也需要采用分级的方式来实现任意两个节点间的通信。
无论是在共享存储还是消息传递方式下,即使采用分级的方式,硬件 连接的复杂性和延时还是要随系统规模而增长的。而对共享存储方式,如 何高效地解决呈几何级数增长的访问冲突可能性和存储内容一致性问题 是一个更加棘手的问题。对消息传递方式也存在类似的通信冲突、路由选 择和同步等待问题,特别是它的动态负载平衡问题比消息传递方式会更突 出。
如果不对系统的应用对象作任何假设,从而也不能对各种通信或共享 模式加以任何限定,仅仅依靠硬件技术与设计和系统软件设计来解决这些 问题是存在本质的困难的。而本发明的基本思想就是要根据粒子方法的特 点,首先简化系统的设计要求,然后根据这个更容易实现的目标找到更加 优化的解决方案。
有鉴于此,本发明提供了一种面向粒子模型的多层直连集群并行计算 系统,该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维 或多维阵列,同层的相邻节点之间直接进行通信连接,不同层的节点通过 交换机进行通信连接。
其中,节点为具有独立的运算、存储与通信功能的逻辑结构单元,包 括芯片、芯片组、板卡和独立计算机中的任意一个或任意多个的组合。节
点间具有网格状连通的高速mesh网络和树状连通的低速tree网络;邻近 数据通信在mesh网上进行,全局数据通信以及统计或控制信息与指令的 交换在tree网上进行。
阵列为可任意扩展的阵列,或为按任何可重复的排列方式组成的阵 列,至少包括按矩形或长方体、三角形或四面体、六边形或十四面体形式 形成的阵列。阵列的边缘为开放的,或为与对应边相连的。
通信连接适用于所述节点间的任何连接方式,至少包括通信总线、交叉开关、网卡与网络连接线、串口或并口与串口或并口连接线、USB 口及 其连接线连接方式等。
交换机为支持所述通信连接的任何多路输入、单路输出或多路输出的 交换设备。
同层的节点被分为若干组,每组分别通过交换机与上层的一个节点实 现通信连接。
另外,该系统的并行计算采用多层次空间分解,各层的维数均等于或 低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或节点组 间的拓扑关系相同。
该系统的并行计算采用由节点对应的区域四周向中心逐步向后续时 间步推进,消除小尺度上的负载波动,每个节点处理的流程为
a、 检査是否有数据准备已完成的可计算的边界区段;
b、 如没有,先向能提供数据的节点发出请求,然后开始计算一个不 依赖于其它节点数据的区段,算完后在回到步骤a;
c、 如果有,计算该区段,然后将数据发送给需要的相邻节点,并回
到步骤a。
该系统的并行计算在大范围的负载平衡时采用调整各节点计算区域 大小的方式,具体包括
1) 负载信息经过逐层归约上传至根节点;
2) 根节点据此计算形成调度指令回传给各节点;
3) 实际的数据传递由节点间的直连通信完成。
各种粒子方法在具体相互作用计算、粒子运动跟踪、约束条件的给定 以及数据的在线统计分析上有很大的差别。既有像格子气那样非常简单的 布尔运算,也有像高分子聚合物分子动力学模拟那样非常复杂的迭代运 算。因此面向这类方法的通用计算机应该以能独立执行程序的通用处理器 和具有足够容量的存储器为基本的构造单元,而不应采用处理器阵列中那 样的简单处理单元。但同时也要根据粒子方法的共同特点简化单元间的连 接方式,以提高并行效率和可扩展性。为实现上述目的,本发明的典型实 施措施包括a)节点的组织
考虑到粒子方法在区域分解算法下数据的相互依赖关系主要集中在 逻辑上相邻的节点间,而且总体上逻辑距离越远数据依赖关系越弱,可以 弱化目前分级构造的多处理(计算机)系统中提供的远程访问或通信能力 而强化邻近节点间的连接。为此在并行系统的逻辑布置上,节点被组织为 可任意扩展的阵列。如图1所示,节点阵列在D维排列时,每个节点分别 有2Z)个相邻的节点。实际上,如果有必要节点也可以按其它能无缝且无 重叠地延展的最小重复单元周期性地排列,如三角形排列方式。逻辑上相 邻的各节点通过以太网卡、串口的直连实现点对点通信。同时所有PE还 可通过普通的局域以太网通信。即形成网格状连通的较高速网络(即mesh 网络)和树状连通的较低速网络(即tree网络)的组合。大量的邻近数据通信 在mesh网上进行而少量的全局数据通信以及统计或控制信息与指令的交 换在tree网上进行。每各PE可以是在无网路情况下也能独立运行的完整 微型计算机,可分布式地存放应用程序和中间结果,并进行前后处理。
以独立计算机作为节点的情况为例,如图4所示的技术方案能比较直 接地实现这种组织方式。每个节点配置2D块千兆以太网卡并通过直连线 与邻近节点的相应网卡连接,而不同通过任何交换设备。在通过tree网广 播的同步信号控制下,不同方向的连接可依次同步地进行发送和接收。通 过2D组这样的通信可实现相邻节点的所有数据交换。与通过交换机的传 统通信方式相比,这种即避免了转发的延迟,也避免了由于交换机的转发 顺序无法控制而可能造成的冲突。为了减少网络硬件投资,还可考虑用如 图6所示的多路复用装置,使每个节点只需配置一块千兆网卡。这种复用 装置实际相当于简化的交换机,它受程序的控制按固定的时序切换到不同 的输出,延迟很小且不存在冲突问题。
每个节点同时通过一台交换机或多台交换机的堆叠实现所有节点间 的分级互连,即构成tree网。如图1所示,每一级交换机上可再连接多个 节点,而这些节点间也排成阵列并在邻近节点间直连通信,即构成上一级 的mesh网。这些节点可以进行归约信息的前处理和长程作用的计算。而 在"树根"上也可连接若干以mesh网连接的或者"独立"的节点,作为专 门的控制、全局计算和前后处理节点以及用户终端使用。b) 通信的优化
粒子系统的并行计算釆用低于PE阵列维数的空间区域分解方式,逻 辑上相邻的PE处理物理上相邻的空间区域。有关粒子的数据存储在逻辑 位置与粒子的物理空间位置相对应节点的存储器中(参见图3)。由于直连 节点间的通信是确定路径的点对点通信,且时序可以由根节点控制,与一 般的局域网通信相比,可以采用相对简化的、较底层的通信协议,以便根 据传输数据的特点优化传输方式,尽量减少数据缓冲和打包、开包的开销。 同时根据这个特点可设计相应的接口软硬件,尽可能减少通信中CPU的 参与,尽可能多地使用直接内存存取(DMA)。
c) 负载的平衡
大规模并行时,负载平衡是保证效率的重要因素,它主要包括三方面
1. 通信与计算操作的重叠。在通过网卡进行消息传递的模式下,CPU 在参与网卡间的连接的建立后一般可再转到计算上来。网卡可直接读取或 写入要发送或接收的数据,但问题是要取得对内存访问的控制权。因此,
此时CPU在计算中如需要访问内存就会引起冲突而出现等待。在一般的
计算模式下,这种状况是很难避免的。但由于粒子模拟中数据依赖的局部 性、粒子间作用的可加性和时间显式格式等特点,我们可以优化各节点上 进程的算法,使得通信进行时计算能基本采用缓存甚至寄存器中的数据而 不访问主存,尽量避免出现这种情况。
2. 局部负载波动的抑制。即使在整体负载平衡的条件下,由于计算 本质上是多指令多数据(MIMD)的,计算量在各时间布也会由涨落,并随 划分的粒度变细而增大。这里可以我们以前提出的一种设想来抑制。每一 步中计算先从各节点对应的计算区域的边缘开始,逐渐转向中间区域(参 见图5)。这样相对较慢的节点总是在计算与邻近节点的新数据无关的区 域,而同样,算得较快得节点也可以接着计算其中心区域中以后得时间步。 如果各节点的负载在不太长的时间尺度上是平衡的,即如果一个节点在某 个或某几个时间步是落后的,则它也有同样的可能在其它时间步是领先 的,那么这种处理就能在很大程度上避免等待的出现。对于某些节点长期 负载较重或较轻的情况,此方法不能奏效,而需调整计算区域的划分。
具体来说(参见图5),当粒子方法采用空间分割时,每个节点的计算区域被分成由边界到中心的若干环形区域,每个环区又分为若干区段。靠 近边界的一些环区在下一步计算中要用到相邻节点上靠近边界的一些区 段在当前步的粒子信息。每个节点处理的流程为
a) 检査是否有可计算(数据准备已完成)的边界区段;
b) 如没有,先向能提供数据的节点发出请求,然后开始计算一个不依 赖于其它节点数据的区段(如果没有则等待),算完后在回到步骤a;
C)如果有,计算该区段,然后将数据发送给需要的相邻节点,并回到
注意在步骤b中,只要数据准备完成,内部环区的计算可能推进到当 前步以后的若干步,越接近区域中心,可能推进的步数就越多,以此可以 缓解小尺度上的负载波动。
3.大尺度的动态负载平衡。当上面抑制负载波动的方法不足以防止 出现等待时,就需要对一些节点所对应的计算区域进行调整。这可以由各 节点将负载量的统计信息通过tree网传递给到某一层次的控制节点,再由 后者进行评估和决策。计算区域调整的指令通过tree网再传递给各节点。 而实际的数据迁移是在邻近节点间通过mesh网进行的,迁移的数据量只 是与原划分不同的边界部分。同时,这种主从模式也适合对少量粒子间长 程作用的简化计算。此步骤如同普通的计算步,也可以沿不同空间方向并 行地进行,不会冲突。每一计算时间步中,各PE通过mesh网同步地在不 同方向进行邻近数据交换,从而避免传统上通过tree网交换可能出现的冲 突和延迟(参见图4)。通过先计算各PE对应的物理区域周边的粒子运动 而后扩展到中心的顺序,将核心区域的计算推进到后续的时间步,从而自 动消除小尺度负载波动(参见图5)。大范围的负载平衡通过各PE对应区域 的调整完成。
d)物理的布置
一般为了保持通用性,节点可都采用三维排布,而在运行中通过屏蔽 mesh网中的部分连接动态地配置为更简单的一维或二维排布。当各维数 上节点数量都很多时,可采用多排机柜布置,连线可分别走机柜的顶部和 底部。而在节点数较少或者二维布置时可采用单个或单排机柜布置。
如果尽可能多地使用现有技术,则每个节点都可以是一台完整的网络服务器,有独立的内存、硬盘、I/O接口,但不配置专门的显示终端,各 自安装操作系统。因为算例的前后处理也主要是通过并行节点分别处理, 而且处理后的最终实用信息量较小,因此在保证各节点的适当规模的配置 外,可以不设置硬盘阵列和磁带库等集中海量存储设备。但在控制和若干 前端机上可配置较大的硬盘组长期存储一些重要的计算结果。
综上所述,本发明针对粒子方法提出的高性能计算机系统简化设计、 提高效率的主要途径是逻辑上排成多层次的多维阵列的计算节点只与其 相邻的同层节点建立高速的直接连接,而通过交换机与对应的上层节点建 立连接,并籍此在任意节点间交换少量的控制信息和指令。并行计算采用 多层次空间分解,各层的维数均等于或低于同层节点阵列的维数,且计算 区域间的拓扑关系与相应节点或节点组间的拓扑关系相同。通过这种设计 和粒子模拟的特点,可以实现
1) 各节点上的计算与通信操作逻辑上能够充分重叠;
2) 直接连接方式下的通信基本无需节点中央处理器(CPU)的参与,能 大量减少系统中数据交换设备的使用;
3) 各节点同步地对不同方向的区域依次计算,避免了通信与内存访 问的冲突;同时允许计算由节点对应的区域四周向中心逐步向后续时间步 推进,从而消除了小尺度上的负载波动;
4) 大范围的负载平衡通过将负载信息经过逐层归约上传至根节点, 据此计算形成调度指令回传给各节点;并由节点间的直连通信完成实际的 数据传递。这种设计能在较小的投入下显著提高粒子方法在大规模并行系 统中的实际运行速度
5) 以本技术方案建造的并行计算系统具有高可扩展性,理论上对粒 子算法有完全线性的可扩展性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述只是对本发明的权利要求的 若干典型实现方式的说明,并不用于限制本发明。本领域的技术人员凡在 本发明的精神和原则之内提出的不同的其它实现方式,如采用不同的通信 软硬件和不同的节点配置等,以及所做的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1、 一种面向粒子模型的多层直连集群并行计算系统,其特征在于, 该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维或多维 阵列,同层的相邻节点之间直接进行通信连接,不同层的节点通过交换机 进行通信连接。
2、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述节点为具有独立的运算、存储与通信功能的逻辑结 构单元,包括芯片、芯片组、板卡和独立计算机中的任意一个或任意多个的组合;所述节点间具有网格状连通的高速mesh网络和树状连通的低速tree 网络;邻近数据通信在mesh网上进行,全局数据通信以及统计或控制信 息与指令的交换在tree网上进行。
3、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,所述阵列为可任意扩展的阵列,或为按任何可重复的排 列方式组成的阵列,至少包括按矩形或长方体、三角形或四面体、六边形 或十四面体形式形成的阵列;所述阵列的边缘为开放的,或为与对应边相连的。
4、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,所述通信连接适用于所述节点间的任何连接方式,至少 包括通信总线、交叉开关、网卡与网络连接线、串口或并口与串口或并口 连接线、USB 口及其连接线连接方式。
5、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,所述交换机为支持所述通信连接的任何多路输入、单路 输出或多路输出的交换设备。
6、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,所述同层的节点被分为若干组,每组分别通过交换机与 上层的一个节点实现通信连接。
7、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,该系统的并行计算采用多层次空间分解,各层的维数均等于或低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或 节点组间的拓扑关系相同。
8、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系 统,其特征在于,该系统的并行计算采用由节点对应的区域四周向中心逐 步向后续时间步推进,消除小尺度上的负载波动,每个节点处理的流程为a、 检查是否有数据准备已完成的可计算的边界区段;b、 如没有,先向能提供数据的节点发出请求,然后开始计算一个不 依赖于其它节点数据的区段,算完后在回到步骤a;C、如果有,计算该区段,然后将数据发送给需要的相邻节点,并回到步骤a。
9、 根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,该系统的并行计算在大范围的负载平衡时采用调整各节点计算区域大小的方式,具体包括1) 负载信息经过逐层归约上传至根节点;2) 根节点据此计算形成调度指令回传给各节点;3) 实际的数据传递由节点间的直连通信完成。
全文摘要
本发明涉及高性能计算机数值模拟技术领域,公开了一种面向粒子模型的多层直连集群并行计算系统,该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维或多维阵列,同层的相邻节点之间直接进行通信连接,藉此在相邻的同层节点间高速传递数据,不同层的节点通过交换机进行通信连接。利用本发明,简化了高性能计算机系统的设计,提高了高性能计算机系统对粒子方法及类似算法的计算效率,并且避免了通信与内存访问的冲突,使各节点上的计算与通信操作能够充分重叠;同时允许计算由节点对应的区域四周向中心逐步向后续时间步推进,从而有效缓解了小尺度上的负载波动。
文档编号G06F15/173GK101311917SQ20071009955
公开日2008年11月26日 申请日期2007年5月24日 优先权日2007年5月24日
发明者李静海, 蔚 葛, 力 郭 申请人:中国科学院过程工程研究所