[发明专利]多网络环境下基于强化学习的MPI消息调度方法有效
申请号: | 201010148647.0 | 申请日: | 2010-04-16 |
公开(公告)号: | CN101833479A | 公开(公告)日: | 2010-09-15 |
发明(设计)人: | 蒋艳凰;卢宇彤;赵强利;谢旻;周恩强;曹宏嘉;陈海涛;董勇;所光 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种多网络环境下基于强化学习的MPI消息调度方法,目的是解决现有的循环调度方法导致高性能并行计算机实际应用性能低的缺陷。技术方案是在MPI系统启动过程中,对参数进行初始化,对于配有m套网络的计算环境,根据多Q表组合法创建Cm2个Q表;在MPI系统运行过程中,不断接收应用发出的MPI消息发送请求,确定当前消息段,然后获取当前环境状态,根据状态信息与各Q表中保存的历史经验值,将当前消息段调度至最佳网络,最后计算本次调度获得的瞬时奖赏值,并更新各Q表中的Q值。采用本发明可解决通信负载分配不均衡、无法适应网络状态动态变化、对计算环境的适应性差的问题,提高了高性能并行计算机的实际应用性能。 | ||
搜索关键词: | 网络 环境 基于 强化 学习 mpi 消息 调度 方法 | ||
【主权项】:
1.一种多网络环境下基于强化学习的MPI消息调度方法,其特征在于包括以下步骤:第一步:初始化,在MPI系统启动过程中,完成如下初始化的工作:1.1设置消息段的最大长度seg_max:seg_max的取值范围为1MB~64MB;1.2设置初次发送消息段标识FIRST_SIGN=1;1.3设置学习率β:0≤β≤1;1.4设置延迟回报的折扣因子γ:0≤γ≤1;1.5构造并初始化消息段计数器:为每套网络设置一个消息段计数器,用于记录当前该网络的发送队列中的消息段数目,第i套网络的消息段计数器数值用counter[i]表示,初始值为0;1.6构造并初始化等待时间变量:为每套网络设置一个变量,用于记录当前发送至该网络接口控制器上的消息段在发送队列中的等待时间,第i套网络的等待时间用wait_time[i]表示,初始值为0;为每个消息段设置一个变量用于记录其进入某通信网络发送队列中的时间,消息段j的进入时间用enter_time[j]表示,用于更新等待时间的值;1.7设置单套通信网络的状态数k:通信网络的状态用于反映该网络的繁忙程度,取值为[0,k-1]中的整数,设置单套通信网络的状态数k为区间[8,32]内的整数;1.8构造并初始化Q表:每两套网络生成一个Q表,第i套网络和第j(0≤i,j≤m-1且i<j)套网络生成的Q表用Q(i,j)表示,每个Q表用一个三维数组表示,前两维分别表示两套网络的状态,第三维表示可能的动作,将各Q表中的所有Q值初始化为
1.9设置并启动发送计时器timer:设置timer=0,并启动该计时器;第二步、计算队列间隔queue_interval和时间间隔time_interval的值:2.1根据网络的个数m、各网络发送队列的最大长度queue_max和单套通信网络的状态数k,按如下公式确定队列间隔queue_interval的大小:
2.2根据单套网络的理论带宽bandwidth和MPI系统设定的最大消息段长度seg_max,按如下公式计算时间间隔time_interval的值:
第三步、等待并行应用程序的消息发送请求:如果有未处理的消息发送请求,取出最先到达的消息请求,获取该请求需要发送的MPI消息,将MPI消息的未发送部分的长度message_length设置为该MPI消息的长度,并设置调度结束标识FINISHED=0,转第四步,否则继续等待;第四步、获取当前消息段:根据seg_max的值获取当前消息段,具体如下:4.1如果FINISHED=1,说明该MPI消息已调度完毕,转第三步;4.2如果MPI消息的未发送部分的长度message_length大于seg_max,则从前至后取出长度为seg_max的一段作为当前消息段,并按如下公式更新message_length:message_length=message_length-seg_max转第4.4步;4.3如果MPI消息的未发送部分的长度message_length小于等于seg_max,则直接将未发送部分作为当前消息段,设置调度结束标识FINISHED=1,转第4.4步;4.4如果FIRST_SIGN=1,则设置FIRST_SIGN=0,转第五步;否则转第六步;第五步、按如下方式设置当前环境状态scurrent和当前动作acurrent,动作是指将当前消息段调度至m套网络中的某一套,具体动作用所选的调度网络的标识表示:5.1scurrent=(0,0,…,0);5.2从m套通信网络中随机选择一套网络作为调度网络,记当前动作acurrent为该网络的标识号;5.3转第八步;第六步、按如下方式获取当前环境状态scurrent和当前动作acurrent:6.1对于网络i,0≤i≤m-1,获取其消息段计数器counter[i]和等待时间wait_time[i]的值;6.2令当前环境状态为scurrent=(k0,k2,…,km-1),其中网络i的状态ki按如下公式得到:
6.3获得当前动作acurrent:对于每个可能的动作a,按如下公式计算该动作的总Q值:Q total ( s current , a ) = Σ 0 ≤ i < m - 1 0 < j ≤ m - 1 i < j Q ( i , j ) ( s current , a ) = Σ 0 ≤ i < m - 1 0 < j ≤ m - 1 i < j Q ( i , j ) [ k i ] [ k j ] [ a ] ]]> 其中Qtotal(scurrent,a)表示在当前环境状态scurrent下选择第a套网络作为调度网络的总Q值,Q(i,j)(scurrent,a)表示在当前环境状态scurrent下选择第a套网络作为调度网络时,Q(i,j)表中的Q值,其对应在表中的具体值为Q(i,j)[ki][kj][a]的值;当前动作acurrent是所有动作中总Q值最大的动作,即:
其中函数arg表示返回总Q值最大的通信网络的标识;第七步、更新Q值:对于表Q(i,j),0≤i,j≤m-1且i<j,按如下公式更新表中“环境状态-动作”对(sprev,aprev)对应的Q值:Q(i,j)(sprev,aprev)=(1-β)·Q(i,j)(sprev,aprev)+β·(r+γ·Q(i,j)(scurrent,acurrent));第八步、将当前消息段调度至网络acurrent的发送队列中:8.1判定边界条件:如果counter[acurrent]≥queue_max,说明所选网络acurrent的发送队列已满,则持续等待,直到counter[acurrent]<queue_max;8.2设置当前消息段的enter_time值为当前系统时间,然后将消息段调度至网络acurrent的发送队列中;8.3按如下方式更新网络acurrent的消息段计数器的值:counter[acurrent]=counter[acurrent]+1;第九步、按如下公式计算当前动作acurrent产生的瞬时奖赏值r,瞬时奖赏值为执行动作acurrent后从环境获得的立即回报:r = 1 wait _ time [ a current ] + 1 - 4 k ; ]]> 第十步、更新前一次的环境状态sprev和前一次的动作aprev:sprev=scurrent;aprev=acurrent并转第四步;第十一步、如果发送计时器timer的值超过预设的值,则触发消息段发送处理,依次检测每套通信网络的发送队列,并负责将发送队列中的消息段发送至相应的网络接口控制器,所述预设的值为10ms~1s,具体步骤如下:11.1设置待检测网络的标识为i1=0;11.2检测第i1套网络的发送队列,如果发送队列中有消息段,则转步骤11.3,否则转步骤11.4;11.3如果第i1套网络接口控制器有可用资源,可以发送新的消息段,则按先来先服的策略取出该网络发送队列中最前面的消息段j,将其发送至相应的网络接口控制器,并按如下公式更新该网络的消息段计数器和等待时间的值:counter[i]=counter[i]-1wait _ time [ i ] = current _ time - enter _ time [ j ] time _ interval ]]> 然后转步骤11.2:如果第i1套网络接口控制器无可用资源,则说明该网络目前繁忙,无法发送新的消息段,转步骤11.4;11.4如果i1<m-1,则i1=i1+1,转步骤11.2,继续检测下一套网络的发送队列;否则设置发送计时器timer=0,并启动新一轮计时。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010148647.0/,转载请声明来源钻瓜专利网。
- 上一篇:双向垃圾压缩机
- 下一篇:电信网络中业务故障自动诊断的方法及系统