匹配于高性能计算机体系结构的结构网格数据管理方法_3

文档序号:8258175阅读:来源:国知局
角网格单元的索引值为(32,16)。
[0057]步骤202,针对确定的L层结构网格,生成网格片层次结构。
[0058]网格片层次结构101包含L个网格层102(参见图4),依次编号为第O层、第I层、…、第L-2层和第L-1层。第O层为最粗网格层,包含离散数值模拟计算区域的所有最粗网格单元;第J(1 ^ J ^ L-2)层为中间网格层,包含所有最粗网格单元被加密J次后形成的细网格单元,覆盖第J-1层数值模拟计算区域的局部区域;第L-1层为最细网格层,包含所有最细网格单元。
[0059]图3b给出了管理二维结构网格的网格片层次结构和3个网格层。其中不同灰度的网格为不同层的网格的示意图。
[0060]网格层匹配高性能计算机系统,网格片层次结构的各个网格层各自独立地匹配于高性能计算机系统,网格层之间可以并行计算,也可以串行计算。
[0061]在一些实施例中,以天气预报的数值模拟计算为例,将中国地图结构网格化,中国地图构成最粗网格,在每个最粗网格单元中包括该部分地区的气象数据,构成第O层网格,该结构网格对某些地区的细化率不够,例如需要对河北省的气象数据进行细化,则将该部分(河北省)的网格单元细化(即加密)构成第I层网格,该第I层网格对某些地区的细化率不够,例如需要对北京市的气象数据进行细化,则将该部分(北京市)的网格单元细化构成第2层网格。
[0062]步骤203,针对生成的每个网格层,将其剖分为N个网格区。其中,N为不小于I的正整数。
[0063]网格层102被剖分为互不重叠的N个网格区103,N等于高性能计算机结点数。网格区103在网格层102中具有惟一的逻辑编号,被映射到惟一的高性能计算机结点。依据网格区103对不同高性能计算机结点的映射,网格层分布存储在高性能计算机结点的内存空间。在所有网格层102中,网格区103的总数是一致的。
[0064]图3c给出了 3个网格层被分别剖分为2个网格区的示意图。
[0065]网格区匹配于高性能计算机结点,与结点一一对应。网格层通过网格区到结点的匹配,分布存储到高性能计算机的结点,支持网格区之间的并行计算,其中,网格区之间的数据交换由进程之间的消息传递来完成。
[0066]步骤204,针对生成的每个网格区,将其剖分为M个网格域。其中,M为不小于I的正整数。
[0067]网格区103被剖分为互不重叠的M个网格域104 (参见图4),M等于高性能计算机结点内的CPU个数。网格域104在网格层102中具有惟一的逻辑编号,被映射到高性能计算机结点内惟一的CPU。依据网格域104对不同CPU的映射,网格区被非均匀访存(NUMA)感知地分布共享存储在高性能计算机结点内不同CPU的内存空间。所有网格层102的所有网格区103中,网格域104的总数是一致的。
[0068]图3d给出了 3个网格层的6个网格区被分别剖分为2个网格域的示意图。网格域匹配于高性能计算机结点内CPU,与CPU—一对应。网格区通过网格域到CPU的匹配,分布共享存储到高性能计算机结点内的CPU所属内存中,支持网格域之间的并行计算,其中,网格域之间的数据交换由线程通过NUMA访存来实现。
[0069]步骤205,针对生成的每个网格域,将其剖分为多个网格片。
[0070]网格域104被剖分为互不重叠的P个网格片105 (参见图4),P为正整数,P不小于CPU内总核数。网格片105在网格层102中具有惟一的逻辑编号,被映射到高性能计算机结点内CPU的惟一 CPU核。不同网格片105可以映射到同一个CPU核。依据网格片105对CPU核的映射,网格域104被共享存储在高性能计算机结点内CPU的内存空间。同一网格层102的所有网格域104中,网格片105的总数可以不同,但至少为CPU内总核数。
[0071]图3e给出了 3个网格层的6个网格区的12个网格域被分别剖分为2个网格片的示意图。
[0072]为了在实际应用中提升计算效率,通常需要根据高性能计算机CPU的缓存(Cache)大小和数值计算的访存模式确定网格片105包含的网格单元106总数的上限。一个可选择的办法是,设置CPU的缓存(Cache)容量为网格片中数值计算依赖的所有数据片的内存容量的上限,选取网格片单元总数上限值,使之满足所在CPU分配到的所有网格片上的所有物理量的数据容量总和不超过该上限,选取所得结果的最大值作为所述网格片包含网格单元的总数上限;或者选取不同的网格片单元总数上限值,进行数值模拟计算,选取性能最优的上限值作为所述网格片包括网格单元的总数上限。原则上,网格片包含的网格单元总数不超过该上限。
[0073]网格片匹配高性能计算机结点内CPU的CPU核和CPU核内多级高速缓存(Cache)。网格域通过网格片共享存储到结点内CPU的私有内存空间,支持网格片之间的并行计算,其中,网格片之间的数据交换由线程通过对称多处理结构(SMP)访存来实现。结构网格上的数值计算随着网格片被局部到CPU核,数值计算所需的网格坐标和物理量的访存源自CPU核内Cache,对比于传统的结点内内存空间访存,数据局部性显著提升。
[0074]步骤206,针对生成的每个网格片,根据网格单元的索引,建立对网格单元的索引和管理。
[0075]网格片105包含多个几何连通的网格单元106 (参见图4)。同一网格层102中所有网格单元106具有惟一的逻辑编号,不同网格片105包含的网格单元106总数可以不同。同一网格层102中,两个网格片105是几何相邻的,当且仅当它们各自存在几何相邻的网格单元106。
[0076]网格单元匹配于高性能计算机结点内CPU核的指令级并行(ILP)和长向量加速并行(SIMD)。网格片通过网格单元之间的细粒度并行,支持CPU核内多个功能部件(例如乘加部件)之间的数值计算并行,也支持长向量SIMD数值计算加速。网格单元之间的细粒度并行通过并行访问和处理存储网格坐标和物理量值的数据片的数组元素来实现。
[0077]步骤207,针对所有物理量,在所有网格片生成数据片,由网格片管理。
[0078]数据片107包含网格坐标,物理量定义在网格片105所有网格单元106上的离散值和物理量离散值在网格单元上的位置,其中物理量离散值以多维数组的形式存储(如图4所示)。数据片107根据离散值在网格单元106中的几何位置的不同,可以分为多种类型,包括中心量、结点量、边心量、面心量、散乱量、外表面中心量、外表面结点量、外表面面心量、等等。同一个物理量,它在结构网格所有网格单元106上的离散值随网格片105以数据片107的形式分布存储到结点、分布共享存储到CPU或共享存储到CPU核的内存空间。根据网格片105之间的相邻关系,数据片107还沿网格片105的四周设置影像区,用于存储同一物理量从相邻网格片105对应几何位置复制的数据片107的离散值。
[0079]图3f给出了某个网格片管理的3个数据片的示意图,在本步骤的实施例中,以该网格片具有3个物理量的数据片为例进行介绍,在本发明的其它实施例中该网格片还可以具有对应不同物理量的其它数量的数据片,在本例中的3个物理量分别为温度、速度和压力,对应3个数据片,分别定义于网格单元的几何中心、几
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1