基于MINMAX局部优化结构化网格负载平衡方法技术

技术编号:21183989 阅读:38 留言:0更新日期:2019-05-22 14:51
本发明专利技术公开了一种基于MINMAX局部优化结构化网格负载平衡方法,目的是解决现有负载平衡方法的缺点,提高负载平衡率和计算速度。技术方案是总体基于遗传算法,包括参数配置、初始化种群、适应度计算、采用MINMAX方法对每个染色体中最大和最小的两个染色体片段进行迁移优化、条件判断、更新判断、种群更新、选择算子、交叉算子、变异算子、输出最好的负载平衡模式共十一步。本发明专利技术由于对每个染色体中最大和最小的两个染色体片段进行了迁移优化,使得染色体适应度更好,且由于进行了种群更新,使得种群不容易早熟导致程序过早终止,而能得到全局较优解,使得整个结构化网格并行计算负载平衡率得以提升。

MINMAX-based Locally Optimized Structured Grid Load Balancing Method

The invention discloses a MINMAX-based locally optimized structured grid load balancing method, aiming at solving the shortcomings of the existing load balancing method and improving the load balancing rate and computing speed. The technical scheme is based on genetic algorithm as a whole, including parameter allocation, initialization population, fitness calculation, MINMAX method for migration optimization, condition judgment, update judgment, population updating, selection operator, crossover operator, mutation operator and load balancing mode with the best output of the two largest and smallest chromosome segments in each chromosome. The invention optimizes the migration of the largest and smallest two chromosome segments in each chromosome, makes the chromosome fitness better, and makes the population not easy to prematurely terminate the program due to population renewal, and can obtain a global optimal solution, which improves the load balancing rate of parallel computation of the whole structured grid.

【技术实现步骤摘要】
基于MINMAX局部优化结构化网格负载平衡方法
本专利技术涉及提高结构化网格并行计算时的负载平衡方法,尤指基于遗传算法和MINMAX(最大最小)局部优化的并行负载平衡方法。
技术介绍
计算已经与理论和实验相并列成为人类认识世界三种主要研究手段,主要用来解决不可能进行实验的问题或者进行实验代价太大的问题。近几十年以来,随着对物理规律认识的深入和工程应用的需要,工程计算已发展成为一门专门学科,在航空航天、汽车、环境工程、材料、物理学和船舶等方面得到广泛应用。工程计算过程主要是对网格上的特征量进行迭代计算,网格数目与计算量直接相关。当网格数目多时整个计算量非常大,往往需要在高性能计算机进行大规模并行计算。良好的负载平衡是达到高并行效率的基础。结构化网格工程常用的并行计算技术一般基于分区并行,分区并行的数学基础是区域分解算法。区域分解算法将问题的求解区域划分成多个子区域,这些子区域相互包含相邻区域的拟边界信息,相互迭代共同求解同一问题。并行计算与区域分解算法相结合,将各个网格块分配给多个处理器核完成,迭代过程中一般采用MPI(MessagePassingInterface)消息传递接口在不同处理器核之间进行通信。由于分区并行的网格块一般比较大,计算通信比高,影响并行效率的决定性因素是负载平衡。由于数值离散迭代求解的特点,一次迭代的计算量与网格量成正比。实际工程设计中外形各异,根据计算模型几何上的特性进行分区,整个网格会事先分割成大小不同的很多个网格块。负载平衡的核心思想是把全部网格块映射到各个进程上,在进程数确定的情况下尽可能使总计算时间少。结构化网格并行计算时,可以近似认为迭代求解过程中的计算量正比于网格量。在高性能计算机系统进行并行计算时,实际应用中一般采用同构系统,即各个计算节点/核的计算能力是一样的。各个进程的每次迭代的计算时间由其所负责的网格数目总和决定是合理的。在不考虑通信的前提下,结构化网格并行计算时间由网格数目总和最大的进程决定。结构化网格工程并行计算负载平衡主要可以分成不带剖分和带剖分两种方式。带剖分方法指通过在其他方法的基础上,对生成的网格块进行进一步剖分来达到负载平衡。带剖分方法存在三个缺点:(1)过细的分块会导致额外的通讯开销大量增加而降低并行计算效率。(2)过多的子区域(分块)会增加迭代求解次数,影响计算效率,这是由区域分解算法本身的特性决定的。(3)工程计算不仅是一门科学,也是一门艺术,不但与数值计算方法相关,也与网格相关,不适当的分块有可能导致计算发散。不带剖分方法指网格分块确定的情况下,采用确定性或者智能优化算法来达到负载平衡。不带剖分方法能够避免带剖分方法存在的缺点,但是有时候会存在负载平衡率低和计算效率低的缺点。对于结构化网格并行计算不带剖分方法的负载平衡算法研究主要集中在以下三个方面:(1)确定性方法,主要指基于组合优化排和排序理论设计了LPT(LargestProcessingTime)近似负载平衡算法。(2)智能优化算法,主要指基于全局优化的遗传算法等算法设计的智能优化负载平衡算法。(3)混合算法,主要指结合确定性方法和智能优化算法的负载平衡算法,包括二步。第一步使用确定性方法得到初步解,第二步在此基础上使用智能优化算法力图得到负载平衡率更高的网格块分配方法。基于遗传算法的结构化网格负载平衡方法是智能优化算法的一种。结构化网格并行负载平衡问题模型可以定义如下:结构化网格包含若干个网格块,每个网格块包含一定数目的网格。网格块集合E={E1,...,En,...EN},E中有N个元素,第n个元素为网格数目为En的网格块,1≤n≤N且N为正整数。En为正整数,表示网格数目为En的第n个网格块。网格数目越多,计算量越大,计算时间越长。网格块用一个正整数来表示,这个正整数表示该网格块中的网格数目。如E={200,500,1234,200,1008,4000}表示一个包含6个网格块的网格块集合,这6个网格块的网格数目分别为200、500、1234、200、1008、4000。进程集合为P={P1,...,Pm,...,PM},P中有M个进程,1≤m≤M且M为正整数。Pm表示第m个进程,每个进程处理若干个网格块的计算任务。设Pm要处理G(0≤G≤N)个网格块的计算任务,Pm={Ei1,Ei2,…,EiG},Ei1,Ei2,…,Eim,…,EiG均∈E,且Pi∩Pj=Φ,i≠j,且1≤i,j≤M,P1∪P2∪…∪PM=E。表示P中的每个进程处理不同的网格块,且M个进程应处理完集合E。|Pm|表示进程Pm处理的网格数目总和,|Pm|=Ei1+Ei2+…+Eim+…+EiG,即把进程中所处理的网格块的网格数目相加得到。平均负载表示绝对平均情况下每个进程处理的网格数。遗传算法是一种模拟自然界优胜劣汰的进化算法,具有较高的全局搜索能力。结构化网格并行负载平衡中的遗传算法中染色体采用二级编码。基因定义为E中一个网格块。基因值为该网格块的网格数目,为正整数,为E1到EN中的一个值。所以共有N个基因。染色体片段定义为P中单个进程处理的所有网格块的集合,所以共有M个染色体片段。染色体片段值定义为染色体片段中对应基因代表的网格块的网格数目之和,为非负整数。如染色体片段{E1,E2,E3}的染色体片段值为E1+E2+E3。染色体定义为染色体片段的集合,每一条染色体代表一种负载平衡分配方案,即为网格块分配到进程的一种分配方案。每一条染色体包含M个染色体片段,每个染色体片段包含若干个网格块(基因)。染色体片段的长度即为所包含的基因的个数。如10个网格块{E1,E2,…,E10}、3个进程,进程序号为第1、第2、第3,一条染色体可以表示为{{E1,E2,E3},{E4,E5,E6,E7},{E8,E9,E10}},就表示一种负载平衡模式。{E1,E2,E3}为一个染色体片段,长度为3。E1,E2,…,E10为基因。1-3个网格块分配给第1个进程,4-7个网格块分配给第2个进程,8-10个网格块分配给第3个进程。种群定义为染色体的集合,即一个种群包含正整数条染色体。种群大小popNum为种群中染色体的数目。种群大小popNum为种群中染色体的数目,表示有popNum个负载平衡策略。一个染色体中有N个基因,M个染色体片段,表示有N个网格块,M个进程。一个染色体代表一个把N个网格块分配给M个进程的策略。适应度函数F定义如下:F=1/max{|P1|,...,|Pm|,...,|PM|}(1)max{|P1|,...,|Pm|,...,|PM|}表示对|P1|,...,|Pm|,...,|PM|取最大值。对于任何一个负载平衡分配方案,F值越大表示负载平衡方案越好。全局最优染色体(bestPop)表示种群中适应度值最大的染色体(也即最好的负载平衡模式)。输入文件为包含所有网格块的文件。这里,文件中的一个正整数表示一个网格数目为该正整数的网格块。基于遗传算法的结构化网格负载平衡方法(简称
技术介绍
1)总体流程如图1所示,包括参数配置、初始化种群、适应度计算、条件判断、选择算子、交叉算子、变异算子和结果输出8个步骤。具体步骤如下:第一步,参数配置。从配置文件获得输入文件位置、种群大小popNum、最大迭代次数I本文档来自技高网
...

【技术保护点】
1.一种基于MINMAX局部优化结构化网格负载平衡方法,其特征在于包括以下步骤:第一步,参数配置:1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax;1.2令最优适应度值重复次数nSame=0,令旧最优适应度值

【技术特征摘要】
1.一种基于MINMAX局部优化结构化网格负载平衡方法,其特征在于包括以下步骤:第一步,参数配置:1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax;1.2令最优适应度值重复次数nSame=0,令旧最优适应度值第二步,初始化种群:2.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程,一个网格块对应一个基因,网格块中网格数目为基因的值;生成含popNum条染色体的种群PopA,PopA={R1,..,Rn...,RpopNum},popNum为PopA中染色体条数,1≤n≤popNum且n为正整数,Rn表示第n条染色体,所有染色体均有M个染色体片段,对应M个进程;2.2令迭代次数变量iteNum=0;第三步,适应度计算:3.1根据式(1)对PopA中的R1,..,Rn...,RpopNum分别进行适应度计算,得到popNum个适应度值,表示为F1,...,Fn,...FpopNum;适应度函数F定义如下:F=1/max{|P1|,...,|Pm|,...,|PM|}(1)max{|P1|,...,|Pm|,...,|PM|}表示对|P1|,...,|Pm|,...,|PM|取最大值;进程集合为P={P1,...,Pm,...,PM},P中有M个进程,1≤m≤M且M为正整数,Pm表示第m个进程;|Pm|表示进程Pm处理的网格数目总和,|Pm|=Ei1+Ei2+…+Eim+…+EiG,即把进程中所处理的网格块的网格数目相加得到;G为Pm要处理的网格块的个数,0≤G≤N,Pm={Ei1,Ei2,…,EiG},Ei1,Ei2,…,Eim,…,EiG均∈E;E为网格块集合,E={E1,...,En,...EN},E中有N个元素,第n个元素为网格数目为En的网格块,1≤n≤N且N为正整数;En为正整数,表示网格数目为En的第n个网格块;3.2找出F1,...,Fn,...FpopNum中的最大值,表示为全局最优染色体的适应度值Fopt,并将Fopt对应的全局最优染色体记录为bestPop;3.3iteNum=iteNum+1;第四步,MINMAX局部优化。采用MINMAX方法对每个染色体中最大和最小的两个染色体片段进行迁移优化,得到适应度更好的染色体:4.1令n=1;4.2对种群PopA中第n条染色体中的M个染色体片段中的基因进行累加,得到M个染色体片段值;4.3根据4.2步得到的M个染色体片段值,找出第n条染色体中染色体片段值最大的染色体片段染色体片段值最小的染色体片段1≤i≤H,1≤j≤L,H为Seg_max的基因个数,L为Seg_min的基因个数;计算Seg_min的染色体片段值Total_min,4.4执行如下操作,对Seg_max和Seg_min进行基因迁移优化:4.4.1令i=1;4.4.2计算网格数目和sum:4.4.3若sum≤κ,κ为平均负载,把Seg_max中的移动到Seg_min中,转第4.5步;否则,转4.4.4步;4.4.4令i=i+1;4.4.5若i>H,转第4.5步;否则转4.4.2步;4.5令n=n+1;4.6若n>popNum,转第五步;否则,转第4.2步;第五步,条件判断:5.1若iteNum大于IteMax,转第十一步;若iteNum小于等于IteMax,iteNum=iteNum+1,执行5.2;5.2若Fopt满足式(2)的条件,转第十一步;若Fopt不满足式(2)的条件,执行5.3;abs(κ-1/Fopt)/κ<ε(2)其中abs(κ-1/Fopt)表示对κ-1/Fopt取绝对值;5.3若Fopt满足式(3)的条件,式(3)表示Fopt的倒数等于最大基因,转第十一步;若Fopt不满足式(3)的条件,转第六步;1/Fopt=max{E1,E2,…,EN}(3)第六步,更新判断,方法是:6.1若令nSame=0;否则令nSame=nSame+1;6.2若nSame>SameMax,令nSame=0,转第七步;否则转第八步;第七步,种群更新,方法是:7.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程,生成含popNum条染色体的种群PopTEMP,PopTEMP={R1,..,Rn...,RpopNum},PopTEMP中有popNum条染色体,所有染色体均有M个片段,对应M个进程;7.2用步骤3.2得到的bestPop替换种群PopTEMP中的第一个染色体R1;7.3令PopA=PopTEMP;第八步,选择算子,方法是:8....

【专利技术属性】
技术研发人员:杨博龚春叶刘杰甘新标李胜国孙泽文李彪朱肖雄谢佩珍张庆阳
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1