1.一种基于蒙特卡洛树搜索的DAG任务调度方法,其特征是,包括如下步骤:(1-1)利用CPOP算法求出DAG图的关键路径;
(1-2)选择阶段:设定搜索树的根节点为S0,从根节点S0开始,每经过一个结点,开始判断经过的这个结点是否扩展完;
(1-3)扩展阶段:若当前为扩展任务结点,则从待调度的任务队列中选择一个任务,添加到搜索树上,作为新的任务结点;
(1-4)模拟阶段:从扩展结点开始,在每一个位置Si,使用随机策略交替选择任务和处理器,并将同一状态下选择的任务调度到处理器上,直到模拟到全部任务都被调度到处理器上为止,最后会得到一个makespan值;
(1-5)回传阶段:当模拟结束后,获得搜索树中各节点的信息,同时根据makespan值,将搜索后所得最新结点由叶子结点回传到根节点上进行更新;
(1-6)重复执行步骤(1-2)至步骤(1-5)直到DAG图的最后一个任务结点被调度到处理器上为止,并最后根据结果找到一条能使makespan值最小的调度顺序。
2.根据权利要求1所述的基于蒙特卡洛树搜索的DAG任务调度方法,其特征是,步骤(1-
2)还包括如下步骤:
如果经过的这个结点没有扩展完,则进入扩展阶段;如果扩展完,选择UCT值最大的结点作为搜索路径结点,所述过程利用如下公式进行计算:其中,Cpuct是重要的超参数,主要用于平衡探索和利用间的权重;N(s,a)表示当前任务结点的访问次数; 表示当前任务结点的所有父节点的访问次数;N(s,b)表示当前处理器结点的访问次数; 表示当前处理器结点的所有父结点的访问次数;p(s,a)当前状态下动作a的概率值,P(s,b)当前状态下动作b的概率值,其中模拟退火参数τ初始值为1。
3.根据权利要求1所述的基于蒙特卡洛树搜索的DAG任务调度方法,其特征是,步骤(1-
3)还包括如下步骤:
对新的任务结点的访问次数,奖励值和动作概率进行初始化N(st,a)=0,Q(st,a)=0,p(st,a)=pt;
若当前为扩展处理器结点,则从处理器集合中任意选择一个可利用的处理器,作为搜索树中新的处理器结点,并对该结点的访问次数,奖励值和动作概率进行初始化N(st,b)=
0,Q(st,b)=0,p(st,b)=pt。
4.根据权利要求1所述的基于蒙特卡洛树搜索的DAG任务调度方法,其特征是,步骤(1-
5)还包括如下步骤:
其中,任务结点访问次数的更新方式为N(s,a)=N(s,a)+1;处理器结点访问次数的更新方式为N(s,b)=N(s,b)+1;
任务结点的奖励值的更新方式为:
处理器结点的奖励值的更新方式:
其中, 表示当前任务结点到最后一个任务结点之间的关键路径任务结点在其执行时间最短的处理器上执行所需的计算开销之和;
当MCTS搜索完成后,返回当前状态下动作a的概率值π(s,a)和动作b的概率值π(s,b)。
5.根据权利要求2或3或4所述的基于蒙特卡洛树搜索的DAG任务调度方法,其特征是,所述动作a为从待调度的任务集合中选择一个任务;所述动作b为从处理器集合中选择一个可以使用的处理器。