本发明专利技术一种在NUMA架构上基于并行设备模型的高效使用缓存的量化方法,该方法包括:检查当前堆栈是否存在CPU需要的数;如果当前堆栈不存在CPU需要的数,从机器的物理内存中取要处理的数;如果当前堆栈中存在CPU需要的数,取出该非零数,缓存命中统计变量加1;把找到CPU要处理的数更新到堆栈顶部;访问内存统计次数加1;计算本次程序运行的缓存命中率六大步骤,借助于并行设备模型实现的缓存量化方法可以根据不同形状的稀疏矩阵和不同的划分方式对缓存命中率实现量化研究,它在稀疏矩阵相关操作中可以提高缓存命中率、减少通讯带宽的使用,在高性能计算领域具有广泛地实用价值和应用前景。
【技术实现步骤摘要】
本专利技术涉及一种在NUMA架构上基于并行设备模型的高性能计算平台上高效使用缓存的量化方法,具体涉及一种面向NUMA架构的高性能计算机平台实现稀疏矩阵相关操作高效使用缓存的量化方法,为在NUMA架构实现的稀疏矩阵相关操作高效实用缓存提供实现方法和理论依据,属于高性能计算的并行数值算法领域。
技术介绍
当前一种高性能计算机的体系结构的一种架构为NUMA架构,它的主要特点是结点机上不同处理器都有自己的缓存,不同的处理器共享主机内存;由于处理器访问缓存的延迟与访问机器共享内存的延迟相比低数十倍,如果缓存中的数据利用率不高,内存中的数据就会被重复访问从而增加通讯通道的通讯压力,又由于访问稀疏矩阵的非零元素需要额外访问非零元素的行下标和列下标,从而进一步增加访问内存的延迟,使整机的性能下降。解决这个问题的途径是从算法设计角度能更好的使用缓存,增加缓存中数据的重用性;从而减少处理器访问内存的次数,减少处理器与内存之间数据通讯量,提高通讯带宽的使用效率,达到提高高性能计算机性能的目的。稀疏矩阵相关操作是许多高性能算法的核心算法,如稀疏矩阵与稀疏矩阵相乘操作主要应用包括图收缩算法,基于多源端点的宽度优先搜索算法,递归最短路径算法,多重网格插值/限制算法和解析上下文无关语言算法等。随着稀疏矩阵相关操作应用领域的扩大和计算规模的增加,大部分稀疏矩阵相关操作由多个高性能计算机并行计算完成;而由于稀疏矩阵数据分布稀疏的特点决定稀疏矩阵相关操作在运行过程中能否更好使用缓存对高性能计算机性能影响更加突出,而不同的算法对缓存的利用效率差别很大,能否提供一种方法,通过尽可能少次数运行高性能计算机就可以对该算法利用缓存的效率进行量化评估是当前高性能计算机应用高效节能必不可少的技术,使用该技术在高性能计算领域更好的利用整个计算机系统提供的性能和节约电能具重要的意义。
技术实现思路
1、目的:本专利技术的目的是提供一种在NUMA架构上基于并行设备模型高效实用缓存的量化方法,应用该模型可以为不同算法的缓存命中率提供量化方法,减少为算法获得较高性能而反复运行程序,从达到节约能源的目的。2、为实现上述目的,本专利技术的技术方案是: 本专利技术是在NUMA架构上研究基于并行设备模型的高效使用缓存量化方法,其中缓存模型采用堆栈方式实现,具体方法包括以下步骤: 步骤一.检查当前堆栈是否存在CPU需要的计算数; 步骤二.如果当前堆栈不存在CPU需要的数,从机器的物理内存中取出要处理的数; 步骤三.如果当前堆栈中存在CPU需要的数,取出操作数,且将缓存命中统计次数加I; 步骤四.把找到的CPU要处理的数更新到堆栈顶部; 步骤五.将访问内存统计次数加I; 步骤六.利用步骤三和步骤五得到值计算本次程序运行的缓存命中率。优点及功效:本专利技术是一种在NUMA架构上基于并行设备模型高效使用缓存的量化方法,它与现有技术比,其主要优点是:(I)减少为高效使用缓存而获得较高性能反复在实际机器运行获得适合参数的运行次数,达到节省电能的目的;(2)采用软件管理缓存,对不同形状的稀疏矩阵及不同的缓存尺寸的访问内存次数及缓存命中次数进行准确统计;(3)解决稀疏矩阵相关操作中根据不同形状的稀疏矩阵及不同的划块大小借助于并行设备模型对缓存的命中率实现量化统计。【附图说明】图1 NUMA架构上本专利技术并行设备模型框架图 图2 NUMA架构上本专利技术并行设备模型实现稀疏矩阵相乘操作流程示意图【具体实施方式】 为使本专利技术的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实例对本专利技术再作进一步详细的说明。如图1所示,本专利技术是在NUMA架构上研究基于并行设备模型的高效使用缓存量化方法,其中缓存模型采用堆栈方式实现,具体方法包括以下步骤: 步骤一.检查当前堆栈是否存在CPU需要的计算数; 其中,步骤一所述的主要功能是检查当前堆栈是否存在当前CPU需要的计算数。本专利技术堆栈元素以“行值,列值,非零元素值”三元组的形式保存稀疏矩阵的非零值,其中三元组中行值、列值为区分当前数是否为CPU需要的计算数;该堆栈的容量以高性能计算机硬件缓存容量为依据(值为高性能计算机最末级缓存大小),为提高程序的可移植性,本专利技术将缓存容量保存在高性能计算机指定目录的指定文本文件中,当程序运行时首先到指定的文件中读取该值;缓存采用先进先出的替换方式,实现具有硬件缓存实现的相同功能,与硬件缓存功能不同的是:该软件管理的缓存可以统计访问内存的次数和缓存命中的次数。步骤二.如果当前堆栈不存在CPU需要的数,从机器的物理内存中取要处理的数; 其中,步骤二所述的主要功能是如果当前堆栈缓存中不存在要处理的数,从高性能计算机的物理内存中取要处理的数; 步骤三.如果当前堆栈中存在CPU需要的数,取出操作数,且缓存命中统计次数加I ;其中,步骤三所述的主要功能是如果当前缓存堆栈存在当前CPU要用于计算的数,取出操作数,且缓存命中统计次数加I;当程序执行完成时,该变量的值为本次程序运行缓存命中次数累加值; 步骤四.把找到CPU要处理的数更新到堆栈顶部; 其中,步骤四所述的主要功能为把刚读取的非零元素更新堆栈中;本专利技术的堆栈的元素包含保存堆栈元素的数组、栈顶指针、堆栈容量和当前堆栈的非零元素个数,更新堆栈是把非零所在的行、列及非零元素的值更新到当前堆栈栈顶的位置; 步骤五.访问内存统计次数加I; 其中,步骤五所述的主要功能为访问内存次数统计变量值加I ;当程序执行完成时,该变量的值为本次程序运行访问内存的总次数; 步骤六.计算本次程序运行的缓存命中率。其中,步骤六所述的主要功能为计算本次程序运行的缓存命中率;当程序执行完成时,用缓存命中统计变量值除以访问内存次数统计变量值,得到的结果为该算法运行该例子的缓存命中率;本专利技术的并行设备模型可以在不同形状稀疏矩阵及不同分块大小的情况下,准确统计访问内存的次数和缓存命中的次数,为准确统计缓存命中率提供量化数据; 本专利技术的主要思想是在NUMA架构的高性能计算机的硬件平台上,应用并行设备模型为高效使用缓存实现量化研究提供依据。首先当程序执行CPU要取一个用于计算的数时到堆栈中读取,当堆栈中存在CPU要读取的数,缓存命中次数和内存读取次数均加1,同时把刚取到数更新到堆栈顶部,CPU取到非零数用于计算;之后如果当前堆栈中不存在CPU需要的数,到高性能计算机的物理内存中读取,同时访问内存次数加1,并把刚读取的非零数更新到堆栈顶部,CPU取非零数用于计算;最后当程序执行完成,计算算法的缓存命中率。下面以一实例进行说明,如图2所示,包括以下步骤: 步骤一:检查当前CPU用于计算的非零数在当前堆栈中是否存在;检查的方法首先访问当前堆栈非零数是否为零,如果不为零,代表当前堆栈不为空,依次读取当前堆栈指针所指的数,判断是否为当前CPU需要的数,如果是零进行步骤三,否则查看当前堆栈是否有没访问到的数,如果有继续检查是否是CPU需要的数,如果没有则执行步骤二 ;如果当前堆栈非零数为零,代表当前堆栈不存在CPU需要的数,则执行步骤二。步骤二:当前堆栈中没有CPU需要的计算数,从当前高性能计算机的物理内存中取该数。步骤三:当前堆栈中有CPU需要的计算数,从当前堆栈中取出该非零数,同时本文档来自技高网...
【技术保护点】
一种基于并行设备模型的高效使用缓存的量化方法,该方法是在NUMA架构上研究基于并行设备模型的高效使用缓存量化方法,缓存模型采用堆栈方式实现,其特征在于:该方法包括以下步骤:步骤一.?检查当前堆栈是否存在CPU需要的计算数;步骤二.?如果当前堆栈不存在CPU需要的数,从机器的物理内存中取出要处理的数;步骤三.?如果当前堆栈中存在CPU需要的数,取出操作数,且将缓存命中统计次数加1;步骤四.?把找到的CPU要处理的数更新到堆栈顶部;步骤五.?将访问内存统计次数加1;步骤六.?利用步骤三和步骤五得到的值计算本次程序运行的缓存命中率。
【技术特征摘要】
1.一种基于并行设备模型的高效使用缓存的量化方法,该方法是在NUMA架构上研究基于并行设备模型的高效使用缓存量化方法,缓存模型采用堆栈方式实现,其特征在于:该方法包括以下步骤: 步骤一.检查当前堆栈是否存在CPU需要的计算数; 步骤二.如果当前堆栈不存在CPU需要的数,从机器的物理内存中取出要处理的数; 步骤三.如果当前堆栈中存在CPU需要的数,取出操作数,且将缓存命中统计次数加I; 步骤四.把找到的CPU要处理的数更新到堆栈顶部; 步骤五.将访问内存统计次数加I; 步骤六.利用步骤三和步骤五得到的值计算本次程序运行的缓存命中率。2.根据权利要求1所述的一种基于并行设备模型的高效使用缓存的量化方法,其特征在于:步骤一所述堆栈的元素以“行值,列值,非零元素值”三元组的形式保存稀疏矩阵的非零值,其中三元组中行值、列值为区分当前数是否为CPU需要的计算数;该堆栈的容量以高性能计算机硬件缓存容量为依据,值为高性能计算机最末级缓存大小,为提高程...
【专利技术属性】
技术研发人员:陶袁,任可欣,付军,张运林,陈永胜,丁雪莹,
申请(专利权)人:吉林师范大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。