【技术实现步骤摘要】
一种基于插值算法面向计算通信联合优化的负载均衡方法
本专利技术属于高性能可扩展并行数值模拟应用领域,特别涉及一种基于插值算法的面向计算通信联合优化的负载均衡方法。
技术介绍
在高性能可扩展并行数值模拟应用领域,如流体动力、高温高压物理过程模拟计算等,常常需要使用成百上千的处理器并行执行运算任务。这些计算通常具有如下特点:(1)数据元素通常可以被映射到静态且均匀的多维网格上;(2)不同数据元素的运算时间可能不同;(3)数据元素的运算量随计算的时间步发生变化且相近时间步的变化很小;(4)计算的通信通常只与相邻数据元素相关。为提高计算效率,需使每个处理器在相同时间步的计算时间和通信时间(不含等待时间)之和基本相当,并尽可能降低通信延迟。动态负载均衡机制通过合理划分数据元素使得每个处理器承担的计算任务相对均衡,并能根据处理器的负载变化对其进行动态调整。负载均衡问题可定义为:设需要处理的N个数据元素分布在一个多维空间定义为Vd表示d维空间(d=1,2,3,4),用来执行并行运算的处理器共M个定义为{(pi)|1≤i≤M},通常M<<N;N个数据元素被依据一定规则划分为M个数据块,每个处理器负责一个数据块。在某个时间步处理器的有效运算时间(包括有效的计算时间和通信时间)分别为{(Ci)|1≤i≤M},则该时间步的负载均衡效率E可以定义为:显然E≤1,E越大负载越均衡,而动态负载均衡的目的是使E的值在运算过程中大部分时间保持在一定的阈值以上且越大越好。负载均衡通常在两个时机发挥作用:第一,是计算开始之前,这时需要对数据元素的计算量等进行估计,并对多维空间分布 ...
【技术保护点】
一种基于插值算法的面向计算通信联合优化的负载均衡方法,该方法分初始划分和动态调整两个阶段,其特征在于,初始划分阶段包括以运算的实测计算量和通信量作为基础值,利用插值算法以计算时间和责任通信时间的实测值推算计算量累加函数和通信量变化率函数的近似函数,然后以这两个函数为参照通过多次迭代获得最佳的数据划分方案;动态调整阶段包括并行程序运行过程,监视每次运算的计算量和通信量变化,分析处理器的负载均衡状况并预测负载均衡的趋势,当负载均衡的效率或预测值低于设定的阈值时,根据当前的计算量和通信量的实测值再次计算量累加函数和通信量变化率函数的近似函数,并对数据块的划分进行动态调整。
【技术特征摘要】
1.一种基于插值算法的面向计算通信联合优化的负载均衡方法,该方法分初始划分和动态调整两个阶段,其特征在于,初始划分阶段包括以运算的实测计算量和通信量作为基础值,利用插值算法以计算时间和责任通信时间的实测值推算计算量累加函数和通信量变化率函数的近似函数,然后以这两个函数为参照通过多次迭代获得最佳的数据划分方案;动态调整阶段包括并行程序运行过程,监视每次运算的计算量和通信量变化,分析处理器的负载均衡状况并预测负载均衡的趋势,当负载均衡的效率或预测值低于设定的阈值时,根据当前的计算量和通信量的实测值再次计算量累加函数和通信量变化率函数的近似函数,并对数据块的划分进行动态调整,所述责任通信时间为通信时间标准,为不包括等待时间和与计算重叠的时间的信通时间。2.如权利要求1所述方法,其特征在于,所述初始划分阶段具体包括以下步骤:步骤1-1)采用空间填充曲线法对多维空间分布的数据元素进行排序,对处理器编号;设N个数据元素从多维空间映射到一维空间,映射后的N个数据元素排列记为x1,x2,…,xN;设参与运算的处理器有M个,M<<N,将M个处理器编号,记为p1,p2,…,pM;步骤1-2)对数据元素平均划分的条件下,测量各处理器一个时间步的计算时间和责任通信时间;对平均划分的数据元素进行微调后,测量各处理器一个时间步的责任通信时间;具体包括:第一次划分,将x1,x2,…,xN平均分成M块,分配到各处理器并启动运行一个时间步,得到各处理器计算时间TCj,责任通信时间TRj1;第二次划分,对第一次划分的各数据块进行微调,依次将第一次划分的数据块的后面k个元素移到下一个数据块,最后一个数据块只接收前一个数据块;将微调后的数据块分配到各处理器并启动运行一个时间步,得到各处理器责任通信时间TRj2;步骤1-3)根据实测的各处理器的计算时间,利用插值法求解计算量累加函数;具体实现为:设在x1,x2,…,xN排列下,数据元素x的计算量密度函数为f(t,x),t为时间参数;在n个时间步内,n≤3,假设f保持不变,则计算量密度函数表示为与时间无关的函数f(x);(xj1,xj2)为处理器pj负责的数据块,则处理器的计算时间为TCj表示为全部处理器的计算时间为:假设函数f(x)在x1,x2,…,xN排列中选取的M个点X1,X2,…,XM上有值;对于Xi<x<Xi+1,得到f(x)的插值近似函数:将(2)式代入方程组(1),得到以f(X1),f(X2),…,f(XM)为未知数的线性方程组,求解可得f(x)在X1,X2,…,XM处的值;利用插值算法求得计算量的累加函数F(x),F(x)表示为X1,X2,…,XM之间的分段形式;步骤1-4)根据实测的各处理器的计算时间,利用插值法求解责任通信时间函数的导函数;具体实现为:处理器pj的责任通信时间函数为g(t,xj1,xj2),xj1,xj2为处理器所负责的数据元素的起点和终点;在较少的n个时间步内,n≤3,假设g保持不变,则处理器pj的责任通信时间函数表示为g(xj1,xj2);假设g(x)为连续函数且在x点有导数,求解g(x)在指定点的导数G'(x);g(xj1,xj2)代表某时间步处理器pj的责任通信时间,元素xj1+Δx为xj1的右邻点,得到:g(xj1+Δx,xj2)=-G'(xj1)Δx+g(xj1,xj2)(3)g(xj1,xj2+Δx)=G'(xj2)Δx+g(xj1,xj2)(4)(xj1,xj2)和(xj3,xj4)分别为处理器pj在两次划分中所负责的数据块,两个数据块划分的大部分数据元素重叠,利用式(3)、(4)分别对处理器负责的数据块的左右两端做近似处理得:为计算通信时间函数,测试两次不同划分的责任通信时间;处理器pj两次划分的责任通信时间分别为TRj1,TRj2,则,假设函数G'(x)在x1,x2,…,xN排列中选取的M个点X1,X2,…,XM上有值...
【专利技术属性】
技术研发人员:杨广文,刘圣卓,张志远,陈宇澍,姜进磊,韩宝玲,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。