一种基于插值算法面向计算通信联合优化的负载均衡方法

文档序号:6628587阅读:413来源:国知局
一种基于插值算法面向计算通信联合优化的负载均衡方法
【专利摘要】本发明涉及一种基于插值算法的面向计算通信联合优化的负载均衡方法,属于高性能科学计算的应用领域,该方法包括以运算的实测计算量和通信量为基础值,利用插值算法以计算时间和责任通信时间的实测值推算计算量累加函数和通信量变化率函数的近似函数,以该函数为参照通过多次迭代获得最佳的数据划分;监视每次运算的计算量和通信量变化,分析处理器的负载均衡状况并预测负载均衡的趋势,当负载均衡的效率或预测值低于设定的阈值时,根据当前的计算量和通信量的实测值再次计算量累加函数和通信量变化率函数的近似函数,并对数据块的划分进行动态调整。本方法旨在【技术领域】提升科学计算的负载均衡效率,进而提高并行运行效率,节约超级计算资源。
【专利说明】一种基于插值算法面向计算通信联合优化的负载均衡方法

【技术领域】
[0001] 本发明属于高性能可扩展并行数值模拟应用领域,特别涉及一种基于插值算法的 面向计算通信联合优化的负载均衡方法。

【背景技术】
[0002] 在高性能可扩展并行数值模拟应用领域,如流体动力、高温高压物理过程模拟计 算等,常常需要使用成百上千的处理器并行执行运算任务。这些计算通常具有如下特点: (1)数据元素通常可以被映射到静态且均匀的多维网格上;(2)不同数据元素的运算时间 可能不同;(3)数据元素的运算量随计算的时间步发生变化且相近时间步的变化很小;(4) 计算的通信通常只与相邻数据元素相关。为提高计算效率,需使每个处理器在相同时间步 的计算时间和通信时间(不含等待时间)之和基本相当,并尽可能降低通信延迟。动态负 载均衡机制通过合理划分数据元素使得每个处理器承担的计算任务相对均衡,并能根据处 理器的负载变化对其进行动态调整。
[0003] 负载均衡问题可定义为:设需要处理的N个数据元素分布在一个多维空间定义为 {(λ·, ) | λ; e 二,Vd表示d维空间(d = 1,2, 3, 4),用来执行并行运算的处理器共Μ个定义 为{(Pi) 11 < i < Μ},通常Μ < < Ν ;Ν个数据元素被依据一定规则划分为Μ个数据块,每个 处理器负责一个数据块。在某个时间步处理器的有效运算时间(包括有效的计算时间和通 信时间)分别为{(Q) |1彡i彡Μ},则该时间步的负载均衡效率Ε可以定义为:
[0004]

【权利要求】
1. 一种基于插值算法的面向计算通信联合优化的负载均衡方法,该方法分初始划分和 动态调整两个阶段,其特征在于,初始划分阶段包括以运算的实测计算量和通信量作为基 础值,利用插值算法以计算时间和责任通信时间的实测值推算计算量累加函数和通信量变 化率函数的近似函数,然后以这两个函数为参照通过多次迭代获得最佳的数据划分方案; 动态调整阶段包括并行程序运行过程,监视每次运算的计算量和通信量变化,分析处理器 的负载均衡状况并预测负载均衡的趋势,当负载均衡的效率或预测值低于设定的阈值时, 根据当前的计算量和通信量的实测值再次计算量累加函数和通信量变化率函数的近似函 数,并对数据块的划分进行动态调整。
2. 如权利要求1所述方法,其特征在于,所述初始划分阶段具体包括以下步骤: 步骤1-1)采用空间填充曲线法对多维空间分布的数据元素进行排序,对处理器 编号;设N个数据元素从多维空间映射到一维空间,映射后的N个数据元素排列记为Xl,x2,. . .,xN ;设参与运算的处理器有M个,M < < N,将M个处理器编号,记为Pl,p2,. . .,pM ; 步骤1-2)对数据元素平均划分的条件下,测量各处理器一个时间步的计算时间和责 任通信时间;对平均划分的数据元素进行微调后,测量各处理器一个时间步的责任通信时 间;具体包括: 第一次划分,将Xl,x2,. . .,xN平均分成M块,分配到各处理器并启动运行一个时间步, 得到各处理器计算时间T",责任通信时间TW1 ;第二次划分,对第一次划分的各数据块进行 微调,依次将第一次划分的数据块的后面k个元素移到下一个数据块,最后一个数据块只 接收前一个数据块;将微调后的数据块分配到各处理器并启动运行一个时间步,得到各处 理器责任通信时间TKj2 ; 步骤1-3)根据实测的各处理器的计算时间,利用插值法求解计算量累加函数;具体实 现为: 设在Xl,x2,. . .,xN排列下,数据元素 x的计算量密度函数为f (t,x),t为时间参数;在 n个时间步内,n彡3,假设f保持不变,则计算量密度函数表示为与时间无关的函数f(x); (Xjl,Xj2)为处理器Pj负责的数据块,则处理器的计算时间为T Cj表示)
全部
假设函数f (X)在Xl,x2,. . .,xN排列中选取的M个点Xp X2,…,XM上有值; 对于Xi < X < Xi+1,得到f (X)的插值近似函数:
将⑵式代入方程组(1),得到以f (Xi),f (X2),…,f (XM)为未知数的线性方程组,求解 可得f (X)在Xi,X2,…,XM处的值;利用插值算法求得计算量的累加函数F (X),F (X)表示为 XpX2,…,XM之间的分段形式; 步骤1-4)根据实测的各处理器的计算时间,利用插值法求解责任通信时间函数的导 函数;具体实现为: 处理器Pj的责任通信时间函数为g(t,Xjl,xj2),Xjl,x j2为处理器所负责的数据元素的起 点和终点;在较少的n个时间步内,n彡3,假设g保持不变,则处理器&的责任通信时间函 数表示为gUji, xj2); 假设g(x)为连续函数且在x点有导数,求解g(x)在指定点的导数G'(x); g(Xj" xj2)代表某时间步处理器Pj的责任通信时间,元素 Xjl+Ax为Xjl的右邻点,得 到:
(Xjl,\2)和(\3,\4)分别为处理器h在两次划分中所负责的数据块,两个数据块划分 的大部分数据元素重叠,利用式(3)、(4)分别对处理器负责的数据块的左右两端做近似处 理得:
为计算通信时间函数,测试两次不同划分的通信责任时间;处理器h两次划分的责任 通信时间分别为TK11,TR12,则,
假设函数G'(x)在Xl,x2,. . .,xN排列中选取的M个点Xp X2,…,XM上有值; 对于\ < x < Xi+1,得到G'(x)的插值近似函数:
将式⑵代入形如式(6)的所有处理器的方程组,得到以G'(XlG'(X2),…,G'(XM)为 未知数的线性方程组,求解得到G'(x)在Xi,X2,…,XM处的值,利用插值法求得G'(x)的近 似函数,G'(x)表示为Xi,X2,…,XM之间的分段形式; 步骤1-5)根据计算量密度函数和责任通信时间函数,以及根据指定的数据块的平均 计算量和通信量,为每个数据块分配数据元素;当分配不平均时,修改为数据块指定的平均 计算量和通信量,迭代求解数据块划分方案;具体实现为: 根据已知的 F(x)、G'(x),在 Xi, x2,…,xN 上求一组 X'。,X':,…,X' M 其中 X'。= Xp X'。 =xN,使式⑶最小: MAX (F (X,-F (X,j +g (X,j,X' j) (8) FG'J-FG'm)表示以X'm和X、分别为起点和终点的数据块的计算量,g(X、X' 则表示这个数据块的责任通信量: 步骤1-5-1)设
为各处理器计算时间的平均值;
为各处理器责任通信时间的平均值; 步骤1-5-2)使用累加法求在数据元素 Xl,x2,...,xN中使式(9)成立的最右的元素 Xi ;
其中Fx12分别为第一个 数据块的起点和终点;
由式(9)得到的,则(Xl,X'i)为第一个处理器?1的预分配数据块,表示为 (X,0, X,D ; 步骤1-5-3)根据已求得的X' i,结合式(10)利用递推法依次求得剩余的数据块;
式(11)中,g(xn, xi2)为测试值; 步骤1-5-4)根据具体情况,对参数g(l调整后重新进行数据块划分; 第一种情况,当递推法计算到第i步(i < M),Xi, x2,. . .,xN中元素已经取尽,这时计算 终止;新的g(1设>
3到步骤1-5-2),将g' ^代入式(9)重新开始迭代计算; 第二种情况,计算进行了 M步,但Xp x2, . . .,xN中的元素还没有取尽,设XM = xk,新的gd 设定为
,回到步骤1-5-2),将代入式(9)重新开始迭代计算; 第三种情况,当计算到第M步,XM取值为1,&,...,马集合的最后一个元素,且 时,迭代停止, 将步骤;
第四种情况,迭代达到设定的次数,说明计算量和通信量无法达到相对均衡,此时迭代 停止,转步骤1-5-6); 步骤1-5-6)当迭代停止时,求得一组X'。,X' i,…,X' M,以X'。,X' i,…,X' M作为分割点将 数据元素排列Xl,x2,. . .,%分成M个数据块,由此得到数据划分方案; 步骤1-6)将划分的数据块分配给所有的处理器,启动运行n个时间步,收集的计算时 间和通信时间分析负载均衡的效率;如果负载均衡效率低于要求门限,收集最近一个时间 步各处理器计算时间T",责任通信时间TW1 ;对现有划分进行微调后,运行一个时间步,得 到各处理器的责任通信时间TW2 ;进入步骤1-3)重新进行数据块划分;如果负载均衡效率 达到要求门限,则继续运行,进入第二阶段进行动态调整; 所述动态调整阶段,具体包括以下步骤: 步骤2-1)根据设定的时间间隔,定时查看负载均衡效率,收集n个时间步各处理器的 计算时间和责任通信时间,n < 20,如果预测未来m个时间步的负载均衡效率平均值高于设 定的阈值,则继续运行,等待下个时间间隔再继续检测,否则启动负载动态调整,执行步骤 2-2); 步骤2-2)收集最近一个时间步收集的各处理器计算时间TCj,责任通信时间TKjl ;在不 同划分情况下的通信时间的测试值;求解计算量密度函数f和通信量函数的导数G' ;采用 步骤1-2)相同的数据块划分微调方法对现有划分微调后,运行一个时间步,得到各处理器 的责任通信时间TW2 ;转入步骤1-3)继续运行,重新进行数据块划分。
【文档编号】G06F9/50GK104281494SQ201410503520
【公开日】2015年1月14日 申请日期:2014年9月26日 优先权日:2014年9月26日
【发明者】杨广文, 刘圣卓, 张志远, 陈宇澍, 姜进磊, 韩宝玲 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1