CN113296954A - 一种基于图论与组合优化的大规模有向图平衡划分方法 - Google Patents

一种基于图论与组合优化的大规模有向图平衡划分方法 Download PDF

Info

Publication number
CN113296954A
CN113296954A CN202110642998.5A CN202110642998A CN113296954A CN 113296954 A CN113296954 A CN 113296954A CN 202110642998 A CN202110642998 A CN 202110642998A CN 113296954 A CN113296954 A CN 113296954A
Authority
CN
China
Prior art keywords
graph
directed graph
vertex
blocks
weight
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
Application number
CN202110642998.5A
Other languages
English (en)
Inventor
陈坚强
李宪越
刘杨
庞宇飞
齐龙
向李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202110642998.5A priority Critical patent/CN113296954A/zh
Publication of CN113296954A publication Critical patent/CN113296954A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明具体涉及一种基于图论与组合优化的大规模有向图平衡划分方法。包括步骤:步骤1:将给定的网格转化为有向图;步骤2:迭代收缩,对待剖分有向图进行反复压缩,得到一个有向图序列;步骤3:对有向图序列中的最后一个图划分得到分块,再使该分块达到局部最优;步骤4:将得到的分块反向映射,获得待剖分有向图的分块;步骤5:递归划分,将规定的分块数分解为若干个整数的乘积,利用步骤2‑4将待剖分有向图划分为指定数目分块,分解待剖分有向图为小图,然后反复划分待剖分图,直到获得规定的分块数;步骤6:将有向图的分块还原为网格的分块。本发明的网格划分方法稳定性良好,不平衡率更优,可处理一些METIS不能处理的大规模网格图。

Description

一种基于图论与组合优化的大规模有向图平衡划分方法
技术领域
本发明属于超大规模网格预处理和超大规模计算的负载平衡设计领域,具体涉及一种基于图论与组合优化的大规模有向图平衡划分方法。
背景技术
网格是数值计算的重要组成部分,网格的好坏直接影响着计算的速度与收敛性。随着计算精度要求的提高,网格的规模也随之增大,必须利用并行计算。网格预处理就是对给定的网格进行划分,并尽可能达到负载平衡,使并行计算达到更好的效果。然而对于大规模网格,现有的网格划分方法难以达到很好的负载平衡。
图划分是网格预处理的一个重要方法。图划分是一个典型的组合优化和图论问题给定一个图G和一个参数k,这一问题旨在将G的顶点集划分为k个分块,以及优化给定的目标函数。如果限制所有分块顶点的数量(或总权值),那么这个问题称为平衡图划分问题(BGP)。BGP是图划分问题的一个标准特例,在网格划分领域有大量的应用。
Andreev和H. Rac×ke证明了BGP对于2分区是NP难题,并且没有常数逼近算法。尤其BPG对于树和网格,不允许采用常数逼近算法,除非NP = P。此外,研究者们还广泛关注其他具有应用背景的图划分问题,例如超图划分问题,平衡连通图划分问题,路径划分问题等。最近,Buluc等人综述了图划分问题的算法设计和应用。
虽然没有针对求解BGP的常数逼近算法,但由于BGP应用广泛,已经开发出许多启发式算法用以求解BGP。首先,通过使用局部搜索策略,Kernighan和Lin 提出了一种针对2-BGP的有效启发式算法,该算法的时间复杂度为O(n2 log n)。而后,Fiduccia和Mattheyses提出了一种线性启发式算法。谱方法也是求解BGP的一种重要方法。该方法通过利用给定图的邻接矩阵或拉普拉斯矩阵的特征值和特征向量,将给定图分为两部分。目前有很多基于谱方法的图划分算法,可以用于迭代求解2-BGP或一般的k-BGP。
另一方面,随着问题规模的增加和计算能力的提高,需要划分的图的大小越来越大,图的顶点可以达到一亿甚至更多。因此,使用以前的算法来解决大规模图划分问题是不现实的。在此基础上,研究人员提出了多级方法和流算法来解决这一问题。多级方法主要是先将原图通过多次收缩转化为小规模的新图,然后将新图划分为k个分块,最后反向映射,并修改收缩图的分区为原图的一个分区。
目前流行的图划分软件和软件包METIS和KaHIP就是基于这一方法设计的。流算法主要是通过一个特定的势函数,将图的每个顶点依次分配到合适的分块。流算法的优点是速度快,省内存,非常适合解决大规模的图划分问题。图划分软件FENNEL就是基于流算法设计的。
尽管在图划分方面已经取得了大量的理论成果,开发出了许多算法,但这一领域仍然还有一些问题未得到解决。第一个问题是关于有向图的划分问题。以往的研究大多是关于无向图的划分,但对于实际应用中的一些问题,例如多学科耦合问题,解决这一问题需要有相应的有向图模型。此外,由于无向图是一种特殊的有向图,对有向图的研究会将图划分这个科研课题补充完整。因此,对有向图划分问题的研究具有非常重大的理论与现实意义。第二个问题是关于目标函数的。以往研究人员通常分别考虑点权和边权的目标函数,即在一些点权限制下,对一些边权目标函数进行优化。很少有对两个权函数相结合的目标函数进行研究。基于这两点,我们研究了将两个权函数相结合的有向图问题。
发明内容
针对上述存在的问题,本发明提供一种基于图论与组合优化的大规模有向图平衡划分方法,应用于数值计算领域实现对网格的划分。本发明基于网格划分的问题,将两个权函数相结合,设计一个基于多级策略和递归划分方法的算法,进行模拟实验,提出了一种新的基于图论与组合优化的大规模有向图平衡划分方法,进而实现对网格的划分。实验结果证实了该方法优异的稳定性,也证明这一方法在网格的划分上与METIS具有同样良好的性能,且在划分的不平衡率上优于METIS,可以处理一些METIS不能返回可行结果的超大规模网格。
为了实现上述目的,本发明所采用的技术方案如下:
一种基于图论与组合优化的大规模有向图平衡划分方法,具体的包括以下步骤:
步骤1:网格转化,将给定的网格转化为待剖分有向图;
步骤2:迭代收缩,利用随机最大权匹配对待剖分有向图进行反复压缩,并得到一个有向图序列;
步骤3:对步骤2得到的有向图序列中的最后一个图进行划分,得到压缩图的分块,再通过调整使该分块达到局部最优;
步骤4:将步骤3得到的分块进行反向映射,从而获得待剖分有向图的分块;
步骤5:递归划分,将规定的分块数分解为若干个整数的乘积,并将划分过程分解为若干阶段;然后在每个阶段中,利用步骤2-4将待剖分有向图划分为指定数目的分块,分解待剖分有向图为小图,并将每个小图作为新的待剖分图;反复划分待剖分图,直到获得规定的分块数。
步骤6:将步骤5得到的待剖分有向图的分块还原为网格的分块。
优选地,所述步骤1的具体操作步骤包括:将给定网格的每个小区域看为一个有向图的顶点,该顶点权重为该小区域的计算时间;若两个小区域a与b之间存在公共边,则在有向图中加入一条从区域a对应顶点到区域b对应顶点的有向边,该有向边权重为区域a到区域b的通信时间,同时加入一条从区域b对应顶点到区域a对应顶点的有向边,该有向边权重为区域b到区域a的通信时间;这样就得到了由网格转化成的待剖分有向图D0,网格中的每个小区域对应着待剖分有向图D0中的每个顶点。
优选地,所述步骤2的具体操作步骤包括:
步骤21:使用待剖分有向图D0构造一个有向图序列(D0,D1,…,Di,… Dm),让图的顶点数逐个减少,对当前的任意图Di,计算一个极大匹配Mi,并将其收缩得到下一个图Di+1,当出现以下情况之一时,这一收缩阶段结束:
(1)当前图的顶点数小于c×k,
其中:c为收缩参数,k为分区的分块数;
(2)|V(Di+1)|/|V(Di)|大于80%,即|Mi|≤20%|V(Di)|,
其中:i表示第i个任意图Di的下标,V(Di)为有向图Di的顶点集合,V(Di+1)为有向图Di+1的顶点集合,|V(Di)|表示图Di的顶点个数,|Mi|表示极大匹配Mi中包含的弧数。
优选地,步骤21的具体操作步骤包括:
步骤211:随机最大权匹配,图的顶点按随机顺序选择,对于所选择的顶点u,如果u已经和其他顶点匹配,或者其内邻的顶点都已经匹配,我们就选择下一个顶点;否则,将u与未匹配的内邻顶点v进行匹配,其中包含弧(v,u)的最大权,即:
v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点},u是目前选择的顶点,w(v,u)是弧(v,u)的权重,公式v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点}得到的v是所有与u相邻且尚未匹配的顶点中对应弧权最大的顶点,当所有的顶点都被选择时得到一个最大匹配;当所有的顶点都被选择时得到一个最大匹配;
步骤212:随机最大比例匹配,新目标函数需要使用这一匹配,当u有未匹配的内邻点时,随机最大比例匹配和随机最大权匹配的过程才会有不同,取弧权值与顶点权值的最大比值,即:
v= argmax{(w(v,u))/(w(v))| v是u的一个尚未匹配的内邻点};
步骤213:比较分别利用步骤211的随机最大权匹配与步骤212的随机最大比例匹配进行图压缩后的效果,包括不平衡率和最大负荷,选择效果好的匹配方法对图进行压缩。
优选地,所述步骤3的具体操作步骤为:
步骤31:使用最佳拟合递减算法,即BFD算法,利用贪婪策略,快速得到初始划分;
步骤32:通过局部搜索,通过迭代将负荷最大的分块的一个顶点移动到另一个分块,以减小最大负荷。
优选地,所述步骤31的具体步骤包括:
步骤311:设置对于任意j=1,2,…,k,各分块有P j 的初始值为空集;
步骤312:对顶点进行重新排序,减少顶点权值;
步骤313:将当前顶点v放在分块j中,那么分块j的负荷将变为:
Figure 135952DEST_PATH_IMAGE001
其中,
Figure 210350DEST_PATH_IMAGE002
表示分块j的新负荷,L j 表示分块j原来的负荷,w(v)表示顶点v的权重,w(v,u)是弧(u,v)的权重,
Figure 521245DEST_PATH_IMAGE004
表示顶点v的入邻集,Pi表示分块i中包含的所有顶点;
另一分块i的负荷将变为:
Figure 322979DEST_PATH_IMAGE005
Figure 668510DEST_PATH_IMAGE006
表示分块i的新负荷,L i 表示分块i原来的负荷,
Figure 146765DEST_PATH_IMAGE007
表示顶点v的出邻集,Pi表示分块i中包含的所有顶点;
步骤314:将v放入分块j中可以使最大负荷变为最小的分块,当所有顶点都被放到分块中时,得到初始分区P。
优选地,所述步骤32的具体步骤包括:
步骤321:选择负荷最大的分块Pj,对于Pj中的任意顶点v,计算每一分块Pi(1≤i≤k)的弧内权
Figure 944956DEST_PATH_IMAGE008
和弧外权
Figure 550381DEST_PATH_IMAGE009
Figure 484839DEST_PATH_IMAGE010
其中,
Figure 632530DEST_PATH_IMAGE011
表示顶点v的入邻集,
Figure 918018DEST_PATH_IMAGE012
表示顶点v的出邻集,
Figure 61555DEST_PATH_IMAGE013
为分块Pj(1≤j≤k)的弧外权,
Figure 116098DEST_PATH_IMAGE014
为分块Pj(1≤j≤k)的弧内权;
步骤322:将顶点v从Pj分块移动到Pi分块,则Pi和Pj以外的分块的负荷不会改变,新的负荷
Figure 201735DEST_PATH_IMAGE015
Figure 974519DEST_PATH_IMAGE016
将变为:
Figure 656167DEST_PATH_IMAGE017
其中,L j 表示分块j原来的负荷,L i 表示分块i原来的负荷,w(v)表示顶点v的权重;
步骤323:对于每一对(v,Pi),计算交换后分区的最大负荷以及负荷总和,如果交换后分区的最大负荷小于当前分区的最大负荷,则选择最大负荷小的分区,并重复此操作;否则,如果存在交换后分区的最大负荷等于当前分区的最大负荷,但负荷总和小于当前分区的负荷总和,选择负荷总和小的分区,并重复此操作操作;如果当前分区达到局部最优,则完成修改过程。
优选地,所述步骤4具体为:利用原图和压缩图顶点之间的对应关系,将Dm的分块反向映射至D0的分块,从而得到待剖分图所需要的分块。
优选地,所述步骤5的具体步骤包括:
步骤51:将规定的分块数k分解为若干个小于等于k的整数的乘积,即k = k1k2…kt,其中每个ki≤20,这里i=1,2,…,t;
步骤52:重复使用步骤2到步骤4所述的方法将待剖分有向图划分为包含k1-个分区P;
步骤53:基于步骤52得到的分区P,将待剖分有向图分解成k1个子图,子图中的弧权重与待剖分图中的弧权重相同,为保证待剖分有向图和子图的划分目标值相同,对每个顶点v的权重做如下修改:
Figure 830796DEST_PATH_IMAGE018
Figure 323220DEST_PATH_IMAGE020
表示顶点v在子图中的权重,
Figure 583300DEST_PATH_IMAGE021
表示顶点v的入邻集,
Figure 68639DEST_PATH_IMAGE022
表示顶点v在待剖分有向图中的权重,P[u] 表示顶点u在分区P上所属的部分,
Figure 97775DEST_PATH_IMAGE023
表示顶点v在分区P上所属的部分;
步骤54:将步骤53中得到的每个子图划分为k2个分块,并将得到的分块进行分解,共可得到k1k2个新子图;对对得到的新子图共进行t-2次分解,将共有k1k2··kt−1个子图,通过得到每个子图的kt划分,获得初始有向图的k1k2··kt= k个分块的划分;
步骤55:如果k是某整数b的幂,即k = bt,其中b≤20,则将k分成b×b×…×b。
优选地,所述步骤6的具体步骤为:步骤1将对于给定的网格转化成了待剖分有向图,其中网格中的每个小区域对应着有向图的每个顶点;对于步骤5得到的关于待剖分有向图的分块,将分块中每个部分包含的顶点变化为其对应的网格小区域,得到给定网格的分块。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于图论与组合优化的大规模有向图平衡划分方法,采用有向图平衡划分的方法实现对数值计算领域网格的划分。基于新的目标函数和图划分问题的新案例,研究了大规模有向图的划分问题,设计了一个基于多级策略和递归划分方法的算法,进而划分网格,并进行了大量模拟实验。实验结果证实了该方法对网格的划分具有良好的稳定性,也表明这一方法与METIS具有同样良好的性能。并且该方法在不平衡率上优于METIS,可以处理一些METIS不能返回可行结果的超大规模网格。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1为本发明大规模有向图平衡划分方法的流程示意图;
图2为本发明大规模有向图平衡划分的两种最大匹配的不平衡率;
图3为本发明大规模有向图平衡划分的生成的随机最大比例匹配与随机最大权匹配的最大负载之比(高于基线的条形图表示随机最大比例匹配的性能低于随机最大权匹配);
图4为本发明大规模有向图平衡划分方法的所有例子中最好的、平均的和最差的不平衡率;
图5为发明大规模有向图平衡划分的最佳和最差最大负载和运行时间与相对平均结果的比率(基线是相对平均值);
图6为发明大规模有向图平衡划分的不同收缩参数下的不平衡率;
图7为发明大规模有向图平衡划分的其他收缩参数最大负荷与参数90最大负荷之比;
图8为本发明大规模有向图平衡划分方法的其他收缩参数运行时间与参数90运行时间之比;
图9为本发明大规模有向图平衡划分方法不平衡率的实验结果;
图10为本发明大规模有向图平衡划分方法的最大负载与METIS算法的最大负载之比;
图11为本发明大规模有向图平衡划分方法与METIS的运行时间之比。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明针对有向图的划分以及目标函数的问题,研究了将两个权函数相结合的有向图问题,提出了一种新的基于图论与组合优化的大规模有向图平衡划分方法。
本发明的核心思路是:首先将给定的网格转化为有向图,并根据该有向图构造成一个初始有向图序列,利用贪婪策略,将初始有向图序列进行初始划分及修改,快速得到良好的初始划分,再通过修改使初始划分达到局部最优,然后将下级的分区向上级反向映射,最后使用递归划分,将子图进一步细分,提高性能。
参照附图1-11及附表1-4所示,一种基于图论与组合优化的大规模有向图平衡划分方法,将给定的网格转化为有向图,然后将有向图划分成规定的分块数,最后将有向图的分块还原为网格的分块,实现对负载平衡的超大规模网格划分,具体的包括以下步骤:
步骤1:网格转化,将给定的网格转化为待剖分有向图,具体步骤包括:将给定网格的每个小区域看为一个有向图的顶点,该顶点权重为该小区域的计算时间;若两个小区域a与b之间存在公共边,则在有向图中加入一条从区域a对应顶点到区域b对应顶点的有向边,该有向边权重为区域a到区域b的通信时间,同时加入一条从区域b对应顶点到区域a对应顶点的有向边,该有向边权重为区域b到区域a的通信时间;这样就得到了由网格转化成的待剖分有向图D0,网格中的每个小区域对应着待剖分有向图D0中的每个顶点。
步骤2:迭代收缩,利用随机最大权匹配对待剖分有向图进行反复压缩,并得到一个有向图序列,具体步骤包括:
步骤21:使用待剖分有向图D0构造一个有向图序列(D0,D1,…,Di,… Dm),让图的顶点数逐个减少,对当前的任意图Di,计算一个极大匹配Mi,并将其收缩得到下一个图Di+1,当出现以下情况之一时,这一收缩阶段结束:
(1)当前图的顶点数小于c×k,
其中:c为收缩参数,k为分区的分块数;
(2)|V(Di+1)|/|V(Di)|大于80%,即|Mi|≤20%|V(Di)|。其中:i表示第i个任意图Di的下标,V(Di)为有向图Di的顶点集合,V(Di+1)为有向图Di+1的顶点集合,|V(Di)|表示图Di的顶点个数,|Mi|表示极大匹配Mi中包含的弧数。
步骤21的具体步骤包括:
步骤211:随机最大权匹配,图的顶点按随机顺序选择,对于所选择的顶点u,如果u已经和其他顶点匹配,或者其内邻的顶点都已经匹配,我们就选择下一个顶点;否则,将u与未匹配的内邻顶点v进行匹配,其中包含弧(v,u)的最大权,即:
v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点},u是目前选择的顶点,w(v,u)是弧(v,u)的权重,公式v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点}得到的v是所有与u相邻且尚未匹配的顶点中对应弧权最大的顶点,当所有的顶点都被选择时得到一个最大匹配;
步骤212:随机最大比例匹配,新目标函数需要使用这一匹配,当u有未匹配的内邻点时,随机最大比例匹配和随机最大权匹配的过程才会有不同,取弧权值与顶点权值的最大比值,即:
v= argmax{(w(v,u))/(w(v))| v是u的一个尚未匹配的内邻点}。
步骤213:比较分别利用步骤211的随机最大权匹配与步骤212的随机最大比例匹配进行图压缩后的效果,包括不平衡率和最大负荷,选择效果好的匹配方法对图进行压缩。
步骤3:对步骤2得到的有向图序列中的最后一个图进行划分,得到压缩图的分块,再通过调整使该分块达到局部最优。具体步骤包括:
步骤31:使用最佳拟合递减算法,即BFD算法,利用贪婪策略,快速得到初始划分;具体操作步骤包括:
步骤311:设置对于任意j=1,2,…,k,各分块有P j 的初始值为空集;
步骤312:对顶点进行重新排序,减少顶点权值;
步骤313:将当前顶点v放在分块j中,那么分块j的负荷将变为:
Figure 525214DEST_PATH_IMAGE024
其中,
Figure 7011DEST_PATH_IMAGE002
表示分块j的新负荷,L j 表示分块j原来的负荷,w(v)表示顶点v的权重,w(v,u)是弧(u,v)的权重,
Figure 296041DEST_PATH_IMAGE026
表示顶点v的入邻集,Pi表示分块i中包含的所有顶点;
另一分块i的负荷将变为:
Figure 179683DEST_PATH_IMAGE005
Figure 294137DEST_PATH_IMAGE006
表示分块i的新负荷,L i 表示分块i原来的负荷,
Figure 263230DEST_PATH_IMAGE027
表示顶点v的出邻集,Pi表示分块i中包含的所有顶点;
步骤314:将v放入分块j中可以使最大负荷变为最小的分块,当所有顶点都被放到分块中时,得到初始分区P。
步骤32:通过局部搜索,通过迭代将负荷最大的分块的一个顶点移动到另一个分块,以减小最大负荷,具体步骤包括:
步骤321:选择负荷最大的分块Pj,对于Pj中的任意顶点v,计算每一分块Pi(1≤i≤k)的弧内权
Figure 90372DEST_PATH_IMAGE008
和弧外权
Figure 94100DEST_PATH_IMAGE009
Figure 863342DEST_PATH_IMAGE010
其中,
Figure 319731DEST_PATH_IMAGE011
表示顶点v的入邻集,
Figure 950563DEST_PATH_IMAGE012
表示顶点v的出邻集,
Figure 543219DEST_PATH_IMAGE013
为分块Pj(1≤j≤k)的弧外权,
Figure 984827DEST_PATH_IMAGE014
为分块Pj(1≤j≤k)的弧内权;
步骤322:将顶点v从Pj分块移动到Pi分块,则Pi和Pj以外的分块的负荷不会改变,新的负荷
Figure 928512DEST_PATH_IMAGE015
Figure 363035DEST_PATH_IMAGE016
将变为:
Figure 75777DEST_PATH_IMAGE017
其中,L j 表示分块j原来的负荷,L i 表示分块i原来的负荷,w(v)表示顶点v的权重;
步骤323:对于每一对(v,Pi),计算交换后分区的最大负荷以及负荷总和,如果交换后分区的最大负荷小于当前分区的最大负荷,则选择最大负荷小的分区,并重复此操作;否则,如果存在交换后分区的最大负荷等于当前分区的最大负荷,但负荷总和小于当前分区的负荷总和,选择负荷总和小的分区,并重复此操作操作;如果当前分区达到局部最优,则完成修改过程。
步骤4:将步骤3得到的分块进行反向映射,从而获得待剖分有向图的分块,其具体步骤为:利用原图和压缩图顶点之间的对应关系,将Dm的分块反向映射至D0的分块,从而得到待剖分图所需要的分块。
步骤5:递归划分,将规定的分块数分解为若干个整数的乘积,并将划分过程分解为若干阶段;然后在每个阶段中,利用步骤2-4将待剖分有向图划分为指定数目的分块,分解待剖分有向图为小图,并将每个小图作为新的待剖分图;反复划分待剖分图,直到获得规定的分块数。其具体操作步骤包括:
步骤51:将规定的分块数k分解为若干个小于等于k的整数的乘积,即k = k1k2…kt,其中每个ki≤20,这里i=1,2,…,t;
步骤52:重复使用步骤2到步骤4所述的方法将待剖分有向图划分为包含k1-个分区P;
步骤53:基于步骤52得到的分区P,将待剖分有向图分解成k1个子图,子图中的弧权重与待剖分图中的弧权重相同,为保证待剖分有向图和子图的划分目标值相同,对每个顶点v的权重做如下修改:
Figure 921242DEST_PATH_IMAGE018
Figure 352223DEST_PATH_IMAGE029
表示顶点v在子图中的权重,
Figure 324858DEST_PATH_IMAGE021
表示顶点v的入邻集,
Figure 157685DEST_PATH_IMAGE030
表示顶点v在待剖分有向图中的权重,P[u] 表示顶点u在分区P上所属的部分,
Figure 672587DEST_PATH_IMAGE031
表示顶点v在分区P上所属的部分;
步骤54:将步骤53中得到的每个子图划分为k2个分块,并将得到的分块进行分解,共可得到k1k2个新子图;对得到的新子图共进行t-2次分解,将共有k1k2··kt−1个子图,通过得到每个子图的kt划分,获得初始有向图的k1k2··kt= k个分块的划分;
步骤55:如果k是某整数b的幂,即k = bt,其中b≤20,则将k分成b×b×…×b。
步骤6:步骤1将对于给定的网格转化成了待剖分有向图,其中网格中的每个小区域对应着有向图的每个顶点;对于步骤5得到的关于待剖分有向图的分块,将分块中每个部分包含的顶点变化为其对应的网格小区域,得到给定网格的分块。
实施例
1、算法设计及与METIS对比
实验主要分为两个部分:算法设计和与METIS进行比较。
(1)算法设计
为对本发明所述基于图论与组合优化的大规模有向图平衡划分方法进行具体设计,将测试两种随机匹配方法的效果,验证随机方法的稳定性,并确定收缩参数c和递归划分策略。
实验中使用的网格包括理论模型和实用模型两类。用四边形网格作为理论模型的代表,其对应的有向图为经典的网格图。
测试三种尺寸的网格图,如表1所示,Grid-1含有100万个顶点和399.6万个弧,Grid-2含有1089万个顶点和4354.68万个弧,Grid-3含有1亿个顶点和3.996亿个弧,每个顶点的权值为120-150之间的任意值,每个弧的权值约为其端点权值的1/20。
在实用模型中,使用8个三维有限元网格,其中两个来自METIS,其余的来自真实案例,每个网格转换的有向图的特征见附表1。
表1
Figure 590864DEST_PATH_IMAGE032
(一)匹配方法比较
匹配方法比较的目的是测试算法中提到的随机最大权匹配和随机最大比例匹配这两种匹配收缩方法的效果。
对Grid-1、Grid-2、MDual、FEM1和FEM3这五个图进行实验。将小规模图Grid-1、MDual、FEM1划分为100和1000块,并将大规模图Grid-2、FEM3划分为1000和10000块,其中收缩参数c = 90,递归划分策略分别为102、103和104。由于算法的随机性,对每个图进行10次划分,然后比较不平衡率ρ和最大负荷LM的平均值和最大值,具体的结果如下表2所示。
表2
Figure DEST_PATH_IMAGE033
附图2中,RMRM表示利用最大比例匹配得到的结果,RMMM表示利用最大权匹配得到的结果,由此可以看出,除了MDual上100-分区的最大不平衡率之外,随机最大权匹配的不平衡率高于随机最大比例匹配。从图3可以看出,在最大负荷情况下,虽然随机最大权匹配的性能优于随机最大比例匹配,但差距非常小,而且最大比小于1.012。因此,接下来选用随机最大比例匹配方法。
(二)稳定性验证
稳定性验证的目的是为了确定随机最大比例匹配是否会给最终结果带来较大的偏差。在实验中使用含有相同分块的相同图形,从不平衡率、最大负荷和运行时间三个方面对实验结果进行比较,详见附表3。
表3
Figure 898349DEST_PATH_IMAGE034
从附图4可以看出,虽然负载最大不平衡率和最小不平衡率存在差距,但差距很小,最大的只有0.70%。此外,除了FEM-3上10000分区的最差结果,所有的不平衡率都小于2.00%。附图5显示了最大负载和运行时间,其中基线是平均值。在每个例子中,最差的最大负载几乎是等于最好的;运行时间的差异也很小,最大比约为1.10。因此,算法的随机性不会带来很大的偏差,该算法非常稳定。
(三)确定参数
在本方法中,有一个收缩参数c和一个策略需要确定。首先,通过比较c = 50,70,90,110,130,150的结果来确定参数c。实验采用Grid-2、MDual和FEM -3三个具有代表性的图进行,划分策略与第一节比较出的匹配方法相同。比较结果如下附图6-8所示。
图6为不同收缩参数c下的不平衡率,图7和图8分别为其他参数在最大负荷和运行时间下的结果与c = 90时的结果之比。从这些图中可以看出,随着收缩参数的增加,不平衡率基本减小;相反,最大负载和运行时间往往随着收缩参数的增加而增加。当参数选择为70,90,110时,性能均良好。由于c=90时,负载不平率和最大负载量都未出现较大偏差,因此在后面的实验中,本方法将其定为缺省设置。此外,该参数在算法中也可以进行手工输入。
对于递归划分策略,我们对分块k进行了不同的因子分解,并做了相应的实验。实验结果表明,不同策略下的结果区别并不大,负载不平衡率和最大负载比的偏差分别为0.5%和0.2%。因此,为了便于计算,本方法会尽量将k分解为相近数的乘积。例如,如果k =1000,算法可分为三个阶段,每个阶段做10个分区。
(2)与其他算法的比较
将本方法与METIS中的k-Way划分算法进行比较,在不平衡率、最大负荷和运行时间方面评估我们提出的方法的效果。
对附表1中11个数据对应的图进行实验,比较本发明的图划分算法与METIS中的k-Way划分的性能。由于METIS只能处理无向图,我们通过修改每条边uv的权值为
Figure DEST_PATH_IMAGE035
,将表1中的每条有向图都转换为无向图。然后,对得到的无向图进行k-Way划分。最后,计算各图相对于分区的不平衡率和最大负载。实验结果见附表4,可见图9-11。由于图Grid-3非常庞大,1亿顶点和39.96万弧度,METIS无法计算出可行的结果。
表4
Figure 975895DEST_PATH_IMAGE036
附图9为两种算法划分结果的不平衡率。从图中我们可以看出,每个图中小分块的不平衡率都好于大分块的不平衡率。本文方法的大分块不平衡率率都小于2%,METIS算法的大部分结果都在6% ~ 9%之间。显然,本发明的算法在不平衡率上优于METIS。对于图Copter,所有方法下的负载不平衡率都较差,其原因是图Copter的平均度比其他图形机大得多。
附图10和附图11是本方法的最大负载和运行时间与METIS算法的比值。从图10可以看出,最大负载的所有比率大部分在0.94 ~ 1.06之间,表明两种算法的最大负载之间区别极小。此外,该比率会随着分块数量的增加而增加,其主要原因是本发明在反向映射阶段没有采用多级修改策略,即没有在反向映射阶段进行局部寻优。从附图11可以看出,对于k较小的情况,本发明比METIS算法运行时间长;相反地,本方法在k较大的情况下通常比METIS运行时间短。这种差异与迭代次数和每个分块的平均顶点数有关。
2、实验结论
通过上述验证过程可以看出,本发明所述的基于图论与组合优化的大规模有向图平衡划分方法的稳定性良好,与METIS算法相比,本方法在不平衡率方面更好,在最大负载方面具有相同的质量。此外,本方法可以处理一些METIS不能返回可行结果的超大规模网格。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (10)

1.一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:具体的包括以下步骤:
步骤1:网格转化,将给定的网格转化为待剖分有向图;
步骤2:迭代收缩,利用随机最大权匹配对步骤1的待剖分有向图进行反复压缩,并得到一个有向图序列;
步骤3:对步骤2得到的有向图序列中的最后一个图进行划分,得到压缩图的分块,再通过调整使该分块达到局部最优;
步骤4:将步骤3得到的分块进行反向映射,从而获得待剖分有向图的分块;
步骤5:递归划分,将规定的分块数分解为若干个整数的乘积,并将划分过程分解为若干阶段;然后在每个阶段中,利用步骤2-4将待剖分有向图划分为指定数目的分块,分解待剖分有向图为小图,并将每个小图作为新的待剖分图;反复划分待剖分图,直到获得规定的分块数;
步骤6:将步骤5得到的待剖分有向图的分块还原为网格的分块。
2.根据权利要求1所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤1的具体操作步骤包括:将给定网格的每个小区域看为一个有向图的顶点,该顶点权重为该小区域的计算时间;若两个小区域a与b之间存在公共边,则在有向图中加入一条从区域a对应顶点到区域b对应顶点的有向边,该有向边权重为区域a到区域b的通信时间,同时加入一条从区域b对应顶点到区域a对应顶点的有向边,该有向边权重为区域b到区域a的通信时间;这样就得到了由网格转化成的待剖分有向图D0,网格中的每个小区域对应着待剖分有向图D0中的每个顶点。
3.根据权利要求2所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤2的具体操作步骤包括:
步骤21:使用待剖分有向图D0构造一个有向图序列(D0,D1,…,Di,… Dm),让图的顶点数逐个减少,对当前的任意图Di,计算一个极大匹配Mi,并将其收缩得到下一个图Di+1,当出现以下情况之一时,这一收缩阶段结束:
(1)当前图的顶点数小于c×k,
其中:c为收缩参数,k为分区的分块数;
(2)|V(Di+1)|/|V(Di)|大于80%,即|Mi|≤20%|V(Di)|,
其中:i表示第i个任意图Di的下标,V(Di)为有向图Di的顶点集合,V(Di+1)为有向图Di+1的顶点集合,|V(Di)|表示图Di的顶点个数,|Mi|表示极大匹配Mi中包含的弧数。
4.根据权利要求3所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:步骤21的具体操作步骤包括:
步骤211:随机最大权匹配,图的顶点按随机顺序选择,对于所选择的顶点u,如果u已经和其他顶点匹配,或者其内邻的顶点都已经匹配,我们就选择下一个顶点;否则,将u与未匹配的内邻顶点v进行匹配,其中包含弧(v,u)的最大权,即:
v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点},u是目前选择的顶点,w(v,u)是弧(v,u)的权重,公式v= argmax{w(v,u)|v是u的一个尚未匹配的内邻点}得到的v是所有与u相邻且尚未匹配的顶点中对应弧权最大的顶点,当所有的顶点都被选择时得到一个最大匹配;
步骤212:随机最大比例匹配,新目标函数需要使用这一匹配,当u有未匹配的内邻点时,随机最大比例匹配和随机最大权匹配的过程才会有不同,取弧权值与顶点权值的最大比值,即:
v= argmax{(w(v,u))/(w(v))| v是u的一个尚未匹配的内邻点};
步骤213:比较分别利用步骤211的随机最大权匹配与步骤212的随机最大比例匹配进行图压缩后的效果,包括不平衡率和最大负荷,选择效果好的匹配方法对图进行压缩。
5.根据权利要求4所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤3的具体操作步骤为:
步骤31:使用最佳拟合递减算法,即BFD算法,利用贪婪策略,快速得到初始划分;
步骤32:通过局部搜索,通过迭代将负荷最大的分块的一个顶点移动到另一个分块,以减小最大负荷。
6.根据权利要求5所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤31的具体步骤包括:
步骤311:设置对于任意j=1,2,…,k,各分块有P j 的初始值为空集;
步骤312:对顶点进行重新排序,减少顶点权值;
步骤313:将当前顶点v放在分块j中,那么分块j的负荷将变为:
Figure 463272DEST_PATH_IMAGE001
其中,
Figure 232295DEST_PATH_IMAGE002
表示分块j的新负荷,L j 表示分块j原来的负荷,w(v)表示顶点v的权重,w(v,u)是弧(u,v)的权重,
Figure 936946DEST_PATH_IMAGE003
表示顶点v的入邻集,Pi表示分块i中包含的所有顶点;
另一分块i的负荷将变为:
Figure 354152DEST_PATH_IMAGE004
Figure 56529DEST_PATH_IMAGE005
表示分块i的新负荷,L i 表示分块i原来的负荷,
Figure 683819DEST_PATH_IMAGE006
表示顶点v的出邻集,Pi表示分块i中包含的所有顶点;
步骤314:将v放入分块j中可以使最大负荷变为最小的分块,当所有顶点都被放到分块中时,得到初始分区P。
7.根据权利要求6所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤32的具体步骤包括:
步骤321:选择负荷最大的分块Pj,对于Pj中的任意顶点v,计算每一分块Pi(1≤i≤k)的弧内权
Figure 51215DEST_PATH_IMAGE007
和弧外权
Figure 447562DEST_PATH_IMAGE008
Figure 992944DEST_PATH_IMAGE009
其中,
Figure 107530DEST_PATH_IMAGE010
表示顶点v的入邻集,
Figure 311241DEST_PATH_IMAGE011
表示顶点v的出邻集,
Figure 703039DEST_PATH_IMAGE012
为分块Pj(1≤j≤k)的弧外权,
Figure 543956DEST_PATH_IMAGE013
为分块Pj(1≤j≤k)的弧内权;
步骤322:将顶点v从Pj分块移动到Pi分块,则Pi和Pj以外的分块的负荷不会改变,新的负荷
Figure 270472DEST_PATH_IMAGE014
Figure 855037DEST_PATH_IMAGE015
将变为:
Figure 101342DEST_PATH_IMAGE016
其中,L j 表示分块j原来的负荷,L i 表示分块i原来的负荷,w(v)表示顶点v的权重;
步骤323:对于每一对(v,Pi),计算交换后分区的最大负荷以及负荷总和,如果交换后分区的最大负荷小于当前分区的最大负荷,则选择最大负荷小的分区,并重复此操作;否则,如果存在交换后分区的最大负荷等于当前分区的最大负荷,但负荷总和小于当前分区的负荷总和,选择负荷总和小的分区,并重复此操作操作;如果当前分区达到局部最优,则完成修改过程。
8.根据权利要求7所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤4具体为:利用原图和压缩图顶点之间的对应关系,将Dm的分块反向映射至D0的分块,从而得到待剖分图所需要的分块。
9.根据权利要求8所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤5的具体步骤包括:
步骤51:将规定的分块数k分解为若干个小于等于k的整数的乘积,即k = k1k2…kt,其中每个ki≤20,这里i=1,2,…,t;
步骤52:重复使用步骤2到步骤4所述的方法将待剖分有向图划分为包含k1-个分区P;
步骤53:基于步骤52得到的分区P,将待剖分有向图分解成k1个子图,子图中的弧权重与待剖分图中的弧权重相同,为保证待剖分有向图和子图的划分目标值相同,对每个顶点v的权重做如下修改:
Figure 113160DEST_PATH_IMAGE017
Figure 559929DEST_PATH_IMAGE018
表示顶点v在子图中的权重,
Figure 948185DEST_PATH_IMAGE019
表示顶点v的入邻集,
Figure 48996DEST_PATH_IMAGE020
表示顶点v在待剖分有向图中的权重,P[u] 表示顶点u在分区P上所属的部分,
Figure 231716DEST_PATH_IMAGE021
表示顶点v在分区P上所属的部分;
步骤54:将步骤53中得到的每个子图划分为k2个分块,并将得到的分块进行分解,共可得到k1k2个新子图;对对得到的新子图共进行t-2次分解,将共有k1k2··kt−1个子图,通过得到每个子图的kt划分,获得初始有向图的k1k2··kt= k个分块的划分;
步骤55:如果k是某整数b的幂,即k = bt,其中b≤20,则将k分成b×b×…×b。
10.根据权利要求9所述的一种基于图论与组合优化的大规模有向图平衡划分方法,其特征在于:所述步骤6的具体步骤为:步骤1将对于给定的网格转化成了待剖分有向图,其中网格中的每个小区域对应着有向图的每个顶点;对于步骤5得到的关于待剖分有向图的分块,将分块中每个部分包含的顶点变化为其对应的网格小区域,得到给定网格的分块。
CN202110642998.5A 2021-06-09 2021-06-09 一种基于图论与组合优化的大规模有向图平衡划分方法 Pending CN113296954A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110642998.5A CN113296954A (zh) 2021-06-09 2021-06-09 一种基于图论与组合优化的大规模有向图平衡划分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110642998.5A CN113296954A (zh) 2021-06-09 2021-06-09 一种基于图论与组合优化的大规模有向图平衡划分方法

Publications (1)

Publication Number Publication Date
CN113296954A true CN113296954A (zh) 2021-08-24

Family

ID=77327734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110642998.5A Pending CN113296954A (zh) 2021-06-09 2021-06-09 一种基于图论与组合优化的大规模有向图平衡划分方法

Country Status (1)

Country Link
CN (1) CN113296954A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117787662A (zh) * 2024-02-23 2024-03-29 中国人民解放军海军工程大学 一种空间需求平衡分区方法、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117787662A (zh) * 2024-02-23 2024-03-29 中国人民解放军海军工程大学 一种空间需求平衡分区方法、电子设备和存储介质
CN117787662B (zh) * 2024-02-23 2024-05-28 中国人民解放军海军工程大学 一种空间需求平衡分区方法、电子设备和存储介质

Similar Documents

Publication Publication Date Title
Frangioni et al. A bundle type dual-ascent approach to linear multicommodity min-cost flow problems
Burch et al. A decomposition-based pseudoapproximation algorithm for network flow inhibition
CN109656798B (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
Schlag et al. Scalable edge partitioning
Peng et al. Efficient algorithms for finding a core of a tree with a specified length
Adams et al. A hierarchy of relaxations leading to the convex hull representation for general discrete optimization problems
CN113296954A (zh) 一种基于图论与组合优化的大规模有向图平衡划分方法
Uçar et al. Revisiting hypergraph models for sparse matrix partitioning
Zhao et al. Towards scalable spectral embedding and data visualization via spectral coarsening
Engström et al. PageRank for networks, graphs, and Markov chains
Carlson Modified-mesh connected parallel computers
Lee et al. Algorithms for the constrained maximum‐weight connected graph problem
Resende et al. Interior point algorithms for network flow problems
CN112765552B (zh) 基于数组打包的矩阵乘法的分块参数空间优化方法
Zhang et al. Online program simplification in genetic programming
CN113010748A (zh) 一种基于亲和聚类的分布式大图划分方法
Zuo et al. RL-MUL: Multiplier Design Optimization with Deep Reinforcement Learning
Sasidharan et al. A general space-filling curve algorithm for partitioning 2D meshes
CN107808214B (zh) 车间制造系统的启发式二叉决策图变量序优化表示方法
CN113191486A (zh) 基于参数服务器架构的图数据与参数数据的混合划分方法
Vuchener et al. Dynamic load-balancing with variable number of processors based on graph repartitioning
Ou et al. Parallel remapping of adaptive problems
Henne et al. n-Level Hypergraph Partitioning
CN112765551B (zh) 一种双重约化的矩阵乘法的分块参数空间优化方法
Liu et al. On Construction of Mappable Nearly Orthogonal Arrays with Column-Orthogonality

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210824

RJ01 Rejection of invention patent application after publication