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.一种基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。