CN111881327A - 基于顶点重排序与优先缓存的大数据处理能力测试方法 - Google Patents
基于顶点重排序与优先缓存的大数据处理能力测试方法 Download PDFInfo
- Publication number
- CN111881327A CN111881327A CN202010748396.3A CN202010748396A CN111881327A CN 111881327 A CN111881327 A CN 111881327A CN 202010748396 A CN202010748396 A CN 202010748396A CN 111881327 A CN111881327 A CN 111881327A
- Authority
- CN
- China
- Prior art keywords
- vertex
- son
- graph
- degree
- key
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于顶点重排序与优先缓存的大数据处理能力测试方法,目的是减少访存次数,最小化通信路径,避免无效访存提高超级计算机大数据处理能力测试速度。技术方案包括生成图G、构建存储图G的邻接矩阵A、对图G的顶点排序并对关键顶点进行优先缓存、利用排序后的顶点集合和优先缓存的关键顶点对图G进行BFS搜索,计算图测试性能的评价值五步。采用本发明可以提高节点间边关系的命中率,减少无效访存次数,最大限度避免不必要的访存,加快对图的遍历,提高超级计算机大数据处理能力测试速度,且可降低功耗。
Description
技术领域
本发明涉及超级计算机大数据处理能力测试方法,尤指一种基于顶点重排序与优先缓存的大数据处理能力测试方法。
背景技术
图结构是大数据应用中最重要的数据结构之一,在众多领域中得到广泛的应用,如社交媒体、生物信息学、天体物理学、人工智能、数据挖掘等等。这些应用的共同特点是数据量大和结构复杂,往往可以达到数万亿顶点和边,导致在数据存储和计算力方面具有更高的需求。超级计算机主要用于数值计算,大多数HPC基准测试都是以计算力作为衡量标准,如Top 500采用的HPL;在数据密集型应用广泛兴起的大数据时代,Graph 500作为Top500的重要补充,是测试超级计算机计算能力的新的基准测试程序。Graph 500以每秒遍历图中边的数量TEPS(Traversed Edge Per Second)来衡量超级计算机的大数据处理能力。
Graph500基准测试程序由图生成、图建立、BFS搜索与验证、结果输出四部分组成,如图1所示。
(1)图生成:程序通过Kronecker图生成器生成一系列边元组信息,图的规模由用户输入的参数SCALE、edegefactor确定,其中,SCALE指示图的顶点规模,edegefactor指示每个顶点连接边的平均数量,N=2SCALE表示输入图的顶点数目,M=edgefactor*N表示输入图的边数目。
(2)图建立:此过程将图生成阶段生成的顶点和边信息转化成任意表示图的数据结构,标准graph500中采用图的邻接矩阵来存储图信息。
(3)BFS(Breadth-First Search宽度优先搜索)搜索与验证:随机生成一个根顶点,并以此为源点对整个图进行BFS搜索,记录每个顶点的前驱顶点,输出生成树作为搜索结果,记录graph500有效计时时间t,并验证搜索得到的BFS生成树是否与原图信息匹配。该过程将循环64次,且分别对每次BFS搜索部分计时。
(4)结果输出:Graph500用每秒遍历的边数TEPS来衡量程序的执行性能,TEPS=生成图的边数M除以BFS搜索时间t,即,64次循环遍历分别计算TEPS=M/t,然后取64个TEPS的平均值作为Graph500最终测试和排名的依据。
图G=(V,E)包含顶点集合V和边集合E,通常使用vi表示图中编号为i的顶点,使用顶点对(vi,vj)表示顶点i到顶点j的边。(vi,vj)∈E,0≤i≤NV-1,0≤j≤NV-1,NV为V中顶点个数。G通常用邻接矩阵A表示,A中的第i行Ai为邻接表。如图2所示,形如图2(a)的图G可用图2(b)的邻接矩阵A表示,A中第i行第j列的元素Aij表示边(vi,vj)。通常使用1表示存在这样的边,0表示不存在这样的边。
综上所述,Graph500中BFS搜索中需要一次对V中所有顶点依次遍历,考查V中所有顶点与根结点之间的关系。因此,访存带宽是影响Graph500的性能的关键因素。并且,Graph500的衡量依据中主要将BFS搜索时间作为衡量时间,并未限定BFS之前的图数据准备。Graph500主要应用于超级计算机系统对大数据的计算能力的基准测试,超级计算机系统通常由计算结点、存储结点、互连网络组成,其中,计算结点和存储结点通过交换机由互连网络连接组成超级计算机系统,结点间的交互信息均通过交换机转发(2个相互通信的结点间需要通过的交换机个数称为节点间路径的跳数,跳数越多则路径越长),转发消息经互连网络达到目标结点,通常情况下,存储结点的存储空间会均匀映射至计算结点,即多个计算结点可以共享一个存储结点,但是计算结点访存非映射存储空间(即计算结点访存的不是本计算结点对应的存储空间)则需要互连通信,Graph500测试性能主要受限于内存大小和访存带宽,带宽越高,性能表现也越好。因此,若2个需交互的计算结点共享存储空间,则可以减小通信路径,提高访存速度。
目前超级计算机大数据处理能力测试方法对顶点的访问是对图G的无序随机全局访问,图3为无序随机全局访存示意图。
图3中方框表示超级计算机系统上的存储结点,方框中的数字表示存储的图顶点的度数,连线上的序号标识实际访问的顺序,数字前后的“…”表示路径的复杂程度和需要经过的网络跳数,“…”越多表示通信路径越复杂,需要经过的跳数越多,采用图3所示无序随机全局访存模式完成Graph500搜索遍历时,假定顶点vi度数为1,即只有1条边,对关联顶点进行访问的方法是随机访问G中除vi以外的所有图顶点,确认这些图顶点与vi是否存在边关联。如图3所示,图中的矩形框表示高性能结点(可以是计算结点也可以是存储结点),途中圆圈表示图的顶点,图的顶点及相关信息存储在高性能结点上,图3中,首先访问离vi最近的结点(即度数为1的矩形所存储的位置,即该顶点所在的计算结点),令为v1,经访问确认v1与vi之间不存在边关联;然后随机访问余下的结点,如度数为100的矩形所存储的计算结点,令为v2,经访问确认v2与vi之间也不存在边关联;直到最后才访问到度数为1000的矩形所存储的计算结点,令为v3,发现v3与vi之间存在边关联;找到v3后,顶点vi的访存判断应当是可以结束的,但无序随机全局访存的Graph500仍然需要对图G中除V1、V2、V3之外的所有其它顶点(这些顶点与vi不存在边关联)继续进行访存判断;这种无序随机全局访问方法简单易于实现,但是,无序随机全局访存属于盲目的访存搜索模式,效率低,并且存在大量的无效的访存。
专利“基于顶点重排序的超级计算机大数据处理能力测试方法”(专利申请号:201811600894.2)中考虑了高度数顶点被访问概率高的特点并采用顶点重排序,相比图3所示无序随机全局访问方法大大提高了带宽利用率,但是专利201811600894.2中对高度数顶点的访问仍属于对图G的全局访问,仍然存在被访问结点零散分布在全局存储空间,全局存储空间跨度大,通信路径长的问题。
图4是“基于顶点重排序的超级计算机大数据处理能力测试方法”进行Graph500搜索遍历的示意图。图4与图3的基本元素表示相同,不同之处在于,图4在图3无序访存的基础上对图中顶点度数进行了降序排序,vi访存判断是首先从度数最高的图顶点开始访存判定,由于度数高的顶点与其它顶点存在边关联的概率高,所以,第一次访存就直接命中,同时,由于vi的度数为1,只有1条边,命中后顶点vi的访存判断就直接结束了,不需要再进行与图G中除V1、V2、V3之外的其它顶点的关联判定。这种有序全局访存方式较图3所示无序随机全局访存有了很大的进步,性能提升明显,但是,该方法仍然属于全局访存,第一个命中的顶点的存储位置可能离vi物理分布上是相距最远的,逻辑上也不相邻,导致访存路径仍然较长,性能提升幅度仍然受限。
因此,如何在访存带宽恒定时最小化通信路径、最大化访存带宽利用率,提升Graph500测试性能成为本领域技术人员亟需解决的技术难题。
发明内容
本发明要解决的技术问题在于:利用BFS遍历中度数高的顶点与根节点之间存在边关系的概率高的特点,提出一种基于顶点重排序与优先缓存的大数据处理能力测试方法,减少访存次数,最小化通信路径,最大限度避免无效访存,相比Graph500使得对图的遍历加速,提高超级计算机大数据处理能力测试速度。
具体技术方案为:
第一步、图生成。采用Kronecker图生成器生成随机图结构G=(V,E),V为顶点集合,其中包含NV个顶点,NV为正整数;E为边集合;E中包含NE条边,NE为正整数;NV和NE均为正整数。
第二步、构建存储图G的邻接矩阵A。Aij=0表示顶点i与顶点j之间没有边,Aij=1表示顶点i与顶点j之间有边,i和j均为正整数且0≤i≤NV-1,0≤j≤NV-1;
第三步、基于顶点度数对V进行顶点排序并对关键顶点进行优先缓存,方法是:
3.1.遍历V中每个顶点,记录每个顶点的度数,得到顶点度数集合D,D中第i个元素deg(vi)表示顶点vi的度数,即有deg(vi)个顶点与顶点vi之间有边;
3.2.对V中的顶点排序:采用归并排序算法对D中的元素进行降序排序,得到排序后的顶点度数二元组集合D2,中第i个元素<vi,deg(vi)>表示顶点vi的度数为deg(vi),且满足将V中的顶点根据D2进行排序,得到排序后的顶点集合Deg,Deg中第一个元素v0对应顶点度数最大的顶点,第二个元素v1对应顶点度数仅小于或等于度数最大的顶点,度数相同的顶点并列重复列出,对应顶点度数最小的顶点;
3.3.对关键顶点进行优先缓存:利用滑动窗口技术对关键顶点优先缓存,其核心思想为利用顶点vi的度数deg(vi)和集合D2、集合Deg为D中每个顶点依据滑动窗口大小缓存一组关键顶点至vi所在高性能计算结点的缓冲区(如cache、buffer等),以方便访问,具体方法如下:
3.3.1.定义临时集合变量Dtmp=D;
3.3.2.任选Dtmp中的任意一个顶点,令为vi;
3.3.3.将顶点vi从Dtmp中删除,即,Dtmp=Dtmp-{vi};
3.3.4.查询D2,获取顶点vi的度数deg(vi);
3.3.5.采用滑动窗口技术选取顶点vi的关键顶点并将vi的关键顶点缓存在vi所在的缓冲区,vi的关键顶点指顶点度数为大于等于p倍deg(vi)的顶点,系数p为正整数,系数p的确定原则为:简单易操作,代价小;工程经验以及实验验证综合分析确认,不同的测试平台以及不同的超级计算机系统,滑动窗口大小可能不同,需实验确定。实验证明,当p为2时性价比较好,既能将绝大多数vi的关键顶点缓存在vi所在的缓冲区,减少访存路径,又能使大多数高性能计算机缓冲空间不溢出。因此vi的滑动窗口大小优选为deg(vi)的2倍时。具体步骤如下:
3.3.5.1.依据集合Deg查询vi的度数deg(vi),并从集合Deg获取度数小于等于p倍deg(vi)的第一个顶点度数,令为deg(x);此步的目的是在Deg中找到度数截止点,即确定关键顶点集合中度数最小的顶点x,因为关键顶点集合中度数最小顶点的度数不一定恰好等于2倍deg(vi),而Deg中的度数由高到低,找到deg(x)后也就说明Deg中deg(x)之前的度数会大于等于2倍deg(vi)。
3.3.5.2.从集合D2中选择度数大于等于deg(x)的顶点,将D2中度数大于等于deg(x)的顶点根据度数的大小由高到低依次加入到vi的关键顶点集合Pkey(vi)中,形成非递增有序集合。
3.3.5.3.采用scatter命令将Pkey(vi)中vi的关键顶点分布至vi所在高性能计算节点的缓存区,使得vi的所有关键顶点优先缓存在vi所在高性能计算节点的缓冲空间;操作系统访存的路径顺序通常为寄存器、缓存区、内存、磁盘,由于寄存器资源数量少且昂贵,并且寄存器不易操作,因此,本步骤将vi的关键顶点缓存至vi所在的缓冲区,而不是缓存至vi所在的寄存器,使得既满足时间的要求,又满足空间的要求。
第四步、利用排序后的顶点集合Deg和优先缓存的关键顶点对图G进行BFS搜索,具体方法如下:
4.1数据结构定义,具体方法如下:
4.1.1.定义未被访问的顶点集合Vns=V;
4.1.2.定义BFS搜索的顶点度数中间集合D-tmp=D2;
4.1.3.定义排序后的顶点度数中间集合Deg-tmp=Deg;
4.1.8.在V中随机选定一个顶点vr作为树根节点,即源顶点,r=0,1,…,NV;
4.1.10.将顶点vr加入已被访问过的顶点集合中,Vs=Vs+{Vr};
4.1.11.将顶点vr加入当前顶点集合中,即Cur=Cur+{Vr};
4.2循环遍历,一次循环输出一棵生成树,循环64次,输出64棵生成树,具体方法如下:
4.2.1.定义循环变量k=0;
4.2.2.获取超级计算机系统时刻t1;
4.2.3.若k<64,转4.3;否则,转第五步;
4.3同层遍历,利用度数高的顶点存在边关联的概率也高的特点和优先缓存的关键顶点,遍历搜索Cur中节点的子节点,具体方法如下:
4.3.3.在Cur中任取一个顶点vi,记为当前根节点vcs,cs=0,1,…,NV;
4.3.4.从Cur中删除vcs,即Cur=Cur-{vcs};
4.3.7.从未被访问的顶点集合Vns中删除当前根节点vcs,即Vns=Vns-{vcs};
4.3.8.定义关联边数m=0;
4.3.9.若m<deg(vcs),执行4.3.10,否则,已经全数找到当前顶点的所有边,转4.3.16检查vcs的相邻节点,即Cur中的其它元素顶点;
4.3.10.依据关键顶点优先遍历原则,首先从Pkey(vcs)中选择第一个顶点,令为vj,即当前顶点对应的关键顶点集合中度数最高的顶点;
4.3.11.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.12,否则,转4.3.14;
4.3.12.从集合Pkey(vcs)中删除已有边关联的顶点,即Pkey(vcs)=Pkey(vcs)-{vj};
4.3.14.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.15.更新当前层的子节点集合,即,L-Son=L-Son+{vj};
4.3.16.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即Sonr=Sonr+{Soni};
4.3.17.m=m+1;
4.3.18.将顶点vj从Vns中删除,即Vns=Vns-{vj};
4.3.19.若转4.3.9,否则,关键顶点集合已空,表示对关键顶点集合搜索完毕,判定vcs的从关键顶点集合中找到的关联边数m是否等于deg(vcs),若等于,表示vcs的所有边均已访问,退出当前树根顶点遍历,转4.3.30;否则,vcs还有边没有访问到,转4.3.20,执行顶点重排序后全局访存以遍历除Pkey(vcs)中的元素之外的与vcs相连的顶点(共有deg(vcs)-m的元素个数个这样的顶点);
4.3.20.从Deg-tmp中选择第一个顶点,令为vj,即目前度数最高的顶点;
4.3.21.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.22,否则,转4.3.24;
4.3.22.从集合Deg-tmp中删除已有边关联的顶点,即Deg-tmp=Deg-tmp-{vj};
4.3.24.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.25.更新当前层的子节点集合,即,L-Son=L-Son+{vj};
4.3.26.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即Sonr=Sonr+{Soni};
4.3.27.m=m+1;
4.3.28.将顶点vj从Vns中删除,即Vns=Vns-{vj};
4.3.30.从当前顶点集合Cur中删除前根节点vcs,即Cur=Cur-{vcs};
4.3.31.转4.3.1;
4.4层间遍历,具体方法如下:
4.4.2.将当前层子节点集合L-Son赋值给当前顶点集合,即Cur=L-Son;
4.4.3.获取系统时刻t2;
4.4.4.记录第k次启发式遍历搜索的时间t=t2-t1;
4.5输出树根节点集合Sonr,Sonr即为第k轮循环以顶点vr作为树根节点的BFS的生成树rootk-r;
转4.2.2;
第五步、计算图测试性能的评价值,即64棵生成树的BFS遍历测试性能值平均值获得测试结果并输出。TEPS值越高表面超级计算机的大规模图处理能力越强,Graph500排名也越靠前,同时也反映了该超级计算机越适合与大数据处理。
采用本发明可以达到以下技术效果:
1.本发明第三步基于顶点度数对顶点进行排序并对关键顶点进行优先缓存,作为BFS预处理,既最大限度避免BFS的无效访存,提升BFS有效遍历的命中率,又缩短了访存通信路径,优化了BFS遍历效率;
2.本发明第四步利用排序后的顶点集合和优先缓存的关键顶点对图G进行BFS搜索,提高了节点间边关系的命中率,减少了无效的访存次数,最大限度避免不必要的访存,加快对图的遍历,提高超级计算机大数据处理能力测试速度。
3.本发明第四步基于顶点重排序并缓存可以仅让关键顶点缓冲存储块处于正常服务状态,非关键顶点存储块长期处于休眠状态,最大限度起到了低功耗节能的效果。
附图说明
图1为Graph500测试基准程序流程图;
图2为图的邻接矩阵表示示意图;图2(a)为一个有向无权图;图2(b)为图2(a)的邻接矩阵。
图3为背景技术所述无序随机全局访存示意图。
图4为背景技术所述“基于顶点重排序的超级计算机大数据处理能力测试方法”进行Graph500搜索遍历的有序全局访存示意图。
图5是本发明总体流程图。
图6是本发明第三步和第四步进行Graph500搜索遍历的有序缓冲访存示意图。
具体实施方式:
如图5所示,本发明包括以下步骤:
第一步、图生成。采用Kronecker图生成器生成随机图结构G=(V,E),V为顶点集合,其中包含NV个顶点,NV为正整数;E为边集合;E中包含NE条边,NE为正整数;NV和NE均为正整数。
第二步、构建存储图G的邻接矩阵A。Aij=0表示顶点i与顶点j之间没有边,Aij=1表示顶点i与顶点j之间有边,i和j均为正整数且0≤i≤NV-1,0≤j≤NV-1;
第三步、基于顶点度数对V进行顶点排序并对关键顶点进行优先缓存,具体方法如下:
3.1.遍历V中每个顶点,记录每个顶点的度数,得到顶点度数集合D,D中第i个元素deg(vi)表示顶点vi的度数,即有deg(vi)个顶点与顶点vi之间有边;
3.2.对V中的顶点排序:采用归并排序算法对D中的元素进行降序排序,得到排序后的顶点度数二元组集合D2,D2中第i个元素<vi,deg(vi)>表示顶点vi的度数为deg(vi),且满足将V中的顶点根据D2进行排序,得到排序后的顶点集合Deg,Deg中第一个元素v0对应顶点度数最大的顶点,第二个元素v1对应顶点度数仅小于或等于度数最大的顶点,度数相同的顶点并列重复列出,对应顶点度数最小的顶点;
3.3.对关键顶点进行优先缓存:如图6所示,利用滑动窗口技术对关键顶点优先缓存,具体方法如下:
3.3.6.定义临时集合变量Dtmp=D;
3.3.7.任选Dtmp中的任意一个顶点,令为vi;
3.3.8.将顶点vi从Dtmp中删除,即,Dtmp=Dtmp-{vi};
3.3.9.查询D2,获取顶点vi的度数deg(vi);
3.3.10.采用滑动窗口技术选取顶点vi的关键顶点并将vi的关键顶点缓存在vi所在的缓冲区,vi的关键顶点指顶点度数为大于等于p倍deg(vi)的顶点,系数p为正整数,vi的滑动窗口大小优选为deg(vi)的2倍。具体步骤如下:
3.3.5.5.依据集合Deg查询vi的度数deg(vi),并从集合Deg获取度数小于等于p倍deg(vi)的第一个顶点度数,令为deg(x);
3.3.5.6.从集合D2中选择度数大于等于deg(x)的顶点,将D2中度数大于等于deg(x)的顶点根据度数的大小由高到低依次加入到vi的关键顶点集合Pkey(vi)中,形成非递增有序集合。
3.3.5.7.采用scatter命令将Pkey(vi)中vi的关键顶点分布至vi所在高性能计算节点的缓存区,使得vi的所有关键顶点优先缓存在vi所在高性能计算节点的缓冲空间;如图6vi的缓冲空间所示。
第四步、利用排序后的顶点集合Deg和优先缓存的关键顶点对图G进行BFS搜索,具体方法如下:
4.1数据结构定义,具体方法如下:
4.1.1.定义未被访问的顶点集合Vns=V;
4.1.2.定义BFS搜索的顶点度数中间集合D-tmp=D2;
4.1.3.定义排序后的顶点度数中间集合Deg-tmp=Deg;
4.1.8.在V中随机选定一个顶点vr作为树根节点,即源顶点,r=0,1,…,NV;
4.1.10.将顶点vr加入已被访问过的顶点集合中,Vs=Vs+{Vr};
4.1.11.将顶点vr加入当前顶点集合中,即Cur=Cur+{Vr};
4.2循环遍历,一次循环输出一棵生成树,循环64次,输出64棵生成树,具体方法如下:
4.2.1.定义循环变量k=0;
4.2.2.获取超级计算机系统时刻t1;
4.2.3.若k<64,转4.3;否则,转第五步;
4.3同层遍历,利用度数高的顶点存在边关联的概率也高的特点,遍历搜索Cur中节点的子节点,具体方法如下:
4.3.3.在Cur中任取一个顶点vi,记为当前根节点vcs,cs=0,1,…,NV;
4.3.4.从Cur中删除vcs,即Cur=Cur-{vcs};
4.3.7.从未被访问的顶点集合Vns中删除当前根节点vcs,即Vns=Vns-{vcs};
4.3.8.定义关联边数m=0;
4.3.9.若m<deg(vcs),执行4.3.10,否则,已经全数找到当前根节点vcs的所有边,转4.3.16检查vcs的相邻节点,即Cur中的其它元素顶点;
4.3.10.从Pkey(vcs)中选择第一个顶点(图6中即为度数为1000的顶点),令为vj,即当前顶点对应的关键顶点集合中度数最高的顶点;
4.3.11.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.12,否则,转4.3.14;
4.3.12.从集合Pkey(vcs)中删除已有边关联的顶点,即Pkey(vcs)=Pkey(vcs)-{vj};
4.3.14.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.15.更新当前层的子节点集合,即,L-Son=L-Son+{vj};
4.3.16.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即Sonr=Sonr+{Soni};
4.3.17.m=m+1;
4.3.18.将顶点vj从Vns中删除,即Vns=Vns-{vj};
4.3.19.若转4.3.9,否则,关键顶点集合已空,表示对关键顶点集合搜索完毕,判定vcs的从关键顶点集合中找到的关联边数m是否等于deg(vcs),若等于,表示vcs的所有边均已访问,退出当前树根顶点遍历,转4.3.30;否则,vcs还有边没有访问到,转4.3.20,执行图4所示的顶点重排序后全局访存以遍历除Pkey(vcs)中的元素之外的与vcs相连的顶点(共有deg(vcs)-m的元素个数个这样的顶点);
4.3.20.从Deg-tmp中选择第一个顶点,令为vj,即目前度数最高的顶点;
4.3.21.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.22,否则,转4.3.24;
4.3.22.从集合Deg-tmp中删除已有边关联的顶点,即Deg-tmp=Deg-tmp-{vj};
4.3.24.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.25.更新当前层的子节点集合,即,L-Son=L-Son+{vj};
4.3.26.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即Sonr=Sonr+{Soni};
4.3.27.m=m+1;
4.3.28.将顶点vj从Vns中删除,即Vns=Vns-{vj};
4.3.30.从当前顶点集合Cur中删除前根节点vcs,即Cur=Cur-{vcs};
4.3.31.转4.3.1;
4.4层间遍历,具体方法如下:
4.4.6.将当前层子节点集合L-Son赋值给当前顶点集合,即Cur=L-Son;
4.4.7.获取系统时刻t2;
4.4.8.记录第k次启发式遍历搜索的时间t=t2-t1;
4.5输出树根节点集合Sonr,Sonr即为第k轮循环以顶点vr作为树根节点的BFS的生成树rootk-r;
转4.2.2;
第五步、计算图测试性能的评价值,即64棵生成树的BFS遍历测试性能值平均值获得测试结果并输出。TEPS值越高表面超级计算机的大规模图处理能力越强,Graph500排名也越靠前,同时也反映了该超级计算机越适合与大数据处理。
图6是本发明第三步对关键顶点进行优先缓存和第四步进行Graph500搜索遍历时有序缓冲访存示意图。图6中各结点的表示方式与图3、图4相同,增加了虚线表示非实际访问路径。度数为1的图顶点初始存储的高性能计算结点与vi的通信路径相对简单,网络跳数少;度数为100的图顶点初始存储的高性能计算结点与vi的通信路径复杂,网络跳数变多;度数为1000的图顶点初始存储的高性能计算结点与vi的通信路径更复杂,网络跳数更多;导致路径简单先被搜索遍历,但是由于度数低,存在边关联的概率也低,受限访问的很有可能是无效访问,度数高的顶点,由于通信路径复杂,网络跳数多,很可能最后才被遍历,但由于度数高,存在边关联的概率也高,因此,这种模式下,需要多次尝试后才能成功。
本发明的第三步待顶点排序后,为当前根顶点vi选择关键顶点并形成关键顶点集合Pkey(vi)非递增有序集合,将关键顶点集合Pkey(vi)通过Gather操作优先缓冲至顶点vi所在高性能计算结点的缓冲空间(如图6中vi的缓冲空间)并形成非递增有序关键顶点集合Pkey(vi),此时搜索遍历vi顶点与图中其他顶点的关联关系时,首先从缓冲空间中取出第一个(即,度数最大的(图6为度数为1000的))顶点,判断与vi的边关联,若还有边没有遍历,仍需继续遍历,依次从缓冲空间中取出剩下的顶点(如图6中度数为100的)判定,直至关键顶点集合Pkey(vi)为空,通常情形,关键顶点集合判定完毕,当前遍历应该可以结束了;若出现极端特殊情形(即在关键顶点集合中找到的关联边数小于vi顶点的度数),当前遍历仍然没有结束,图6模式对这种极端特殊情形的处理退化为图4的遍历模式。
Claims (5)
1.一种基于顶点重排序与优先缓存的大数据处理能力测试方法,包括生成图G、构建存储图G的邻接矩阵A、对图G的顶点排序、对图G进行BFS搜索,计算图测试性能的评价值五步;其中
第一步、图生成:采用Kronecker图生成器生成随机图结构G=(V,E),V为顶点集合,其中包含NV个顶点,NV为正整数;E为边集合;E中包含NE条边,NE为正整数;NV和NE均为正整数;
第二步、构建存储图G的邻接矩阵A,Aij=0表示顶点i与顶点j之间没有边,Aij=1表示顶点i与顶点j之间有边,i和j均为正整数且0≤i≤NV-1,0≤j≤NV-1;
其特征在于:
第三步、基于顶点度数对图G中的V进行顶点排序并对关键顶点进行优先缓存,方法是:
3.1.遍历V中每个顶点,记录每个顶点的度数,得到顶点度数集合D,D中第i个元素deg(vi)表示顶点vi的度数,即有deg(vi)个顶点与顶点vi之间有边;
3.2.对V中的顶点排序:对D中的元素进行降序排序,得到排序后的顶点度数二元组集合D2,D2中第i个元素<vi,deg(vi)>表示顶点vi的度数为deg(vi),且满足将V中的顶点根据D2进行排序,得到排序后的顶点集合Deg,Deg中第一个元素v0对应顶点度数最大的顶点,第二个元素v1对应顶点度数仅小于或等于度数最大的顶点,度数相同的顶点并列重复列出,对应顶点度数最小的顶点;
3.3.对关键顶点进行优先缓存:利用滑动窗口技术对关键顶点优先缓存,方法如下:
3.3.1.定义临时集合变量Dtmp=D;
3.3.2.任选Dtmp中的任意一个顶点,令为vi;
3.3.3.将顶点vi从Dtmp中删除,即,Dtmp=Dtmp-{vi};
3.3.4.查询D2,获取顶点vi的度数deg(vi);
3.3.5.采用滑动窗口技术选取顶点vi的关键顶点并将vi的关键顶点缓存在vi所在的缓冲区,vi的关键顶点指顶点度数为大于等于p倍deg(vi)的顶点,系数p为正整数,具体步骤如下:
3.3.5.1.依据集合Deg查询vi的度数deg(vi),并从集合Deg获取度数小于等于p倍deg(vi)的第一个顶点度数,令为deg(x);
3.3.5.2.从集合D2中选择度数大于等于deg(x)的顶点,将D2中度数大于等于deg(x)的顶点根据度数的大小由高到低依次加入到vi的关键顶点集合Pkey(vi)中,形成非递增有序集合;
3.3.5.3.采用scatter命令将Pkey(vi)中vi的关键顶点分布至vi所在高性能计算节点的缓存区,使得vi的所有关键顶点优先缓存在vi所在高性能计算节点的缓冲空间;判断Dtmp是否为空,若转第四步,否则,转3.3.2;
第四步、利用排序后的顶点集合Deg和优先缓存的关键顶点对图G进行BFS搜索,方法为:
4.1数据结构定义,方法如下:
4.1.1.定义未被访问的顶点集合Vns=V;
4.1.2.定义BFS搜索的顶点度数中间集合D-tmp=D2;
4.1.3.定义排序后的顶点度数中间集合Deg-tmp=Deg;
4.1.8.在V中随机选定一个顶点vr作为树根节点,即源顶点,r=0,1,…,NV;
4.1.10.将顶点vr加入已被访问过的顶点集合中,Vs=Vs+{Vr};
4.1.11.将顶点vr加入当前顶点集合中,即Cur=Cur+{Vr};
4.2循环遍历,一次循环输出一棵生成树,循环64次,输出64棵生成树,具体方法如下:
4.2.1.定义循环变量k=0;
4.2.2.获取系统时刻t1;
4.2.3.若k<64,转4.3;否则,转第五步;
4.3同层遍历,利用度数高的顶点存在边关联的概率也高的特点,遍历搜索Cur中节点的子节点,具体方法如下:
4.3.3.在Cur中任取一个顶点vi,记为当前根节点vcs,cs=0,1,…,NV;
4.3.4.从Cur中删除vcs,即Cur=Cur-{vcs};
4.3.7.从未被访问的顶点集合Vns中删除当前根节点vcs,即Vns=Vns-{vcs};
4.3.8.定义关联边数m=0;
4.3.9.若m<deg(vcs),执行4.3.10,否则,已经找到当前根节点vcs的所有边,转4.3.16,检查vcs的相邻节点;
4.3.10.依据关键顶点优先遍历原则,从Pkey(vcs)中选择第一个顶点,令为vj,即当前顶点对应的关键顶点集合中度数最高的顶点;
4.3.11.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.12,否则,转4.3.14;
4.3.12.从集合Pkey(vcs)中删除已有边关联的顶点,即Pkey(vcs)=Pkey(vcs)-{vj};
4.3.13.若vj∈Vns,将顶点vj从Vns中删除,即Vns=Vns-{vj},直接转4.3.14;
4.3.14.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.15.更新当前层的子节点集合,即令L-Son=L-Son+{vj};
4.3.16.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即令Sonr=Sonr+{Soni};
4.3.17.m=m+1;
4.3.18.将顶点vj从Vns中删除,即令Vns=Vns-{vj};
4.3.20.从Deg-tmp中选择第一个顶点,令为vj,即目前度数最高的顶点;
4.3.21.查询邻接矩阵A,若Aij=1,表示顶点vi与顶点vj之间有边,执行4.3.22,否则,转4.3.24;
4.3.22.从集合Deg-tmp中删除已有边关联的顶点,即Deg-tmp=Deg-tmp-{vj};
4.3.23.若vj∈Vns,将顶点vj从Vns中删除,即Vns=Vns-{vj},直接转4.3.24;
4.3.24.更新当前根节点vcs,即顶点vi的子节点集合,即,Soni=Soni+{vj};
4.3.25.更新当前层的子节点集合,即令L-Son=L-Son+{vj};
4.3.26.将当前根节点的子节点集合以集合元素的形式加入Sonr中,即Sonr=Sonr+{Soni};
4.3.27.令m=m+1;
4.3.28.将顶点vj从Vns中删除,即Vns=Vns-{vj};
4.3.30.从当前顶点集合Cur中删除前根节点vcs,即Cur=Cur-{vcs};
4.3.31.转4.3.1;
4.4层间遍历,具体方法如下:
4.4.2.将当前层子节点集合L-Son赋值给当前顶点集合,即Cur=L-Son;
4.4.3.获取超级计算机系统时刻t2;
4.4.4.记录第k次启发式遍历搜索的时间t=t2-t1;
4.4.输出树根节点集合Sonr,Sonr即为第k轮循环以顶点vr作为树根节点的BFS的生成树rootk-r;
4.6.转4.2.2;
2.如权利要求1所述的基于顶点重排序与优先缓存的大数据处理能力测试方法,其特征在于所述高性能计算结点的缓冲区包括cache、buffer。
3.如权利要求1所述的基于顶点重排序与优先缓存的大数据处理能力测试方法,其特征在于3.2步所述对D中的元素进行降序排序采用归并排序算法。
4.如权利要求1所述的基于顶点重排序与优先缓存的大数据处理能力测试方法,其特征在于3.3.5步所述系数p的确定原则为:简单易操作,代价小;工程经验以及实验验证综合分析确认。
5.如权利要求3所述的基于顶点重排序与优先缓存的大数据处理能力测试方法,其特征在于所述p为2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748396.3A CN111881327A (zh) | 2020-07-30 | 2020-07-30 | 基于顶点重排序与优先缓存的大数据处理能力测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748396.3A CN111881327A (zh) | 2020-07-30 | 2020-07-30 | 基于顶点重排序与优先缓存的大数据处理能力测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111881327A true CN111881327A (zh) | 2020-11-03 |
Family
ID=73201182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010748396.3A Pending CN111881327A (zh) | 2020-07-30 | 2020-07-30 | 基于顶点重排序与优先缓存的大数据处理能力测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881327A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883241A (zh) * | 2021-03-19 | 2021-06-01 | 中国人民解放军国防科技大学 | 基于连通分量生成优化的超级计算机基准测试加速方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137320A (zh) * | 2015-08-12 | 2015-12-09 | 安庆师范学院 | 基于测试模式重排序的分组测试向量之间的兼容性压缩方法 |
US20170337270A1 (en) * | 2016-05-17 | 2017-11-23 | Jivin, Llc | Systems and methods for providing online feedback to artists and competition between artists via a web-based system and methods of using the same |
CN109656798A (zh) * | 2018-12-26 | 2019-04-19 | 中国人民解放军国防科技大学 | 基于顶点重排序的超级计算机大数据处理能力测试方法 |
-
2020
- 2020-07-30 CN CN202010748396.3A patent/CN111881327A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137320A (zh) * | 2015-08-12 | 2015-12-09 | 安庆师范学院 | 基于测试模式重排序的分组测试向量之间的兼容性压缩方法 |
US20170337270A1 (en) * | 2016-05-17 | 2017-11-23 | Jivin, Llc | Systems and methods for providing online feedback to artists and competition between artists via a web-based system and methods of using the same |
CN109656798A (zh) * | 2018-12-26 | 2019-04-19 | 中国人民解放军国防科技大学 | 基于顶点重排序的超级计算机大数据处理能力测试方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883241A (zh) * | 2021-03-19 | 2021-06-01 | 中国人民解放军国防科技大学 | 基于连通分量生成优化的超级计算机基准测试加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656798B (zh) | 基于顶点重排序的超级计算机大数据处理能力测试方法 | |
CN112165405B (zh) | 基于网络拓扑结构的超级计算机大数据处理能力测试方法 | |
CN112883241B (zh) | 基于连通分量生成优化的超级计算机基准测试加速方法 | |
CN110659284A (zh) | 基于树图结构的区块定序方法及系统、数据处理终端 | |
CN112036573B (zh) | 一种基于中等规模有噪声量子计算机的量子位交互拓扑结构及其映射方法 | |
Jaiyeoba et al. | Graphtinker: A high performance data structure for dynamic graph processing | |
CN105069290A (zh) | 一种面向寄递数据的并行化关键节点发现方法 | |
Hong et al. | Efficient R-tree based indexing scheme for server-centric cloud storage system | |
CN114567634A (zh) | 面向后e级图计算的方法、系统、存储介质及电子设备 | |
CN111881327A (zh) | 基于顶点重排序与优先缓存的大数据处理能力测试方法 | |
Zheng et al. | Path merging based betweenness centrality algorithm in delay tolerant networks | |
CN109684185B (zh) | 基于启发式遍历的超级计算机大数据处理能力测试方法 | |
Belayneh et al. | MessageFusion: On-path message coalescing for energy efficient and scalable graph analytics | |
Mirsadeghi et al. | PTRAM: A parallel topology-and routing-aware mapping framework for large-scale HPC systems | |
Huang et al. | A grid and density based fast spatial clustering algorithm | |
Li et al. | Optimal data allocation for graph processing in processing-in-memory systems | |
Gayathri et al. | ex-FTCD: A novel mapreduce model for distributed multi source shortest path problem | |
CN113010748A (zh) | 一种基于亲和聚类的分布式大图划分方法 | |
Herley et al. | Implementing shared memory on mesh-connected computers and on the fat-tree | |
JP5781045B2 (ja) | オブジェクト検索装置およびその方法 | |
An et al. | Optimal algorithms for graphs and images on a shared memory mesh | |
Yansong et al. | Optimal design of hadoop intrusion detection system based on neural network boosting algorithms | |
CN114661977A (zh) | 基于签名网络的极大平衡社区及其搜索方法 | |
Dai et al. | APoX: Accelerate Graph-Based Deep Point Cloud Analysis via Adaptive Graph Construction | |
Lin et al. | Research on communication mechanism optimization based on distributed graph computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201103 |