任务调度的制作方法

文档序号:17727794发布日期:2019-05-22 02:38阅读:134来源:国知局
任务调度的制作方法

这里给出的实施例涉及一种用于将多个任务中的任务调度到处理器核集群中的处理器核的方法、控制器、计算机程序和计算机程序产品,其中各处理器核共享高速缓存。



背景技术:

一般而言,执行的线程可以被定义为可以由调度器独立管理的最小编程指令序列,所述调度器通常是操作系统的一部分。线程和进程的实现在操作系统之间有所不同,但在大多数情况下,线程是进程的组成部分。多个线程可以存在于一个进程中,同时执行和共享资源(如存储豁),而不同进程不共享这些资源。特别是,进程的线程在任何给定时间共享其可执行代码及其变量的值。具有单个处理器的系统通常通过时间切片实现多线程:中央处理单元(cpu)在不同的软件线程之间切换。这种上下文切换通常非常频繁且足够快速地发生,使得用户将线程或任务视为并行运行。在多处理器或多核系统(即使用处理器核集群的系统)上,多个线程可以并行执行,每个处理器或核同时执行单独的线程;在具有硬件线程的处理器或核上,单独的软件线程也可以由单独的硬件线程同时执行。

存在用于将任务调度到核的不同机制。例如,根据核、集群和系统容量,调度器可以选择空闲核、空闲集群或向已经活动的集群添加更多作业。也可以对部署线程的位置(即应该将任务调度到哪个核)进行静态定义。

线程可以共享或不共享(可高速缓存存储器)工作集的部分,并且线程可以或可以不在某些组合中引入高速缓存混叠(aliasing)效果。只有具有针对部署线程的位置的静态定义才能考虑这种情况。基于静态定义的调度提供了将任务最佳放置到核的可能性,但是可能需要花费大量精力来仔细研究各个线程的工作集行为以分析共享工作集使用。此外,常见的用法因动态效果而异,无法用静态分析方法捕获。另一种可能性是使用系统仿真来捕获所需的特征,但这也需要在计算资源方面的很大精力。每个新的软件构建都需要重复这项工作。

因此,仍然需要改进处理器核集群的任务调度。



技术实现要素:

这里的实施例的目的是针对处理器核集群提供任务的有效调度。

根据第一方面,提出了一种用于将多个任务中的任务调度到处理器核集群中的处理器核的方法。各处理器核共享高速缓存。该方法由控制器执行。该方法包括:基于在共享相同高速缓存的处理器核上运行由多个任务构成的各组所导致的高速缓存未命中(miss)的持续时间,确定所述多个任务之间的按组(group-wise)任务关系。该方法包括基于任务的按组任务关系将该任务调度到其中一个处理器核。

根据第二方面,提供了一种用于将多个任务中的任务调度到处理器核集群中的处理器核的控制器。各处理器核共享高速缓存。控制器包括处理电路。所述处理电路被配置为:使控制器基于在共享相同高速缓存的处理器核上运行由所述多个任务构成的各组所导致的高速缓存未命中的持续时间,确定所述多个任务之间的按组任务关系。所述处理电路被配置为使控制器基于任务的按组任务关系将所述任务调度到其中一个处理器核。

根据第三方面,提供了一种用于将多个任务中的任务调度到处理器核集群中的处理器核的控制器。各处理器核共享高速缓存。所述控制器包括处理电路和存储介质。所述存储介质存储指令,所述指令在由处理电路执行时使所述控制器执行操作或步骤。所述操作或步骤使所述控制器基于在共享相同高速缓存的处理器核上运行由所述多个任务构成的各组所导致的高速缓存未命中的持续时间,确定所述多个任务之间的按组任务关系。所述操作或步骤使所述控制器基于任务的按组任务关系将所述任务调度到其中一个处理器核。

根据第四方面,提供了一种用于将多个任务中的任务调度到处理器核集群中的处理器核的控制器。各处理器核共享高速缓存。所述控制器包括确定模块,所述确定模块被配置为基于在共享相同高速缓存的处理器核上运行由所述多个任务构成的各组所导致的高速缓存未命中的持续时间,确定所述多个任务之间的按组任务关系。所述控制器包括调度模块,所述调度模块被配置为基于任务的按组任务关系将所述任务调度到其中一个处理器核。

根据第五方面,提供了一种用于将多个任务中的任务调度到处理器核集群中的处理器核的计算机程序,其中各处理器核共享高速缓存。所述计算机程序包括计算机程序代码,所述计算机程序代码当在控制器上运行时使所述控制器执行根据第一方面的方法。

根据第六方面,提出了一种计算机程序产品,所述计算机程序产品包括根据第五方面的计算机程序和存储所述计算机程序的计算机可读存储介质。所述计算机可读存储介质可以是非暂时性的计算机可读存储介质。

有利地,该方法和该控制器针对处理器核集群提供任务的有效调度。

有利地,该方法和该控制器使得任务的调度能够彼此适合。

有利地,该方法和该控制器使得统计数据能够被控制器连续地采样和学习如何调度任务以获得最佳高速缓存性能。

有利地,该方法和该控制器使得能够通过机器学习来增强所有的存储器性能。

有利地,该方法和该控制器适用于在数据块上操作并将其发送到下一个任务以对该数据块进行操作的复杂系统中的任务调度。

有利地,该方法和该控制器能够改进调度任务的计算系统的整体性能。

有利地,该方法和该控制器能够改进调度任务的计算系统的功耗。

有利地,该方法和该控制器实现了不需要针对高速缓存性能的软件优化。

应当注意的是,第一、第二、第三、第四、第五和第六方面的任何特征可以适时应用于任何其它方面。类似地,第一方面的任何优点可以同样分别适用于第二、第三、第四、第五和/或第六方面,且反之亦然。根据以下详细公开、所附从属权利要求以及附图,所附实施例的其他目的、特征和优点将变得显而易见。

通常,权利要求书中使用的所有术语均应根据技术领域内的普通含义进行解释,除非本文另有明确定义。除非另有明确说明,否则对“一/一个/元件、设备、组件、装置、步骤等”的所有引用应被开放地解释为指代元件、设备、组件、装置、步骤等中的至少一个实例。除非明确说明,否则本文公开的任何方法的步骤不必严格以所公开的确切顺序来执行。

附图说明

现在通过举例的方式参考附图描述本发明的构思,附图中:

图1和图2是示出根据实施例的计算系统的示意图;

图3是根据实施例的方法的流程图;

图4是示出根据实施例的包括对高速缓存未命中的惩罚的任务执行的示意图;

图5是示出根据实施例的控制器的功能单元的示意图;

图6是示出根据实施例的控制器的功能模块的示意图;以及

图7示出了根据实施例的包括计算机可读存储介质的计算机程序产品的一个示例。

具体实施方式

现在将在下文参考示出发明构思的特定实施例的附图来更全面地描述发明构思。然而,本发明构思可以按多种不同形式来体现,并且不应当被解释为受限于本文阐述的实施例。相反,通过示例的方式给出这些实施例,使得本公开将透彻和完整,并且向本领域技术人员充分地传达本发明构思的范围。在说明书全文中,相似的标记指代相似的要素。由虚线示出的任何步骤或特征应当被视为可选的。

图1是示出根据实施例的计算系统100a的示意图。当处理器流水线被要求访问寄存器组外的数据时,当前指令(表示为ins0;符号ins1用于下一指令)由流水线发布阶段102处理。发布阶段102请求处理器的总线接口单元(bui)104(也称为高速缓存端口)以获取所请求的数据并同时命令样本fifo106(其中fifo是先进先出的缩写)以登记当前循环计数(表示为t0;对于下一个指令,相应的循环计数表示为t1)。在流水线接收阶段106,当流水线从biu接收到数据时,命令样本fifo108再次对当前循环(c)采样。这标志着指令ins0的交易结束。样本fifo执行减法dc=c-t0,并请求惩罚时间累加器(pta)110将结果dc加到其当前值;其累计惩罚时间。该累计惩罚时间由操作系统(os)调度器读取,并存储在用于进行调度决策的高速缓存惩罚统计中。

图2是示出根据实施例的计算系统100b的示意图。计算系统100b包括n6个高速缓存190,其中高速缓存1由处理器核集群180中的n2个处理器核(pc)共享,其中高速缓存2由处理器核集群180中的n3个处理器核共享,其中高速缓存3由处理器核集群180中的n4个处理器核共享,以及其中高速缓存n6由处理器核集群180中的n5个处理器核共享。在处理器核集群180上重复调度n1个不同任务160。在这方面,所有数字n1-n6可以是不同的。或者,数字n1-n6中的至少两个数字相等。提供控制器200将多个任务160中的任务150调度到处理器核集群180中的处理器核170。

因此,本文公开的实施例涉及将多个任务160中的任务150调度到处理器核集群180中的处理器核170的机制。为了获得这样的机制,提供了控制器200,由控制器200执行的方法,包括例如计算机程序形式的代码的计算机程序产品,所述代码当在控制器200上运行时使控制器200执行该方法。

现在参考图3,其示出了用于将多个任务160中的任务150调度到处理器核集群180中的处理器核170的方法。各处理器核180共享高速缓存190。该方法由控制器200执行。该方法有利地提供为计算机程序720。

该方法基于根据任务在高速缓存190中一起执行的情况来确定任务160之间的任务关系。因此,控制器被配置为执行步骤s102:

s102:控制器200基于在共享相同高速缓存190的处理器核180上运行由多个任务160构成的各组所导致的高速缓存未命中的持续时间来确定多个任务160之间的按组任务关系。

该方法还基于根据任务150与其他任务160的任务关系来调度任务150。因此,控制器被配置为执行步骤s104:

s104:控制器200基于任务150的按组任务关系将任务150调度到其中一个处理器核170。

该方法引入了一种方法来对数据进行足够的采样以提供如下(实时)更新信息:在处理器核集群180中,多个任务160的哪些任务适合一起运行以及哪些任务应避免一起执行。这意味着根据与其他任务的关系来调度任务。该关系又基于任务在高速缓存190中一起执行的情况来确定。也就是说,将任务160调度到(与核180相关联的)高速缓存190,而不是将任务160调度到核180。

现在将公开与由控制器200执行的调度任务150的进一步细节有关的实施例。

根据实施例,任务150被调度到与任务的具有最小值的按组任务关系相对应的处理器核170。每个按组任务关系可以基于平均的各个体任务关系。接下来将公开如何确定各个体任务关系。

图4是示出在各处理器核180之一中执行任务150的持续时间的示意图400,包括对高速缓存未命中的惩罚。更详细地,任务150的执行在时间开始并在时间t1结束。也就是说,运行任务的总持续时间是t1-t0。该总持续时间包括高速缓存未命中的持续时间,符号示出为从时间tc0到时间tc1。根据实施例,每个个体任务关系基于高速缓存未命中的持续时间tc1-tc0与运行其中一个任务的总持续时间t1-t0之比。

根据图4中的图示,不考虑高速缓存未命中的执行任务的时间被划分为两块410a、410b,由对应于针对高速缓存未命中的惩罚的块420分开。然而,如技术人员所理解的,图4是简单的图示,并不一定说明处理器核实际对任务的执行;高速缓存未命中可以在t0和t1之间的任何时间发生,并且因此可以分散在t0和t1之间的多个这样的块420处。

此外,时间索引n处的个体任务关系可以取决于时间索引n-1处的个体任务关系。也就是说,根据实施例,用于在共享高速缓存x的处理器核上运行任务a的时间索引n处的个体任务关系取决于用于在共享高速缓存x的处理器核上运行任务a的时间索引n-1处的个体任务关系。在图2的示例中,a取从1到n1的值,并且x取从1到n6的值。

鉴于上述情况,个体任务关系基于高速缓存未命中的持续时间tcl-tc0与运行其中一个任务的总持续时间t1-t0之比,并且用于在共享高速缓存x的处理器核上运行任务a的时间索引n处的个体任务关系取决于用于在共享高速缓存x的处理器核上运行任务a的时间索引n-1处的个体任务关系。因此,根据实施例,用于在共享高速缓存x的处理器核上运行任务a的时间索引n处的个体任务关系的值为r(a,x)[n],由下式给出:

r(a,x)[n]=((k-1)·r(a,x)[n-1]+(tcl-tc0)/(t1-t0))/k,

其中参数k>1。

可以有不同的方法来选择k的值。一般而言,k的值决定了任务彼此关联的速度。通常k可能大得足以超出以下任何影响:

-在与完成时被采样的任务相同的高速缓存中执行了几个不同的任务,

-已完成任务中从一个spawn到另一个spawn的函数变化(其中spawn是加载并执行新的子进程的函数),

-在同一高速缓存中运行的其他任务从一个spawn到另一个spawn的函数变化,和/或

-计算系统中任务的运行长度的分布。

如上所述,按组任务关系可以基于平均的各个体任务关系。因此,pc1、pc2、...、pcnx针对任务a、任务b、...、任务z共享的高速缓存x在时间n处的按组任务关系g(x)[n]可以确定为

g(x)[n]=(r(a,x)[n]+r(b,x)[n]+…+r(z,x)[n])/nx。

例如,参考图2的说明性示例,当任务1类型的任务在高速缓存1的pc1中完成它的执行时,针对任务1和任务2(其与任务1共享高速缓存1)之间的关系的条目可以用加权平均值来更新。因此,根据实施例,每当更新同一个高速缓存的个体任务关系中之一时,就更新使用同一个高速缓存的所有任务的按组任务关系。然后,对于图2的说明性示例,在与运行任务2的处理器核pcn2共享高速缓存1的处理器核pc1上运行任务1的时间索引n处的个体任务关系的数量越低,任务1和任务2越有可能在将来也应共享缓存。也就是说,当任务1在高速缓存1的处理器核pc1上运行时,在高速缓存1的处理器核pcn2上运行任务2的个体任务关系也被确定。也就是说,根据实施例,每个按组任务关系的个体任务关系的数量与每个按组任务关系的处理器核的数量一样多。此外,根据实施例,按组任务关系的数量与高速缓存的数量一样多。

每个处理器核可能有相等或不等数量的高速缓存。根据实施例,所有高速缓存190由相等数量的处理器核共享。因此,根据该实施例,n2=n3=n4=n5。根据另一实施例,高速缓存190由不等数量的处理器核共享。因此,根据该实施例,n2、n3、n4和n5取包括至少两个不同数字的集合中的值,使得对于集合{2,3,4,5}中的至少一个i,j(其中i≠j),ni≠nj。

可能有不同类型的任务。根据实施例,任务是运行到完成(run-to-completion)任务。每个任务都可以对应一软件线程。因此,根据实施例,任务是软件线程。

可以存在不同种类的处理器核集群190。例如,处理器核集群190可以是数字信号处理器的一部分。处理器核集群190可以是单个数字信号处理器的一部分或数字信号处理器集群的一部分。此外,在这方面,控制器200可以在数字信号处理器的控制单元中实现。附加地或替代地,处理器核集群190是云计算系统的一部分。因此,根据实施例,计算系统100b是云计算系统。此外,在这方面,控制器200可以在云计算系统的控制单元中实现。

图5以多个功能单元的方式示意性地示出了根据实施例的控制器200的组件。使用能够执行存储于计算机程序产品710(如图7)(例如具有存储介质230的形式)中的软件指令的合适的中央处理单元(cpu)、多处理器、微处理器、数字信号处理器(dsp)等中的一个或更多个的任意组合来提供处理电路210。处理电路210还可以被提供为至少一个专用集成电路(asic)或现场可编程门阵列(fpga)。

具体地,处理电路210被配置为使得控制器200执行如上所述的一组操作或步骤s102-s104。例如,存储介质230可以存储该组操作,并且处理电路210可以被配置为从存储介质230获取该组操作,以使控制器200执行该组操作。该组操作可以被提供为可执行指令集。

处理电路210由此被布置为执行本文公开的方法。存储介质230还可以包括持久存储设备,例如可以是磁存储器、光存储器、固态存储器或甚至远程安装的存储器中的任意一个或组合。控制器200还可以包括通信接口220,该通信接口220至少被配置用于与计算系统100b的实体(如任务160、处理器核集群180和高速缓存190)通信。因此,通信接口220可以包括一个或多个发射机和接收机,包括模拟和数字组件。处理电路210例如通过向通信接口220和存储介质230发送数据和控制信号,通过从通信接口220接收数据和报告,以及通过从存储介质230获取数据和指令来控制控制器200的总体操作。省略了控制器200的其它组件以及相关功能,以免使本文中所呈现的构思变得模糊。

图6以多个功能模块的方式示意性地示出了根据实施例的控制器200的组件。图6的控制器200包括多个功能模块;配置为执行步骤s102的确定模块210a;以及配置为执行步骤s104的调度模块210b。图6的控制器200还可以包括多个可选功能模块,如功能模块210c所示。一般来说,在一个实施例中,每个功能模块210a-210c可以仅在硬件中实现,和/或在另一个实施例中借助于软件来实现,即,后一个实施例具有存储在存储介质230上的计算机程序指令,当该计算机程序指令在处理电路上运行时,使控制器200执行以上结合图6描述的相应步骤。还应该提及的是:即使这些模块对应于计算机程序的各部分,它们也不必是其中的单独模块,而它们在软件中实现的方式取决于所使用的编程语言。优选地,一个或多个或所有功能模块210a-210c可以由处理电路210(可能与功能单元220和/或230协作)来实现。因此,处理电路210可以被配置为从存储介质230获取由功能模块210a-210c提供的指令,并且执行这些指令,由此执行本文所公开的任何步骤。

控制器200可以被提供为独立设备或至少一个其他设备的一部分。因此,由控制器200执行的指令的第一部分可以在第一设备中执行,而由控制器200执行的指令的第二部分可以在第二设备中执行;本文公开的实施例不限于可以在其上执行由控制器200执行的指令的任何特定数量的设备。因此,根据本文公开的实施例的方法适于由驻留在云计算环境中的控制器200来执行。因此,尽管在图5中示出单个处理电路210,但处理电路210可以分布在多个设备或节点中。这同样适用于图6的功能模块210a-210c和图7的计算机程序720(见下文)。

图7示出了包括计算机可读存储介质730的计算机程序产品710的一个示例。在该计算机可读存储介质730上,可以存储计算机程序720,该计算机程序720可以使处理电路210和操作耦接到处理电路的实体和设备(例如,通信接口220和存储介质230)执行根据本文描述的实施例的方法。计算机程序720和/或计算机程序产品710可以因此提供用于执行如本文公开的任何步骤的手段。

在图7的示例中,计算机程序产品710被示出为光盘,例如cd(紧凑盘)或dvd(数字多功能盘)或蓝光盘。计算机程序产品710还可以体现为存储器,例如随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、或电可擦除可编程只读存储器(eeprom)和更具体地作为外部存储器中的设备的非易失性存储介质,例如usb(通用串行总线)存储器或闪存(例如紧凑式闪存)。因此,尽管计算机程序720这里示意性地示出为所描绘的光盘上的轨道,计算机程序720可以用适于计算机程序产品710的任意方式进行存储。

以上已经参考一些实施例主要地描述了本发明构思。然而,本领域技术人员容易理解的是:上述公开之外的其它实施例在如由所附专利权利要求所限定的本发明构思的范围之内同样是可能的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1