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

文档序号:8258175阅读:529来源:国知局
匹配于高性能计算机体系结构的结构网格数据管理方法
【技术领域】
[0001]本发明涉及并行计算技术领域,特别是关于匹配于高性能计算机体系结构的结构网格数据管理方法。
【背景技术】
[0002]在科学与工程计算领域,结构网格是离散计算区域的一类几何网格,基于结构网格的数值模拟是最普遍存在的一类数值模拟,在实际中得到广泛应用。物理量定义于结构网格之上,用于存储离散数学物理方程的单元数值。管理结构网格和物理量的数据管理方法是数值算法和应用软件设计的基础。数据管理方法能否匹配于计算机体系结构,直接关系到应用软件的计算效率,对高性能计算至关重要。
[0003]当前,高性能计算机的峰值性能已经跨越了每秒千万亿次,体系结构日趋复杂,呈现“六层嵌套并行”和“异构众核加速”的典型特征,其中,前者指“结点间分布存储(DM) —结点内多CPU间分布共享存储(DSM) — CPU内多核间对称多处理共享存储(SMP) — CPU核内多级高速缓存(Cache) — CPU核内多功能部件指令级并行(ILP) — CPU核内长向量加速(SIMD) ”,后者指“异构众核加速”,即每个结点配置图形加速微处理器GPU或众核协处理器MIC,在提升浮点计算速度的同时降低功耗。
[0004]传统地,数值模拟应用软件采用基于多维数组数据剖分的数据管理方法(简称“多维数组数据管理方法”)。具体地:将物理量定义为与结构网格大小对应的多维数组;将多维数组剖分为多个子数组,子数组在各进程间分布存储以适应进程之间的并行;子数组元素在进程内共享存储以适应线程之间的并行,从而实现进程和线程的两层嵌套并行计算。然而,这种多维数组数据管理方法和相应的两级嵌套并行计算很难适应“六层嵌套并行”和“异构众核加速”的复杂体系结构,具体表现在如下五个方面:
[0005](I)多维数组数据剖分后形成的子数组存储于结点内,支持结点间多CPU和CPU内多核的两层线程并行。但是,这种子数组忽视了结点内多CPU间DSM可能导致的非均匀访存(NUMA)而引起的远程访存开销,随着CPU个数的增长或CPU内核数的增长,该类开销很可能主导多线程并行计算的访存开销,成为制约结点计算效率的瓶颈,使得结点内线程数不可扩展。
[0006](2)多维数组数据剖分后形成的子数组存储于结点内,支持CPU内多核的线程并行。由于子数组无法感知多CPU核之间的SMP访存模式,很可能导致访存冲突和Cache —致性冲突,显著降低CPU核的计算效率。
[0007](3)多维数组数据剖分后形成的子数组存储于结点内,内存容量通常比较大,远远超出CPU核内Cache容量,从而导致内存页的缺失和Cache命中率的下降,显著降低CPU核的计算效率。
[0008](4)多维数组数据剖分后形成的子数组存储于结点内,缺少对结构网格和数值计算的语义感知,无法在网格单元的层次上组织更大粒度的指令级并行或向量化,从而不利于CPU核内多功能部件的指令级并行度的挖掘和向量加速部件的有效利用。
[0009](5)异构众核加速要求更高的访存局部性和更细粒度的并行度,从而,多维数组数据剖分后形成的子数组存储于结点内,上述四点不足同样不适应异构众核加速对数据结构的要求。

【发明内容】

[0010]为了解决现有技术中的远程访问开销高、CPU核计算效率低等问题,本发明面向基于结构网格的高性能数值模拟,提出匹配于高性能计算机体系结构的结构网格数据管理方法,大幅提升结构网格和物理量的存储与访问的数据局部性,支持应用软件面向高性能计算机复杂体系结构展开浮点性能优化,大幅提升计算效率。
[0011]本发明实施例提供了匹配于高性能计算机体系结构的结构网格数据管理方法,包括,
[0012]根据数值模拟对象确定结构网格和所述结构网格上的物理量,并将结构网格建模为由多个网格层构成的网格片层次结构;
[0013]将所述网格层剖分为互不重叠的若干个子网格,称这些子网格为网格区,为每个所述网格区赋予惟一的逻辑编号,将每个所述网格区映射到惟一的高性能计算机结点,将所述网格区分布存储在高性能计算机结点的内存空间;每个网格层剖分所得网格区数等于高性能计算机结点数;
[0014]将网格区剖分为互不重叠的若干个子网格,称这些子网格为网格域,为每个网格域在网格层中分配惟一的逻辑编号,将其映射到高性能计算机结点内惟一的CPU,所述网格域被分布共享存储在高性能计算机结点内不同CPU的内存空间;每个网格区剖分所得网格域数等于高性能计算机结点内CPU数;
[0015]将网格域剖分为互不重叠的若干个子网格,称这些子网格为网格片,为每个网格片在网格层中分配惟一的逻辑编号,将其映射到高性能计算机结点内CPU的惟一 CPU核,依据所述网格片对CPU核的映射,网格片被共享存储在高性能计算机结点内CPU的内存空间;每个网格域剖分所得网格片数不少于高性能计算机结点内每CPU核数;
[0016]在每个网格片上,为每个物理量在该网格片上分配唯一的内存空间,称该内存空间为数据片,用于储存该物理量定义在该网格片所有网格单元上的离散值。
[0017]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的一个进一步的方面,所述网格片中包括至少一个数据片,所述数据片包括网格单元的坐标,以及物理量定义在该网格片所有网格单元上的离散值;还包括所述离散值在所述网格单元中的几何位置。
[0018]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的再一个进一步的方面,所述离散值根据所述几何位置不同,分为多种类型,包括但不限于,中心量、结点量、边心量、面心量、散乱量、外表面中心量、外表面结点量、外表面面心量。
[0019]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的另一个进一步的方面,不同物理量对应不同的数据片。
[0020]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的另一个进一步的方面,所述数据片还沿网格片的四周设置影像区,用于存储同一物理量从相邻网格片对应几何位置复制的物理量的离散值。
[0021]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的另一个进一步的方面,所述网格片包括网格单元的总数上限可设置为,设置CPU的缓存(Cache)容量为网格片中数值计算依赖的所有数据片的内存容量的上限,选取网格片单元总数上限值,使之满足所在CPU分配到的所有网格片上的所有物理量的数据容量总和不超过该上限,选取所得结果的最大值作为所述网格片包含网格单元的总数上限。
[0022]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的另一个进一步的方面,所述网格片包括网格单元的总数上限可设置为,选取不同的网格片单元总数上限值,进行数值模拟计算,选取性能最优的上限值作为所述网格片包括网格单元的总数上限。
[0023]根据本发明实施例所述的匹配于高性能计算机体系结构的结构网格数据管理方法的另一个进一步的方面,所述结构网格上的物理量随着网格片被分布储存于高性能计算机结点间、分布共享储存于高性能计算机结点内CPU间、共享存储于高性能计
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1