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