CN108369527A - 用于基于时间的任务调度的方法和设备 - Google Patents

用于基于时间的任务调度的方法和设备 Download PDF

Info

Publication number
CN108369527A
CN108369527A CN201680072041.9A CN201680072041A CN108369527A CN 108369527 A CN108369527 A CN 108369527A CN 201680072041 A CN201680072041 A CN 201680072041A CN 108369527 A CN108369527 A CN 108369527A
Authority
CN
China
Prior art keywords
queue
hsa
task
computing device
calculating task
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
CN201680072041.9A
Other languages
English (en)
Inventor
沃尔特·B·本顿
史蒂文·K·莱因哈特
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN108369527A publication Critical patent/CN108369527A/zh
Pending legal-status Critical Current

Links

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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种计算装置。所述计算装置包括加速处理单元(APU),所述加速处理单元包括至少第一异构系统架构(HSA)计算装置和至少第二HSA计算装置,所述第二计算装置的类型不同于所述第一计算装置,并且HSA存储器管理单元(HMMU)允许所述APU与至少一个存储器通信。计算任务在被设定为在所述至少第一HSA计算装置或所述至少第二HSA计算装置上运行的HSA管理的队列上排队。所述计算任务基于触发所述计算任务重新排队的次数的重复旗标而在所述HSA管理的队列上重新排队。每当所述计算任务重新排队时便递减重复字段。所述重复字段可以包括允许无限期地将所述计算任务重新排队的特殊值(例如,‑1)。

Description

用于基于时间的任务调度的方法和设备
对相关申请的交叉参考
本申请要求2015年12月8日提交的美国非临时专利申请No.14/962,784的权益,所述申请以引用的方式并入,就好像在本文完全阐述一样。
技术领域
所公开的实施方案一般针对于计算系统中的基于时间的任务调度。
背景
许多计算操作需要周期性地执行,例如使消息保持活动、报告健康状况监测,以及执行检查点。其他可能性包括周期性地执行由群集管理软件使用的计算,例如系统负荷平均值、功率度量的计算等。除了固定周期处理之外,进程可能想要在未来的某一随机时间调度任务执行,例如,以便进行基于随机时间的统计取样。
为了提供此问题的解决方案,例如由UNIX和LINUX中的cron和atd工具提供的周期性进程执行允许对进程进行基于时间的调度。这些解决方案涉及进程创建、存储器使用等中的显著开销,并且针对进程创建和终止在整个操作系统(OS)上操作并且受限于标准的中央处理单元(CPU)处理。因此,需要一种用于通过任务直接在计算机系统中对任务进行基于时间的调度的方法和设备,而不会有遍历OS来进行进程创建和终止的开销。
实施方案的概要
本发明公开了一种计算装置。所述计算装置包括加速处理单元(APU),所述加速处理单元包括至少第一异构系统架构(HSA)计算装置和至少第二HSA计算装置,所述第二计算装置的类型不同于所述第一计算装置,并且HSA存储器管理单元(HMMU)允许所述APU与至少一个存储器通信。所述至少一个计算任务在被设定为在至少第一HSA计算装置或至少第二HSA计算装置上运行的HSA管理的队列上排队。所述至少一个计算任务是使用基于时间的延迟队列来排队,其中时基使用定时器并且在延迟达到零时执行。至少一个计算任务基于触发至少一个计算任务重新排队的次数的重复旗标而在HSA管理的队列上重新排队。每当至少一个计算任务重新排队时便递减重复字段。所述重复字段可以包括允许无限期地将至少一个计算任务重新排队的特殊值(例如,-1)。
附图简述
通过结合附图借助实例给出的以下描述,可以得到更详细的理解,附图中:
图1是处理器块(例如,示例性APU)的框图;
图2说明同构计算机系统;
图3说明异构计算机系统;
图4说明图3的异构计算机系统以及与GPU处理器相关联的额外的硬件细节;
图5说明并入有至少一个定时器装置和每个处理器多队列配置的异构计算机系统;
图6说明具有由其他处理器填充的队列的计算机系统;
图7说明异构系统架构(HSA)平台;
图8说明在处理量计算单元与等待时间计算单元之间排队的图;
图9说明延时型工作项目的流程图;以及
图10说明在任务队列上周期性地重新插入任务的流程图。
详细描述
HSA平台提供多个机制,用户级代码可以通过所述机制对用于在HSA管理的装置上执行的任务进行排队。这些可以包括(但不限于)处理量计算单元(TCU)、等待时间计算单元(LCU)、DSP、固定功能加速器等。在其原始的实施方案中,用户进程负责将任务在HSA管理的任务队列上排队,以便直接分派给HSA管理的装置。HSA的此扩展为将要排队以在指定的未来时间执行的任务提供了一种机制。而且,这可以实现周期性重新排队,使得可以发出一次任务,但随后在适当的任务队列上反复地重新排队以便以指定的间隔执行。本系统和方法向HSA背景内的UNIX/Linux cron服务提供服务。本系统和方法提供一种机制,其允许通过任务直接调度和使用计算资源,而不会有遍历OS来进行进程创建和终止的开销。本系统和方法还可以将基于时间的调度的概念扩展到所有HSA管理的装置,而不仅仅针对标准的CPU处理。
本发明公开了一种计算装置。虽然可以使用处理单元的任何集合,但可以在本系统和方法中使用异构系统架构(HSA)装置,并且示例性计算装置包括:加速处理单元(APU),所述加速处理单元包括具有至少一个核心的至少一个中央处理单元(CPU),以及包括至少一个HSA计算单元(H-CU)的至少一个图形处理单元(GPU);以及HSA存储器管理单元(HMMU或者HSAMMU),其允许APU与至少一个存储器通信。其他装置可以包括HSA装置,例如存储器内处理(PIM)、网络装置等。至少一个计算任务在被设定为在至少一个CPU或者至少一个GPU上运行的HSA管理的队列上排队。至少一个计算任务是使用基于时间的延迟队列来排队,其中时基使用装置定时器和/或通用定时器,并且在延迟队列达到零时(例如,在延迟值耗尽时)执行,如本文在下文描述。至少一个计算任务基于触发至少一个计算任务重新排队的次数的重复旗标而在HSA管理的队列上重新排队。每当至少一个计算任务重新排队时便递减重复字段。所述重复字段可以包括允许无限期地将至少一个计算任务重新排队的特殊值。所述特殊值可以是-1。
图1是可以在其中实施一个或多个所公开的实施方案的示例性装置100的框图。装置100可以包括(例如)计算机、游戏装置、手持装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108和一个或多个输出装置110。装置100还可以任选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括在图1中未示出的额外组件。
处理器102可以包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。存储器104可以位于与处理器102相同的裸片上,或者可以与处理器102分开地定位。存储器104可以包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM,或缓存。
存储装置106可以包括固定或可移除的存储装置,例如硬盘驱动器、固态驱动器、光盘,或闪存驱动器。输入装置108可以包括键盘、小键盘、触摸屏、触摸垫、检测器、麦克风、加速度计、陀螺仪、生物识别扫描仪,或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110可以包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线,或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且准许处理器102从输入装置108接收输入。输出驱动器114与处理器102和输出装置110通信,并且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选的组件,并且在不存在输入驱动器112和输出驱动器114的情况下,装置100将以相同的方式操作。
图2说明同构计算机系统200。计算机系统200如下操作:每个CPU从任务队列拉出任务并且在需要时处理所述任务。如图2中所示,存在表示为特定X86CPU的一连串处理器240。所述处理器依赖于CPU工人230来从队列220检索去往处理器240的任务或者线程任务。如所示,可以存在多个队列220、CPU工人230和CPU240。为了提供负荷平衡和/或引导哪个CPU 240执行给定任务(即,使用任务填充哪个队列220),可以使用运行时210。此运行时210可以提供跨CPU的负荷平衡,以有效地管理处理资源。运行时210可以包括特定应用级指令,所述特定应用级指令通过(例如)使用标签或者通过提供地址来指定哪个处理器用于处理。运行时210可以包括从应用和操作系统产生的任务,包括选择将要在上面运行的处理器的那些任务。如将在本文下文论述,根据实施方案,可以使用定时器装置(在此配置中未示出,但可以将定时器装置应用于计算机系统200)来提供负荷平衡和队列管理。
图3说明异构计算机系统300。计算机系统300以与计算机系统200类似的方式如下操作:每个CPU从任务队列拉出任务,并且在需要时处理所述任务。如图3中所示,存在表示为特定X86CPU的一连串处理器340。与在计算机系统200中一样,这些处理器340中的每一者依赖于CPU工人330来从队列320检索去往处理器340的任务或者线程任务。如所示,可以存在多个队列320、CPU工人330和CPU 340。计算机系统300还可以包括至少一个GPU 360,通过GPU管理器350来控制所述至少一个GPU的队列320。虽然仅示出单个GPU 360,但应理解,可以使用任何数目的GPU 360与相伴的GPU管理器350和队列320。
为了提供负荷平衡和/或引导哪个CPU 340或者GPU 360执行给定任务(即,使用任务填充哪个队列320),可以使用运行时310。此运行时310可以提供跨CPU的负荷平衡,以有效地管理处理资源。然而,由于计算机系统300的异构性质,所以运行时310可能具有更加困难的负荷平衡的任务,因为GPU 360和CPU 340可能会不同地(例如,并行地相对于串行地)处理它们的相应队列320,从而使得运行时310更加难以确定队列320中的任务剩余的处理量。如将在本文下文论述,根据实施方案,可以使用定时器装置(在此配置中未示出,但可以将定时器装置应用于计算机系统300)来提供负荷平衡和队列管理。
图4说明图3的异构计算机系统300以及与GPU处理器相关联的额外的硬件细节。具体来说,在图4中说明的计算机系统400包括计算机系统400,所述计算机系统以与计算机系统200、300类似的方式如下操作:每个CPU从任务队列拉出任务,并且在需要时处理所述任务。如图4中所示,存在表示为特定X86CPU的一连串处理器440。与在计算机系统200、300中一样,这些处理器440中的每一者依赖于CPU工人430来从队列420检索去往处理器440的任务或者线程任务。如所示,可以存在多个队列420、CPU工人430和CPU 440。计算机系统400还可以包括至少一个GPU 460,通过GPU管理器450来控制所述至少一个GPU的队列420。虽然仅示出单个GPU 460,但应理解,可以使用任何数目的GPU 460与相伴的GPU管理器450和队列420。在计算机系统400中提供额外的细节,包括与GPU管理器450相关联的存储器455。可以利用存储器455来执行与GPU 460相关联的处理。
还可以利用额外的硬件,包括单指令多数据(SIMD)465。虽然示出若干SIMD 465,但可以使用任何数目的SIMD 465。SIMD 465可以包括具有多个处理元件的计算机,所述多个处理元件同时在多个数据点上执行相同的操作,存在多个同时(并行)的计算,但在给定时刻仅存在单个进程(指令)。SIMD 465可以同时对多个任务工作,所述任务例如是其中不需要GPU 460的全部处理的任务。这例如可以提供处理能力的更好的分配。这与CPU 440形成对比,所述CPU一般一次对单个任务操作并且随后移动到下一个任务。如将在本文下文论述,根据实施方案,可以使用定时器装置(在此配置中未示出,但可以将定时器装置应用于计算机系统400)来提供负荷平衡和队列管理。
图5说明并入有至少一个定时器装置590和每个处理器多队列配置的异构计算机系统500。如图5中说明,CPU1 540可以具有与其相关联的两个队列:队列520和队列525。队列520可以是上文关于图2至图4描述的类型,其中经由应用/运行时510来控制和/或填充所述队列。队列525可以由CPU1 540例如通过以下方式进行填充和控制:使用从由CPU1 540完成的任务产生的任务来填充队列25。虽然针对CPU1 540示出两个队列,但可以使用来自应用/运行时510和/或CPU1 540的任何数目的队列。
如图5中说明,CPU2 540也可以具有多个队列520、555。队列520同样可以是上文关于图2至图4描述的类型,其中经由应用/运行时510来控制和/或填充所述队列。队列555是在概念上类似于队列525的队列,类似之处在于通过CPU 540来填充队列525。通过除了队列555馈给的处理单元(CPU2)之外的另一处理单元(在此情况下是GPU 560)来填充所述队列。
如图5中说明,队列535被CPU2 540填充并且馈给GPU 560。队列545馈给GPU 560并且被GPU 560填充。队列520馈给GPU 560并且被应用/运行时510填充。
在图5中还说明定时器装置590。定时器装置590可以从系统的其余部分并且具体来说从应用/运行时510自主地创建任务。如所示,定时器装置590可以能够使用系统500中的处理器中的任何一者或多者的任务来填充队列。具体来说,定时器装置590可以填充将要在CPU1 540、CPU2 540或者GPU 560上运行的队列520。定时器装置还可以使用将要在用于那些相应的队列525、535、545、555的处理器540、560上运行的任务来填充队列525、535、545、555。
图6说明具有由其他处理器填充的队列的计算机系统600。计算机系统600类似于图5的计算机系统500,其描绘并入有每个处理器多队列配置的异构计算机系统。如图6中所示,CPU1 640可以具有与其相关联的两个队列:队列620和队列625。队列620可以是上文关于图2至图5描述的类型,其中经由应用/运行时610来控制和/或填充所述队列。队列625可以由CPU1 640例如通过以下方式进行填充和控制:使用从由CPU1 640完成的任务产生的任务来填充队列625。虽然针对CPU1 640示出两个队列,但可以使用来自应用/运行时610和/或CPU1 640的任何数目的队列。
如图6中说明,CPU2 640也可以具有多个队列620、655。队列620同样可以是上文关于图2至图5描述的类型,其中经由应用/运行时610来控制和/或填充所述队列。队列655是在概念上类似于队列625的队列,类似之处在于通过CPU 640来填充队列625。通过除了队列655馈给的处理单元(CPU2)之外的另一处理单元(在此情况下是GPU 660)来填充所述队列。
如图6中说明,队列635被CPU2 6540填充并且馈给GPU 660。队列645馈给GPU 660并且被GPU 660填充。队列620馈给GPU 660并且被应用/运行时610填充。
图6说明使用任务填充每个队列620、625、635、645和655。在队列625的情况下,在所述队列中存在两个任务,但可以使用或者填充任何数目。使用两个任务填充队列635,使用两个任务填充队列645,并且使用单个任务填充队列655。在这里呈现的任务的数目仅是示例性的,可以在队列中填充任何数目的任务,包括零个任务直至能够在队列中保持的数目。
图7说明异构系统架构(HSA)平台700。HSA加速处理单元(APU)710可以含有多核CPU 720、具有多个HSA计算单元(H-CU)732、734、736的GPU 730,以及HSA存储器管理单元(HMMU或者HSA MMU)740。CPU 720可以包括任何数目的核心,其中在图7中示出核心722、724、726、728。GPU 730可以包括任何数目的H-CU,但在图7中示出三个。虽然在所描述的实施方案中特定论述和呈现了HSA,但可以在同构或者异构系统(例如,在图2至图6中描述的那些系统)上利用本系统和方法。
HSA APU 710可以与系统存储器750通信。系统存储器750可以包括相干系统存储器752和非相干系统存储器757中的一者或两者。
HSA 700可以提供基本计算元件的统一视图。HSA 700允许程序员编写在将CPU720(还被称为等待时间计算单元)与GPU 730(还被称为处理量计算单元)无缝地整合的同时受益于各方的最佳属性的应用。
GPU 730近年来已经从纯粹的图形加速器转变为由标准API和工具(例如,OpenCL和DirectCompute)支持的更通用的并行处理器。那些API是美好的开始,但在创建允许GPU730流畅地用作CPU 720以便进行常见的编程任务的环境方面仍有许多障碍,包括CPU 720与GPU 730之间的不同的存储器空间、非虚拟化硬件等。HSA 700消除了那些障碍,并且允许程序员利用GPU 730中的并行处理器作为传统的多线程CPU 720的对等物。可以将对等装置界定为与另一装置共享相同的存储器相干域的HSA装置。
HSA装置700使用队列而彼此通信。队列是HSA架构的整体部分。等待时间处理器720已经在通用的任务队列运行时间(比如ConcRT和线程构造块)在队列中向彼此发送计算请求。通过HSA,等待时间处理器720和处理量处理器730可以将去往彼此和自身的任务排队。HSA运行时执行所有队列创建和销毁操作。队列是物理存储器区域,其中生产者向消费者发出请求。依据HSA硬件的复杂性,队列可能由软件或者硬件的任何组合管理。硬件管理的队列在以下意义上具有显著的性能优势:在等待时间处理器720上运行的应用可以将去往处理量处理器730的工作直接排队,而不需要任何中介的操作系统调用。这允许装置之间的非常低的等待时间的通信。借此,处理量处理器730装置可以被视为对等装置。等待时间处理器720也可以具有队列。这允许任何装置将用于任何其他装置的工作排队。
具体来说,如图8中所示,等待时间处理器720可以排队等候处理量处理器730。这是OpenCL风格排队的典型情景。处理量处理器730可以排队等候另一处理量处理器730(包括自身)。这允许在处理量处理器730上运行的工作负载将额外的工作排队,而不需要往返等待时间处理器720,所述往返将添加大量和常常不可接受的等待时间。处理量处理器730可以排队等候等待时间处理器720。这允许在处理量处理器730上运行的工作负载请求系统操作,例如存储器分配或者I/O。
当前的HSA任务排队模型实现了将任务在HSA管理的队列上排队以供直接执行。此增强实现了两种额外的能力(1)任务的延迟的排队和/或执行,以及(2)任务在任务队列上的周期性重新插入。
对于任务的延迟的排队和/或执行,HSA装置700可以利用定时器能力,可以设定所述定时器能力以致使在给定间隔之后检查基于时间的调度/延迟队列。现在参看图9,示出延时型工作项目的流程图。请求所调度的任务执行的计算装置可以将任务在标准任务队列上排队。排队的工作项目可以包括用于经由工作项目的延迟字段中的值(延迟值910)来指示这是不是延时型工作项目的信息。如果延迟值910是零915,那么可以将工作项目排队以便直接分派920。如果延迟值910大于零925,那么在步骤930处,那表示所述值用于确定推迟任务执行的时间量(基于延迟值的延迟)。举例来说,延迟值910可以指示将任务的执行延迟的HSA平台时钟的滴答声数目。在由延迟值910指示的延迟耗尽之后,可以在步骤940处执行任务。
定时器实现方式可能受限于比工作项目中指定的时间粒度更大的时间粒度。在那种情况下,所述实现方式可以选择用于决定如何调度任务的规则。举例来说,所述实现方式可以四舍五入为最近的时间单位,或者可以决定四舍五入为下一个最高的时间单位或者下一个最低的时间单位。
工作项目信息还可以含有用于指示是否将把任务重新排队以及在重新排队的情况下重新排队的时间量和重新排队调度策略的信息:这可以实现在任务队列上周期性地重新插入任务。工作项目可以含有重新排队旗标。如果旗标是非零,那么一旦工作项目已经完成执行,就可以基于重复字段、延迟值以及基于周期性旗标的值的重新排队调度策略的值来重新调度旗标。
现在参看图10,示出在任务队列上周期性地重新插入任务的流程图。此流程开始于在步骤1010处执行的任务的完成,从而允许周期性的重新插入。在步骤1020处检查重新排队旗标。如果重新排队是零,那么周期性重新插入可以在步骤1060处结束。如果重新排队旗标是非零,那么重新排队逻辑可以通过在步骤1030处检查重复字段来确定重新排队的次数。如果重复字段>0,那么在步骤1040处将任务重新排队并且使重复字段递减1。当重复字段达到0时,在步骤1060处不再将任务重新排队。例如-1的特殊值的重复值指示任务将始终在步骤1050处重新排队。在此情况下,在每个任务执行之后不递减重复字段。
将任务重新排队的时间间隔是基于周期性旗标的值。如果旗标是非零,那么在延迟字段中的间隔内将任务重新排队。一个任选的扩展是允许以随机的间隔重新排队。这可以支持基于随机时间的执行。这可以用于对数据流、系统活动和所监测的值等的基于随机的取样。为了实现此基于随机的取样,如果周期性旗标是零,那么间隔是随机的而不是周期性的,并且在0与延迟字段的值的范围内随机地选择重新排队间隔。换句话说,延迟字段的值是延迟范围的上限。
可以为例如检索关于调度的任务的信息以及取消当前调度的任务等能力提供额外的工具。可以增强HSA任务排队协议以支持这些命令。一些实施方案可以经由任务识别符、系统名称和工作项目计数器等来维持任务之间的独特性。取消命令的结果是从定时器队列移除指定的周期性任务,使得所述任务不再被调度执行。本系统还可以返回当前在延迟队列中的任务的列表和状态。状态可以包括例如以下信息:下次执行的时间、重新排队旗标值、重新排队计数值以及间隔值。
取消和列表/状态操作还可以实现有特权(例如,根)的访问。这可以允许系统管理员以及进程以足够的权限执行来查询以及可能取消基于时间的任务。
本系统和方法可以被配置成使得存在用于在节点中的任何可用的HSA装置上调度周期性任务的单个HSA调度器装置,而不是与每个HSA装置集成的调度器。在每个节点的所述单个HSA调度器装置或者每个HSA装置的集成的HSA调度器中,来自任务队列的客户端的交互可以是相同的。也就是说,HSA实现方式可以使单个HSA调度器装置来管理调度或者可以使每个HSA装置具有HSA调度器。
应理解,基于本文公开内容,许多变化是可能的。虽然特征和元件在上文以特定组合进行描述,但是每个特征或元件可以在不具有其他特征和元件的情况下单独使用,或者在具有或不具有其他特征和元件的情况下以各种组合来使用。
可以在通用计算机、处理器或处理器核心中实施所提供的方法。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心联合的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可以通过使用经过处理的硬件描述语言(HDL)指令的结果以及包括网表的其他中间数据(所述指令能够存储在计算机可读介质上)来配置制造过程而制造所述处理器。此类处理的结果可以是集成电路布图设计,其随后用于半导体制造过程中来制造实施实施方案的各方面的处理器。
本文提供的方法或流程图可以实施于计算机程序、软件或固件中,其并入非暂时性计算机可读存储介质中以供通用计算机或处理器执行。非暂时性计算机可读存储介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓冲存储器、半导体存储器装置、磁性介质(例如内部硬盘和可装卸盘、磁光介质)以及光学介质,例如CD-ROM盘和数字多功能盘(DVD)。
* * *

Claims (20)

1.一种计算装置,所述装置包括:
处理单元,所述处理单元包括:至少第一计算装置,所述第一计算装置具有与其相关联的至少一个第一计算装置队列;以及至少第二计算装置,所述第二计算装置具有与其相关联的至少一个第二计算装置队列;以及
定时器装置,所述定时器装置经由所述至少一个第一计算装置队列和所述至少一个第二计算装置队列中的至少一者来直接控制至少一个计算任务的排队,以便减少使用操作系统来创建和终止所述至少一个计算任务的开销。
2.如权利要求1所述的装置,其中所述至少一个计算任务是使用基于时间的延迟来排队。
3.如权利要求2所述的装置,其中时基使用装置定时器。
4.如权利要求2所述的装置,其中所述时基使用通用定时器。
5.如权利要求2所述的装置,其中当所述延迟队列达到零时执行所述至少一个计算任务。
6.如权利要求1所述的装置,其中所述第一计算装置包括等待时间计算单元。
7.如权利要求1所述的装置,其中所述第二计算装置包括处理量计算单元。
8.如权利要求1所述的装置,其中排队实现对计算资源的直接访问。
9.如权利要求1所述的装置,其中所述第二计算装置的类型不同于所述第一计算装置。
10.如权利要求1所述的装置,其中所述处理单元是异构的。
11.如权利要求1所述的装置,其中所述至少一个计算任务经由所述至少一个第一计算装置队列和所述至少一个第二计算装置队列中的至少一者来重新排队。
12.如权利要求11所述的装置,其中所述重新排队是使用旗标来实现。
13.如权利要求11所述的装置,其中所述重新排队是基于触发所述至少一个计算任务重新排队的次数的重复旗标而进行。
14.如权利要求13所述的装置,其中每当所述至少一个计算任务重新排队时便递减重复字段。
15.如权利要求13所述的装置,其中所述重复字段包括允许无限期地将所述至少一个计算任务重新排队的特殊值。
16.如权利要求15所述的装置,其中所述特殊值是-1。
17.一种计算装置,所述装置包括:
至少一个异构系统架构(HSA)计算单元(H-CU);以及
HSA存储器管理单元(HMMU),所述HSA存储器管理单元允许所述HSA的至少一个处理器与至少一个存储器通信,
其中至少一个计算任务在被设定为在所述至少一个处理器上运行的HSA管理的队列上排队。
18.如权利要求17所述的装置,其中所述至少一个计算任务是使用基于时间的延迟队列来排队。
19.如权利要求17所述的装置,其中所述至少一个计算任务在所述HSA管理的队列上重新排队。
20.如权利要求19所述的装置,其中所述重新排队是基于触发所述至少一个计算任务重新排队的次数的重复旗标而进行。
CN201680072041.9A 2015-12-08 2016-09-19 用于基于时间的任务调度的方法和设备 Pending CN108369527A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/962,784 US20170161114A1 (en) 2015-12-08 2015-12-08 Method and apparatus for time-based scheduling of tasks
US14/962,784 2015-12-08
PCT/US2016/052504 WO2017099863A1 (en) 2015-12-08 2016-09-19 Method and apparatus for time-based scheduling of tasks

Publications (1)

Publication Number Publication Date
CN108369527A true CN108369527A (zh) 2018-08-03

Family

ID=58798311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680072041.9A Pending CN108369527A (zh) 2015-12-08 2016-09-19 用于基于时间的任务调度的方法和设备

Country Status (6)

Country Link
US (1) US20170161114A1 (zh)
EP (1) EP3387529A4 (zh)
JP (1) JP2018536945A (zh)
KR (1) KR20180082560A (zh)
CN (1) CN108369527A (zh)
WO (1) WO2017099863A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877801B2 (en) * 2018-09-28 2020-12-29 Atlassian Pty Ltd. Systems and methods for scheduling tasks
US10776161B2 (en) * 2018-11-30 2020-09-15 Oracle International Corporation Application code callbacks at regular intervals

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223382A1 (en) * 2004-03-31 2005-10-06 Lippett Mark D Resource management in a multicore architecture
US20120020369A1 (en) * 2010-05-18 2012-01-26 Lsi Corporation Scheduling hierarchy in a traffic manager of a network processor
US20130160016A1 (en) * 2011-12-16 2013-06-20 Advanced Micro Devices, Inc. Allocating Compute Kernels to Processors in a Heterogeneous System
US20150095672A1 (en) * 2013-09-30 2015-04-02 Renesas Electronics Corporation Data processing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204867A (ja) * 1992-01-28 1993-08-13 Toshiba Corp 対称型マルチプロセッサシステムにおけるタイマ割込み制御方式
JP2643804B2 (ja) * 1993-12-03 1997-08-20 日本電気株式会社 デバッグ方式
JP2002099434A (ja) * 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd 制御装置
US7725896B2 (en) * 2003-07-21 2010-05-25 Adc Dsl Systems, Inc. Periodic event execution control mechanism
JP2006209386A (ja) * 2005-01-27 2006-08-10 Hitachi Ltd 仮想計算機システム及びその外部割込み制御方法
US20110145515A1 (en) * 2009-12-14 2011-06-16 Advanced Micro Devices, Inc. Method for modifying a shared data queue and processor configured to implement same
US8161494B2 (en) * 2009-12-21 2012-04-17 Unisys Corporation Method and system for offloading processing tasks to a foreign computing environment
US20130339978A1 (en) * 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223382A1 (en) * 2004-03-31 2005-10-06 Lippett Mark D Resource management in a multicore architecture
US20120020369A1 (en) * 2010-05-18 2012-01-26 Lsi Corporation Scheduling hierarchy in a traffic manager of a network processor
US20130160016A1 (en) * 2011-12-16 2013-06-20 Advanced Micro Devices, Inc. Allocating Compute Kernels to Processors in a Heterogeneous System
US20150095672A1 (en) * 2013-09-30 2015-04-02 Renesas Electronics Corporation Data processing system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GEORGE KYRIAZIS: "Heterogeneous System Architecture A Technical Review", 《HTTPS://DEVELOPER.AMD.COM/WORDPRESS/MEDIA/2012/10/HSA10.PDF》 *
PONNAGANTI SUDHI VARUN: "Implementation of RTOS kernel in Hardware and the scope of Hybridization of RTOS", 《INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS NATIONAL CONFERENCE 》 *
SCOTT FLINN: "Coordinating heterogeneous time-based media between independent applications", 《PROCEEDINGS OF THE THIRD ACM INTERNATIONAL CONFERENCE ON MULTIMEDIA》 *

Also Published As

Publication number Publication date
EP3387529A1 (en) 2018-10-17
KR20180082560A (ko) 2018-07-18
JP2018536945A (ja) 2018-12-13
US20170161114A1 (en) 2017-06-08
WO2017099863A1 (en) 2017-06-15
EP3387529A4 (en) 2019-06-19

Similar Documents

Publication Publication Date Title
CN108292241B (zh) 处理计算图
US8516461B2 (en) Method to dynamically distribute a multi-dimensional work set across a multi-core system
JP6266221B2 (ja) 分散処理システム、分散処理システムのスケジューラノード及びスケジュール方法、及びそのためのプログラム生成装置
CN103069389B (zh) 混合计算环境中的高吞吐量计算的方法和系统
CN103677999B (zh) 计算环境内的资源的管理
JP2018533795A (ja) 計算グラフのストリームベースのアクセラレータ処理
JP6825103B2 (ja) 計算リソース割り振り
CN111488205B (zh) 面向异构硬件架构的调度方法和调度系统
JP2014123365A (ja) MapReduceフレームワークにおけるデータ処理の最適化のためのデバイスおよび方法
Liang et al. Data centers job scheduling with deep reinforcement learning
CN103677990B (zh) 虚拟机实时任务的调度方法、装置和虚拟机
US20190081907A1 (en) Systems and methods for computing infrastructure resource allocation
CN102609303A (zh) MapReduce系统的慢任务调度方法和装置
CN108701132A (zh) 资源管理系统和方法
US9141936B2 (en) Systems and methods for simulating a resource constrained process
US20140196047A1 (en) Computing job management based on priority and quota
Tchernykh et al. Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment
CN108369527A (zh) 用于基于时间的任务调度的方法和设备
Pace et al. Flexible scheduling of distributed analytic applications
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN107528871A (zh) 存储系统中的数据分析
Khaitan et al. Proactive task scheduling and stealing in master-slave based load balancing for parallel contingency analysis
Olszak et al. Parampl: A simple tool for parallel and distributed execution of AMPL programs
CN101889265B (zh) 内核处理器分组
Nino-Ruiz et al. Elastic scaling of e-infrastructures to support data-intensive research collaborations

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180803

WD01 Invention patent application deemed withdrawn after publication