CN103729248A - 一种基于缓存感知的确定待迁移任务的方法和装置 - Google Patents
一种基于缓存感知的确定待迁移任务的方法和装置 Download PDFInfo
- Publication number
- CN103729248A CN103729248A CN201210392519.XA CN201210392519A CN103729248A CN 103729248 A CN103729248 A CN 103729248A CN 201210392519 A CN201210392519 A CN 201210392519A CN 103729248 A CN103729248 A CN 103729248A
- Authority
- CN
- China
- Prior art keywords
- processor core
- task
- instruction buffer
- thousand
- source processor
- 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.)
- Granted
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于缓存感知的确定待迁移任务的方法,包括:根据每一个处理器核的负载确定源处理器核和目标处理器核;监测源处理器核和目标处理器核中的每一个任务的缓存失效次数和执行的指令数,得到源处理器核和目标处理器核中的每一个任务的千条指令缓存失效次数;得到源处理器核和目标处理器核的平均千条指令缓存失效次数;根据源处理器核的平均千条指令缓存失效次数和目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。根据本发明实施例的确定待迁移任务的方法,可以让操作系统感知程序的行为,从而在任务迁移时选择更加合理的任务。本发明还公开了一种基于任务感知确定待迁移任务的装置。
Description
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种基于缓存感知的确定待迁移任务的方法和系统。
背景技术
任务调度是操作系统的核心功能之一,任务调度的好坏直接影响着程序运行的性能、公平性、以及实时性等等。对于只具有单个处理器核的操作系统而言,任务调度只需要解决不同任务之间的切换问题。而对于具有多个处理器核的操作系统而言,除了调度不同任务之间的切换外,还需要处理多个任务在多个处理器核上的分配以及任务在多个处理器核之间的迁移过程,以保证多个处理器核之间的负载均衡。
在具有多个处理器核的操作系统中,多个任务需要争用共享缓存、存储器控制器、内存总线等诸多共享资源,不同的任务对资源的需求不尽相同,如果处理器在任务调度时不对上述资源加以考虑,就会造成部分资源(例如共享cache、共享访存等)争用时而其他处理器核的资源却没有被充分利用,从而对整个系统的性能产生不利影响。
现有技术对任务调度的处理中,默认的是操作系统在迁移任务时按照优先级从高到低的顺序从包含有任务的最高优先级链表尾部顺序选择允许迁移的任务,并不分析待迁移任务的程序以及对该迁移目标处理器核上任务的影响,因此,整个系统的性能及服务质量无法得到保证,如果待迁移任务不适合在目标处理器核上运行,则系统的性能会变得很糟糕。
发明内容
为解决上述问题,本发明实施例提供了一种基于缓存感知的确定待迁移任务的方法和装置,可以让操作系统感知程序的行为,从而在任务迁移时选择更加合理的任务,降低对处理器资源的争用,提高整个系统的性能。
本发明一方面实施例公开了一种基于缓存感知的确定待迁移任务的方法,所述方法包括:
得到至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述处理器核的负载信息;
根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数计算得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的所述千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数;
监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的所述千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数;
根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
在本发明的第一方面的实施例的一种可能实现的方式中,所述根据处理器核的负载情况确定源处理器核和目标处理器核包括:
将所述至少两个处理器核按照预设规则分为至少两个的调度组;
周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核的负载;
根据所述调度组的状态得到负载最大的调度组,根据所述负载最大的调度组中每一个处理器核的负载得到负载最大的处理器核;
若所述调度组之间存在负载不均衡,则将所述负载最大的调度组中所述负载最大的处理器核确定为所述源处理器核,将正在监测的处理器核确定为所述目标处理器核。
结合本发明第一方面实施例和第一种可能实现的方式的第二种可能实现的方式中,监测所述源处理器核的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述源处理器核中的每一个任务的千条指令缓存失效次数包括:
在所述源处理器核中创建一个任务时,设置缓存失效次数计数器的初始值和指令计数器的初始值;所述源处理器核运行所述任务时,所述缓存失效次数计数器和所述指令计数器开始计数;
所述任务暂停运行时,暂停所述缓存失效次数计数器的计数和所述指令计数器的计数;根据所述缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述指令计数器的计数值得到任务的指令数;
根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;
重复上述步骤直至所述源处理器核中的全部任务处理完毕。
结合上述本发明第一方面实施例的第三种可能实现的方式中,所述根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述目标处理器核向所述源处理器核迁移的任务包括:
当所述源处理器核的平均千条指令缓存次数不小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将所述源处理器核中千条指令缓存失效次数最小的任务迁移到所述目标处理器核。
结合上述本发明第一方面实施例的第四种可能实现的方式中,当所述源处理器核的平均千条指令缓存次数小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将所述源处理器核中千条指令缓存失效次数最大的任务迁移到所述目标处理器核。
结合上述本发明第一方面实施例的第五种可能实现的方式中,得到所述源处理器核中的每一个任务的千条指令缓存失效次数,得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,还可以采用下列方式:
根据预测的每千条指令缓存失效次数值得到所述源处理器核中的每一个任务的千条指令缓存失效次数或所述目标处理器核中的每一个任务的千条指令缓存失效次数。根据监测所述任务的缓存失效次数和所述任务的指令数得到的每千条指令缓存失效次数的当前值和暂存的每千条指令缓存失效次数的历史值,通过指数平滑公式计算得到所述预测的每千条指令缓存失效次数。
结合上述本发明第一方面实施例的第六种可能实现的方式中,在根据所述源处理核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务之前,所述方法还包括:所述处理器核的信息包括所述处理器核的物理CPU状态;如果所述源处理器核和所述目标处理器核在不同的物理CPU上,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述本发明第一方面实施例的第七种可能实现的方式中,在根据所述源处理核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务之前,所述方法还包括:所述处理器核的信息包括所述处理器核的性能,根据所述处理器核的性能判断所述处理器核是慢核或快核;如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是慢核,所述目标处理器是快核,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述本发明第一方面实施例的第八种可能实现的方式中,所述方法还包括:如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是快核,所述目标处理器是慢核,则将所述源处理器核中千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的待迁移任务。
根据本发明实施例提供的基于缓存感知的确定待迁移任务的方法,可以让操作系统感知程序的行为,从而在任务迁移时选择更加合理的任务,降低资源争用的概率,提高整个系统的性能;同时可以让操作系统在迁移任务时能够结合源处理器核和目标处理器核所在的拓扑位置,从而选择合适的线程迁移。另外本发明的实施例除可以用于同构多核环境外,对性能不对称的异构多核处理器同样可以适用。
本发明第二方面的实施例公开了一种基于缓存感知的确定待迁移任务的装置,所述装置包括:
至少两个处理器核,得到所述至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述每一个处理器核的负载信息,根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
缓存失效次数生成模块,所述缓存失效次数生成模块监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中的每一个任务的所述缓存失效次数和所述指令数得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数;所述缓存失效次数生成模块监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中的每一个任务的所述缓存失效次数和所述指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数;
任务迁移模块,用于根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
其中处理器核和缓存失效次数生成模块相连,任务迁移模块分别和处理器核以及令缓存失效次数生成模块相连。
根据本发明实施例提供的基于缓存感知的确定待迁移任务的装置,可以让操作系统感知程序的行为,从而在任务迁移时选择更加合理的任务,降低资源争用的概率,提高整个系统的性能;同时可以让操作系统在迁移任务时能够结合源处理器核和目标处理器核所在的拓扑位置,从而选择合适的线程迁移。另外本发明的实施例除可以用于同构多核环境外,对性能不对称的异构多核处理器同样可以适用。
在本发明的第二方面的实施例的一种可能实现的方式中,将所述至少两个处理器核按照预设规则分为至少两个的调度组;
周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核的负载信息;
根据所述调度组的状态得到负载最大的调度组,根据所述负载最大的调度组中每一个处理器核的负载信息得到负载最大的处理器核;
若所述调度组之间存在负载不均衡,则将所述负载最大的调度组中所述负载最大的处理器核确定为所述源处理器核,将正在监测的处理器核确定为所述目标处理器核。
结合本发明第二方面实施例和第二方面实施第一种可能实现的方式的第二种可能实现的方式中,在所述源处理器核中创建一个任务时,根据所述任务的信息设置缓存失效次数计数器的初始值和指令计数器的初始值;所述源处理器核运行所述任务时,所述任务的缓存失效次数计数器和所述任务的指令计数器开始计数;
所述任务暂停运行时,暂停所述任务的缓存失效次数计数器的技术和所述任务的指令计数器的计数;根据所述任务的缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述任务的指令计数器的计数值得到任务的指令数;根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;重复上述步骤直至所述源处理器核中的全部任务处理完毕。
结合上述实施例的本发明第二方面实施例的第三种可能实现的方式中,当所述源处理器核的平均千条指令缓存次数不小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将所述千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述实施例的本发明第二方面实施例的第四种可能实现的方式中,当所述源处理器核的平均千条指令缓存次数小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将所述千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述实施例的本发明第二方面实施例的第五种可能实现的方式中,所述处理器核的信息包括所述处理器核的物理CPU状态;如果所述源处理器核和所述目标处理器核在不同的物理CPU上,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述实施例的本发明第二方面实施例的第六种可能实现的方式中,所述处理器核的信息包括所述处理器核的性能,根据所述处理器核的性能判断所述处理器核是慢核或快核;如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器核是慢核,所述目标处理器核是快核,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
结合上述实施例的本发明第二方面实施例的第七种可能实现的方式中,如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器核是快核,所述目标处理器核是慢核,则将所述源处理器核中千条指令缓存失效次数最大的任务迁移到所述目标处理器核。
本发明的实施例还提供了一种基于缓存感知的确定待迁移任务的装置,所述装置包括CPU和存有可执行程度代码的存储器,所述可执行代码可用于得到至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述处理器核的负载信息;
根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数计算得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的所述千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数;
监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的所述千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数;
根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种基于缓存感知的确定待迁移任务的方法的流程图。
图2为根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法的具体实现的流程图。
图3为根据本发明实施例的划分调度域和调度组的示意图。
图4为根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法的具体示例。
图5为根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法的另一种具体示例。
图6为根据本发明实施例的一种基于缓存感知的确定待迁移任务的装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
任务迁移是指在具有多个处理器核的系统中,由于处理器核上的任务数出现不均衡现象,为了均衡不同处理器核之间的负载,需要将运行任务数较多的处理器核上的一部分任务迁移到任务数较少的处理器核上。缓存感知是指操作系统在进行任务迁移调度决策时,将与缓存相关的参数,如任务的缓存失效次数等作为决策依据。通过捕获任务在一段时间内的缓存失效次数然后除以该时间段内运行的指令数,再放大1000倍便得到该任务该段时间内的每千条指令缓存失效次数(cache Miss Per Kilo instructions,MPKI),由于通常情况下缓存失效次数绝对数值很小,所以采用MPKI以便比较不同的处理器核的缓存失效次数。
下面结合图1具体描述根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法。
如图1所示,根据本发明实施例的基于缓存感知的确定待迁移任务的方法,包括:
S11:得到至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述每一个处理器核的负载信息。
S12:根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核。
S13:监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数计算得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的所述千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数。
S14:监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的所述千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数。
S15:根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
可以理解的是,上述计算源处理器核和目标处理器核的平均千条指令缓存失效次数并不包含有顺序的限制。既可以先计算源处理器核的平均千条指令缓存失效次数也可以先计算目标处理器核的平均千条指令缓存失效次数,或者两者并行计算。
下面结合图1具体描述根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法。
根据本发明实施例的基于缓存感知的确定待迁移任务的方法,包括:
一、确定源处理器核和目标处理器核。
S11:得到至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述每一个处理器核的负载信息;
在本发明的一个实施例中,操作系统周期性的监测每一个所述处理器核的状态,得到所述处理器核的信息,所述处理器核的信息包括所述处理器核的负载、快慢以及拓扑位置。
S12:根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
在本步骤中,操作系统得到至少二个处理器核中的每一个处理器核的信息,所述处理器核的信息包括所述处理器核的负载,根据每一个所述处理器核的负载确定源处理器核和目标处理器核。
若所述处理器核之间的负载不均衡,则将负载最大的所述处理器核确定为所述源处理器核,将负载最小的所述处理器核确定为所述目标处理器核。
在本发明的一个实施例中,在Linux操作系统下,Linux 2.6内核定义的规则是,当系统中存在一个处理器核的负载超过另一个处理器核负载的25%时,将启动任务迁移,此时将负载低的处理器核作为目标处理器核,负载高的处理器核作为源处理器核。
在本发明的一个实施例中,每一个处理器核都会以自己为中心,查找是否存在其他处理器核的负载大于自身(即以自己为中心的处理器核)负载25%以上,如果存在,则认为处理器核之间存在负载不均衡,就需要迁移任务,选择其中负载最大的处理器核为源处理器核,自身就是目标处理器核,源处理器核上的任务从源处理器核迁移到目标处理器核。该过程将周期性地遍历所有处理器核。
在本发明的一个实施例中,将全部所述处理器核按照预设规则分为至少两个的调度组;
操作系统周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核的负载。
根据所述调度组的状态得到负载最大的调度组,根据所述调度组中每一个处理器核的负载得到负载最大的处理器核。
若所述调度组之间存在负载不均衡,则将负载最大的调度组中负载最大的处理器核确定为所述源处理器核,将正在监测的处理器核确定为所述目标处理器核。
在本发明的一个实施例中,系统通过迭代遍历的方式寻找源处理器核和目标处理器核,当发现不同调度组之间的负载不均衡时,以一个处理器核为中心,先遍历和该处理器核不相同调度组的处理器核,寻找负载最大的调度组中负载最大的处理器核作为源处理器核,如果没有找到,则继续在与该处理器核相同调度组的处理器核,寻找负载最大的处理器作为源处理器核,而将位于中心的处理器核作为目标处理器核。如果位于中心的处理器核在相同的调度组中也没有找到符合条件的负载最大的处理器核,则继续将下一个处理器核作为中心处理器核继续遍历。
如图3所示,调度域(Scheduling Domain)是指具有相同属性的一组处理器核的集合,并且根据超线程(Hyper-threading),多核(Multi-core),多处理器(SMP),非一致性内存访问结构(NUMA)这样的系统结构划分成不同的级别。不同级之间通过指针链接在一起,形成一种树状的关系。
Linux将所有同一级别的处理器核归为一个“调度组”,然后将同一级别的所有的调度组组成一个“调度域”,负载均衡在调度域的各个调度组之间进行。Linux在基于调度域进行负载均衡的时候采用的是自下而上的遍历方式,这样就优先在对高速缓存(cache)影响最小的处理器核之间进行负载均衡,有力的阻止了对高速缓影响很大的处理器核之间的负载均衡。调度域是从对高速缓存影响最小的最底层向高层构建的。调度域分为Numa_domain,Phy_domain,Core_domain,SMT_domain(Cpu_domain)四个等级。可以理解的是,本图所示调度组的划分只是为了帮助理解本发明而做出的一种示例,而不是对处理器核调度组划分的一种限制。
二、监测任务的缓存失效次数并计算MPKI。
S13:监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数计算得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的所述千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数。
S14:监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的所述千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数。
在本发明的一个实施例中,在所述源处理器核或目标处理器核中创建一个任务时,设置缓存失效次数计数器的初始值和指令计数器的初始值;所述源处理器核或目标处理器核运行所述任务时,所述缓存失效次数计数器和所述指令计数器开始计数;所述任务暂停运行时,暂停所述缓存失效次数计数器的计数和所述指令计数器的计数;根据所述缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述指令计数器的计数值得到任务的指令数,根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;重复上述步骤直至所述源处理器核或目标处理器核中的全部任务处理完毕。
在本发明的一个实施例中,缓存失效次数计数器或指令计数器既可以用硬件实现也可以用软件实现。计数器既可以伴随着任务的创建而创建,也可以是由于任务的创建调用而来。可以理解的是,本发明实施例有关计数器的举例并不是对本发明技术方案的一种限制,计数器的使用方式也包括本领域普通技术人员无需创造性劳动即可实现的其它方式。
在本发明的一个实施例中,任务暂停运行可以指的是任务的挂起状态。这种挂起状态既可以是由于时间片耗尽产生的,也可以是由缺乏运行任务所需要的资源而产生的。可以理解的是,任务暂停运行也包括本领域普通技术人员无需创造性劳动即可实现的其它方式。
在本发明的一个实施例中,根据预测的每千条指令缓存失效次数值得到所述源处理器核中的每一个任务的千条指令缓存失效次数或所述目标处理器核中的每一个任务的千条指令缓存失效次数。根据监测所述任务的缓存失效次数和所述任务的指令数得到的每千条指令缓存失效次数的当前值和暂存的每千条指令缓存失效次数的历史值,通过指数平滑公式计算得到所述预测的每千条指令缓存失效次数。
对于尚未执行的指令代码,如果不提前进行离线分析,一般很难准确知晓其具体行为。通常是在代码执行过程中在线收集监测数据,通过监测数据来预测程序未来一个时间片或一段时间内的行为,随着代码的不断运行,预测数据也不断更新,操作系统正是基于这些预测数据来进行调度决策的,在本发明的一个实施例中,本发明使用一次指数平滑公式预测每个任务最新的MPKI。MPKIn+1(i,k)=(1-α)*MPKIn(i,k)+α*Tn(i,k),其中,MPKIn(i,k)为任务在第n个时间片的每千条指令cache失效次数,Tn(i,k)为第n个时间片的平均每千条指令cache失效次数。a是一个常数加权因子(0≤α≤1),用于调节MPKIn(i,k)与Tn(i,k)的权重系数。在本发明的一个实施例中定义a=0.8,此时最近的4个观测值对预测值起主导作用,这与程序的时间局部性原理和空间局部性原理是吻合的。可以理解的是a的定义不仅限于本发明实施例的给出的数值,而是包括其它本领域普通技术人员不需要经过创造性劳动即可实现的其它方式。
在本发明的一个实施例中,监测源处理器核或目标处理器核的每个任务的缓存失效次数并计算MPKI,需要给进程描述符增加变量用于记录每个任务的缓存失效次数以及提交的指令数,以便用于计算MPKI。缓存失效次数的测量可以通过硬件性能计数器完成,本发明提供的一个实施例可以通过改写Perfctr驱动程序实现在Linux内核中实现对每个任务缓存失效次数的在线测量,在一个任务创建时,首先设置计数事件,并启动计数,当该任务切换时,暂停前一任务的计数事件,并将结果记录进程描述符中新增的变量中,同时开启下一个任务的计数事件。计算任务的MPKI需要两个参数,除了该任务的缓存失效次数,还需要测量每个任务的指令数,因此可以设置两个计数事件data_cache_miss和retired_instructions,data_cache_miss用来测量任务的缓存失效次数,retired_instructions用来测量任务的指令数。
在本发明的一个实施例中,在系统刚刚启动的过程中,处理器核内没有任务,此时的运行队列的平均缓存失效次数为0,当任务创建的时候,操作系统会从父进程复制相应的内容给子进程,而此时并不能够确定父子进程的缓存失效次数是否相关,所以在任务初始化时将缓存失效次数置为0。
对于每个处理器核而言,准确地的计算出每个运行队列所有任务的平均MPKI是调度决策的关键,当任务发生切换时,运行队列的平均MPKI就发生了改变,然而如果每一次任务切换就更新运行队列的平均MPKI,开销会很大,周期性地更新运行队列的平均MPKI又无法保证任务迁移时的MPKI是最新的,为此,本发明实施例提供的方法是采取当有任务需要迁移时,才重新计算源处理器核和目标处理器核运行队列的平均MPKI。
三、任务迁移。
S15:根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
在本发明的一个实施例中,当所述源处理器核的平均千条指令缓存次数小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将所述源处理器核中千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的任务。
在本发明的一个实施例中,当所述源处理器核的平均千条指令缓存次数不小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的任务。
在本发明的一个实施例中,任务迁移分为两种:拉任务和推任务。推任务发生在强制迁移或拉任务失败时,拉任务是主要的任务迁移方式。从当前处理器核的角度看,如果是把自己的任务迁移到其他处理器核上,就是推任务,如果是将其他处理器核上的任务迁移到当前处理器核上,就是拉任务。
在当前处理器核完全空闲时,即运行队列为空,没有任务在该处理器核上执行,造成这样的原因可能是系统刚刚初始化或当前处理器核上的任务全部运行结束,此时当前处理器核的平均缓存失效次数为0,可以迁移MPKI较大的任务,原因在于减少了源处理器核内缓存失效次数较大的任务数量,提高了缓存的公平使用,所以选择向空核迁移缓存失效次数较大的程序。
当前处理器核上仍有任务在运行,操作系统内核会周期性的判断处理器核之间的负载是否均衡,如果不均衡,本发明实施例提供的缓存感知调度方法会在此时遍历当前处理器核和源处理器核的运行队列,更新平均MPKI值,随后迁移任务,力求待迁移任务与当前处理器核的平均MPKI最接近且与源处理器核的平均MPKI相差最远。
在本发明的一个实施例中,具体的任务迁移规则为,当源处理器核的平均MPKI大于等于目标处理器核的平均MPKI时,优先迁移源处理器核上MPKI小的任务;当源处理器核的小于目标处理器核的时,优先迁移源处理器核上MPKI大的任务。推导过程如下:
如果系统中出现了负载不均衡,编号为src的处理器核负载较小,需要从其他核上迁移任务,经过find_busiest_group以及find_busiest_cpu操作后,找到了负载最大的核dst,此时需要从src(源处理器核)上迁移部分任务到dst(目标处理器核)上。
在本发明的一个实施例中,Linux现有调度算法将所有处理器核分成多个组,首先寻找负载最大的组,然后从负载最大的组中寻找负载最大的处理器核。寻找负载最大的组由Linux内核中find_busiest_group函数完成,从某一个组中寻找负载最大的处理器核由find_busiest_cpu函数完成。
可以理解的是,find_busiest_group以及find_busiest_cpu是在Linux系统下为寻找负载最大的处理器核而设置的函数。在其它操作系统,例如IOS、Windows、Unix操作系统下可以采用别的函数寻找负载最大的处理器核,本发明实施例所使用的函数只是对解释本发明所做的一种示例,而不是对本发明的一种限制。
寻找待迁移任务的流程如下:
b.待迁移任务除满足默认调度策略can_migrate_task规定的约束条件外,还需要满足公式(3),即要求任务与目标处理器核的距离尽可能小同时与源处理器核的距离尽可能大,即使公式(3)的目标函数取最大值。
对公式(3)针对变量MPKI(src,k)进行求导,可以看到这是一个单调递增或递减函数,取决于目标处理器核与源处理器核的孰大孰小,最大值出现在MPKI(src,k)最大或最小的时候。当即源处理器核的大于等于目标处理器核的时,MPKI(src,k)取值最小才使得公式(3)中的目标函数取最大值,当时,即源处理器核的小于目标处理器核的时,MPKI(src,k)取值最大才使得公式(3)中的目标函数取最大值。当允许迁移多个任务时,再依照以上规则寻找次接近任务。
在本发明的一个实施例中,默认调度策略can_migrate_task是指:在选择待迁移任务时,有几类任务是不允许被选择的:
当前正在执行的进程;
通过cpus_allowed明确表示不能迁移该CPU的进程;
被原来CPU切换下来且时间间隔小于cache_decay_ticks的任务,这说明cache仍然是活跃的;
评价某个任务是否属于以上几种就是由函数can_migrate_task函数完成的。
可以理解的是,上述公式只是为了更加清楚的解释本发明实施例而给出的一种示例,而不是对本发明的实施例的一种限制。
在本发明的一个实施例中,在步骤S15之前还包括:
拓扑感知。
拓扑感知是指操作系统在进行调任务迁移的度决策时,需要考虑源处理器核和目标处理器核所在的相对位置,如两者是否共享二级缓存,是否在同一个芯片内,或者两个处理器核是否位于不同的处理器等。
在本发明的一个实施例中,在Linux系统环境下,Linux内核在启动过程中可自动识别处理器核的物理位置关系,即识别出哪些处理器核在一个物理CPU上,以及哪些处理器核在另外一个物理CPU上。
首先判断所述源处理器核和所述目标处理器核是否在相同的物理CPU上,如果所述源处理器核和所述目标处理器核在不相同的物理CPU上,此时并不进行源处理器核和目标处理器核之间的MPKI的比较,而是直接将源处理器核中千条指令缓存失效次数最小的任务迁移到所述目标处理器核。
在本发明的一个实施例中,如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是慢核,所述目标处理器是快核,此时并不进行源处理器核和目标处理器核之间的MPKI的比较,而是将所述源处理器核中千条指令缓存失效次数最小的任务迁移到所述目标处理器核。
在本发明的一个实施例中,慢核与快核可以根据处理器核的时钟频率高低、有序或乱序执行、缓存大小等区分。例如处理器核的时钟频率高于某一值时将该处理器核认定为快核,处理器核的时钟频率低于某一值时将该处理器核认定为慢核。可以理解的是,快核与慢核的区分并不限于本实施例的举例,也包括任何本领域普通技术人员无需创造性劳动即可实现的区分快核和慢核的方法。
在本发明的一个实施例中,如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是快核,所述目标处理器是慢核,此时并不进行源处理器核和目标处理器核之间的MPKI的比较,而是将所述源处理器核中千条指令缓存失效次数最大的任务迁移到所述目标处理器核。
图3描述了根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法的实现。如图3所示,首先以当前处理器核所在的调度组为中心,从整个调度域中寻找最繁忙的调度组。然后再判断符合条件的调度组是否存在,如不存在,则转向下一个处理器核,将其作为当前处理器核重新开始寻找最繁忙的调度组。
如果符合条件的调度组存在,则继续在最繁忙的调度组中寻找最繁忙(可以是负载最大)的处理器核,如果该调度组中所有处理器核的负载都不超过预设的范围,则可以认为该组不满足预设的条件,则转向下一个处理器核重新开始遍历搜索;否则将符合条件的处理器核确定为源处理器核,当前处理器核为目标处理器核。具体寻找调度域和调度组的方式可以采用如图4所示的方法。
然后判断源处理器核与目标处理器核是否在同一个物理CPU上,若两者不在同一个物理CPU上,则选择源处理器核中MPKI最小的任务准备迁移;在正式迁移前需要判断系统是否允许该任务迁移,判断的原则可以依据前面所述的默认调度策略can_migrate_task;如果判断的结果是该任务不允许被迁移,则继续选择下一个任务重复上述判断,如果判断的结果是允许该任务迁移,则选择该任务作为待迁移任务。
如果源处理器核和目标处理器核在同一个物理CPU上,则继续判断目标处理器核与源处理器核的主频高低,主频高的可以被认为是快核,主频低的可以被认为是慢核;
当目标处理器是快核,源处理器核是慢核时,此时选择源处理器核中MPKI值最小的任务准备迁移,在正式迁移前需要判断系统是否允许该任务迁移,判断的原则可以依据前面所述的默认调度策略can_migrate_task;如果判断的结果是该任务不允许被迁移,则继续选择下一个任务重复上述判断,如果判断的结果是允许该任务迁移,则选择该任务作为待迁移任务。
当目标处理器是慢核,源处理器核是快核时,此时选择源处理器核中MPKI值最大的任务准备迁移,在正式迁移前需要判断系统是否允许该任务迁移,判断的原则可以依据前面所述的默认调度策略can_migrate_task;如果判断的结果是该任务不允许被迁移,则继续选择下一个任务重复上述判断,如果判断的结果是允许该任务迁移,则选择该任务作为待迁移任务。
当源处理核和目标处理器核的主频相等时,此时需要判断目标处理器核的平均MPKI和源处理器核的平均MPKI:
当目标处理器核的平均MPKI小于源处理器核的平均MPKI时,根据源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将千条指令缓存失效次数最小的任务迁移到目标处理器核,在正式迁移前需要判断系统是否允许该任务迁移,判断的原则可以依据前面所述的默认调度策略can_migrate_task;如果判断的结果是该任务不允许被迁移,则继续选择下一个任务重复上述判断,如果判断的结果是允许该任务迁移,则选择该任务作为待迁移任务。
当目标处理器核的平均MPKI大于或等于源处理器核的平均MPKI时,根据源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将千条指令缓存失效次数最大的任务迁移到目标处理器核,在正式迁移前需要判断系统是否允许该任务迁移,判断的原则可以依据前面所述的默认调度策略can_migrate_task;如果判断的结果是该任务不允许被迁移,则继续选择下一个任务重复上述判断,如果判断的结果是允许该任务迁移,则选择该任务作为待迁移任务。
图4和图5给出了根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法的具体示例。
如图4所示,CPU1运行有3个任务,CPU2运行有2个任务,CPU3运行有4个任务,其中CPU1上的任务1-1的MPKI的值是10,任务1-2的MPKI的值是8,任务1-3的MPKI的值是6,则CPU1的平均MPKI值为10+8+6/3=8;同理求得CPU2的平均MPKI值为10,CPU3的平均MPKI值为9。
若此时CPU1的负载为250,CPU2的负载为300,CPU3的负载为500,则将CPU1作为目标处理器核,CPU3作为源处理器核,开始准备任务迁移。因为CPU3的平均MPKI大于CPU1的平均MPKI,则在CPU3中选择MPKI最小的任务迁移到CPU1上,即将任务3-1迁移到CPU1上。
若此时CPU1的负载为500,CPU2的负载为300,CPU3的负载为350,则将CPU2作为目标处理器核,CPU1作为源处理器核,开始准备迁移。因为CPU1的平均MPKI小于CPU2的平均MPKI,则在CPU1中选择MPKI最大的任务迁移到CPU2上,即将任务1-1迁移到CPU2上。
如图5所示,CPU1和CPU2在同一个物理CPU-A上,CPU3和CPU4在另一个物理CPU-B上,且CPU1的主频大于CPU2,可以认为CPU1为快核,CPU2为慢核。CPU1运行有3个任务,CPU2运行有2个任务,CPU3运行有4个任务,其中CPU1上的任务1-1的MPKI的值是10,任务1-2的MPKI的值是8,任务1-3的MPKI的值是6,则CPU1的平均MPKI值为10+8+6/3=8;同理求得CPU2的平均MPKI值为10,CPU3的平均MPKI值为9。
(1)当CPU1作为目标处理器核,CPU3作为源处理器核时,因为CPU1和CPU3在不同的物理CPU上,此时将CPU3中MPKI值最小的任务迁移到CPU1上,选择CPU3中MPKI值最小的任务3-1作为待迁移任务。
(2)当CPU1作为目标处理器核,CPU2作为源处理器核时,因为CPU1和CPU2在相同的物理CPU-A上,且CPU2为慢核,CPU1为快核,此时将CPU2中MPKI值最小的任务2-2作为待迁移任务。
(3)当CPU2作为目标处理器核,CPU1作为源处理器核时,因为CPU1和CPU2在相同的物理CPU-A上,且CPU2为慢核,CPU1为快核,此时将CPU1中MPKI值最大的任务1-1作为待迁移任务。
根据本发明实施例的一种基于缓存感知的确定待迁移任务的方法,先监测每个任务的MPKI,再通过聚合算法最终让缓存失效次数相似的任务基本聚合到一个处理器核上,这样不仅可以保证缓存失效次数相似的任务不会同时运行,从而争用共享缓存和访存的带宽资源,也避免了缓存失效次数较大的任务对缓存失效次数较小的任务产生的不良影响,保证了处理器核内私有缓存的公平使用。
下面根据图6描述根据本发明实施例的一种基于缓存感知的确定待迁移任务的装置60。
如图6所示,根据本发明实施例的一种基于缓存感知的确定待迁移任务的装置60包括:至少两个处理器核601,根据处理器核601的负载确定源处理器核601-1和目标处理器核601-2;缓存失效次数生成模块602,缓存失效次数生成模块602分别监测源处理器核601-1和目标处理器核601-2中的每一个任务的缓存失效次数和执行的指令数,得到源处理器核601-1和目标处理器核601-2中的每一个任务的千条指令缓存失效次数;用于根据源处理器核601-1和目标处理器核601-2中的每一个任务的千条指令缓存失效次数分别得到源处理器核601-1和目标处理器器核601-2的平均千条指令缓存失效次数;任务迁移模块603,用于根据源处理器核601-1的平均千条指令缓存失效次数和目标处理器核601-2的平均千条指令缓存失效次数确定从源处理器核601-1向目标处理器核601-2迁移的任务。
其中处理器核601和缓存失效次数生成模块602相连,任务迁移模块603分别和处理器核601以及缓存失效次数生成模块602相连。
根据本发明实施例的一种基于缓存感知的确定待迁移任务的装置60,先监测每个任务的MPKI,再通过聚合算法最终让缓存失效次数相似的任务基本聚合到一个处理器核上,这样不仅可以保证缓存失效次数相似的任务不会同时运行,从而争用共享缓存和访存的带宽资源,也避免了缓存失效次数较大的任务对缓存失效次数较小的任务产生的不良影响,保证了处理器核内私有缓存的公平使用。
在本发明的一个实施例中,将全部处理器核601按照预设规则分为至少两个的调度组;
周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核601的负载;
根据所述调度组的状态得到负载最大的调度组,根据所述调度组中每一个处理器核601的负载得到负载最大的处理器核;
若调度组之间存在负载不均衡,则将所述负载最大的调度组中所述负载最大的处理器核确定为源处理器核601-1,将正在监测的处理器核确定为目标处理器核601-2。
在本发明的一个实施例中,在源处理器核601-1中创建一个任务时,设置任务的缓存失效次数计数器的初始值和任务的指令计数器的初始值;源处理器核601-1运行所述任务时,所述任务的缓存失效次数计数器和所述任务的指令计数器开始计数;
所述任务暂停运行时,暂停所述任务的缓存失效次数计数器的技术和所述任务的指令计数器的计数;根据所述任务的缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述任务的指令计数器的计数值得到任务的指令数;根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;
重复上述步骤直至源处理器核601-1中的全部任务处理完毕。
在本发明的一个实施例中,当源处理器核601-1的平均千条指令缓存次数不小于目标处理器核601-2的平均千条指令缓存次数时,根据源处理器核601-1中的每一个任务的千条指令缓存失效次数得到源处理器核601-1中千条指令缓存失效次数最小的任务,将千条指令缓存失效次数最小的任务迁移到目标处理器核601-1。
在本发明的一个实施例中,当源处理器核601-1的平均千条指令缓存次数小于目标处理器核601-2的平均千条指令缓存次数时,根据源处理器核601-1中的每一个任务的千条指令缓存失效次数得到源处理器核601-1中千条指令缓存失效次数最大的任务,将千条指令缓存失效次数最大的任务迁移到目标处理器核601-2。
在本发明的一个实施例中,操作系统得到的处理器核601的信息包括处理器核601的物理CPU状态;如果源处理器核601-1和目标处理器核601-2在不同的物理CPU上,则将源处理器核601-1中千条指令缓存失效次数最小的任务迁移到目标处理器核601-2。
在本发明的一个实施例中,操作系统得到的处理器核601的信息包括处理器核601的性能,根据处理器核601的性能判断处理器核601是慢核或快核;如果源处理器核601-1和目标处理器核601-2在相同的物理CPU上,源处理器核601-1是慢核,目标处理器核601-2是快核,则将源处理器核601-1中千条指令缓存失效次数最小的任务迁移到目标处理器核601-2。
在本发明的一个实施例中,如果源处理器核601-1和目标处理器核601-2在相同的物理CPU上,源处理器核601-1是快核,目标处理器核601-2是慢核,则将源处理器核601-1中千条指令缓存失效次数最大的任务迁移到目标处理器核601-2。
根据本发明实施例的一种基于缓存感知的确定待迁移任务的装置60,先监测每个任务的MPKI,再通过聚合算法最终让缓存失效次数相似的任务基本聚合到一个处理器核上,这样不仅可以保证缓存失效次数相似的任务不会同时运行,从而争用共享缓存和访存的带宽资源,也避免了缓存失效次数较大的任务对缓存失效次数较小的任务产生的不良影响,保证了处理器核内私有缓存的公平使用。
在本发明的一个实施例中,上述的操作既可以依靠多个处理器核完成,也可以是在一个或多个处理器核上依赖软件程序完成。例如可以是在一个处理器核上利用可执行程序控制所有处理器核之间的任务迁移。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种基于缓存感知的确定待迁移任务的方法,其特征在于,所述方法包括:
得到至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述每一个处理器核的负载信息;
根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数计算得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的所述千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数;
监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的所述千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数;
根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
2.如权利要求1所述的确定待迁移任务的方法,其特征在于,所述根据每一个所述处理器核的负载信息确定源处理器核和目标处理器核包括:
将所述至少两个处理器核按照预设规则分为至少两个的调度组;
周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核的负载;
根据所述调度组的状态得到负载最大的调度组,根据所述负载最大的调度组中每一个处理器核的负载得到负载最大的处理器核;
若所述调度组之间存在负载不均衡,则将所述负载最大的调度组中所述负载最大的处理器核确定为所述源处理器核,将正在监测的处理器核确定为所述目标处理器核。
3.如权利要求1或2所述的确定待迁移任务的方法,其特征在于,监测所述源处理器核的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中每一个任务所述的缓存失效次数和每一个任务所述的执行的指令数得到所述源处理器核中的每一个任务的千条指令缓存失效次数包括:
在所述源处理器核中创建一个任务时,设置所述缓存失效次数计数器的初始值和指令计数器的初始值;所述源处理器核运行所述任务时,所述缓存失效次数计数器和所述指令计数器开始计数;
所述任务暂停运行时,暂停所述缓存失效次数计数器的计数和所述指令计数器的计数;根据所述缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述指令计数器的计数值得到任务的指令数;
根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;
重复上述步骤直至所述源处理器核中的全部任务处理完毕。
4.如权利要求1-3任意一项所述的确定待迁移任务的方法,其特征在于,所述根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务包括:
当所述源处理器核的平均千条指令缓存失效次数不小于所述目标处理器核的平均千条指令缓存失效次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将所述千条指令缓存失效次数最小的任务迁移到所述目标处理器核。
5.如权利要求1-4任意一项所述的确定待迁移任务的方法,其特征在于,所述根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务包括:当所述源处理器核的平均千条指令缓存次数小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将所述千条指令缓存失效次数最大的任务迁移到所述目标处理器核。
6.如权利要求1-5任意一项所述的确定待迁移任务的方法,其特征在于,得到所述源处理器核中的每一个任务的千条指令缓存失效次数,得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,还可以采用下列方式:
根据预测的每千条指令缓存失效次数值得到所述源处理器核中的每一个任务的千条指令缓存失效次数或所述目标处理器核中的每一个任务的千条指令缓存失效次数。
根据监测所述任务的缓存失效次数和所述任务的指令数得到的每千条指令缓存失效次数的当前值和暂存的每千条指令缓存失效次数的历史值,通过指数平滑公式计算得到所述预测的每千条指令缓存失效次数。
7.如权利要求1-6任意一项所述的确定待迁移任务的方法,其特征在于,在根据所述源处理核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务之前,所述方法还包括:
所述处理器核的信息包括所述处理器核的物理CPU状态;
如果所述源处理器核和所述目标处理器核在不同的物理CPU上,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
8.如权利要求1-7任意一项所述的确定待迁移任务的方法,其特征在于,在根据所述源处理核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务之前,所述方法还包括:
所述处理器核的信息包括所述处理器核的性能,根据所述处理器核的性能判断所述处理器核是慢核或快核;
如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是慢核,所述目标处理器是快核,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
9.如权利要求8所述的确定待迁移任务的方法,其特征在于,所述方法还包括:
如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器是快核,所述目标处理器是慢核,则将所述源处理器核中千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的待迁移任务。
10.一种基于缓存感知的确定待迁移任务的装置,其特征在于,所述装置包括:至少两个处理器核,得到所述至少两个处理器核中的每一个处理器核的信息,所述每一个处理器核的信息包括所述每一个处理器核的负载信息,根据所述每一个处理器核的负载信息确定源处理器核和目标处理器核;
缓存失效次数生成模块,所述缓存失效次数生成模块监测所述源处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中的每一个任务的所述缓存失效次数和所述指令数得到所述源处理器核中的每一个任务的千条指令缓存失效次数,根据所述源处理器核中的每一个任务的千条指令缓存失效次数计算所述源处理器核的平均千条指令缓存失效次数;所述缓存失效次数生成模块监测所述目标处理器核中的每一个任务的缓存失效次数和执行的指令数,根据所述目标处理器核中的每一个任务的所述缓存失效次数和所述指令数得到所述目标处理器核中的每一个任务的千条指令缓存失效次数,根据所述目标处理器核中的每一个任务的千条指令缓存失效次数计算所述目标处理器核的平均千条指令缓存失效次数;
任务迁移模块,用于根据所述源处理器核的平均千条指令缓存失效次数和所述目标处理器核的平均千条指令缓存失效次数确定从所述源处理器核向所述目标处理器核迁移的任务。
11.如权利要求10所述的确定待迁移任务的装置,其特征在于,根据处理器核的负载情况确定源处理器核和目标处理器核包括:
将所述至少两个处理器核按照预设规则分为至少两个的调度组;
周期性的监测所述调度组的状态,所述调度组的状态包括所述调度组中每一个处理器核的负载信息;
根据所述调度组的状态得到负载最大的调度组,根据所述负载最大的调度组中每一个处理器核的负载信息得到负载最大的处理器核;
若所述调度组之间存在负载不均衡,则将所述负载最大的调度组中所述负载最大的处理器核确定为所述源处理器核,将正在监测的处理器核确定为所述目标处理器核。
12.如权利要求10或11所述的确定待迁移任务的装置,其特征在于,监测所述源处理器核的每一个任务的缓存失效次数和执行的指令数,根据所述源处理器核中的每一个任务的所述缓存失效次数和所述指令数得到所述源处理器核中的每一个任务的千条指令缓存失效次数包括:
在所述源处理器核中创建一个任务时,根据所述任务的信息设置缓存失效次数计数器的初始值和指令计数器的初始值;所述源处理器核运行所述任务时,所述任务的缓存失效次数计数器和所述任务的指令计数器开始计数;
所述任务暂停运行时,暂停所述任务的缓存失效次数计数器的技术和所述任务的指令计数器的计数;根据所述任务的缓存失效次数计数器的计数值得到任务的缓存失效次数,根据所述任务的指令计数器的计数值得到任务的指令数;根据所述任务的缓存失效次数和所述任务的指令数得到所述任务的千条指令缓存失效次数;
重复上述步骤直至所述源处理器核中的全部任务处理完毕。
13.如权利要求10-12任意一项所述的确定待迁移任务的装置,其特征在于,所述根据所述源处理器核的平均千条指令缓存次数和所述目标处理器核的平均千条指令缓存次数确定从所述目标处理器核向所述源处理器核迁移的任务包括:
当所述源处理器核的平均千条指令缓存次数不小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最小的任务,将所述千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
14.如权利要求10-13任意一项所述的确定待迁移任务的装置,其特征在于,所述装置还包括:
当所述源处理器核的平均千条指令缓存次数小于所述目标处理器核的平均千条指令缓存次数时,根据所述源处理器核中的每一个任务的千条指令缓存失效次数得到源处理器核中千条指令缓存失效次数最大的任务,将所述千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的待迁移任务。
15.如权利要求10-14之一所述的确定待迁移任务的装置,其特征在于,所述装置还包括:
所述处理器核的信息包括所述处理器核的物理CPU状态;
如果所述源处理器核和所述目标处理器核在不同的物理CPU上,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
16.如权利要求10-15之一所述的确定待迁移任务的方法,其特征在于,所述装置还包括:
所述处理器核的信息包括所述处理器核的性能,根据所述处理器核的性能判断所述处理器核是慢核或快核;
如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器核是慢核,所述目标处理器核是快核,则将所述源处理器核中千条指令缓存失效次数最小的任务确定为迁移到所述目标处理器核的待迁移任务。
17.如权利要求16之一所述的确定待迁移任务的装置,其特征在于,所述装置还包括:
如果所述源处理器核和所述目标处理器核在相同的物理CPU上,所述源处理器核是快核,所述目标处理器核是慢核,则将所述源处理器核中千条指令缓存失效次数最大的任务确定为迁移到所述目标处理器核的待迁移任务。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210392519.XA CN103729248B (zh) | 2012-10-16 | 2012-10-16 | 一种基于缓存感知的确定待迁移任务的方法和装置 |
PCT/CN2013/073174 WO2014059758A1 (zh) | 2012-10-16 | 2013-03-26 | 一种基于缓存感知的确定待迁移任务的方法和装置 |
EP13847582.7A EP2894565B1 (en) | 2012-10-16 | 2013-03-26 | Method and device for determining task to be migrated based on cache perception |
US14/676,195 US9483321B2 (en) | 2012-10-16 | 2015-04-01 | Method and apparatus for determining to-be-migrated task based on cache awareness |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210392519.XA CN103729248B (zh) | 2012-10-16 | 2012-10-16 | 一种基于缓存感知的确定待迁移任务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729248A true CN103729248A (zh) | 2014-04-16 |
CN103729248B CN103729248B (zh) | 2017-12-15 |
Family
ID=50453331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210392519.XA Active CN103729248B (zh) | 2012-10-16 | 2012-10-16 | 一种基于缓存感知的确定待迁移任务的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9483321B2 (zh) |
EP (1) | EP2894565B1 (zh) |
CN (1) | CN103729248B (zh) |
WO (1) | WO2014059758A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679593A (zh) * | 2015-03-13 | 2015-06-03 | 浪潮集团有限公司 | 一种基于smp系统的任务调度优化方法 |
CN106201711A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种任务处理方法及服务器 |
WO2016197441A1 (zh) * | 2015-06-09 | 2016-12-15 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN106940657A (zh) * | 2017-02-20 | 2017-07-11 | 深圳市金立通信设备有限公司 | 一种对处理器进行任务分配的方法及终端 |
CN106998303A (zh) * | 2017-03-24 | 2017-08-01 | 中国联合网络通信集团有限公司 | 路由节点的负载均衡方法和负载均衡系统 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
CN111831434A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 资源分配方法、装置、存储介质及电子设备 |
CN111831409A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程调度方法、装置、存储介质及电子设备 |
CN113157427A (zh) * | 2020-01-07 | 2021-07-23 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN113190350A (zh) * | 2021-04-30 | 2021-07-30 | 华南理工大学 | 一种面向在离线容器混合部署的llc分配方法 |
CN113326140A (zh) * | 2021-06-30 | 2021-08-31 | 统信软件技术有限公司 | 一种进程迁移方法、装置、计算设备以及存储介质 |
CN113590313A (zh) * | 2021-07-08 | 2021-11-02 | 杭州朗和科技有限公司 | 负载均衡方法、装置、存储介质和计算设备 |
CN115098233A (zh) * | 2022-06-24 | 2022-09-23 | 上海交通大学 | 缓存分区感知的调度方法及系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10241838B2 (en) * | 2013-12-09 | 2019-03-26 | International Business Machines Corporation | Domain based resource isolation in multi-core systems |
US9690708B2 (en) | 2015-05-19 | 2017-06-27 | Qualcomm Incorporated | Real-time cache behavior forecast using hypothetical cache |
US9942631B2 (en) * | 2015-09-25 | 2018-04-10 | Intel Corporation | Out-of-band platform tuning and configuration |
US10073718B2 (en) * | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10592279B2 (en) * | 2016-06-23 | 2020-03-17 | Advanced Micro Devices, Inc. | Multi-processor apparatus and method of detection and acceleration of lagging tasks |
CN110609744B (zh) * | 2018-06-15 | 2023-06-09 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN109885383B (zh) * | 2018-10-30 | 2023-08-01 | 广东科学技术职业学院 | 一种带约束条件的非单位时间任务调度方法 |
US11687364B2 (en) | 2019-07-30 | 2023-06-27 | Samsung Electronics Co., Ltd. | Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment |
US11580023B2 (en) * | 2020-03-11 | 2023-02-14 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium having stored therein memory control program, and computer-readable recording medium having stored therein information processing program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419561A (zh) * | 2007-10-26 | 2009-04-29 | 中兴通讯股份有限公司 | 一种异构多核体系中的资源管理方法及系统 |
CN101706755A (zh) * | 2009-11-24 | 2010-05-12 | 中国科学技术大学苏州研究院 | 片上多核处理器的高速缓存协作系统及其协作处理方法 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN102483703A (zh) * | 2009-09-11 | 2012-05-30 | 英派尔科技开发有限公司 | 计算机线程至异构资源的映射 |
US20120180061A1 (en) * | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Organizing Task Placement Based On Workload Characterizations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071564A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Reduction of cache miss rates using shared private caches |
US7689773B2 (en) * | 2006-11-30 | 2010-03-30 | Sun Microsystems, Inc. | Methods and apparatus for estimating fair cache miss rates on a chip multiprocessor |
CN101458634B (zh) * | 2008-01-22 | 2011-03-16 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
US8533719B2 (en) * | 2010-04-05 | 2013-09-10 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
-
2012
- 2012-10-16 CN CN201210392519.XA patent/CN103729248B/zh active Active
-
2013
- 2013-03-26 EP EP13847582.7A patent/EP2894565B1/en active Active
- 2013-03-26 WO PCT/CN2013/073174 patent/WO2014059758A1/zh active Application Filing
-
2015
- 2015-04-01 US US14/676,195 patent/US9483321B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419561A (zh) * | 2007-10-26 | 2009-04-29 | 中兴通讯股份有限公司 | 一种异构多核体系中的资源管理方法及系统 |
CN102483703A (zh) * | 2009-09-11 | 2012-05-30 | 英派尔科技开发有限公司 | 计算机线程至异构资源的映射 |
CN101706755A (zh) * | 2009-11-24 | 2010-05-12 | 中国科学技术大学苏州研究院 | 片上多核处理器的高速缓存协作系统及其协作处理方法 |
US20120180061A1 (en) * | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Organizing Task Placement Based On Workload Characterizations |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679593B (zh) * | 2015-03-13 | 2017-12-01 | 浪潮集团有限公司 | 一种基于smp系统的任务调度优化方法 |
CN104679593A (zh) * | 2015-03-13 | 2015-06-03 | 浪潮集团有限公司 | 一种基于smp系统的任务调度优化方法 |
WO2016197441A1 (zh) * | 2015-06-09 | 2016-12-15 | 宇龙计算机通信科技(深圳)有限公司 | 基于多核处理器的资源调度方法及装置 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN106201711A (zh) * | 2016-06-29 | 2016-12-07 | 联想(北京)有限公司 | 一种任务处理方法及服务器 |
CN106201711B (zh) * | 2016-06-29 | 2019-07-26 | 联想(北京)有限公司 | 一种任务处理方法及服务器 |
CN106940657A (zh) * | 2017-02-20 | 2017-07-11 | 深圳市金立通信设备有限公司 | 一种对处理器进行任务分配的方法及终端 |
CN106998303A (zh) * | 2017-03-24 | 2017-08-01 | 中国联合网络通信集团有限公司 | 路由节点的负载均衡方法和负载均衡系统 |
CN113157427A (zh) * | 2020-01-07 | 2021-07-23 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN113157427B (zh) * | 2020-01-07 | 2024-03-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
CN111831409A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程调度方法、装置、存储介质及电子设备 |
CN111831409B (zh) * | 2020-07-01 | 2022-07-15 | Oppo广东移动通信有限公司 | 线程调度方法、装置、存储介质及电子设备 |
CN111831434A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 资源分配方法、装置、存储介质及电子设备 |
CN113190350A (zh) * | 2021-04-30 | 2021-07-30 | 华南理工大学 | 一种面向在离线容器混合部署的llc分配方法 |
CN113190350B (zh) * | 2021-04-30 | 2022-06-14 | 华南理工大学 | 一种面向在离线容器混合部署的llc分配方法 |
CN113326140A (zh) * | 2021-06-30 | 2021-08-31 | 统信软件技术有限公司 | 一种进程迁移方法、装置、计算设备以及存储介质 |
WO2023273015A1 (zh) * | 2021-06-30 | 2023-01-05 | 统信软件技术有限公司 | 一种进程迁移方法、装置、计算设备以及存储介质 |
CN113590313A (zh) * | 2021-07-08 | 2021-11-02 | 杭州朗和科技有限公司 | 负载均衡方法、装置、存储介质和计算设备 |
CN113590313B (zh) * | 2021-07-08 | 2024-02-02 | 杭州网易数之帆科技有限公司 | 负载均衡方法、装置、存储介质和计算设备 |
CN115098233A (zh) * | 2022-06-24 | 2022-09-23 | 上海交通大学 | 缓存分区感知的调度方法及系统 |
CN115098233B (zh) * | 2022-06-24 | 2024-05-28 | 上海交通大学 | 缓存分区感知的调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2014059758A1 (zh) | 2014-04-24 |
US9483321B2 (en) | 2016-11-01 |
CN103729248B (zh) | 2017-12-15 |
EP2894565B1 (en) | 2018-03-07 |
US20150205642A1 (en) | 2015-07-23 |
EP2894565A1 (en) | 2015-07-15 |
EP2894565A4 (en) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729248A (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
EP3847549B1 (en) | Minimizing impact of migrating virtual services | |
US8533719B2 (en) | Cache-aware thread scheduling in multi-threaded systems | |
CN103559077B (zh) | 一种优化的虚拟机自动迁移方法和系统 | |
CN106293871A (zh) | 一种集群虚拟机的资源调度方法 | |
CN103955398B (zh) | 一种基于处理器性能监控的虚拟机共生调度方法 | |
US10979505B1 (en) | Distributed storage system and data migration method | |
Bateni et al. | Predjoule: A timing-predictable energy optimization framework for deep neural networks | |
US10157155B2 (en) | Operating system-managed interrupt steering in multiprocessor systems | |
CN102831012A (zh) | 多节点分布式系统中的任务调度装置和任务调度方法 | |
CN100590596C (zh) | 多节点计算机系统和用于监视其性能的方法 | |
CN104636187A (zh) | 基于负载预测的numa架构中虚拟机调度方法 | |
CN106326000A (zh) | 一种云计算系统中的资源调度方法及装置 | |
Huang et al. | Novel heuristic speculative execution strategies in heterogeneous distributed environments | |
Xue et al. | Managing data center tickets: Prediction and active sizing | |
CN105045648A (zh) | IaaS云环境下物理主机资源状态预测方法 | |
CN102789483B (zh) | 数据验证方法、装置和系统 | |
Moradi et al. | uPredict: A user-level profiler-based predictive framework in multi-tenant clouds | |
Ravandi et al. | A self-organized resource provisioning for cloud block storage | |
Chhabra et al. | Qualitative parametric comparison of load balancing algorithms in parallel and distributed computing environment | |
JP2015036959A (ja) | キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法 | |
Will et al. | Ruya: Memory-aware iterative optimization of cluster configurations for big data processing | |
Shi et al. | Energy-efficient scheduling algorithms based on task clustering in heterogeneous spark clusters | |
CN118069073B (zh) | 数据存储空间动态调整方法、存储子系统及智能计算平台 | |
CN116089248B (zh) | 一种写i/o突发分布预测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |