CN112817731B - 一种基于节点复制的异构多核系统任务调度方法 - Google Patents
一种基于节点复制的异构多核系统任务调度方法 Download PDFInfo
- Publication number
- CN112817731B CN112817731B CN202110213663.1A CN202110213663A CN112817731B CN 112817731 B CN112817731 B CN 112817731B CN 202110213663 A CN202110213663 A CN 202110213663A CN 112817731 B CN112817731 B CN 112817731B
- Authority
- CN
- China
- Prior art keywords
- layout
- node
- task
- subtask
- kernel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于节点复制的异构多核系统任务调度方法,包括:1根据有向无环图与异构计算消耗表,计算后续步骤需要的参数,并依据参数对任务进行排序,得到任务优先级列表;2按照任务优先级列表将任务依次取出,并把任务分配到不同的内核队列,生成初始布局;3遍历初始布局,对符合节点复制条件的任务节点进行相应的复制操作,生成复制后布局;4遍历复制后布局,在符合wait条件的join节点前补充冗余的wait节点,生成次优布局;5对次优布局进行冗余筛查,删除布局中的冗余任务,生成最优布局。本发明有利于估算并缩短异构环境下并行任务的关键路径,减少任务执行的整体时间,并通过冗余筛查避免无价值的冗余计算。
Description
技术领域
本发明涉及异构多核微处理器任务调度的技术领域,具体而言,涉及一种基于节点复制的异构任务调度方法。
背景技术
由于具有高性能、低功耗、易扩展等优点,多核处理器自问世后,便迅速取代单核处理器,一跃成为当前主流的处理器架构。对于多核处理器,合理的任务调度策略是提高任务并行度、减少任务执行时间的关键因素之一。异构多核处理器中的内核在功能、性能上存在差异。因此,与同构相比,异构多核处理器的任务调度问题更为复杂,在多项式时间复杂度内无法得到最优解。
异构多核处理器任务调度的相关研究中,关键路径的确定与优化问题占据着重要地位。借助参数在实际调度前估算关键路径是异构多核调度算法的常见方法。经典的异构多核系统调度算法常因参数的局限性导致估算路径偏差过大,调度结果不佳。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种基于节点复制的异构多核系统任务调度方法,以期能一定程度上减少在计算系统参数时因未考虑资源约束而导致的误差,正确估算并缩短异构环节下并行任务的关键路径以合理分配并行任务,从而能够在减少任务整体执行时间的同时,避免无意义的冗余任务对计算资源的消耗。
为实现上述目的,本发明采用如下技术方案:
本发明一种基于节点复制的异构多核系统任务调度方法的特点是按如下步骤进行:
步骤1,获取任意一个任务经过拆分后的有向无环图,并根据异构多核系统的异构计算消耗表,计算每个子任务节点的系统参数,所述系统参数包括:任务最早开始时刻、最早完成时刻、关键前驱任务、关键前驱任务链、内核优先级列表和BL权值;
将所述有向无环图中的没有前驱任务节点、仅有后继任务节点的子任务节点作为源点,将拥有两个或更多后继任务节点的子任务节点作为join节点;
依据各自的BL权值对任务中的所有子任务节点进行非升序排序,得到任务优先级列表;
步骤2,将各个子任务节点从所述优先级列表中依次取出,并相应分配到所述异构多核系统中不同的内核上,从而生成初始布局;
步骤3,遍历所述初始布局,对符合节点复制条件的子任务节点进行相应的复制操作,并生成复制后布局;将所述复制后布局中符合wait条件的join节点的前驱节点作为wait节点;
步骤4,遍历所述复制后布局,在符合wait条件的join节点前添加所对应的wait节点,并生成次优布局;
步骤5,对所述次优布局进行冗余筛查,删除所述次优布局中冗余的子任务节点,并重新计算去冗余后的次优布局中所有子任务节点的开始时间,从而生成最优布局。
本发明所述的基于节点复制的异构多核系统任务调度方法的特点也在于,
所述步骤2包括:
步骤2.1,检查所述任务优先级列表是否为空,若为空,则表示得到初始布局,并执行步骤3,否则,执行步骤2.2;
步骤2.2,从所述任务优先级列表中取出优先级最高的子任务节点,并作为当前子任务节点curtask;选择所述当前子任务节点curtask的内核优先级列表中优先级最高且未分配子任务的内核作为当前内核curProc;
步骤2.3,将所述当前子任务节点curtask添加到所述当前内核curProc中;
步骤2.4,根据所述有向无环图,检查所述当前子任务节点curtask是否存在关键前驱任务,若存在,则执行步骤2.5,否则,执行步骤2.1;
步骤2.5,根据所述有向无环图,检查所述当前子任务节点curtask的关键前驱任务是否为当前子任务节点curtask的唯一的前驱任务,若是,则执行步骤2.9,否则,执行步骤2.6;
步骤2.6,根据所述任务优先级列表,检查所述关键前驱任务是否已被调度,若是,则执行步骤2.7;否则,执行步骤2.9;
步骤2.7,检查当前子任务节点curtask的所有前驱任务中是否存在一个满足添加条件且未被调度的任务task-k,若存在,则执行步骤2.8,否则,执行步骤2.1;
步骤2.8,将所述任务task-k作为新的当前子任务节点curtask,并执行所述步骤2.3;
步骤2.9,将所述当前子任务节点curtask的关键前驱任务作为新的当前子任务节点curtask,并执行所述步骤2.3。
所述步骤3包括:
步骤3.1,将所述初始布局复制到暂存布局temp_Sch中进行备份;
步骤3.2,遍历所述初始布局,寻找符合任一复制条件的子任务节点作为备选节点;所述复制条件包括:
复制条件a,所述备选节点是所在内核的第一个且非源点的子任务节点;
复制条件b,所述备选节点在内核中的前一个子任务节点不是相应备选节点的关键前驱任务节点;
若备选节点满足复制条件a,则执行步骤3.3,若备选节点满足复制条件b,则执行步骤3.4,若不存在备选节点,则执行步骤3.6;
步骤3.3,将所述备选节点的关键前驱链复制到相应备选节点所在的内核上,并得到所述复制后布局后,执行步骤3.5;
步骤3.4,判断是否存在未分配子任务的内核,若存在,则将备选节点在内核中的所有前子任务节点移动到相应备选节点在内核中前一个子任务节点的优先级最高的内核上,否则,则将备选节点在内核中的所有前子任务节点直接移动到优先级最高的内核上;
步骤3.5、将备选节点的关键前驱链加入相应备选节点所在的内核中,从而得到复制后布局;
步骤3.6,比较所述复制后布局的调度长度与所述暂存布局temp_Sch的调度长度,若所述暂存布局temp_Sch的调度长度小于所述复制后布局的调度长度,则执行步骤3.7;否则执行步骤3.8;
步骤3.7,将所述暂存布局temp_Sch记为新的复制后布局,并执行步骤3.8;
步骤3.8,判断任务复制次数是否等于所设定的阈值PARA_DULP,若是,则表示得到最终的复制后布局,并执行步骤4,否则,执行步骤3。
所述步骤4包括:
步骤4.1,将所述复制后布局到暂存布局中temp_Sch进行备份;
步骤4.2,遍历复制后布局,判断join节点是否存在计算结果到达时刻晚于内核空闲时刻的前驱节点;若存在,则执行步骤4.3;否则,执行步骤5;
步骤4.3,将所述前驱节点复制到join节点所在的内核上,并生成所述次优布局;
步骤4.4,比较所述次优布局的调度长度与所述暂存布局temp_Sch的调度长度,若所述暂存布局temp_Sch的调度长度小于所述次布局的调度长度,则执行步骤4.5,否则,执行步骤5;
步骤4.5,将所述暂存布局temp_Sch作为新的次优布局,并执行步骤5。
所述步骤5包括:
步骤5.1,遍历所述次优布局,判断所述次优布局中是否存在出现过两次及以上次数的冗余子任务节点,若存在,则执行步骤5.2;否则,所述布局即为最优布局,并执行步骤5.3;
步骤5.2,判断将所述冗余子任务节点删除后是否导致次优布局的调度长度增加,若是,则不删除所述冗余子任务节点,否则,删除所述冗余子任务节点,并得到新的最优布局;
步骤5.3,判断冗余筛查次数是否等于所设定的阈值PARA,若是,则表示得到最终的最优布局,否则,将当前的最优布局作为次优布局后,执行步骤5.1。
与现有技术相比,本发明的有益效果在于:
1.本发明采用了改进的参数计算方法,通过在计算参数时增加约束,使得参数计算结果一定程度上考虑到了资源约束的影响,从而使后续的优化与分配更为理想;
2.本发明引入了任务节点复制机制,以子任务的冗余计算为代价,减少了任务间的通讯消耗;
3.本发明补充了冗余任务筛查机制,避免了无意义的冗余任务过度占用计算资源。
附图说明
图1是本发明基于节点复制的异构任务调度方法的整体流程图;
图2是本发明基于节点复制的异构任务调度方法所需的有向无环图;
图3是本发明基于节点复制的异构任务调度方法所需的异构计算消耗表;
图4是本发明基于节点复制的异构任务调度方法的生成初始布局的流程图。
具体实施方式
本实施例中,一种基于节点复制的异构任务调度方法的整体步骤如图1所示,包括:
步骤1,获取任意一个任务经过拆分后的有向无环图,并根据异构多核系统的异构计算消耗表,计算每个子任务节点的系统参数,系统参数包括:任务最早开始时刻、最早完成时刻、关键前驱任务、关键前驱任务链、内核优先级列表和BL权值;
将有向无环图中的没有前驱任务节点、仅有后继任务节点的子任务节点作为源点,将拥有两个或更多后继任务节点的子任务节点作为join节点;
依据各自的BL权值对任务中的所有子任务节点进行非升序排序,得到任务优先级列表;
具体地说,所有向无环图是对任务模型进行抽象的常见形式。如图2所示,有向无环图包含众多节点,每一个节点即对应带调度任务的子任务节点,节点圆圈中的数字为任务编号,连线上的数字代表任务间的通讯消耗c(vn,vi)。任务在不同内核上对应不同的计算消耗w(vi,pk)则通过异构计算消耗表给出,如图3所示。
第i个任务vi在第k个内核pk上的最早开始时刻est(vi,pk)的计算公式为:
式(1)中,PRED(vi)表示第i个任务vi的前驱任务的集合;fproc(vn,1)表示第n个任务vn的内核优先级列表中优先级最高的内核。
与其他方法的计算方式相比,本发明在计算est(vi,pk)时补充了约束:第i个任务vi的前驱任务中,有且仅有一个任务被放置在第k个内核pk上。当确定了第m个前驱任务vm调度到第k个内核pk后,其余的前驱任务只能被调度在除第k个内核pk以外的次优内核,并补充通讯消耗,由此得到了最早开始时刻的计算公式(1)。
相应的,第i个任务vi在第k个内核pk上的最早完成时刻ect(vi,pk)的计算公式为:
ect(vi,pk)=est(vi,pk)+w(vi,pk) (2)
任务v的关键前驱任务cpred(v)是最晚到达任务v所在的内核的前驱任务,是优化任务v的最早开始时刻的瓶颈。对于任意第i个任务vi,其关键前驱链被定义为cpred(vi),cpred(cpred(vi))…直至追溯到源点。
根据第i个任务vi在不同内核的最早完成时刻,按照非降序的原则对内核进行排序,可得到第i个任务vi的内核优先级列表。
此外,BL权值的计算公式为:
式(3)中,bl(vi)表示第i个任务vi的BL权值,bl(vj)表示第j个任务vj的BL权值,c(vi,vj)表示第i个任务vi与第j个任务vj之间的通讯消耗时间,w(vi,p)表示第i个任务vi在内核p上的计算消耗时间。BL权值代表了当前子任务节点到达汇点的最长路径长度。按照BL权值递减的原则对任务节点进行排序,生成任务优先级列表。
步骤2,将各个子任务节点从优先级列表中依次取出,并相应分配到异构多核系统中不同的内核上,从而生成初始布局,该阶段流程如图4所示;
步骤2.1,检查任务优先级列表是否为空,若为空,则表示得到初始布局,并执行步骤3,否则,执行步骤2.2;
步骤2.2,从任务优先级列表中取出优先级最高的子任务节点,并作为当前子任务节点curtask;选择当前子任务节点curtask的内核优先级列表中优先级最高且未分配子任务的内核作为当前内核curProc;
步骤2.3,将当前子任务节点curtask添加到当前内核curProc中;
步骤2.4,根据有向无环图,检查当前子任务节点curtask是否存在关键前驱任务,若存在,则执行步骤2.5,否则,执行步骤2.1;
步骤2.5,根据有向无环图,检查当前子任务节点curtask的关键前驱任务是否为当前子任务节点curtask的唯一的前驱任务,若是,则执行步骤2.9,否则,执行步骤2.6;
步骤2.6,根据任务优先级列表,检查关键前驱任务是否已被调度,若是,则执行步骤2.7;否则,执行步骤2.9;
步骤2.7,检查当前子任务节点curtask的所有前驱任务中是否存在一个满足添加条件且未被调度的任务task-k,若存在,则执行步骤2.8,否则,执行步骤2.1;
具体地,满足添加条件,即满足不等式:
ect(vi,fproc(vi,1))+c(vi,curtask)≥ect(vi,curproc) (4)
式(4)中,c(vi,curtask)表示第i个任务vi与当前任务curtask间的通讯消耗时间,curproc表示当前子任务节点curtask所在的内核。计算式(4)的目的是检查当调度第i个任务vi得到的数据到其最佳内核时,能否得到比调度到curproc更早的到达时间。
步骤2.8,将任务task-k作为新的当前子任务节点curtask,并执行步骤2.3;
步骤2.9,将当前子任务节点curtask的关键前驱任务作为新的当前子任务节点curtask,并执行步骤2.3。
步骤3,遍历初始布局,对符合节点复制条件的子任务节点进行相应的复制操作,并生成复制后布局;将复制后布局中符合wait条件的join节点的前驱节点作为wait节点;
步骤3.1,将初始布局复制到暂存布局temp_Sch中进行备份;
步骤3.2,遍历初始布局,寻找符合任一复制条件的子任务节点作为备选节点;复制条件包括:
复制条件a,备选节点是所在内核的第一个且非源点的子任务节点;
复制条件b,备选节点在内核中的前一个子任务节点不是相应备选节点的关键前驱任务节点;
若备选节点满足复制条件a,则执行步骤3.3,若备选节点满足复制条件b,则执行步骤3.4,若不存在备选节点,则执行步骤3.6;
步骤3.3,将备选节点的关键前驱链复制到相应备选节点所在的内核上,并得到复制后布局后,执行步骤3.5;
步骤3.4,判断是否存在未分配子任务的内核,若存在,则将备选节点在内核中的所有前子任务节点移动到相应备选节点在内核中前一个子任务节点的优先级最高的内核上,否则,则将备选节点在内核中的所有前子任务节点直接移动到优先级最高的内核上;
步骤3.5、将备选节点的关键前驱链加入相应备选节点所在的内核中,从而得到复制后布局;
步骤3.6,比较复制后布局的调度长度与暂存布局temp_Sch的调度长度,若暂存布局temp_Sch的调度长度小于复制后布局的调度长度,则执行步骤3.7;否则执行步骤3.8;
步骤3.7,将暂存布局temp_Sch记为新的复制后布局,并执行步骤3.8;
步骤3.8,判断任务复制次数是否等于所设定的阈值PARA_DULP,若是,则表示得到最终的复制后布局,并执行步骤4,否则,执行步骤3。
步骤4,遍历复制后布局,在符合wait条件的join节点前添加所对应的wait节点,并生成次优布局;
步骤4.1,将复制后布局到暂存布局中temp_Sch进行备份;
步骤4.2,遍历复制后布局,判断join节点是否存在计算结果到达时刻晚于内核空闲时刻的前驱节点,若存在,则执行步骤4.3;否则,执行步骤5;
步骤4.3,将前驱节点复制到join节点所在的内核上,并生成次优布局;
步骤4.4,比较次优布局的调度长度与暂存布局temp_Sch的调度长度,若暂存布局temp_Sch的调度长度小于次布局的调度长度,则执行步骤4.5,否则,执行步骤5;
步骤4.5,将暂存布局temp_Sch作为新的次优布局,并执行步骤5。
步骤5,对次优布局进行冗余筛查,删除次优布局中冗余的子任务节点,并重新计算去冗余后的次优布局中所有子任务节点的开始时间,从而生成最优布局。
步骤5.1,遍历次优布局,判断次优布局中是否存在出现过两次及以上次数的冗余子任务节点,若存在,则执行步骤5.2;否则,布局即为最优布局,并执行步骤5.3;
步骤5.2,判断将冗余子任务节点删除后是否导致次优布局的调度长度增加,若是,则不删除冗余子任务节点,否则,删除冗余子任务节点,并得到新的最优布局;
步骤5.3,判断冗余筛查次数是否等于所设定的阈值PARA,若是,则表示得到最终的最优布局,否则,将当前的最优布局作为次优布局后,执行步骤5.1。
Claims (4)
1.一种基于节点复制的异构多核系统任务调度方法,其特征是按如下步骤进行:
步骤1,获取任意一个任务经过拆分后的有向无环图,并根据异构多核系统的异构计算消耗表,计算每个子任务节点的系统参数,所述系统参数包括:任务最早开始时刻、最早完成时刻、关键前驱任务、关键前驱任务链、内核优先级列表和BL权值;
利用式(1)计算第i个任务vi在第k个内核pk上的最早开始时刻est(vi,pk):
式(1)中,PRED(vi)表示第i个任务vi的前驱任务的集合;fproc(vn,1)表示第n个任务vn的内核优先级列表中优先级最高的内核;c(vn,vi)表示第i个任务vi和第n个任务vn之间的通讯消耗;ect(vm,pk)表示第m个任务vm的在第k个内核pk上的最早完成时刻;
利用式(2)计算第i个任务vi在第k个内核pk上的最早完成时刻ect(vi,pk):
ect(vi,pk)=est(vi,pk)+w(vi,pk) (2)
式(2)中,w(vi,pk)表示第i个任务vi在第k个内核pk上对应不同的计算消耗;
利用式(3)计算第i个任务vi的BL权值bl(vi):
式(3)中,bl(vj)表示第j个任务vj的BL权值,c(vi,vj)表示第i个任务vi与第j个任务vj之间的通讯消耗时间,w(vi,p)表示第i个任务vi在内核p上的计算消耗时间;
将所述有向无环图中的没有前驱任务节点、仅有后继任务节点的子任务节点作为源点,将拥有两个或更多后继任务节点的子任务节点作为join节点;
依据各自的BL权值对任务中的所有子任务节点进行非升序排序,得到任务优先级列表;
步骤2,将各个子任务节点从所述优先级列表中依次取出,并相应分配到所述异构多核系统中不同的内核上,从而生成初始布局;
步骤3,遍历所述初始布局,对符合节点复制条件的子任务节点进行相应的复制操作,并生成复制后布局;将所述复制后布局中符合wait条件的join节点的前驱节点作为wait节点;
步骤3.1,将所述初始布局复制到暂存布局temp_Sch中进行备份;
步骤3.2,遍历所述初始布局,寻找符合任一复制条件的子任务节点作为备选节点;所述复制条件包括:
复制条件a,所述备选节点是所在内核的第一个且非源点的子任务节点;
复制条件b,所述备选节点在内核中的前一个子任务节点不是相应备选节点的关键前驱任务节点;
若备选节点满足复制条件a,则执行步骤3.3,若备选节点满足复制条件b,则执行步骤3.4,若不存在备选节点,则执行步骤3.6;
步骤3.3,将所述备选节点的关键前驱链复制到相应备选节点所在的内核上,并得到所述复制后布局后,执行步骤3.5;
步骤3.4,判断是否存在未分配子任务的内核,若存在,则将备选节点在内核中的所有前子任务节点移动到相应备选节点在内核中前一个子任务节点的优先级最高的内核上,否则,则将备选节点在内核中的所有前子任务节点直接移动到优先级最高的内核上;
步骤3.5、将备选节点的关键前驱链加入相应备选节点所在的内核中,从而得到复制后布局;
步骤3.6,比较所述复制后布局的调度长度与所述暂存布局temp_Sch的调度长度,若所述暂存布局temp_Sch的调度长度小于所述复制后布局的调度长度,则执行步骤3.7;否则执行步骤3.8;
步骤3.7,将所述暂存布局temp_Sch记为新的复制后布局,并执行步骤3.8;
步骤3.8,判断任务复制次数是否等于所设定的阈值PARA_DULP,若是,则表示得到最终的复制后布局,并执行步骤4,否则,执行步骤3;
步骤4,遍历所述复制后布局,在符合wait条件的join节点前添加所对应的wait节点,并生成次优布局;
步骤5,对所述次优布局进行冗余筛查,删除所述次优布局中冗余的子任务节点,并重新计算去冗余后的次优布局中所有子任务节点的开始时间,从而生成最优布局。
2.如权利要求1所述的基于节点复制的异构多核系统任务调度方法,其特征在于,所述步骤2包括:
步骤2.1,检查所述任务优先级列表是否为空,若为空,则表示得到初始布局,并执行步骤3,否则,执行步骤2.2;
步骤2.2,从所述任务优先级列表中取出优先级最高的子任务节点,并作为当前子任务节点curtask;选择所述当前子任务节点curtask的内核优先级列表中优先级最高且未分配子任务的内核作为当前内核curProc;
步骤2.3,将所述当前子任务节点curtask添加到所述当前内核curProc中;
步骤2.4,根据所述有向无环图,检查所述当前子任务节点curtask是否存在关键前驱任务,若存在,则执行步骤2.5,否则,执行步骤2.1;
步骤2.5,根据所述有向无环图,检查所述当前子任务节点curtask的关键前驱任务是否为当前子任务节点curtask的唯一的前驱任务,若是,则执行步骤2.9,否则,执行步骤2.6;
步骤2.6,根据所述任务优先级列表,检查所述关键前驱任务是否已被调度,若是,则执行步骤2.7;否则,执行步骤2.9;
步骤2.7,检查当前子任务节点curtask的所有前驱任务中是否存在一个满足添加条件且未被调度的任务task-k,若存在,则执行步骤2.8,否则,执行步骤2.1;
步骤2.8,将所述任务task-k作为新的当前子任务节点curtask,并执行所述步骤2.3;
步骤2.9,将所述当前子任务节点curtask的关键前驱任务作为新的当前子任务节点curtask,并执行所述步骤2.3。
3.如权利要求1所述的基于节点复制的异构多核系统任务调度方法,其特征在于,所述步骤4包括:
步骤4.1,将所述复制后布局到暂存布局中temp_Sch进行备份;
步骤4.2,遍历复制后布局,判断join节点是否存在计算结果到达时刻晚于内核空闲时刻的前驱节点;若存在,则执行步骤4.3;否则,执行步骤5;
步骤4.3,将所述前驱节点复制到join节点所在的内核上,并生成所述次优布局;
步骤4.4,比较所述次优布局的调度长度与所述暂存布局temp_Sch的调度长度,若所述暂存布局temp_Sch的调度长度小于所述次优 布局的调度长度,则执行步骤4.5,否则,执行步骤5;
步骤4.5,将所述暂存布局temp_Sch作为新的次优布局,并执行步骤5。
4.如权利要求1所述的基于节点复制的异构多核系统任务调度方法,其特征在于,所述步骤5包括:
步骤5.1,遍历所述次优布局,判断所述次优布局中是否存在出现过两次及以上次数的冗余子任务节点,若存在,则执行步骤5.2;否则,所述布局即为最优布局,并执行步骤5.3;
步骤5.2,判断将所述冗余子任务节点删除后是否导致次优布局的调度长度增加,若是,则不删除所述冗余子任务节点,否则,删除所述冗余子任务节点,并得到新的最优布局;
步骤5.3,判断冗余筛查次数是否等于所设定的阈值PARA,若是,则表示得到最终的最优布局,否则,将当前的最优布局作为次优布局后,执行步骤5.1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110213663.1A CN112817731B (zh) | 2021-02-25 | 2021-02-25 | 一种基于节点复制的异构多核系统任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110213663.1A CN112817731B (zh) | 2021-02-25 | 2021-02-25 | 一种基于节点复制的异构多核系统任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817731A CN112817731A (zh) | 2021-05-18 |
CN112817731B true CN112817731B (zh) | 2022-12-06 |
Family
ID=75863873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110213663.1A Active CN112817731B (zh) | 2021-02-25 | 2021-02-25 | 一种基于节点复制的异构多核系统任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817731B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN103336723A (zh) * | 2013-07-21 | 2013-10-02 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN105335226A (zh) * | 2015-09-24 | 2016-02-17 | 合肥工业大学 | 针对多处理器系统的迭代式静态任务列表调度算法 |
CN109117258A (zh) * | 2018-07-24 | 2019-01-01 | 合肥工业大学 | 一种基于任务移动的多核系统静态任务调度方法 |
CN110134506A (zh) * | 2019-05-24 | 2019-08-16 | 哈尔滨理工大学 | 基于处理器内核动态的实时动态关键路径多核调度方法 |
EP3722954A1 (en) * | 2013-06-24 | 2020-10-14 | Cylance Inc. | Automated system for generative multimodel multiclass classification and similarity analysis using machine learning |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190347603A1 (en) * | 2018-05-14 | 2019-11-14 | Msd International Gmbh | Optimizing turnaround based on combined critical paths |
-
2021
- 2021-02-25 CN CN202110213663.1A patent/CN112817731B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
EP3722954A1 (en) * | 2013-06-24 | 2020-10-14 | Cylance Inc. | Automated system for generative multimodel multiclass classification and similarity analysis using machine learning |
CN103336723A (zh) * | 2013-07-21 | 2013-10-02 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN105335226A (zh) * | 2015-09-24 | 2016-02-17 | 合肥工业大学 | 针对多处理器系统的迭代式静态任务列表调度算法 |
CN109117258A (zh) * | 2018-07-24 | 2019-01-01 | 合肥工业大学 | 一种基于任务移动的多核系统静态任务调度方法 |
CN110134506A (zh) * | 2019-05-24 | 2019-08-16 | 哈尔滨理工大学 | 基于处理器内核动态的实时动态关键路径多核调度方法 |
Non-Patent Citations (2)
Title |
---|
一种多核系统改进型列表调度算法;罗乐,王春华,张多利,宋宇鲲;《电子科技》;20200615;第33卷(第6期);D1 权利要求1步骤1-2 * |
一种改进的基于复制的异构多核任务调度算法;周超群等;《电子科技》;20170615;第30卷(第06期);D2 权利要求步骤3-5-权利要求2 * |
Also Published As
Publication number | Publication date |
---|---|
CN112817731A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119311B (zh) | 一种基于fpga的分布式流计算系统加速方法 | |
CN110413391B (zh) | 基于容器集群的深度学习任务服务质量保证方法和系统 | |
US8924976B2 (en) | Task scheduling method and apparatus | |
CN104636204B (zh) | 一种任务调度方法与装置 | |
US20070283358A1 (en) | Method for controlling heterogeneous multiprocessor and multigrain parallelizing compiler | |
CN105808334A (zh) | 一种基于资源重用的MapReduce短作业优化系统及方法 | |
JP2010079622A (ja) | マルチコアプロセッサシステム、および、そのタスク制御方法 | |
Gotoda et al. | Task scheduling algorithm for multicore processor system for minimizing recovery time in case of single node fault | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、系统、设备及介质 | |
CN111026519A (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
CN111367644A (zh) | 一种面向异构融合系统的任务调度方法及装置 | |
CN111651864A (zh) | 一种事件集中发射式多异构时间队列优化仿真执行方法及系统 | |
CN110275765B (zh) | 基于分支dag依赖的数据并行作业调度方法 | |
Ueter et al. | Response-time analysis and optimization for probabilistic conditional parallel DAG tasks | |
Niu et al. | Reliability-aware scheduling for reducing system-wide energy consumption for weakly hard real-time systems | |
CN112817731B (zh) | 一种基于节点复制的异构多核系统任务调度方法 | |
CN117290006A (zh) | 面向vec的依赖性任务卸载和服务缓存联合优化方法 | |
Huang et al. | Communication-aware task scheduling algorithm for heterogeneous computing | |
Qin et al. | Dependent task scheduling algorithm in distributed system | |
Banicescu et al. | Towards the robustness of dynamic loop scheduling on large-scale heterogeneous distributed systems | |
US20140380321A1 (en) | Energy efficient job scheduling | |
Tendulkar et al. | A case study into predictable and composable MPSoC reconfiguration | |
EP4226294A1 (en) | Methods and apparatus for parallel quantum computing | |
Thai | Real-time scheduling in distributed systems | |
Schönberger et al. | Offloading safety-and mission-critical tasks via unreliable connections |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |