CN114237841A - 任务调度方法、装置、介质和计算机设备 - Google Patents

任务调度方法、装置、介质和计算机设备 Download PDF

Info

Publication number
CN114237841A
CN114237841A CN202111444367.9A CN202111444367A CN114237841A CN 114237841 A CN114237841 A CN 114237841A CN 202111444367 A CN202111444367 A CN 202111444367A CN 114237841 A CN114237841 A CN 114237841A
Authority
CN
China
Prior art keywords
node
control group
numa
numa node
target
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.)
Pending
Application number
CN202111444367.9A
Other languages
English (en)
Inventor
陈善佩
王鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202111444367.9A priority Critical patent/CN114237841A/zh
Publication of CN114237841A publication Critical patent/CN114237841A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开实施例提供一种任务调度方法、装置、介质和计算机设备,先基于各个NUMA节点的运行状态信息从多个NUMA节点中确定倾向节点,再以控制组为单位进行任务调度,即,将控制组中的各个任务均调度到所述倾向节点上。上述方式能够保证同一控制组中的任务被调度到相同的节点上,由于同一控制组中的任务之间的数据交互需求大于不同控制组中的任务之间的数据交互需求,因此,上述方式能够减少跨节点的访存操作,从而提高访存效率。

Description

任务调度方法、装置、介质和计算机设备
技术领域
本公开涉及任务调度技术领域,尤其涉及一种任务调度方法、装置、介质和计算机设备。
背景技术
非一致性内存访问(Non Uniform Memory Access Architecture,NUMA)架构包括多个NUMA节点,在进行任务处理时,需要将待处理的任务调度到多个NUMA节点中的目标节点上进行处理。不同的任务调度方式会对访存效率产生较大的影响,因此,有必要对任务调度方式进行改进。
发明内容
第一方面,本公开实施例提供一种任务调度方法,所述方法包括:获取多个NUMA节点中每个NUMA节点的运行状态信息;基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
在一些实施例中,所述方法还包括:在创建所述控制组之后,基于所述控制组的倾向节点的信息生成标签信息,所述标签信息用于指示所述控制组的倾向节点;将所述控制组的标识信息与所述标签信息进行绑定;所述将所述当前待调度的控制组中的各个任务调度到所述倾向节点上,包括:在将至少一个任务加入所述控制组之后,基于与所述控制组的标识信息绑定的标签信息将所述至少一个任务中的每个任务调度到所述倾向节点上。
在一些实施例中,在将所述当前待调度的控制组中的各个任务调度到所述倾向节点上之后,所述方法还包括:在所述控制组中的任务运行时,从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元;将所述控制组中的各个任务调度到所述目标处理单元上。
在一些实施例中,所述从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元,包括:从多个候选处理单元中筛选出所述倾向节点上的处理单元;从筛选出的处理单元中选择用于运行所述任务的目标处理单元。
在一些实施例中,所述从多个候选处理单元中筛选出所述倾向节点上的处理单元,包括:从多个候选处理单元中筛选出所述倾向节点上,且满足预设约束条件的处理单元。
在一些实施例中,一个NUMA节点的运行状态信息包括所述NUMA节点的负载信息;所述基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点,包括:基于所述NUMA节点的负载信息确定所述NUMA节点的负载强度;将负载强度最低的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,一个NUMA节点的运行状态信息包括最近一次将控制组调度到所述NUMA节点的时间信息,所述基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点,包括:基于所述NUMA节点对应的时间信息确定最近一次将控制组调度到所述NUMA节点的时间与当前时间之间的时间间隔;将最长时间间隔对应的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,所述方法还包括:分别获取各个NUMA节点的负载强度;从所述多个NUMA节点中确定负载强度大于预设强度阈值的第一目标NUMA节点;将所述第一目标NUMA节点上的目标控制组包括的各个任务迁移到第二目标NUMA节点上,所述第二目标NUMA节点的负载强度小于所述第一目标NUMA节点的负载强度。
在一些实施例中,所述方法还包括:获取将所述目标控制组从所述第一目标NUMA节点迁出之前所述第一目标NUMA节点的第一负载强度以及将所述目标控制组从所述第一目标NUMA节点迁出之后所述第一目标NUMA节点的第一预测负载强度;获取将所述目标控制组迁入候选NUMA节点之前所述候选NUMA节点的第二负载强度以及将所述目标控制组迁入所述候选NUMA节点之后所述候选NUMA节点的第二预测负载强度;若所述第一负载强度与所述第二负载强度之差的绝对值大于所述第一预测负载强度与所述第二预测负载强度之差的绝对值,将所述候选NUMA节点确定为所述第二目标NUMA节点。
在一些实施例中,一个NUMA节点包括多个处理单元,同一个NUMA节点包括的各个处理单元共享最后一级缓存。
第二方面,本公开实施例提供一种任务调度装置,所述装置包括:获取模块,用于获取多个NUMA节点中每个NUMA节点的运行状态信息;确定模块,用于基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;第一调度模块,用于将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
在一些实施例中,所述装置还包括:生成模块,用于在创建所述控制组之后,基于所述控制组的倾向节点的信息生成标签信息,所述标签信息用于指示所述控制组的倾向节点;绑定模块,用于将所述控制组的标识信息与所述标签信息进行绑定;所述第一调度模块用于:在将至少一个任务加入所述控制组之后,基于与所述控制组的标识信息绑定的标签信息将所述至少一个任务中的每个任务调度到所述倾向节点上。
在一些实施例中,所述装置还包括:选择模块,用于在所述控制组中的任务运行时,从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元;第二调度模块,用于将所述控制组中的各个任务调度到所述目标处理单元上。
在一些实施例中,所述选择模块用于:从多个候选处理单元中筛选出所述倾向节点上的处理单元;从筛选出的处理单元中选择用于运行所述任务的目标处理单元。
在一些实施例中,所述选择模块用于:从多个候选处理单元中筛选出所述倾向节点上,且满足预设约束条件的处理单元。
在一些实施例中,一个NUMA节点的运行状态信息包括所述NUMA节点的负载信息;所述确定模块用于:基于所述NUMA节点的负载信息确定所述NUMA节点的负载强度;将负载强度最低的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,一个NUMA节点的运行状态信息包括最近一次将控制组调度到所述NUMA节点的时间信息,所述确定模块用于:基于所述NUMA节点对应的时间信息确定最近一次将控制组调度到所述NUMA节点的时间与当前时间之间的时间间隔;将最长时间间隔对应的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,所述装置还包括:负载强度获取模块,用于分别获取各个NUMA节点的负载强度;第一目标NUMA节点确定模块,用于从所述多个NUMA节点中确定负载强度大于预设强度阈值的第一目标NUMA节点;迁移模块,用于将所述第一目标NUMA节点上的目标控制组包括的各个任务迁移到第二目标NUMA节点上,所述第二目标NUMA节点的负载强度小于所述第一目标NUMA节点的负载强度。
在一些实施例中,所述装置还包括:第一获取模块,用于获取将所述目标控制组从所述第一目标NUMA节点迁出之前所述第一目标NUMA节点的第一负载强度以及将所述目标控制组从所述第一目标NUMA节点迁出之后所述第一目标NUMA节点的第一预测负载强度;第二获取模块,用于获取将所述目标控制组迁入候选NUMA节点之前所述候选NUMA节点的第二负载强度以及将所述目标控制组迁入所述候选NUMA节点之后所述候选NUMA节点的第二预测负载强度;第二目标NUMA节点确定模块,用于若所述第一负载强度与所述第二负载强度之差的绝对值大于所述第一预测负载强度与所述第二预测负载强度之差的绝对值,将所述候选NUMA节点确定为所述第二目标NUMA节点。
在一些实施例中,一个NUMA节点包括多个处理单元,同一个NUMA节点包括的各个处理单元共享最后一级缓存。
第三方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
第四方面,本公开实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
本公开实施例先基于各个NUMA节点的运行状态信息从多个NUMA节点中确定倾向节点,再以控制组为单位进行任务调度,即,将控制组中的各个任务均调度到所述倾向节点上。上述方式能够保证同一控制组中的任务被调度到相同的节点上,由于同一控制组中的任务之间的数据交互需求大于不同控制组中的任务之间的数据交互需求,因此,上述方式能够减少跨节点的访存操作,从而提高访存效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是NUMA架构的示意图。
图2是控制组的示意图。
图3是控制组与节点的关系示意图。
图4是两种不同的任务调度方式的示意图。
图5是本公开实施例的NUMA节点的任务调度方法的流程图。
图6是本公开实施例的控制组迁移的示意图。
图7是相关技术中的任务调度过程与本公开实施例的任务调度过程的对比图。
图8是本公开实施例的NUMA节点的任务调度装置的框图。
图9是本公开实施例的计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
下面对本公开中的一些术语进行解释说明:
内核:操作系统的内部核心程序。
调度器:内核管理决定进程运行的程序。
NUMA:Non Uniform Memory Access Architecture,非一致性内存访问
NUMA节点:组成NUMA架构的单位,同一个节点内的访存要比跨节点访存速度快。
Cache:高速缓冲存储器,命中CACHE的速度比访存速度快。
Cache亲和性:命中CACHE中已缓存内容的性质。
Cgroup:一种内核资源的分组控制机制。
RMA:Remote Memory Access,远端内存访问,指任务在某一个NUMA节点上运行,但是需要访问其它NUMA节点上的内存数据,跨NUMA节点访存的行为。
NUMA架构可以包括多个NUMA节点,每个NUMA节点包括一个或多个处理单元,所述处理单元可以是中央处理单元(Central Processing Unit,CPU)、神经网络处理器(NeuralNetwork Processor,NPU)等类型的处理器,或者是处理器中的内核(core)。每个NUMA节点还可以包括内存。各个处理单元可以访问本节点的内存,也可以访问其他NUMA节点的内存,并且,在访问本节点的内存时访存速度较快,而在访问其他NUMA节点的内存时访存速度较慢。以图1所示的NUMA架构为例,该NUMA架构下包括4个NUMA节点,分别为节点1、节点2、节点3和节点4。其中,节点1包括CPU1和内存1,节点2包括CPU2和内存2,节点3包括CPU3和内存3,节点4包括CPU4和内存4。以节点1为例,节点1上的CPU1访问内存1时访存速度较快,而CPU1访问内存2、内存3和内存4时访存速度较慢。本领域技术人员可以理解,上述NUMA架构仅为示例性说明,并非用于限制本公开。在实际应用中,NUMA架构包括的节点数量、处理单元类型、处理单元数量等均不限于图中所示的情况。
由于节点上的处理单元访问不同的内存时的访存速度不同,因此,在进行任务调度时,采用不同的调度方式会对访存效率产生影响。在一些实施例中,任务会被划分为控制组(Cgroup),一个控制组可以包括一个或多个任务。图2示出了包括n个任务的控制组,其中,n可以是任意正整数。所述任务也可以称为进程,所述任务可以包括但不限于视频播放任务、音乐播放任务、图片阅览任务、文档传输任务、支付任务等。一般而言,同一个控制组内的各个任务可能是同一个用户的任务,或者是为了执行同一件操作所产生的任务,相互之间会存在一定的关联系,任务间进行数据交互的需求较大,而不同控制组之间的任务进行数据交互的需求较小,相同控制组内的任务相比于不同控制组之间的任务,彼此之间具有更好的亲和性。因此,在进行任务调度时,如果将同一个控制组中的不同任务调度到不同的节点上,可能需要进行大量的跨节点访存,即,一个节点可能需要频繁地访问另一个节点上的内存,从而导致访存效率较低。
举例来说,参见图3,假设控制组C1中包括控制组C2和控制组C3,其中控制组C2包括任务1和任务2,控制组C3包括任务3、任务4和任务5。不加调整的情况下任务会在各个NUMA节点上自由调度。因此,常常出现图4所示的情况一,即,将同一个控制组中的不同的任务调度到不同的节点上,例如,将控制组C2中的任务1和控制组C3中的任务3调度到节点0,将控制组C2中的任务2以及控制组C3中的任务4和任务5调度到节点1。这样,节点0需要频繁地通过RMA访问节点1的内存,节点1需要频繁地通过RMA访问节点0的内存,那么任务1和2之间,以及任务3、4、5之间的数据传递就会有很大的跨节点访存开销。在NUMA架构下,由于跨节点访存的访存速度较快,导致访存效率较低。
为了提高访存效率,希望尽可能将同一控制组中的各个任务调度到相同的节点上,如图4中的情况二所示,例如,将控制组C2中的任务1和任务2均调度到节点0,将控制组C3中的任务3、任务4和任务5均调度到节点1。
目前调度器已经存在的任务调度策略主要包括两种。一种是用户态绑定处理单元的策略。用户态可以通过内核提供的接口来绑定任务运行的处理单元。但由于只有内核有全局的系统信息,而用户态只能访问部分系统信息,在用户态进行任务调度的效果较差。另一种是NUMA balance。NUMA balance关注的是运行任务的处理单元与任务拥有的内存应当在同一个NUMA节点上,这样进程访存的时候可以减少跨节点的访存。NUMA balance通过周期性地扫描进程的内存页面,然后决定是否迁移进程和内存页面到同一个NUMA节点上。由于迁移过程中比较耗时,同时主要是关注任务内部,并没有涉及任务之间信息传递的场景,因此任务调度的效果较差。
基于此,本公开提供一种任务调度方法,参见图5,所述方法包括:
步骤502:获取多个NUMA节点中每个NUMA节点的运行状态信息;
步骤504:基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;
步骤506:将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
仍以图3所示的控制组为例,本方案可以把相同控制组内的任务调度到相同的NUMA节点上,尽量保证成为图4中情况二所示的状态,从而使得相同控制组内的任务1和任务2进行数据交互的时候减少跨节点的访问,尽量落在相同的节点0上,对于任务3、任务4、任务5也是同理。这样相同控制组内的任务之间在同一个NUMA节点上进行数据交互,减少了跨节点的访存操作。
本公开实施例的方法可由调度器执行。在步骤502中,调度器可以获取各个NUMA节点的运行状态信息,其中,一个NUMA节点的运行状态信息用于表征该NUMA节点的运行状态。
在一些实施例中,运行状态信息可包括所述NUMA节点的负载信息,负载信息用于表征NUMA节点的负载强度。所述负载信息可包括但不限于以下至少一者:已调度到NUMA节点的任务的数量信息、已调度到NUMA节点的任务已运行的时长信息、已调度到NUMA节点的任务所需的总的运行时长。通过获取NUMA节点的负载信息,可以将任务调度到比较空闲(即负载强度较低)的NUMA节点上,从而实现各个NUMA节点的负载均衡。
一个节点的负载强度与已调度到NUMA节点的任务的数量信息、已调度到NUMA节点的任务已运行的时长信息、已调度到NUMA节点的任务所需的总的运行时长均正相关。在将已调度到NUMA节点的任务的数量信息作为负载信息的情况下,已调度到NUMA节点的任务的数量越多,则NUMA节点的负载强度越高。在将已调度到NUMA节点的任务已运行的时长信息作为负载信息的情况下,已运行的时长越长,则NUMA节点的负载强度越高。在将已调度到NUMA节点的任务所需的总的运行时长作为负载信息的情况下,所需的总的运行时长越长,则NUMA节点的负载强度越高。
在另一些实施例中,运行状态信息可包括最近一次将控制组调度到所述NUMA节点的时间信息(称为调度频率信息)。其中,所述调度频率信息可以包括最近一次将控制组调度到所述NUMA节点的时间,也可以包括最近一次将控制组调度到所述NUMA节点的时间到当前时间之间的时间间隔。通过获取调度频率信息,可以将控制组比较均匀地调度到各个NUMA节点上,避免各个控制组扎堆聚集在同一个NUMA节点上。
在步骤504中,当控制组被创建的时候,可以选取一个NUMA节点作为该控制组中各个任务的倾向节点(prefer node),选取过程可以根据各个NUMA节点的运行状态信息决定。
在运行状态信息包括所述NUMA节点的负载信息的情况下,可以基于所述NUMA节点的负载信息确定所述NUMA节点的负载强度;将负载强度最低的NUMA节点确定为所述控制组的倾向节点。例如,可以将控制组的倾向节点确定为已调度的任务的数量最少的NUMA节点,或者确定为已调度任务的已运行的时长最短的NUMA节点,或者确定为已调度任务所需的总的运行时长最短的NUMA节点。
或者,也可以结合至少两种负载信息共同确定控制组的倾向节点。例如,可以基于已调度的任务的数量确定各NUMA节点的第一评分,基于已调度任务的已运行的时长确定各NUMA节点的第二评分,并基于已调度任务所需的总的运行时长确定各NUMA节点的第三评分,基于一个NUMA节点的第一评分、第二评分和第三评分确定所述NUMA节点的总评分,并基于各个NUMA节点的总评分确定控制组的倾向节点。可以将总评分最高的NUMA节点确定为控制组的倾向节点;或者,也可以从总评分大于预设分值的各个NUMA节点中随机选择一个节点作为控制组的倾向节点;还可以基于总评分与其他条件共同确定控制组的倾向节点。
在运行状态信息包括最近一次将控制组调度到所述NUMA节点的时间信息的情况下,可以基于所述NUMA节点对应的时间信息确定最近一次将控制组调度到所述NUMA节点的时间与当前时间之间的时间间隔;将最长时间间隔对应的NUMA节点确定为所述控制组的倾向节点。例如,假设系统中包括节点1、节点2和节点3这三个NUMA节点,最近一次将控制组调度到节点1的时间与当前时间之间的时间间隔为t1,最近一次将控制组调度到节点2的时间与当前时间之间的时间间隔为t2,最近一次将控制组调度到节点3的时间与当前时间之间的时间间隔为t3,且t1>t2>t3,则可以将控制组调度到节点1。
在其他实施例中,还可以结合NUMA节点的负载信息以及最近一次将控制组调度到所述NUMA节点的时间信息共同确定当前待调度的控制组的倾向节点,确定倾向节点的具体方式可以基于实际需要确定,此处不再一一列举。
在步骤506中,可以将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。在一些实施例中,可以先创建控制组,再将至少一个任务加入控制组。创建控制组的过程可以由调度器响应于客户端的创建请求而执行。由于刚创建的控制组可能是空的(即控制组中不包括任务),因此,可以基于所述控制组的倾向节点的信息生成标签信息,所述标签信息用于指示所述控制组的倾向节点;将所述控制组的标识信息与所述标签信息进行绑定。其中,可以直接将倾向节点的标识信息作为标签信息,也可以基于倾向节点的标识信息与其他信息共同生成标签信息。在将至少一个任务加入所述控制组之后,可以基于与所述控制组的标识信息绑定的标签信息将所述至少一个任务中的每个任务调度到所述倾向节点上。
在确定倾向节点之后,从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元;将所述控制组中的各个任务调度到所述目标处理单元上。同一个控制组中的各个任务的处理单元均被调度到所述倾向节点上的处理单元,从而提高访存效率。该操作可以在所述控制组中的任务运行时执行,同一个控制组中不同的任务可以调度到不同的处理单元,也可以调度到相同的处理单元。
在一些实施例中,可以从多个候选处理单元中筛选出所述倾向节点上的处理单元;从筛选出的处理单元中选择用于运行所述任务的目标处理单元。其中,筛选出的各个处理单元均为倾向节点上满足预设约束条件的处理单元,所述预设约束条件可以由用户预先设置,或者采用默认条件。在一些实施例中,预设约束条件可以基于处理单元的以下至少一种信息设置:地址、型号、标识信息、操作系统类型、负载信息等。可以先从多个候选处理单元中筛选出倾向节点上的处理单元,再基于预设约束条件对倾向节点上的处理单元进行筛选。或者,也可以先基于预设约束条件对候选处理单元进行筛选,再从筛选出的处理单元中进一步筛选出倾向节点上的处理单元。
当任务需要运行的时候,调度器可以基于任务所在的控制组对应的标签信息判断各个候选处理单元是否在倾向节点上。如果不在,则跳过该候选处理单元,并继续判断下一个候选处理单元是否在倾向节点上。如果在,并且,该候选处理单元满足预设约束条件,那么返回该候选处理单元。
在一些情况下,一个任务对应的目标处理单元的数量可能有多个,可以将该任务调度到任意一个目标处理单元上运行,或者,也可以基于目标处理单元的信息选择多个目标处理单元中最优的目标处理单元来运行该任务。所述目标处理单元的信息可以包括但不限于以下至少一者:目标处理单元运行该任务所需的时长,已调度到目标处理单元的任务的数量、已调度到目标处理单元的任务所需的总运行时长等。基于目标处理单元的信息选择最优的目标处理单元,能够使倾向节点上的各个处理单元实现负载均衡,减少多个任务扎堆调度到同一个处理单元的情况。
在一些实施例中,当有些NUMA节点上任务较多,超过了NUMA节点的最大处理能力时,可以迁移该NUMA节点上某一个控制组里所有的任务到其它相对空闲的NUMA节点上,即,将NUMA节点上某一个控制组里所有的任务调度到其它相对空闲的NUMA节点上,从而进一步实现负载均衡。参见图6,假设迁移前调度到节点0的控制组包括控制组C1、C2和C3,调度到节点1的控制组包括控制组C4,为了实现负载均衡,可以将控制组C2迁移到节点1上。迁移后节点0包括控制组C1和C3,迁移后节点1包括控制组C2和C4。
具体来说,可以分别获取各个NUMA节点的负载强度;从所述多个NUMA节点中确定负载强度大于预设强度阈值的第一目标NUMA节点;将所述第一目标NUMA节点上的目标控制组包括的各个任务迁移到第二目标NUMA节点上,所述第二目标NUMA节点的负载强度小于所述第一目标NUMA节点的负载强度。
以基于已调度到NUMA节点的任务的数量来确定负载强度为例,在已调度到某个NUMA节点的任务的数量超过预设数量阈值的情况下,可以将该NUMA节点上的目标控制组包括的各个任务迁移到其他NUMA节点上。其中,目标控制组可以是已调度到该NUMA节点的任意一个控制组,也可以是已调度到该NUMA节点的控制组中满足预设条件的控制组。所述预设条件可以基于控制组中包括的任务的种类、数量、总运行时长和/或已运行时长等因素确定。例如,可以将包括预设种类的任务的控制组迁移到其他NUMA节点上。或者,可以将包括的任务的数量在预设数量范围内(例如,大于预设数量阈值)的控制组迁移到其他NUMA节点上。或者,可以将总运行时长在预设时长范围内(例如,大于预设时长阈值)的控制组迁移到其他NUMA节点上。或者,可以将已运行时长为0(即还未开始运行)的控制组迁移到其他NUMA节点上。
通过将目标控制组从第一目标NUMA节点迁移到第二目标NUMA节点,能够减小第一目标NUMA节点上的负载强度,并一定程度上实现负载均衡。进一步地,为了更好地实现负载均衡,第二目标NUMA节点应满足以下条件:迁移目标控制组之后第一目标NUMA节点与第二目标NUMA节点的负载强度之差小于迁移目标控制组之前第一目标NUMA节点与第二目标NUMA节点的负载强度之差。
具体来说,可以采用以下方式确定第二目标NUMA节点:获取将所述目标控制组从所述第一目标NUMA节点迁出之前所述第一目标NUMA节点的第一负载强度以及将所述目标控制组从所述第一目标NUMA节点迁出之后所述第一目标NUMA节点的第一预测负载强度;获取将所述目标控制组迁入候选NUMA节点之前所述候选NUMA节点的第二负载强度以及将所述目标控制组迁入所述候选NUMA节点之后所述候选NUMA节点的第二预测负载强度;若所述第一负载强度与所述第二负载强度之差的绝对值大于所述第一预测负载强度与所述第二预测负载强度之差的绝对值,将所述候选NUMA节点确定为所述第二目标NUMA节点。
其中,所述第一预测负载强度等于所述第一负载强度与所述目标控制组对应的负载强度之差,所述第二预测负载强度等于所述第二负载强度与所述目标控制组对应的负载强度之和。将所述第一负载强度、所述第二负载强度和所述目标控制组对应的负载强度分别记为S_busy、S_idle和S_cgroup,则第二目标NUMA节点的第二负载强度满足:
|S_busy-S_idle|>|(S_busy-S_cgroup)-(S_idle+S_cgroup)|。
如果存在满足上述条件的第二目标NUMA节点,可以将第一目标NUMA节点上的目标控制组中的所有任务均迁移到所述第二目标NUMA节点。如果不存在满足上述条件的第二目标NUMA节点,则不进行迁移。
除了上述实施例之外,还可以基于已调度到NUMA节点的任务已运行的时长信息或者已调度到NUMA节点的任务所需的总的运行时长确定负载强度。相应地,所述预设强度阈值分别为任务已运行的时长阈值和任务所需的总的运行时长阈值。具体的迁移过程可参见前述基于已调度到NUMA节点的任务的数量来确定负载强度的实施例中的任务迁移过程,此处不再赘述。
在一些实施例中,一个NUMA节点包括多个处理单元,同一个NUMA节点包括的各个处理单元共享最后一级缓存(cache)。每个处理单元都可以有自己的缓存,称为该处理单元的私有缓存。私有缓存只有该私有缓存所属的处理单元能够访问。同一个NUMA节点上的各个处理单元还可以共用一个缓存,称为该NUMA节点上各个处理单元的公共缓存。私有缓存为前级缓存,公共缓存为最后一级缓存。处理单元在进行访存时,可以先从本处理单元的私有缓存中查找所需的数据。如果未查找到,则在本处理单元所在的NUMA节点的公共缓存中查找所需的数据。如果仍未查找到,则在本处理单元所在的NUMA节点的内存中查找所需的数据。由于最后一级缓存的容量较大,且成本较低,因此,通过共用最后一级缓存,能够在尽量节约成本的情况下提高缓存命中率,提高缓存亲和性。
下面结合图7对本公开实施例与相关技术中的任务调度过程进行说明。本公开实施例主要包括以下几个步骤:
(1)当控制组被创建的时候,选取一个节点作为该控制组内各任务的倾向节点,选取过程可以根据各个节点的运行状态决定。例如,可以根据负载选择最空闲的NUMA节点,也可以根据控制组创建频繁程度,按顺序选择NUMA节点,避免“扎堆聚集在同一个NUMA节点上”。
(2)给任务分配处理单元运行时,限制任务在所在控制组的倾向节点上选择处理单元,保证相同控制组内的任务都在同一个倾向节点上运行。可以在调度器选择处理单元时加入判断逻辑,查看候选处理单元是否在任务所属的控制组的倾向节点上,如果不在,就跳过这个候选处理单元,查看下一个候选处理单元,这样保证调度器选择的处理单元在任务所属的控制组的倾向节点上运行。
参见图7中的(7-1),相关技术中调度器原有的判断逻辑是:候选处理单元如果满足预设约束条件,就返回该处理单元。参见图7中的(7-2),本公开实施例的判断逻辑是:候选处理单元如果满足预设约束条件,并且满足该候选处理单元是在任务所属控制组的倾向节点上,那么返回该候选处理单元。
(3)当有些NUMA节点上任务较多,超过了节点最大处理能力(即系统不均衡)时,迁移某一个控制组里所有任务到其它相对空闲的NUMA节点上实现负载均衡。在任务调度之前,本公开实施例找到待调度的任务所属的控制组,统计该控制组所有任务对应的负载强度(即控制组中所有任务的资源消耗总和)S_cgroup、繁忙节点(即第一目标NUMA节点)的负载强度S_busy以及空闲节点(即第二目标NUMA节点)的负载强度S_idle,如果迁移整个控制组后两个节点的负载强度差距变小,那么就整体迁移这个控制组里的所有任务,否则不做迁移。
本公开以控制组为任务间亲和性的划分单位,把相同控制组内的任务调度到相同的NUMA节点,并把控制组中的所有任务作为整体在NUMA节点之间迁移,能够保证相同控制组内的任务运行在相同的NUMA节点上,从而减少跨节点访存,提高cache命中率,并保证负载均衡。
本公开实施例在内核中的调度器使用上述任务调度策略,能够掌握更准确的系统整体运行信息,比用户态绑定处理单元的方案更准确。并且,相对于NUMA Balance只关注单个任务的任务调度方式,本公开以整个控制组为整体,利用相同控制组内任务之间的亲和性关系对整个控制组进行统一调度,提高了任务调度效果。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
如图8所示,本公开实施例还提供一种任务调度装置,所述装置包括:
获取模块802,用于获取多个NUMA节点中每个NUMA节点的运行状态信息;
确定模块804,用于基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;
第一调度模块806,用于将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
在一些实施例中,所述装置还包括:生成模块,用于在创建所述控制组之后,基于所述控制组的倾向节点的信息生成标签信息,所述标签信息用于指示所述控制组的倾向节点;绑定模块,用于将所述控制组的标识信息与所述标签信息进行绑定;所述第一调度模块用于:在将至少一个任务加入所述控制组之后,基于与所述控制组的标识信息绑定的标签信息将所述至少一个任务中的每个任务调度到所述倾向节点上。
在一些实施例中,所述装置还包括:选择模块,用于在所述控制组中的任务运行时,从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元;第二调度模块,用于将所述控制组中的各个任务调度到所述目标处理单元上。
在一些实施例中,所述选择模块用于:从多个候选处理单元中筛选出所述倾向节点上的处理单元;从筛选出的处理单元中选择用于运行所述任务的目标处理单元。
在一些实施例中,所述选择模块用于:从多个候选处理单元中筛选出所述倾向节点上,且满足预设约束条件的处理单元。
在一些实施例中,一个NUMA节点的运行状态信息包括所述NUMA节点的负载信息;所述确定模块用于:基于所述NUMA节点的负载信息确定所述NUMA节点的负载强度;将负载强度最低的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,一个NUMA节点的运行状态信息包括最近一次将控制组调度到所述NUMA节点的时间信息,所述确定模块用于:基于所述NUMA节点对应的时间信息确定最近一次将控制组调度到所述NUMA节点的时间与当前时间之间的时间间隔;将最长时间间隔对应的NUMA节点确定为所述控制组的倾向节点。
在一些实施例中,所述装置还包括:负载强度获取模块,用于分别获取各个NUMA节点的负载强度;第一目标NUMA节点确定模块,用于从所述多个NUMA节点中确定负载强度大于预设强度阈值的第一目标NUMA节点;迁移模块,用于将所述第一目标NUMA节点上的目标控制组包括的各个任务迁移到第二目标NUMA节点上,所述第二目标NUMA节点的负载强度小于所述第一目标NUMA节点的负载强度。
在一些实施例中,所述装置还包括:第一获取模块,用于获取将所述目标控制组从所述第一目标NUMA节点迁出之前所述第一目标NUMA节点的第一负载强度以及将所述目标控制组从所述第一目标NUMA节点迁出之后所述第一目标NUMA节点的第一预测负载强度;第二获取模块,用于获取将所述目标控制组迁入候选NUMA节点之前所述候选NUMA节点的第二负载强度以及将所述目标控制组迁入所述候选NUMA节点之后所述候选NUMA节点的第二预测负载强度;第二目标NUMA节点确定模块,用于若所述第一负载强度与所述第二负载强度之差的绝对值大于所述第一预测负载强度与所述第二预测负载强度之差的绝对值,将所述候选NUMA节点确定为所述第二目标NUMA节点。
在一些实施例中,一个NUMA节点包括多个处理单元,同一个NUMA节点包括的各个处理单元共享最后一级缓存。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述任一实施例所述的方法。
图9示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器902、存储器904、输入/输出接口906、通信接口908和总线910。其中处理器902、存储器904、输入/输出接口906和通信接口908通过总线910实现彼此之间在设备内部的通信连接。
处理器902可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。处理器902还可以包括显卡,所述显卡可以是Nvidia titan X显卡或者1080Ti显卡等。
存储器904可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器904可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器904中,并由处理器902来调用执行。
输入/输出接口906用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口908用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线910包括一通路,在设备的各个组件(例如处理器902、存储器904、输入/输出接口906和通信接口908)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器902、存储器904、输入/输出接口906、通信接口908以及总线910,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (13)

1.一种任务调度方法,所述方法包括:
获取多个NUMA节点中每个NUMA节点的运行状态信息;
基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;
将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
2.根据权利要求1所述的方法,所述方法还包括:
在创建所述控制组之后,基于所述控制组的倾向节点的信息生成标签信息,所述标签信息用于指示所述控制组的倾向节点;
将所述控制组的标识信息与所述标签信息进行绑定;
所述将所述当前待调度的控制组中的各个任务调度到所述倾向节点上,包括:
在将至少一个任务加入所述控制组之后,基于与所述控制组的标识信息绑定的标签信息将所述至少一个任务中的每个任务调度到所述倾向节点上。
3.根据权利要求1所述的方法,在将所述当前待调度的控制组中的各个任务调度到所述倾向节点上之后,所述方法还包括:
在所述控制组中的任务运行时,从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元;
将所述控制组中的各个任务调度到所述目标处理单元上。
4.根据权利要求3所述的方法,所述从所述倾向节点包括的多个处理单元中选择用于运行所述任务的目标处理单元,包括:
从多个候选处理单元中筛选出所述倾向节点上的处理单元;
从筛选出的处理单元中选择用于运行所述任务的目标处理单元。
5.根据权利要求4所述的方法,所述从多个候选处理单元中筛选出所述倾向节点上的处理单元,包括:
从多个候选处理单元中筛选出所述倾向节点上,且满足预设约束条件的处理单元。
6.根据权利要求1所述的方法,一个NUMA节点的运行状态信息包括所述NUMA节点的负载信息;所述基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点,包括:
基于所述NUMA节点的负载信息确定所述NUMA节点的负载强度;
将负载强度最低的NUMA节点确定为所述控制组的倾向节点。
7.根据权利要求1所述的方法,一个NUMA节点的运行状态信息包括最近一次将控制组调度到所述NUMA节点的时间信息,所述基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点,包括:
基于所述NUMA节点对应的时间信息确定最近一次将控制组调度到所述NUMA节点的时间与当前时间之间的时间间隔;
将最长时间间隔对应的NUMA节点确定为所述控制组的倾向节点。
8.根据权利要求1所述的方法,所述方法还包括:
分别获取各个NUMA节点的负载强度;
从所述多个NUMA节点中确定负载强度大于预设强度阈值的第一目标NUMA节点;
将所述第一目标NUMA节点上的目标控制组包括的各个任务迁移到第二目标NUMA节点上,所述第二目标NUMA节点的负载强度小于所述第一目标NUMA节点的负载强度。
9.根据权利要求8所述的方法,所述方法还包括:
获取将所述目标控制组从所述第一目标NUMA节点迁出之前所述第一目标NUMA节点的第一负载强度以及将所述目标控制组从所述第一目标NUMA节点迁出之后所述第一目标NUMA节点的第一预测负载强度;
获取将所述目标控制组迁入候选NUMA节点之前所述候选NUMA节点的第二负载强度以及将所述目标控制组迁入所述候选NUMA节点之后所述候选NUMA节点的第二预测负载强度;
若所述第一负载强度与所述第二负载强度之差的绝对值大于所述第一预测负载强度与所述第二预测负载强度之差的绝对值,将所述候选NUMA节点确定为所述第二目标NUMA节点。
10.根据权利要求1所述的方法,一个NUMA节点包括多个处理单元,同一个NUMA节点包括的各个处理单元共享最后一级缓存。
11.一种任务调度装置,所述装置包括:
获取模块,用于获取多个NUMA节点中每个NUMA节点的运行状态信息;
确定模块,用于基于各个NUMA节点的运行状态信息,从所述多个NUMA节点中确定当前待调度的控制组的倾向节点;
第一调度模块,用于将所述当前待调度的控制组中的各个任务调度到所述倾向节点上。
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至10任意一项所述的方法。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。
CN202111444367.9A 2021-11-30 2021-11-30 任务调度方法、装置、介质和计算机设备 Pending CN114237841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111444367.9A CN114237841A (zh) 2021-11-30 2021-11-30 任务调度方法、装置、介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111444367.9A CN114237841A (zh) 2021-11-30 2021-11-30 任务调度方法、装置、介质和计算机设备

Publications (1)

Publication Number Publication Date
CN114237841A true CN114237841A (zh) 2022-03-25

Family

ID=80752223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111444367.9A Pending CN114237841A (zh) 2021-11-30 2021-11-30 任务调度方法、装置、介质和计算机设备

Country Status (1)

Country Link
CN (1) CN114237841A (zh)

Similar Documents

Publication Publication Date Title
US9965324B2 (en) Process grouping for improved cache and memory affinity
US11449355B2 (en) Non-volatile memory (NVM) based method for performance acceleration of containers
US20070260827A1 (en) Method to support heterogeneous memories
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
CN102667714B (zh) 支持访问由操作系统环境外的资源提供的功能的方法和系统
US9727465B2 (en) Self-disabling working set cache
US20170364449A1 (en) Process running method and apparatus
CN111475099A (zh) 一种数据存储方法、装置及其设备
CN109002348A (zh) 一种虚拟化系统中的负载均衡方法及装置
CN110618872B (zh) 混合内存动态调度方法及系统
CN115617494B (zh) 多cpu环境下的进程调度方法、装置、电子设备和介质
CN108536759B (zh) 一种样本回放数据存取方法及装置
CN114237841A (zh) 任务调度方法、装置、介质和计算机设备
US9405470B2 (en) Data processing system and data processing method
CN111338803A (zh) 一种线程处理方法和装置
CN114780463A (zh) 中断控制方法、设备、分布式系统及存储介质
KR102563648B1 (ko) 멀티 프로세서 시스템 및 그 구동 방법
US20140237149A1 (en) Sending a next request to a resource before a completion interrupt for a previous request
CN116450055B (zh) 一种多处理卡间的存储区域分配方法和系统
CN113842642B (zh) 一种为游戏应用分配资源的方法及电子设备
US20240086225A1 (en) Container group scheduling methods and apparatuses
CN110175053B (zh) 图片加载方法及装置
US20210373790A1 (en) Inference in memory
JP2009193260A (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
CN103942084A (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