CN108139929B - 用于调度多个任务的任务调度装置和方法 - Google Patents
用于调度多个任务的任务调度装置和方法 Download PDFInfo
- Publication number
- CN108139929B CN108139929B CN201580083785.6A CN201580083785A CN108139929B CN 108139929 B CN108139929 B CN 108139929B CN 201580083785 A CN201580083785 A CN 201580083785A CN 108139929 B CN108139929 B CN 108139929B
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- cores
- slow
- fast
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Power Sources (AREA)
Abstract
本发明公开一种用于调度包括一组慢核和一组快核的多核处理机上的多个任务的任务调度程序,所述任务调度程序包括:时序单元,用于将不在关键路径上的至少一个候选任务的慢核运行时间与对应于所述候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务的快核运行时间进行比较;和任务分配单元,用于在所述候选任务的所述慢核运行时间长于所述一个或多个关键路径任务的快核运行时间的情况下将所述候选任务分配到所述一组快核,否则将所述候选任务分配到所述一组慢核。
Description
技术领域
本发明涉及用于调度多核处理机上的多个任务的任务调度程序和用于调度处理机上的多个任务的方法。
本发明还涉及处理机和存储程序代码的计算机可读存储媒体,所述程序代码包括用于实施上述方法的指令。
背景技术
异质多核计算系统(Heterogeneous multi-core computing system,HMCCS)广泛用于例如移动电话、平板计算机和甚至小型笔记本电脑计算机等联网移动系统中。这些系统含有两种类型的处理机核心:期望用于高效运行的快核和期望用于功率感知运行的低功率核心。所述第一组有时也被称为热组、热核拔、快核拔。所述第二组包括具有低功耗的低性能核心且也被称为冷组、冷核拔或慢核拔。
实施所述一组慢核而不是所述一组快核上的任务允许减小总体功率消耗。由于其在不进行再充电的情况下实现延长移动系统中的电池寿命,因此这对于移动系统特别重要。用于操作HMCCS的常用系统软件包括编译程序和调度程序。编译程序负责产生在此类设备上运行的程序且调度程序负责在运行时间期间加载此类设备。对于这些系统的软件开发的主要问题是应将何种种类的核心用于HMCC系统中的程序块或任务。在现代编译程序中,由程序员完成这种解决方案。
另一方法在于在调度程序级别自动地改变任务或程序或线程或程序块与不同类型核心组的附属关系。在此上下文中,已经提出大量不同技术。已经提出用于优化HMCCS的使用的各种类型的方法。一个方向致力于使HMCCS的性能最大化,且另一方向与所建立功率消耗预算内部的性能优化相关,等等。然而,仍然需要更高效地执行HMCCS上的程序。
发明内容
本发明的目标是提供任务调度程序和用于任务调度的方法,其中所述任务调度程序和所述方法解决现有技术的一个或多个问题。
具体来说,本发明的目标可包含提高使用具有包括至少两个类型的核心的异质多核 (heterogeneous multi-core,HMC)架构的计算系统的效率。
本发明的第一方面提供用于调度包括一组慢核和一组快核的多核处理机上的多个任务的任务调度程序,所述任务调度程序包括:
-时序单元,用于比较不在关键路径上的至少一个候选任务的慢核运行时间与一个或多个关键路径任务的快核运行时间,和
-任务分配单元,用于在所述候选任务的慢核运行时间长于所述一个或多个关键路径任务的快核运行时间的情况下将所述候选任务分配到所述一组快核且否则将所述候选任务分配到所述一组慢核。
一般来说,任务的慢核运行时间为所述一组慢核中一核心上的任务的运行时间。慢核运行时间可为对慢核运行时间的运行时间估计值,具体地说其可为对所述慢核中一核心的所估计最小或最大运行时间。可对应地界定快核运行时间。
在本发明的实施例中,每个应用程序被视为一组任务且特殊任务图描述这一组任务、所述组中任务的层次和任务执行的序列。
每个任务图以层级次序被划分成各级别。每个较低级别对应于取决于仅属于较高级别任务的数据的任务。在相同级别基础上将任务的运行时间彼此进行比较。即,在任务图中的相同级别内将并不属于关键路径的任务的执行时间与关键路径上的任务的执行时间进行比较。换句话说,时序单元用于比较不在关键路径上的至少一个候选任务的慢核运行时间与对应于所述候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务的快核运行时间。
并不在关键路径上的一个或多个关键路径任务,其运行时间与候选任务的运行时间进行比较,为与候选任务处于相同级别的关键路径上的任务。换句话说,所述一个或多个关键路径任务处于一个或多个级别的关键路径上,所述级别对应于候选任务的级别。
对应于候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务可包括与候选任务在相同时间范围内操作的关键路径上的任务的范围。
通过在所述候选任务的慢核运行时间长于所述一个或多个关键路径任务的快核运行时间的情况下将所述候选任务分配到所述一组快核,所述第一方面的方法确保候选任务的执行并不延长整个程序的运行时间。
另一方面,通过在候选任务的慢核运行时间不长于所述一个或多个关键路径任务的快核运行时间的情况下将候选任务分配到所述一组慢核,所述第一方面的方法确保优选地将所述任务分配到慢核,因此节约能耗且使得所述一组快核可供用于较紧急任务的执行。
在根据第一方面的装置的第一实施方案中,所述任务调度程序进一步包括:
-图构造单元,用于构造所述多个任务的任务图,和
-路径寻找单元,用于确定所述任务图的关键路径。
因此,任务调度程序可具有程序代码作为输入(其在实施例中可呈源代码形式或呈经编译二进制形式)且使用图构造单元和路径寻找单元推导用于调度程序的任务所必需的信息。
换句话说,第一实施方案的任务调度程序可以用于使界定多个任务的程序代码作为输入,且推导对于这些任务的调度(作为输出)。
任务图可包括通过肋拱连接的一组顶点。在优选实施例中,所述肋拱无时延,这是由于时延被包含到适合的任务的持续时间中。与任务图形成对比的任务图中的顶点还含有如下多种数据:t1(v)、t2(v)、p1(v)和p2(v)。此处,t1(v)表示快核组上的任务v的持续时间,t2(v)表示慢核组上的任务v的持续时间,p1(v)表示快核组上的任务v的功率消耗,p2(v)表示慢核组上的任务v的功率消耗。
在替代实施例中,同样根据本发明,所述任务调度程序可以用于从外置单元获得任务图和任务图的关键路径作为输入。举例来说,可在程序的编译期间确定所述任务图。
在根据第一方面的装置的第二实施方案中,所述任务调度程序进一步包括用于确定将候选任务分配到所述一组慢核的功率消耗增益的功率计算单元,其中所述任务分配单元用于以功率消耗增益降序分配候选任务。
因此,所述任务调度程序自身用于确定功率消耗增益。这意味着任务调度程序可与其它设备无关且具有比提供关于待执行任务的信息的其它单元少的要求。
在根据第一方面的装置的第三实施方案中,所述功率计算单元用于将功率消耗增益确定为所述一组快核上的候选任务的功率消耗与所述一组慢核上的候选任务的功率消耗之间的差。
这代表了一种尤其简单且高效的计算功率消耗增益的方式。
在根据第一方面的装置的第四实施方案中,所述任务调度程序进一步包括用于通过实施候选任务的一个或多个初步运行而确定候选任务的慢核运行时间和/或快核运行时间的初步执行单元。
这代表了一种实用的计算功率消耗增益的方式。在本发明的实施例中,初步执行单元用于在执行程序之前确定慢核和/或快核运行时间。举例来说,任务调度程序可以用于在程序的安装期间确定程序的任务的慢核和/或快核运行时间。
本发明的第二方面涉及包括一组快核、一组慢核和根据本发明的第一方面或其实施方案中的一个的任务调度程序的处理机。
根据这一方面,所述任务调度程序可集成到所述处理机中。举例来说,所述任务调度程序可集成到处理机的硬件中。这具有不需要修改外置组件以便实现性能增益的优点。
本发明的第三方面涉及用于调度包括一组快核和一组慢核的处理机上的多个任务的方法,所述方法包括:
-比较不在关键路径上的候选任务的慢核运行时间与一个或多个关键路径任务的快核运行时间,和
-如果所述候选任务的慢核运行时间长于所述一个或多个关键路径任务的快核运行时间,那么将所述任务分配到所述一组快核,否则将所述任务分配到所述一组慢核。
根据本发明的第三方面的方法可由根据本发明的第一方面的任务调度程序执行。根据本发明的第三方面的方法的另外的特征或实施方案可执行根据本发明的第一方面和其不同实施形式的任务调度程序的功能性。
在第三方面的方法的第一实施方案中,所述方法进一步包括以下初始步骤:
-构造所述多个任务的任务图,和
-确定任务图的关键路径。
因此,有可能所述任务图并不是先前确定的,而是例如通过任务调度程序确定的。如果任务图的结构例如取决于在编译时间之后作出的一些决策,那么所述方法可在稍后时刻,例如在运行时间确定任务图。
在第三方面的方法的第二实施方案中,所述方法进一步包括:
-对于至少两个候选任务:确定将所述候选任务分配到所述一组慢核的功率消耗增益,和
-以功率消耗增益降序分配所述至少两个任务。
在第三方面的方法的第三实施方案中,将功率消耗增益确定为所述一组快核上的候选任务的功率消耗与所述一组慢核上的候选任务的功率消耗之间的差。
在第三方面的方法的第四实施方案中,所述方法进一步包括通过实施候选任务的一个或多个初步运行而确定候选任务的慢核运行时间和/或快核运行时间的初始步骤。
在第三方面的方法的第五实施方案中,实施初步运行以用于通过执行不同组核心上的候选任务而收集关于任务执行时间和时延的信息,且其中基于所述所收集的信息而确定慢核运行时间和/或快核运行时间。
如果并不(例如通过编译程序)提供关于任务执行时间和时延的信息,那么任务调度程序可因此通过实施初步运行而确定所需信息。这可涉及额外计算时间,但仍然可导致总计算时间的减小,尤其是对于长执行时间的程序。
本发明的第四方面指代存储程序代码的计算机可读存储媒体,所述程序代码包括用于实施第三方面或第三方面的实施方案中的一个的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术特征,下面将对用于描述实施例的附图作简单地介绍。下面描述中的附图仅仅是本发明的一些实施例,在不违背本发明如权力要求书中所界定的范围的情况下,有可能对这些实施例进行修改。
图1为说明根据本发明的实施例的任务调度程序的方块框图,
图2为说明根据本发明的另一实施例的用于调度多个任务的方法的流程图,
图3为说明根据本发明的另一实施例的用于调度多个任务的方法的示意图,
图4为说明根据本发明的另一实施例的用于调度多个任务的方法的示意图,
图5为说明根据本发明的另一实施例的用于调度多个任务的方法的示意图,
图6为说明根据本发明的另一实施例的用于调度多个任务的方法的示意图,以及
图7为说明根据本发明的另一实施例的用于调度多个任务的方法的流程图,
具体实施方式
图1为说明根据本发明的实施例的任务调度程序100的方块框图。任务调度程序100包括时序单元110和任务分配单元120。另外,如图1中虚线所指示,任务调度程序100可任选地包括图构造单元130、路径寻找单元140、功率计算单元150和初步计算单元160。
在本发明的实施例中,任务调度程序100可实施为处理机(在图1中未展示)的部分或可实施于定位于处理机外部的硬件设备中。
图2为说明根据本发明的另一实施例的用于调度多个任务的方法200的流程图,
方法200包括比较不在关键路径上的候选任务的慢核运行时间与对应于所述候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务的快核运行时间的步骤210。
所述方法包括如果候选任务的慢核运行时间长于一个或多个关键路径任务的快核运行时间,那么将所述任务分配到所述一组快核,否则将所述任务分配到所述一组慢核的另一步骤 220。
如图2中的虚线所示,所述方法任选地进一步包括三个初始或初步步骤:构造所述多个任务的任务图的第一初始步骤202;确定任务图的关键路径的第二初始步骤204和通过实施候选任务的一个或多个初步运行而确定候选任务的慢核运行时间和/或快核运行时间的第三初始步骤206。
在本发明的实施例中,以如图2所示的次序实施所述方法步骤。然而,在本发明的其它实施例中,可以不同次序实施所述方法步骤。
图3为说明通过本发明的任务调度程序和方法解决的问题的示意图。
图3中展示多个任务,关键路径305上的第一任务310、第二任务320和第三任务330,以及候选任务340。将任务310、320、330分配给一组快核302。对于候选任务340,任务调度程序应决定将其分配到所述一组快核302还是一组慢核304。
此处,ti为关于i-类型的核心的执行时间(其中i为1或2)且pi为关于i-类型的核心的功率消耗(对于快核i=1且对于慢核i=2)。
程序执行时间对应于基于任务执行时间评估的穿过任务图的最长路径(关键路径)。程序的性能为程序执行时间的相反值。为了使程序的性能最大化意味着使程序执行时间最小化或使任务图的关键路径最小化。关键路径的最小值对应于快核组上的关键路径任务的执行。所有其它任务(未包含到关键路径中)应在各组当中迁移以使功率消耗最小化(在图3上所示的图上此设施由“?”标志表示)。
现在让我们考虑使性能最大化且使功率消耗最小化的问题。我们将逐步地解决此问题。在第一步骤处,我们在最大性能情况下构造解决方案,且在第二步骤处,在保持最大性能值情况下,我们将使功率消耗最小化。
让我们假设我们找到了关键路径K,例如如通过如上文所描述的关键路径寻找单元所确定。在那之后,相对于关键路径的任务将所有任务划分或组织成各级别。每个较低级别对应于取决于仅属于较高级别任务的数据的任务。这通过图4中所展示的示例说明。
在图4中,第一任务410、第四任务440、第五任务450和第六任务460位于关键路径上,由虚线405指示,其中将所述任务分配到一组快或热核402。第二任务420和第三任务430定位于关键路径外部,但与第四任务440处于相同级别,在图4中指示为“级别2”。第二任务420和第三任务430在下文中被视为候选任务。
当搜索关键路径405时,将所有操作提供于所述一组快核上,由于一个人可仅通过此方式而获得考虑到HMCCS的最大性能。
接着,关键路径是固定的且使属于所述关键路径的所有任务附属于所述一组快核。让我们考虑并不属于关键路径的中间级别上的任务。由于现在目标是使功率消耗最小化,因此检查:有可能在不延长总体运行时间的情况下使第二任务420和第三任务430附属于所述一组慢核。
在以下方程式中,A、B、C、D和E分别表示第一任务、第二任务、第三任务、第四任务和第五任务。
在以下情况下第二任务B和第三任务C可附属于所述一组慢核而不会超出总体运行时间且因此不会损耗性能:
t2(C)≤t1(D)
且
t2(B)≤t1(D)+t1(E)。
根据任务图的第一不等式仅对于相同级别,即级别2的任务有效,但根据图4上展示的任务图的第二不等式对于级别范围,即级别2和级别3的任务有效,这是由于第二任务420 (任务B)不仅在一个级别上操作,而且在几个级别上操作。
在图4中所呈现的状况下,第二任务420和第三任务430应附属于所述一组慢核。
在图5中展示一示例,其中多个任务510、540、550和560位于关键路径505上且对于第二任务520和第三任务530,需要决定将这些任务分配到所述一组慢核504还是所述一组快核502。第二和第三任务在所述一组冷核上的可能放置通过参考标号520'和530'指示。
在图5的示例中,第三任务530到一组慢核的迁移是适用的,但第二任务520的迁移不适用。在此状况下,
t2(B)>t1(D)+t1(E)
且
t2(C)>t1(D)。
由于关键路径并不改变,因此性能保持其最大值。否则,任何任务到慢核组中的迁移会导致功率消耗的减小或最小化。在此状况下,功率消耗将减小以下值:
pprofit(Level2)=p1(C)-p2(C)。
图6展示类似示例,其中多个任务610、640、650和660位于关键路径605上且对于第二任务620和第三任务630,需要决定将这些任务分配到所述一组慢核604还是所述一组快核602。第二和第三任务在所述一组冷核上的可能放置通过参考标号620'和630'指示。在此状况下,以下不等式有效:
t2(B)≤t1(D)
且
t2(C)≤t1(D)+t1(E)。
此处,第二不等式在级别2和3的范围内也有效。
在此状况下,减小功率消耗的效果将大于先前示例中的效果且等于以下值:
pprofit(Level2)=p1(B)-p2(B)+p1(C)-p2(C)
就使功率消耗最小化来说,迁移次序并不是获得较好结果所必需的。但举例来说,最好是以下情况:如果
p1(B)-p2(B)≥p1(C)-p2(C),
那么第二任务620迁移到第一个任务之前,否则第三任务630迁移到第一个。
图7为用于迁移任务的示例方法的流程图,其中任务B仅属于固定在所述一组快核和所述一组慢核当中的一个固定级别。
在第一步骤702中,将候选任务列表L提供到任务调度程序。在第二步骤704中,任务调度程序以功率消耗利益(例如根据p1-p2计算出)降序对列表L进行分类。将结果存储于有序列表L1中。
在第三步骤706中,(例如先前确定的)关键路径上的任务D取自所述列表,且在步骤 708中,放置“到热拔中”,即分配到一组快核。
在步骤710中,检查D是否为数据层上的最后一个任务。如果是,那么无更多任务要处理且所述方法在步骤722中结束。
如果存在更多任务要处理,那么所述方法在步骤712中继续进行且采用任务B(有序列表L1中的第一个任务)。在步骤714中,以下条件
t1(D)≥t2(B)
进行检查。如果满足所述条件,那么所述方法继续进行步骤716且将B放置到“冷拔”中,即将其分配到所述一组慢核。如果并不满足所述条件,那么所述方法继续进行步骤718 且将任务B放置到“热拔”中,即将其分配到所述一组快核。
在步骤720中,检查任务B是否为有序列表L1中的最后一个任务。如果是,那么所述方法在步骤722中结束。否则,所述方法继续步骤724,采用任务B作为有序列表L1中的下一任务。
如果任务B属于几个级别,那么此算法中的控制不等式应改变为更复杂的不等式,如下:
t1(D)+t1(E)+…+t1(S)≥t2(B)。
此处,D、E、……、S为与任务B在相同时间范围内操作的关键路径任务的范围。
前述描述仅为本发明的实施方式,本发明的保护范围不限于此。熟练技术人员可易于进行任何变化或替代。因此,本发明的保护范围应受制于所附权利要求书的保护范围。
总而言之,本发明的实施例包括将任务映射到核心组。可执行初步运行以收集关于不同类型核心的执行时间和适合的功率消耗的信息。在那之后,有可能构造任务图;评估此图上对应于最大性能值的关键路径;按级别对此图进行分裂;以及在每一级别,解决并不属于关键路径的任务的迁移问题。潜在地,可将这些任务分配到所述一组慢核,因此减小总体功率消耗。
在本发明的实施例中,所述方法可包括其它步骤。让我们考虑异质多核计算系统,其由快组类型的c1、c2、……、ck核心(具有高能耗和高性能)和慢组类型的ck+1、ck+2、……、cn核心(具有低能耗和低性能),总计n个核心组成。现在让我们考虑如何绑定复杂软件中的任务与不同组的处理机核心:
1.提供HMCCS的静态监视。因此,我们评估不同核心t1和t2上的所有任务的执行时间和适合的功率消耗值。
2.构造任务图。
3.我们评估表明对快核组提供所有评估的任务图上的关键路径。此界定考虑到HMCCS 的最大性能。
4.我们从初始节点开始一直到最后一个节点按级别划分任务图。
5.在所有中间级别,我们在数据级处针对并不属于关键路径的任务解决迁移问题。关键路径任务始终附属于快核组。
6.根据任务与核心组的附属关系而提供功率消耗的评估。在甚至仅一个任务附属于慢核组的情况下,可达到功率消耗增益。如果许多任务附属于慢核组,那么功率消耗利益基本上将更高。
7.根据在快和慢核组当中的迁移而执行所有任务。
根据本发明的方法的效果可包含改进HMCCS性能和/或减小功率消耗。
此处,我们考虑最常见目标中的一个-最小完成时间(此处不考虑另一个目标-最大吞吐量)。方法可解决优化问题以便使每个特定应用程序的总体完成时间最小化。这可包含寻找使得完成时间将达到其可能的最小值且同时尽可能减小HMCCS的功率消耗的任务与核心的最优映射。
此外,使用根据本发明的任务调度程序或方法,开发人员开发用于异质硬件的平行应用程序的努力空间小得多。这使得开发用于HMCCS硬件的平行应用程序的过程更为容易。最后,本发明减小软件开发的劳动成本或将现有代码有效移植到特定架构中。
本发明的实施例可用于具有SoC类型的信号处理机的系统中,其中同一软件永久性地处于运行中。因此,实现尤其高的功率节约。
利用异质多核架构的系统在功能上具有不同的性能和功率消耗核心。本发明的各方面可涉及:
●对一组快核和一组慢核的执行时间和功率消耗的初步静态估计
●用于设计用于异质多核设备的性能-能量高效调度程序的任务图的使用
●评估任务图中的关键路径
●对任务图进行分级以提供功率消耗的最大利益
根据任务图对核心组当中的所获得任务分布进行功率消耗评估以使功率消耗最小化且同时保持最大性能值。
Claims (13)
1.一种用于调度包括一组慢核(304;504;604)和一组快核(302;402;502;602)的多核处理机上的多个任务的任务调度装置(100),其特征在于,所述任务调度装置包括:
时序单元(110),用于将不在关键路径(305;405;505;605)上的至少一个候选任务的慢核运行时间与一个或多个关键路径任务的快核运行时间进行比较,具体包括:比较不在关键路径上的至少一个候选任务的慢核运行时间与对应于所述候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务的快核运行时间;
任务分配单元(120),用于在所述候选任务的所述慢核运行时间长于所述一个或多个关键路径任务的所述快核运行时间的情况下将所述候选任务分配到所述一组快核,否则将所述候选任务分配到所述一组慢核。
2.根据权利要求1所述的装置,其特征在于,进一步包括:
图构造单元(130),用于构造所述多个任务的任务图,
路径寻找单元(140),用于确定所述任务图的关键路径。
3.根据权利要求1所述的装置,其特征在于,进一步包括功率计算单元(150),所述功率计算单元(150)用于确定将候选任务分配到所述一组慢核的功率消耗增益,其中所述任务分配单元用于以功率消耗增益降序分配候选任务。
4.根据权利要求3所述的装置,其特征在于,所述功率计算单元用于将所述功率消耗增益确定为所述一组快核上的所述候选任务的功率消耗与所述一组慢核上的所述候选任务的功率消耗之间的差。
5.根据权利要求1至3中任一权利要求所述的装置,其特征在于,进一步包括初步执行单元(160),所述初步执行单元(160)用于通过实施所述候选任务的一个或多个初步运行而确定所述候选任务的慢核运行时间和/或快核运行时间。
6.一种处理机,其特征在于,包括一组快核(304;504;604)、一组慢核(302;402;502;602)和根据权利要求1到5中任一权利要求所述的装置(100)。
7.一种用于调度包括一组快核(302;402;502;602)和一组慢核(304;504;604)的处理机上的多个任务的方法,其特征在于,所述方法包括:
比较不在关键路径(305;405;505;605)上的候选任务的慢核运行时间与一个或多个关键路径任务的快核运行时间(210),具体包括:比较不在关键路径上的至少一个候选任务的慢核运行时间与对应于所述候选任务的一个或多个级别的关键路径上的一个或多个关键路径任务的快核运行时间,
如果所述候选任务的所述慢核运行时间长于所述一个或多个关键路径任务的所述快核运行时间,那么将所述任务分配到所述一组快核,否则将所述任务分配到所述一组慢核(220)。
8.根据权利要求7所述的方法,其特征在于,进一步包括以下初始步骤:
构造所述多个任务的任务图(202),
确定所述任务图的关键路径(204)。
9.根据权利要求7所述的方法,其特征在于,进一步包括:
对于至少两个候选任务:确定将所述候选任务分配到所述一组慢核的功率消耗增益,
以功率消耗增益降序分配所述至少两个任务。
10.根据权利要求9所述的方法,其特征在于,将所述功率消耗增益确定为所述一组快核上的所述候选任务的功率消耗与所述一组慢核上的所述候选任务的功率消耗之间的差。
11.根据权利要求7到9中任一权利要求所述的方法,其特征在于,进一步包括通过实施所述候选任务的一个或多个初步运行而确定所述候选任务的慢核运行时间和/或快核运行时间(206)的初始步骤。
12.根据权利要求11所述的方法,其特征在于,实施所述初步运行以用于通过执行不同组的核心上的所述候选任务而收集关于任务执行时间和时延的信息,其中基于所收集的信息而确定所述慢核运行时间和/或所述快核运行时间。
13.一种存储程序代码的计算机可读存储媒体,其特征在于,所述程序代码包括用于实施根据权利要求7到12中任一权利要求所述的方法的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2015/000664 WO2017065629A1 (en) | 2015-10-12 | 2015-10-12 | Task scheduler and method for scheduling a plurality of tasks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139929A CN108139929A (zh) | 2018-06-08 |
CN108139929B true CN108139929B (zh) | 2021-08-20 |
Family
ID=55967386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083785.6A Active CN108139929B (zh) | 2015-10-12 | 2015-10-12 | 用于调度多个任务的任务调度装置和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108139929B (zh) |
WO (1) | WO2017065629A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
KR102641520B1 (ko) * | 2018-11-09 | 2024-02-28 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 |
CN111198757B (zh) * | 2020-01-06 | 2023-11-28 | 北京小米移动软件有限公司 | Cpu内核调度方法、cpu内核调度装置及存储介质 |
CN114691326A (zh) * | 2022-03-16 | 2022-07-01 | 中国船舶重工集团公司第七一一研究所 | 多任务的调度方法、多核处理器及机旁监控系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1503150A (zh) * | 2002-11-19 | 2004-06-09 | ��ʽ���綫֥ | 多处理器系统中的任务分配方法和多处理器系统 |
CN102171627A (zh) * | 2008-10-03 | 2011-08-31 | 悉尼大学 | 对在异构计算系统中执行的应用的调度 |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN103399626A (zh) * | 2013-07-18 | 2013-11-20 | 国家电网公司 | 面向混合计算环境的功耗感知的并行应用调度系统及方法 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN103984595A (zh) * | 2014-05-16 | 2014-08-13 | 哈尔滨工程大学 | 一种异构cmp的静态任务调度方法 |
CN104598310A (zh) * | 2015-01-23 | 2015-05-06 | 武汉理工大学 | 基于fpga部分动态可重构技术模块划分的低功耗调度方法 |
CN104849698A (zh) * | 2015-05-21 | 2015-08-19 | 中国人民解放军海军工程大学 | 一种基于异构多核系统的雷达信号并行处理方法及系统 |
WO2015130262A1 (en) * | 2014-02-25 | 2015-09-03 | Hewlett-Packard Development Company, L.P. | Multiple pools in a multi-core system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070143759A1 (en) * | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
US8887163B2 (en) * | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
US20150121387A1 (en) * | 2013-10-30 | 2015-04-30 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium |
US9858115B2 (en) * | 2013-10-30 | 2018-01-02 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium |
-
2015
- 2015-10-12 WO PCT/RU2015/000664 patent/WO2017065629A1/en active Application Filing
- 2015-10-12 CN CN201580083785.6A patent/CN108139929B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1503150A (zh) * | 2002-11-19 | 2004-06-09 | ��ʽ���綫֥ | 多处理器系统中的任务分配方法和多处理器系统 |
CN102171627A (zh) * | 2008-10-03 | 2011-08-31 | 悉尼大学 | 对在异构计算系统中执行的应用的调度 |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN103399626A (zh) * | 2013-07-18 | 2013-11-20 | 国家电网公司 | 面向混合计算环境的功耗感知的并行应用调度系统及方法 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
WO2015130262A1 (en) * | 2014-02-25 | 2015-09-03 | Hewlett-Packard Development Company, L.P. | Multiple pools in a multi-core system |
CN103984595A (zh) * | 2014-05-16 | 2014-08-13 | 哈尔滨工程大学 | 一种异构cmp的静态任务调度方法 |
CN104598310A (zh) * | 2015-01-23 | 2015-05-06 | 武汉理工大学 | 基于fpga部分动态可重构技术模块划分的低功耗调度方法 |
CN104849698A (zh) * | 2015-05-21 | 2015-08-19 | 中国人民解放军海军工程大学 | 一种基于异构多核系统的雷达信号并行处理方法及系统 |
Non-Patent Citations (2)
Title |
---|
《Reducing power with dynamic critical path information》;J.S.Seng et al.;《 Proceedings. 34th ACM/IEEE International Symposium on Microarchitecture. MICRO-34》;20020806;第114-123页 * |
《基于关键路径和任务复制的多核调度算法》;谢志强 等;《国防科技大学学报》;20140228;第36卷(第1期);第172-177页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108139929A (zh) | 2018-06-08 |
WO2017065629A1 (en) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9436512B2 (en) | Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model | |
US20110067015A1 (en) | Program parallelization apparatus, program parallelization method, and program parallelization program | |
US8887165B2 (en) | Real time system task configuration optimization system for multi-core processors, and method and program | |
CN108139929B (zh) | 用于调度多个任务的任务调度装置和方法 | |
US20150150019A1 (en) | Scheduling computing tasks for multi-processor systems | |
KR20200091789A (ko) | Gpu 연산의 동시 실행을 위한 플랫폼 | |
US10949259B2 (en) | System and method of scheduling and computing resource allocation optimization of machine learning flows | |
US11288047B2 (en) | Heterogenous computer system optimization | |
JP2018503184A (ja) | 動的時間的電力ステアリングのためのシステム及び方法 | |
US10083066B2 (en) | Processing data by using simultaneous multithreading | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
US20170351598A1 (en) | Optimizations for regression tracking and triaging in software testing | |
US10162679B2 (en) | Method and system for assigning a computational block of a software program to cores of a multi-processor system | |
CN108885546B (zh) | 一种基于异构系统的程序处理方法和装置 | |
Padoin et al. | Managing power demand and load imbalance to save energy on systems with heterogeneous CPU speeds | |
US10846086B2 (en) | Method for managing computation tasks on a functionally asymmetric multi-core processor | |
Wang et al. | A study on heuristic task scheduling optimizing task deadline violations in heterogeneous computational environments | |
CN113704687B (zh) | 一种张量计算运行方法、装置及运算系统 | |
WO2013058396A1 (ja) | タスク配置装置及びタスク配置方法 | |
CN113886057B (zh) | 异构众核上基于剖析技术以及数据流信息的动态资源调度方法 | |
KR102022972B1 (ko) | 이종 멀티 프로세싱 시스템 환경 기반 런타임 관리장치 및 방법 | |
Chhabra et al. | Qualitative Parametric Comparison of Load Balancing Algorithms in Distributed Computing Environment | |
CN114356510A (zh) | 用于调度的方法和电子装置 | |
US20210019178A1 (en) | Method and system for scheduling tasks in a computing system | |
CN107408056B (zh) | 用于动态循环-处理器映射的调度设备和方法 |
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 |