CN101311917B - 一种面向粒子模型的多层直连集群并行计算系统 - Google Patents
一种面向粒子模型的多层直连集群并行计算系统 Download PDFInfo
- Publication number
- CN101311917B CN101311917B CN2007100995518A CN200710099551A CN101311917B CN 101311917 B CN101311917 B CN 101311917B CN 2007100995518 A CN2007100995518 A CN 2007100995518A CN 200710099551 A CN200710099551 A CN 200710099551A CN 101311917 B CN101311917 B CN 101311917B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- layer
- data
- particle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及高性能计算机数值模拟技术领域,公开了一种面向粒子模型的多层直连集群并行计算系统,该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维或多维阵列,同层的相邻节点之间直接进行通信连接,藉此在相邻的同层节点间高速传递数据,不同层的节点通过交换机进行通信连接。利用本发明,简化了高性能计算机系统的设计,提高了高性能计算机系统对粒子方法及类似算法的计算效率,并且避免了通信与内存访问的冲突,使各节点上的计算与通信操作能够充分重叠;同时允许计算由节点对应的区域四周向中心逐步向后续时间步推进,从而有效缓解了小尺度上的负载波动。
Description
技术领域
本发明涉及高性能计算机数值模拟技术领域,尤其涉及一种面向粒子模型的多层直连集群并行计算系统。
背景技术
目前实现高性能计算的主流方式是大规模并行处理(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)方法和格子波尔兹曼(LatticeBoltzmann,LB)方法,以及宏观的光滑粒子动力学(smoothed particlehydrodynamics,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-11公开)提出的采用组合逻辑(combination logic)和双重网格计算规则格子上粒子运动的方法与系统,它对应LGA是非常高效的,通过适当改造,也可适用于LBM等其它一些基于格子的粒子方法。
但处理器阵列的局限性也是显而易见的。由于每个处理单元原则上只能处理其硬件预先设定的少数几种运算,而不具备存储和解释指令、从而独立运行程序的功能,因此它的通用性很差。实际上,在执行通用程序时,宿主计算机只是将适合处理器阵列处理的有关阵列运算的那些指令传递给它执行,而其它计算仍由宿主计算机完成,此时,它的利用率可能会很低甚至根本未被使用。所以并行计算技术的后续发展更多地集中在所谓多处理器系统和多计算机系统方面。顾名思义,这些系统中的基本构造单元是能独立运行程序的处理器及相应的存储器和输入输出设备,或者能独立使用的完整的计算机。因此它们可以按多指令多数据(multiple instructionsmultiple data,MIMD)方式运行。
采用更复杂的构造单元自然能通用地处理更复杂的计算问题,但如果不想对各种可能性加以限制,那么单元间连接方式也不可避免地同样需要更加复杂而通用。目前总体上有两类连接方式,即共享存储和消息传递。共享存储是让多个处理器能够共同访问一个存储器。一种比较简单的情况是为系统中的每个处理器提供完全等同的连接方式来访问所有的存储器,这称为对称多处理(Symmetric Memory Processing,SMP),一般通过总线或交叉开关来实现。但这两种方式本质上都是对数据存取的模式不加任何限制,或者说不考虑数据存取的特定路径结构的通用方法,只是总线是完全分时共享而交叉开关具有部分的并行数据交换能力,但都无法避免接入的节点数量增加时硬件复杂度或访问延时非线性增加的问题,即缺乏可扩展性。
因此在需要进一步扩大并行计算的规模时,只能在系统中采用几种不同的连接方式,即所谓非统一的内存访问(Non-uniform memory access,NUMA)。一个处理器可以和若干存储器有较紧密的耦合,访问延时较短,而与其它存储器连接较松散,访问延时较大。一种典型的方法是采用多级总线或开关网络,如美国专利US5983323(1999-11-09公开)提出了处理节点(Processor Node)的概念,采用局部总线连接各处理器和网络总线连接各局部存储器的方式来提高共享内存并行处理器存储效率,并分级构造更大规模的并行系统。又如美国专利US6457100(2002-09-24公开)提出了采用局部总线减少全局共享存储中访问冲突和解决缓存一致性的方法,它本质上也体现了这种分级构造的思想。
消息传递方式主要用在多计算系统中,它显式的输入输出操作来完成处理器间的通信。在共享存储方式中这样的通信则可以通过两个处理器先后分别写和读被共享的存储器中同一地址的数据来隐式地实现。由于显式的通信需要按协议执行不少打包和解包操作量、侦听、同步和中间转存过程,速度难以和共享存储方式相比,特别是对少量数据的传递,这些辅助操作带来的延时会占很大的比例。当然它也有系统构建和并行编程方面的灵活性。
虽然共享存储和消息传递方式在并行编程的角度看是明显不同的方式,但在硬件实现上现在也出现了日益融合的趋势。消息传递中的网络接口虽然属于输入输出设备,但也越来越深地集成到了存储系统中,比如可以直接按地址传送数据到另一台机器,而共享存储方式下的远程访问也可以通过底层的消息传递实现。因此也不难理解,当并行节点的数量增多时消息传递方式也需要采用分级的方式来实现任意两个节点间的通信。
无论是在共享存储还是消息传递方式下,即使采用分级的方式,硬件连接的复杂性和延时还是要随系统规模而增长的。而对共享存储方式,如何高效地解决呈几何级数增长的访问冲突可能性和存储内容一致性问题是一个更加棘手的问题。对消息传递方式也存在类似的通信冲突、路由选择和同步等待问题,特别是它的动态负载平衡问题比消息传递方式会更突出。
如果不对系统的应用对象作任何假设,从而也不能对各种通信或共享模式加以任何限定,仅仅依靠硬件技术与设计和系统软件设计来解决这些问题是存在本质的困难的。而本发明的基本思想就是要根据粒子方法的特点,首先简化系统的设计要求,然后根据这个更容易实现的目标找到更加优化的解决方案。
有鉴于此,本发明提供了一种面向粒子模型的多层直连集群并行计算系统,该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维或多维阵列,同层的相邻节点之间直接进行通信连接,不同层的节点通过交换机进行通信连接。
其中,节点为具有独立的运算、存储与通信功能的逻辑结构单元,包括芯片、芯片组、板卡和独立计算机中的任意一个或任意多个的组合。节点间具有网格状连通的高速mesh网络和树状连通的低速tree网络;邻近数据通信在mesh网上进行,全局数据通信以及统计或控制信息与指令的交换在tree网上进行。
阵列为可任意扩展的阵列,或为按任何可重复的排列方式组成的阵列,至少包括按矩形或长方体、三角形或四面体、六边形或十四面体形式形成的阵列。阵列的边缘为开放的,或为与对应边相连的。
通信连接适用于所述节点间的任何连接方式,至少包括通信总线、交叉开关、网卡与网络连接线、串口或并口与串口或并口连接线、USB口及其连接线连接方式等。
交换机为支持所述通信连接的任何多路输入、单路输出或多路输出的交换设备。
同层的节点被分为若干组,每组分别通过交换机与上层的一个节点实现通信连接。
另外,该系统的并行计算采用多层次空间分解,各层的维数均等于或低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或节点组间的拓扑关系相同。
该系统的并行计算采用由节点对应的区域四周向中心逐步向后续时间步推进,消除小尺度上的负载波动,每个节点处理的流程为:
a、检查是否有数据准备已完成的可计算的边界区段;
b、如没有,先向能提供数据的节点发出请求,然后开始计算一个不依赖于其它节点数据的区段,算完后在回到步骤a;
c、如果有,计算该区段,然后将数据发送给需要的相邻节点,并回到步骤a。
该系统的并行计算在大范围的负载平衡时采用调整各节点计算区域大小的方式,具体包括:
1)负载信息经过逐层归约上传至根节点;
2)根节点据此计算形成调度指令回传给各节点;
3)实际的数据传递由节点间的直连通信完成。
各种粒子方法在具体相互作用计算、粒子运动跟踪、约束条件的给定以及数据的在线统计分析上有很大的差别。既有像格子气那样非常简单的布尔运算,也有像高分子聚合物分子动力学模拟那样非常复杂的迭代运算。因此面向这类方法的通用计算机应该以能独立执行程序的通用处理器和具有足够容量的存储器为基本的构造单元,而不应采用处理器阵列中那样的简单处理单元。但同时也要根据粒子方法的共同特点简化单元间的连接方式,以提高并行效率和可扩展性。为实现上述目的,本发明的典型实施措施包括:
a)节点的组织
考虑到粒子方法在区域分解算法下数据的相互依赖关系主要集中在逻辑上相邻的节点间,而且总体上逻辑距离越远数据依赖关系越弱,可以弱化目前分级构造的多处理(计算机)系统中提供的远程访问或通信能力而强化邻近节点间的连接。为此在并行系统的逻辑布置上,节点被组织为可任意扩展的阵列。如图1所示,节点阵列在D维排列时,每个节点分别有2D个相邻的节点。实际上,如果有必要节点也可以按其它能无缝且无重叠地延展的最小重复单元周期性地排列,如三角形排列方式。逻辑上相邻的各节点通过以太网卡、串口的直连实现点对点通信。同时所有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)如果有,计算该区段,然后将数据发送给需要的相邻节点,并回到a。
注意在步骤b中,只要数据准备完成,内部环区的计算可能推进到当前步以后的若干步,越接近区域中心,可能推进的步数就越多,以此可以缓解小尺度上的负载波动。
3.大尺度的动态负载平衡。当上面抑制负载波动的方法不足以防止出现等待时,就需要对一些节点所对应的计算区域进行调整。这可以由各节点将负载量的统计信息通过tree网传递给到某一层次的控制节点,再由后者进行评估和决策。计算区域调整的指令通过tree网再传递给各节点。而实际的数据迁移是在邻近节点间通过mesh网进行的,迁移的数据量只是与原划分不同的边界部分。同时,这种主从模式也适合对少量粒子间长程作用的简化计算。此步骤如同普通的计算步,也可以沿不同空间方向并行地进行,不会冲突。每一计算时间步中,各PE通过mesh网同步地在不同方向进行邻近数据交换,从而避免传统上通过tree网交换可能出现的冲突和延迟(参见图4)。通过先计算各PE对应的物理区域周边的粒子运动而后扩展到中心的顺序,将核心区域的计算推进到后续的时间步,从而自动消除小尺度负载波动(参见图5)。大范围的负载平衡通过各PE对应区域的调整完成。
d)物理的布置
一般为了保持通用性,节点可都采用三维排布,而在运行中通过屏蔽mesh网中的部分连接动态地配置为更简单的一维或二维排布。当各维数上节点数量都很多时,可采用多排机柜布置,连线可分别走机柜的顶部和底部。而在节点数较少或者二维布置时可采用单个或单排机柜布置。
如果尽可能多地使用现有技术,则每个节点都可以是一台完整的网络服务器,有独立的内存、硬盘、I/O接口,但不配置专门的显示终端,各自安装操作系统。因为算例的前后处理也主要是通过并行节点分别处理,而且处理后的最终实用信息量较小,因此在保证各节点的适当规模的配置外,可以不设置硬盘阵列和磁带库等集中海量存储设备。但在控制和若干前端机上可配置较大的硬盘组长期存储一些重要的计算结果。
综上所述,本发明针对粒子方法提出的高性能计算机系统简化设计、提高效率的主要途径是:逻辑上排成多层次的多维阵列的计算节点只与其相邻的同层节点建立高速的直接连接,而通过交换机与对应的上层节点建立连接,并籍此在任意节点间交换少量的控制信息和指令。并行计算采用多层次空间分解,各层的维数均等于或低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或节点组间的拓扑关系相同。通过这种设计和粒子模拟的特点,可以实现:
1)各节点上的计算与通信操作逻辑上能够充分重叠;
2)直接连接方式下的通信基本无需节点中央处理器(CPU)的参与,能大量减少系统中数据交换设备的使用;
3)各节点同步地对不同方向的区域依次计算,避免了通信与内存访问的冲突;同时允许计算由节点对应的区域四周向中心逐步向后续时间步推进,从而消除了小尺度上的负载波动;
4)大范围的负载平衡:通过将负载信息经过逐层归约上传至根节点,据此计算形成调度指令回传给各节点;并由节点间的直连通信完成实际的数据传递。这种设计能在较小的投入下显著提高粒子方法在大规模并行系统中的实际运行速度
5)以本技术方案建造的并行计算系统具有高可扩展性,理论上对粒子算法有完全线性的可扩展性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述只是对本发明的权利要求的若干典型实现方式的说明,并不用于限制本发明。本领域的技术人员凡在本发明的精神和原则之内提出的不同的其它实现方式,如采用不同的通信软硬件和不同的节点配置等,以及所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种面向粒子模型的多层直连集群并行计算系统,其特征在于,该系统由多个节点组成,所述节点在逻辑上排成一层或多层的一维或多维阵列,同层的相邻节点之间直接进行通信连接,不同层的节点通过交换机进行通信连接。
2.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述节点为具有独立的运算、存储与通信功能的逻辑结构单元,包括芯片、芯片组、板卡和独立计算机中的任意一个或任意多个的组合;
所述节点间具有网格状连通的高速网状网络和树状连通的低速树状网络;邻近数据通信在网状网上进行,全局数据通信以及统计或控制信息与指令的交换在树状网上进行。
3.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述阵列为可任意扩展的阵列,或为按任何可重复的排列方式组成的阵列,至少包括按矩形或长方体、三角形或四面体、六边形或十四面体形式形成的阵列;
所述阵列的边缘为开放的,或为与对应边相连的。
4.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述通信连接适用于所述节点间的任何连接方式,至少包括通信总线、交叉开关、网卡与网络连接线、串口或并口与串口或并口连接线、USB口及其连接线连接方式。
5.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述交换机为支持所述通信连接的任何多路输入、单路输出或多路输出的交换设备。
6.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,所述同层的节点被分为若干组,每组分别通过交换机与上层的一个节点实现通信连接。
7.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,该系统的并行计算采用多层次空间分解,各层的维数均等于或低于同层节点阵列的维数,且计算区域间的拓扑关系与相应节点或节点组间的拓扑关系相同。
8.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,该系统的并行计算采用由节点对应的区域四周向中心逐步向后续时间步推进,消除小尺度上的负载波动,每个节点处理的流程为:
a、检查是否有数据准备已完成的可计算的边界区段;
b、如没有,先向能提供数据的节点发出请求,然后开始计算一个不依赖于其它节点数据的区段,算完后在回到步骤a;
c、如果有,计算该区段,然后将数据发送给需要的相邻节点,并回到步骤a。
9.根据权利要求1所述的面向粒子模型的多层直连集群并行计算系统,其特征在于,该系统的并行计算在大范围的负载平衡时采用调整各节点计算区域大小的方式,具体包括:
1)负载信息经过逐层归约上传至根节点;
2)根节点据此计算形成调度指令回传给各节点;
3)实际的数据传递由节点间的直连通信完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100995518A CN101311917B (zh) | 2007-05-24 | 2007-05-24 | 一种面向粒子模型的多层直连集群并行计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100995518A CN101311917B (zh) | 2007-05-24 | 2007-05-24 | 一种面向粒子模型的多层直连集群并行计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101311917A CN101311917A (zh) | 2008-11-26 |
CN101311917B true CN101311917B (zh) | 2011-04-06 |
Family
ID=40100568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100995518A Active CN101311917B (zh) | 2007-05-24 | 2007-05-24 | 一种面向粒子模型的多层直连集群并行计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101311917B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674194B (zh) * | 2009-09-28 | 2011-11-09 | 北京航空航天大学 | 基于日志特征分析的机群负载模型及其建模方法 |
CN102053945B (zh) * | 2009-11-09 | 2012-11-21 | 中国科学院过程工程研究所 | 一种面向多尺度离散模拟的并行计算系统 |
CN101968646A (zh) * | 2010-09-16 | 2011-02-09 | 苏州盖娅智能科技有限公司 | 一种智能集群控制系统及其控制方法 |
CN102761471B (zh) * | 2011-04-29 | 2015-10-07 | 无锡江南计算技术研究所 | 无线计算互连网络及座标空间变换方法 |
CN102681972A (zh) * | 2012-04-28 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种利用GPU加速格子-Boltzmann的方法 |
CN103198049B (zh) * | 2013-03-08 | 2016-05-11 | 中国科学院过程工程研究所 | 一种面向多尺度计算的计算机系统 |
CN103176849B (zh) * | 2013-03-12 | 2016-04-27 | 浙江大学 | 一种基于资源分类的虚拟机集群的部署方法 |
CN105955710B (zh) * | 2016-04-22 | 2019-03-01 | 广州市长程软件有限公司 | 基于树形通讯结构的并行仿真数据处理方法 |
CN106383845A (zh) * | 2016-08-31 | 2017-02-08 | 天津南大通用数据技术股份有限公司 | 一种基于共享存储的mpp数据库数据重分布系统 |
CN106528989B (zh) * | 2016-11-03 | 2019-05-03 | 英特工程仿真技术(大连)有限公司 | 一种分布式并行sph仿真方法 |
WO2019147708A1 (en) * | 2018-01-24 | 2019-08-01 | Alibaba Group Holding Limited | A deep learning accelerator system and methods thereof |
CN110083449B (zh) * | 2019-04-08 | 2020-04-28 | 清华大学 | 动态分配内存和处理器的方法、装置及计算模块 |
CN110581880B (zh) * | 2019-05-29 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 通信链路的建立方法及装置,节点标识确定方法及装置 |
CN113688352B (zh) * | 2021-08-20 | 2023-08-04 | 上海思朗科技有限公司 | 一种数据处理系统、方法及装置 |
CN118612579A (zh) * | 2023-03-06 | 2024-09-06 | 华为技术有限公司 | 一种人工智能计算系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493040A (zh) * | 2001-02-24 | 2004-04-28 | �Ҵ���˾ | 用于计算结构的全局树形网络 |
CN1493038A (zh) * | 2001-02-24 | 2004-04-28 | �Ҵ���˾ | 优化的可扩展网络交换机 |
CN1494688A (zh) * | 2001-02-24 | 2004-05-05 | �Ҵ���˾ | 新颖的大规模并行超级计算机 |
-
2007
- 2007-05-24 CN CN2007100995518A patent/CN101311917B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493040A (zh) * | 2001-02-24 | 2004-04-28 | �Ҵ���˾ | 用于计算结构的全局树形网络 |
CN1493038A (zh) * | 2001-02-24 | 2004-04-28 | �Ҵ���˾ | 优化的可扩展网络交换机 |
CN1494688A (zh) * | 2001-02-24 | 2004-05-05 | �Ҵ���˾ | 新颖的大规模并行超级计算机 |
Also Published As
Publication number | Publication date |
---|---|
CN101311917A (zh) | 2008-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101311917B (zh) | 一种面向粒子模型的多层直连集群并行计算系统 | |
CN102053945B (zh) | 一种面向多尺度离散模拟的并行计算系统 | |
CN101727512B (zh) | 一种基于变分多尺度方法的并行计算系统 | |
Aloise et al. | Column generation algorithms for exact modularity maximization in networks | |
Demmel et al. | Avoiding communication in sparse matrix computations | |
Peterka et al. | Scalable parallel building blocks for custom data analysis | |
CN101499052B (zh) | 一种面向粒子模型的多层直连集群并行计算系统中的节点 | |
CN102243321B (zh) | 一种地震叠前时间偏移的处理方法及系统 | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
CN111639054B (zh) | 一种海洋模式与资料同化的数据耦合方法、系统及介质 | |
Kwon et al. | A disaggregated memory system for deep learning | |
WO2023184835A1 (zh) | 三类顶点度数感知的1.5维度图划分方法及应用 | |
CN101441616B (zh) | 基于寄存器文件的快速数据交换结构及其管理方法 | |
CN100422975C (zh) | 一种面向粒子方法的并行计算系统 | |
Munch et al. | hyper. deal: An efficient, matrix-free finite-element library for high-dimensional partial differential equations | |
CN210466215U (zh) | 用于天基信息港试验床的存算一体装置、主机及系统 | |
Srikanth et al. | The superstrider architecture: Integrating logic and memory towards non-von Neumann computing | |
CN108549582A (zh) | 匹配于高性能计算机结构的组合几何数据结构及并行方法 | |
CN104679966A (zh) | 基于多层次方法和离散粒子群的赋权超图优化划分方法 | |
CN100492371C (zh) | 分布型cad装置 | |
Plimpton et al. | Rendezvous algorithms for large-scale modeling and simulation | |
Venkateswaran et al. | Memory in processor: A novel design paradigm for supercomputing architectures | |
CN105224506B (zh) | 一种用于gpu异构集群的高性能fft方法 | |
Hamacher et al. | Comparison of mesh and hierarchical networks for multiprocessors | |
Shchur et al. | Evolution of time horizons in parallel and grid simulations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |