1.一种DAG并行任务调度中基于树搜索的剪枝方法,其特征在于,所述方法包括步骤:S1、求出DAG图的关键路径;
S2、初始化上下界;
S3、初始化搜索树和就绪队列;
S4、选择阶段:根节点s0开始,选择路径上UCT值最大的子节点s,直到到达叶子节点,对UCT值最大的子节点s进行判断;
UCT=argmax(Q(s.a)+U(a,s))
Cpuct是重要的超参数;N(s,a)表示当前任务节点的访问次数; 表示当前任务的所有父节点的访问次数,Q(s,a)表示当前树节点的累积奖励值;
S5、剪枝阶段:对从根节点到当前节点的路径上的所有节点的makespan值和未调度的关键路径任务节点在各自最快完成的处理器上执行时间的累加值做判断;
S6、扩展阶段:判断S4步骤选中的叶子节点是不是终止节点,依据判断结果创建新的子节点,添加到搜索树上,更新新的子节点的标记;
S7、模拟阶段:从扩展节点开始,将剩余的任务进行模拟任务调度的过程;
S8、回传阶段:模拟结束后,将所得信息回传到根节点上;
S9、依据makespan值找出一条调度顺序;
S5步骤中:计算从根节点到当前节点的路径上的所有节点的makespan值,记为计算未调度的关键路径任务节点在各自最快完成的处理器上执行时间的累加值,记为 CPfront表示DAG图中当前未调度的关键路径任务节
点的集合,若m1+m2>β,则剪去该节点以及它所有的子节点,并将该节点的标记变为True,下次不再次访问标记为True的节点,并退回到根节点,清空就绪队列里的任务,从根节点重新开始进行选择阶段,否则,将当前节点作为搜索路径节点,并将该节点所对应的的任务节点从就绪队列里取出,同时更新DAG图中当前任务节点的孩子节点的父节点数若存在孩子节点的父节点数为零,则将此孩子节点加入到就绪队列,回到S4步骤。
2.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S1步骤中:利用CPOP算法求出DAG图的关键路径;
S2步骤中:下界 此值为所有关键路径节点在各自最快完成的
处理器上执行时间的累加值,上界β=+∞,CPMIN表示DAG图中所有的关键路径任务节点的集合。
3.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S3步骤中:初始化搜索树和就绪队列,搜索树的根节点标记为False,将DAG图的入口节点任务加入就绪队列,同时更新这些任务的孩子节点的父节点数
4.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S4步骤中:从根节点s0开始,递归的选择路径上UCT值最大的子节点s,直到到达叶子节点,若选择的UCT值最大的子节点s的标记为False,就进入剪枝阶段,否则就回退到父节点,重新选择其他子节点,判断标记是否为False,若此父节点的所有孩子节点的标记都为True,则将此父节点的标记也改为True,并退回到根节点,清空就绪队列里的任务,从根节点重新开始进行选择阶段。
5.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S6步骤中:计算就绪队列里的任务数量,记为q,若S4步骤选中的叶子节点不是终止节点,那么就创建q×T个新的子节点,T代表处理器数量,添加到搜索树上,并对这些节点的访问次数,奖励值进行初始化N(st,a)=0,Q(st,a)=0,这些节点的标记记为False,随机选择其中一个节点,然后进入S7步骤,N(st,a)表示新扩展节点的访问次数,Q(st,a)表示新扩展节点的奖励值。
6.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S7步骤中:从扩展节点开始,将剩余的任务使用PEFT算法进行模拟任务调度的过程,直到模拟到全部任务都被调度到处理器上为止,得到一个makespan值,如果当前的α
7.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S8步骤中:当模拟结束后,搜索树中各节点的信息也都已经得到,此时根据makespan值,将搜索后所得最新节点由叶子节点回传到根节点上进行更新,节点访问次数的更新方式N(s,a)=N(s,a)+1;
节点的奖励值的更新方式为
8.根据权利要求1所述的一种DAG并行任务调度中基于树搜索的剪枝方法,其特征是S9步骤中:执行完S4、S5、S6、S7和S8后,将DAG任务图恢复成原始的任务图,然后重复执行S4、S5、S6、S7和S8;直到达到模拟上限次数为止,根据调度结果找出一条makespan值最小的调度顺序。