【技术实现步骤摘要】
基于LPT局部优化的结构化网格负载平衡方法
本专利技术涉及提高结构化网格并行计算时的负载平衡方法,尤指基于遗传算法和LPT(LargestProcessingTime,最大处理时间)局部优化的并行负载平衡方法。
技术介绍
计算已经与理论和实验相并列成为人类认识世界三种主要研究手段,主要用来解决不可能进行实验的问题或者进行实验代价太大的问题。近几十年以来,随着对物理规律认识的深入和工程应用的需要,工程计算已发展成为一门专门学科,在航空航天、汽车、环境工程、材料、物理学和船舶等方面得到广泛应用。工程计算过程主要是对网格上的特征量进行迭代计算,网格数目与计算量直接相关。当网格数目多时整个计算量非常大,往往需要在高性能计算机进行大规模并行计算。良好的负载平衡是达到高并行效率的基础。结构化网格工程常用的并行计算技术一般基于分区并行,分区并行的数学基础是区域分解算法。区域分解算法将问题的求解区域划分成多个子区域,这些子区域相互包含相邻区域的拟边界信息,相互迭代共同求解同一问题。并行计算与区域分解算法相结合,将各个网格块分配给多个处理器核完成,迭代过程中一般采用MPI(MessagePassingInterface)消息传递接口在不同处理器核之间进行通信。由于分区并行的网格块一般比较大,计算通信比高,影响并行效率的决定性因素是负载平衡。由于数值离散迭代求解的特点,一次迭代的计算量与网格量成正比。实际工程设计中外形各异,根据计算模型几何上的特性进行分区,整个网格会事先分割成大小不同的很多个网格块。负载平衡的核心思想是把全部网格块映射到各个进程上,在进程数确定的情况下尽可能 ...
【技术保护点】
1.一种基于LPT局部优化的结构化网格负载平衡方法,其特征在于包括以下步骤:第一步,参数配置:1.1 从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax、处理的染色体片段的个数LPTSize;LPT为最大处理时间;1.2 令最优适应度值重复次数nSame=0,令旧最优适应度值
【技术特征摘要】
1.一种基于LPT局部优化的结构化网格负载平衡方法,其特征在于包括以下步骤:第一步,参数配置:1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax、处理的染色体片段的个数LPTSize;LPT为最大处理时间;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;第四步,LPT局部优化。采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和最小的LPTSize/2个染色体片段进行局部优化,得到适应度更好的染色体:4.1令n=1;4.2对种群PopA中第n条染色体中的M个染色体片段中的基因进行累加,得到M个染色体片段值sum1,sum2,…,sumM-1,sumM;4.3根据sum1,sum2,…,sumM-1,sumM,找出第n条染色体中染色体片段值最大的LPTSize/2个染色体片段,记为SegA1、SegA2、…、SegALPTSize/2,再找出染色体片段值最小的LPTSize/2个染色体片段,记为SegB1、SegB2、…、SegBLPTSize/2;4.3将SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2中的基因组合成基因集合X,假设X中有H基因,将X中H个基因从大到小依次排列得到链表(F1,F2,…,Fh,…,FH),1≤h≤H;4.4建立LPTSIZE个空集合V1,V2,…,VLPTSize,建立大小为LPTSIZE的整型数组[D1,D2,…,Dk,…,DLPTSize],D1,D2,…,Dk,…,DLPTSize均赋初值0,1≤k≤LPTSize;4.5令s=1;4.6找到数组[D1,D2,…,DLPTSize]中的最小值,假设为Dk,k表示第k个,执行如下操作:4.6.1Dk=Dk+SegAs;4.6.2将Fs插入到Vk中;4.7s=s+1;4.8若s≤LPTSize,转第4.6步,否则执行4.9步;4.9将V1,V2,…,VLPTSize中基因分别赋予SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2,更新LPTSIZE个染色体片段,得到新的染色体;4.10令n=n+1;4.11若n≤N,转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从输入文件...
【专利技术属性】
技术研发人员:龚春叶,刘杰,杨博,甘新标,李胜国,徐海坤,李润华,穆利安,吕书邻,穆雨桐,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。