CN105183539A - 动态任务安排方法 - Google Patents

动态任务安排方法 Download PDF

Info

Publication number
CN105183539A
CN105183539A CN201510333568.XA CN201510333568A CN105183539A CN 105183539 A CN105183539 A CN 105183539A CN 201510333568 A CN201510333568 A CN 201510333568A CN 105183539 A CN105183539 A CN 105183539A
Authority
CN
China
Prior art keywords
task
subtask
calculation element
dynamic
arrangement method
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
Application number
CN201510333568.XA
Other languages
English (en)
Other versions
CN105183539B (zh
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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN105183539A publication Critical patent/CN105183539A/zh
Application granted granted Critical
Publication of CN105183539B publication Critical patent/CN105183539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Image Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种动态任务安排方法包含有:接收一个任务,该任务包含有一个核心以及由核心处理的多个数据项;动态地将任务分割成多个子任务,且每一子任务包含有核心以及数据项的一部分,其中该部分的大小为可变的;并将子任务分派至异构计算系统的多个计算装置。另一个动态任务安排方法包含有:接收一个任务,其中该任务包含有一个核心以及由该核心处理的多个数据项;将该任务分割成多个子任务,每一子任务包含有该核心以及数据项的一部分,其中该部分的大小为固定的;并将子任务分派至异构计算系统的多个计算装置。本发明所公开的动态任务安排方法可通过动态地分配子任务至计算装置来达到计算装置之间的负载平衡。

Description

动态任务安排方法
技术领域
本发明所揭露的实施例有关于一任务安排设计,尤指一种用以分配子任务至异构计算系统的计算装置的动态任务安排方法。
背景技术
随着半导体工艺的演进,多处理器系统如今也变更受欢迎,而对于异构计算系统而言,其具有多个不相同的处理器,举例来说,该异构计算系统可包含至少一第一处理器(例如,一个或多个中央处理单元(CentralProcessingUnits,CPUs))以及至少一第二处理器(例如,一个或多个图形处理单元(Graphicprocessingunits,GPUs)),其中每一个第一处理器可具有第一处理器架构(例如,第一指令集架构),而每一个第二处理器可具有与第一处理器架构不同的第二处理器架构(例如,第二指令集架构)。因此,若相同任务在该第一处理器以及该第二处理器上执行,由该第一处理器所执行的指令与由该第二处理器所执行的指令将不相同。
多种架构已经被发展来启动程序,其中每一架构包含一个或多个在异构计算环境上执行的任务,例如开放计算语言(OpenComputingLanguage,OpenCL)以及异构系统架构(HeterogeneousSystemArchitecture,HSA)。以开放计算语言为例,其为用来编写程序并且可在由中央处理单元、图形处理单元以及其他处理器(如,数字信号处理器(digitalsignalprocessors,DSPs))所组成的异构平台上执行的架构,详细来说,开放计算语言用于异构计算系统的平行编码的一种开放标准。传统上,被选以执行开放计算语言程序任务的异构计算系统的计算装置由程序设计员静态地决定,并且,在于多个装置平行地执行该开放计算语言任务的例子中,程序设计员需要根据装计算置的数量静态地将任务分成子任务,且指定子任务的其中之一给每一装置。
然而,此种静态任务分配的静态任务安排设计会使该异构计算系统具有较低的吞吐量(throughput),且无法保证异构计算系统中不同的处理器的负载平衡。
发明内容
根据本发明的示范性实施例,提出一用以分配子任务至异构计算系统的计算装置的动态任务安排方法以解决上述问题。
根据本发明的第一观点,揭露示范性的动态任务安排方法,其中该示范性的动态任务安排方法包含:接收一个任务,其中该任务包含核心以及由该核心处理的多个数据项;动态地将任务分成多个子任务,且每一子任务具有核心以及数据项的一部分,其中该部分的大小是可变的;分配该多个子任务至异构计算系统的多个计算装置中。
根据本发明的第二观点,揭露示范性的动态任务安排方法,其中该示范性的动态任务安排方法包含:接收一个任务,其中该任务包含核心以及由该核心处理的多个数据项;将该任务成多个子任务,且每一子任务具有该核心以及该些数据项的一部分,其中该部分的大小是固定的;并动态地分配该些子任务至一异构计算系统的多个计算装置中。
本发明所公开的动态任务安排方法可通过动态地分配子任务至计算装置来达到计算装置之间的负载平衡。
本发明的这些及其他的目的对于本领域的技术人员来说,在阅读了下述优选实施例的详细说明以后是很容易理解和明白的,所述优选实施例通过多幅图予以揭示。
附图说明
图1是根据本发明一实施例的异构计算系统的示意图。
图2是根据本发明一实施例的第一动态任务安排方法的流程图。
图3是将一个任务分成多个子任务的第一范例示意图。
图4是图2所示的步骤204的示范性实施例的流程图。
图5是决定不同计算装置中的每一装置的预测任务运行时间的范例示意图。
图6是决定不同计算装置中的每一装置的估计任务运行时间的范例示意图。
图7是根据本发明实施例的具有地域性的数据分割以及不具地域性的数据分割的示意图。
图8是根据本发明的实施例的第二动态任务安排方法的流程图。
图9是将一个任务分成多个子任务的另一范例示意图。
具体实施方式
本说明书及权利要求书使用了某些词语代指特定的组件。本领域的技术人员可理解的是,制造商可能使用不同的名称代指同一组件。本文件不通过名字的差别,而通过功能的差别来区分组件。在以下的说明书和权利要求书中,词语“包括”是开放式的,因此其应理解为“包括,但不限于...”。
图1是根据本发明实施例的异构计算系统的示意图,其中异构计算系统10可实现于携带式装置内,例如,移动电话、平板计算机、穿戴式装置等,然而此不为本发明的限制,也就是说,任何使用所提出的动态任务安排方法的电子装置皆应隶属于本发明的范畴中。在本实施例中,异构计算系统10可具有动态任务安排器100以及多个计算装置102与104,其中任务安排器100耦接至计算装置102与104并用以执行所提出的动态任务安排方法,该方法用以将一个任务分割成多个子任务并且分配该子任务至计算装置102与104,举例来说,但非限制,动态任务安排器100可为支持异构计算环境的操作系统(operatingsystem,OS)的一部分,因此,动态任务安排器100可为在异构计算系统10上所执行的软件模块,如图1所示,异构计算系统10可具有计算机可读媒介12,例如内存装置。计算机可读媒介12可储存程序代码(PROG)14,当异构计算系统10读取并执行程序代码14时,动态任务安排器100执行所提出的动态任务安排方法。该方法的流程将于下面段落详细描述。
计算装置102与104可为具有不同指令集架构的处理器,举例来说,计算装置102可为中央处理单元,而计算装置104可为图形处理器,为达清晰与简洁之便,图1仅显示出计算装置102与104,实作上异构计算系统10可具有多于两个的计算装置,其取决于实际设计考虑。举例来说,异构计算系统10可被修改为具有多于一个的中央处理单元以及多于一个的图形处理单元,举另一例子,异构计算系统10可被修改为具有不同处理器种类的额外处理器,即,所提出的动态任务安排方法可被应用于具有任何处理器组合的异构计算系统上。
在第一示范性设计中,设定动态任务安排器100以利用可变群组大小分割技术方案来将任务分割为多个子任务,其中该任务包含核心以及由该核心所处理的多个数据项,并且每一个子任务包含相同核心以及数据项的一部分,其中该部分的大小为可变。在异构计算系统10支持开放计算语言架构的情况下,数据项可为与开放计算语言的工作项目相关的输出数据(例如,图像的像素),且该核心可为每一工作项目的程序代码(基本上为一开放计算语言功能)。因此,图像的像素可被分成多个像素群,其具有可变的大小并且由动态任务安排器100动态地决定。
图2是根据本发明实施例的第一动态任务安排方法的流程图,在异构计算系统10上所执行的动态任务安排器100使用该动态任务安排方法,其中该方法简短归纳如下。
步骤202:接收一任务,其中该任务包含核心以及由该核心所处理的多个数据项。
步骤204:动态地将该任务分割成多个子任务,且每一子任务具有相同核心以及数据项的一部分,其中该部分的大小为可变的。
步骤206:分配子任务至异构计算系统的多个计算装置。
一个任务可被用来将相同核心(例如,相同的功能)应用至多个数据项中的每一数据项(例如,图像的多个像素),为了达到较高的吞吐量、较低的功率消耗以及较低的反应时间,动态任务安排器100可利用可变群组大小分割技术方案来将一个任务分割为多个子任务,详细来说,在接收一个任务后,设定动态任务安排器100以动态地将任务分割成多个子任务,且每一子任务具有相同核心以及数据项的一部分,其中该部分的大小是可变的(步骤204)。图3是将一个任务302(其包含核心312以及由核心312所处理的多个数据项314)分成两个子任务304_1与304_2的第一范例示意图,其中子任务304_1包含相同核心312以及数据项314的第一部分A0,而子任务304_2包含相同核心312以及数据项314的第二部分A1,需注意的是,第一部分A0的大小以及第二部分A1的大小由动态任务安排器100所决定,因此,第一部分A0的大小不一定和第二部分A1的大小相同。在此例子中,第一部分A0的大小与第二部分A1的大小不同。
搭配图4以参考图3,图4是图2所示的步骤204的示范性实施例的流程图,在步骤402中,动态任务安排器100分析任务302以产生任务分析结果,举例来说,动态任务安排器100可对任务302执行任务状况分析以产生近似分析结果,由于计算装置102与104具有不同指令集架构,某些核心可能偏好计算装置102与104中的其中之一来执行,而某些核心可能偏好计算装置102与104中的另一来执行,换句话说,在计算装置102(例如,中央处理单元)中执行第一核心的效能可能会较在计算装置104(例如,图形处理单元)中执行第一核心的效能来的好,而在计算装置104(例如,图形处理单元)中执行第二核心的效能可能会较在计算装置102(例如,中央处理单元)中执行第二核心的效能来的好,因此,任务302的近似分析结果可说明在计算装置102与104的其中之一中执行核心312的效能,当任务302的核心312偏好由计算装置102执行,动态任务安排器100以较大数值设定第一部分A0的大小,然而,此仅为范例说明,并非本发明的限制。
以另一例子为例,动态任务安排100可对任务302执行一个任务运行时间预测以取得计算装置102与104各自的预测任务运行时间,举例来说,计算装置102与104各自的预测任务运行时间可以根据先前的结果所决定。图5是决定不同计算装置中的每一装置的预测任务运行时间的范例示意图,假设计算装置102为中央处理单元,计算装置104为图形处理单元,可根据先前的任务执行结果建立中央处理单元以及图形处理单元各自的预测模型。如图5所示,特性曲线CV1显示预期任务运行时间以及由图形处理单元所执行的程序(任务)的工作大小之间的映像关系,特性曲线CV2显示预期任务运行时间以及由中央处理单元所执行的程序(任务)的工作大小之间的映像关系,因此,动态任务安排器100参考工作项目314的大小以及预测模型以决定中央处理单元以及图形处理单元各自的预测任务运行时间,当计算装置102(例如中央处理单元)的预测任务运行时间较计算装置104(例如图形处理单元)的预测任务运行时间来的短,动态任务安排器100可用较大数值来设定第一部分A0的大小;当计算装置104(例如图形处理单元)的预测任务运行时间较计算装置102(例如中央处理单元)的预测任务运行时间来的短,动态任务安排器100可用较大数值来设定第二部分A1的大小,然而,此仅为范例说明,并非本发明的限制。
在步骤404中,动态任务安排器100监控计算装置102与104以产生装置监控结果,举例来说,动态任务安排器100可执行任务队列延迟估计(taskqueuingdelay)以决定计算装置102与104各自的估计任务队列延迟。图6是决定不同计算装置中的每一装置的估计任务运行时间的范例示意图,在此实施例中,分配到计算装置102(例如中央处理单元)的每一子任务被安排进任务队列602中,且在任务队列602中的子任务被提出并传送至计算装置102(例如中央处理单元)中以执行。同样地,分配到计算装置104(例如图形处理单元)的每一子任务被安排进任务队列604中,且在任务队列604中的子任务被提出并传送至计算装置104(例如图形处理单元)中以执行。如上所述,当动态任务安排器100接收任务302,动态任务安排器100可执行任务运行时间预测,在此范例中,计算装置104(例如图形处理单元)的预测任务运行时间为80,而计算装置102(例如中央处理器)的预测任务运行时间为150,当动态任务安排器100接收任务302的时候,计算装置104(例如图形处理单元)的任务队列604非空白,因此计算装置104的任务队列延迟由每一队列核心(其为在任务队列604中的每一队列子任务的一部分)的预测运行时间所决定,在此范例中,计算装置104的任务队列延迟由在任务队列604中的所有队列核心的预测运行时间的总和所决定(即45+35+70=150),然而,当动态任务安排器100接收任务302的时候,计算装置102(例如中央处理单元)的任务队列602为空白,因此计算装置102的任务队列延迟为0。举例来说,当计算装置102的估计任务队列延迟较计算装置104来的短,动态任务安排器100可用较大数值设定第一部分A0的大小,而当计算装置104的估计任务队列延迟较计算装置102来的短,动态任务安排器100可用较大数值设定第二部分A1的大小,而且,当考虑计算装置102与104各自的任务队列延迟时,需要在计算装置104上等待任务302的结尾的预测总时间为230(即150+80),且需要在计算装置102上等待任务302的结尾的预测总时间为150,因此,除了计算装置102与104的预测任务运行时间,动态任务安排器100可另参考与计算装置102及104相关的估计任务队列延迟以决定第一部分A0的大小以及第二部分A1的大小,然而,此仅为范例说明,并非本发明的限制。
以另一范例为例,动态任务安排器100可执行装置负载监控操作以决定计算装置102与104各自的装置负载,举例来说,当计算装置102的装置负载较计算装置104来的大,动态任务安排器100可用较小数值设定第一部分A0的大小,换句话说,当计算装置104的装置负载较计算装置102来的大,动态任务安排器100可用较小数值设定第二部分A1的大小,然而,此仅为范例说明,并非本发明的限制。
再以另一范例为例,动态任务安排器100可执行装置限制确认操作以决定计算装置102与104各自的装置限制,举例来说,装置限制可包含功率限制及/或温度限制,当计算装置102的电流操作状态和计算装置102的相关装置限制之间的边限较小时,动态任务安排器100可用较小的数值设定第一部分A0的大小,同样地,当计算装置104的电流操作状态和计算装置104的相关装置限制之间的边限较小时,动态任务安排器100可用较小的数值设定第二部分A1的大小,然而,此仅为范例说明,并非本发明的限制。
在步骤406中,动态任务安排器100参考任务分析结果(其可包含近似分析结果及/或每一计算装置的预测任务运行时间)以及装置监控结果(其可包含每一计算装置的估计任务队列延迟、每一计算装置的装置负载及/或每一计算装置的装置限制)的其中之一或两者皆参考以动态地将任务302分割成子任务304_1与304_2,由于数据项314的第一部分A0以及第二部分A1可动态地具有可变的大小,其大小由动态任务安排器100所决定,子任务304_1与304_2的数量可等同于计算装置102与104的数量。
以区域性分割数据项314以改善效能,图7是根据本发明的实施例的具有地域性的数据分割以及不具地域性的数据分割的示意图,考虑在异构计算系统中的计算装置数量为2的情形下,如图7的子图(A)所示,以区域性分割图像的数据项,使数据分割位于图像的上半部,而另一数据分割位于图像的下半部;如图7的子图(B)所示,不以区域性分割数据项,使数据分割包含该图像的对角线方向区域的数据项,而另一数据分割包含图像另一对角线方向区域的数据项。为达较佳的效能,动态任务安排器100优先地选择图7中子图(A)所示的分割法以决定每一子任务中包含的数据项。
在动态任务安排器100决定子任务304_1与304_2之后(步骤204),动态任务安排器100分配子任务304_1(其包含核心312以及数据项314的第一部分A0)至计算装置102,并分配子任务304_2(其包含核心312以及数据项314的第二部分A1)至计算装置104(步骤206)。
在第二示范性设计中,设定动态任务安排器100以利用固定群组大小分割技术方案以将一个任务分割成多个子任务,其中任务包含核心以及由核心所处理的多个数据项,且每一子任务包含相同核心以及数据项的一部分,其中该部分的大小为固定的。考虑异构计算系统10支持开放计算语言架构的情形下,数据项可为与开放计算语言的工作项目相关的输出数据(例如,图像的像素),且核心可为每一工作项目的程序代码(基本上为开放计算语言功能)。因此,图像的像素可被分成多个像素群,其具有固定的大小并且由动态任务安排器100动态地/静态地决定。
图8是根据本发明的实施例的第二动态任务安排方法的流程图,在异构计算系统10上所执行的动态任务安排器100使用动态任务安排方法,其中该方法可被简短归纳如下。
步骤802:接收一个任务,其中任务包含核心以及由核心所处理的多个数据项。
步骤804:将任务分割成多个子任务,且每一子任务包含相同核心以及数据项的一部分,其中该部分的大小为固定的。
步骤806:动态地将子任务分配至异构计算系统的多个计算装置中。
如上所述,可利用一个任务将相同核心(即相同功能)应用至多个数据项中的每一数据项(例如,图像的多个像素),动态任务安排器100可利用固定群组大小分割技术方案来将一个任务分割为多个子任务,详细来说,设定动态任务安排器100以动态地将任务分割成多个子任务,且每一子任务具有相同核心以及数据项的一部分,其中该部分的大小为固定的。
图9是将一个任务902(其包含核心912以及由核心912所处理的多个数据项914)分成多个子任务(例如,至少三个子任务904_1、904_2以及904_3)的另一范例示意图,如图9所示,子任务904_1包含相同核心912以及数据项的第一部分A0,子任务904_2包含相同核心912以及数据项的第二部分A1,且子任务904_3包含相同核心912以及数据项的第三部分A2,需注意的是第一部分A0、第二部分A1以及第三部分A2具有相同大小其可为默认值且不随不同任务而改变。优选地,可用区域性来分割数据项914以改善效能。举例来说,动态任务安排器100可将任务902分割成9个子任务,其中图像的数据项可平分为9部分并分别指定给子任务。
为了达到较高的吞吐量、较低功率消耗以及较低的反应时间,动态任务安排器100动态地将由固定群组大小分割技术方案所决定的子任务分配给计算装置102与104,在此范例中,由动态任务安排器100所决定的子任务的数目大于计算装置102与104的数目。当自计算装置102接收子任务要求时,动态任务安排器100将得自分割任务902的子任务分配至计算装置102,同样地,当自计算装置104接收子任务要求时,动态任务安排器100将得自分割任务902的子任务分配至计算装置104,举例来说,当能够处理更多子任务时,计算装置102与104中的每一计算装置发出子任务要求至动态任务安排器100,如此一来,可通过动态地分配子任务至计算装置102与104来达到计算装置102与104之间的负载平衡,其中每一子任务包含相同核心以及具有固定大小的数据分割。
本领域的技术人员将注意到,在获得本发明的指导之后,可对所述装置和方法进行大量的修改和变换。相应地,上述公开内容应该理解为,仅通过所附加的权利要求的界限来限定。

Claims (11)

1.一种动态任务安排方法,包含:
接收一个任务,其中该任务包含一个核心以及由该核心所处理的多个数据项;
动态地将该任务分割成多个子任务,且每一子任务具有该核心以及该多个数据项的一部分,其中该部分的大小为可变的;
将该多个子任务分配至异构计算系统的多个计算装置。
2.如权利要求1的动态任务安排方法,其特征在于,该多个子任务的数量等同于该多个计算装置的数量。
3.如权利要求1的动态任务安排方法,其特征在于,动态地将该任务分割成该多个子任务的步骤包含有:
分析该任务以产生任务分析结果;以及
根据至少该任务分析结果,动态地将该任务分割成该多个子任务。
4.如权利要求3的动态任务安排方法,其特征在于,该任务分析结果包含近似分析结果。
5.如权利要求3的动态任务安排方法,其特征在于,该任务分析结果包含每一计算装置的预测任务运行时间。
6.如权利要求1的动态任务安排方法,其特征在于,动态地将该任务分割为该多个子任务的步骤包含有:
监控该多个计算装置以产生装置监控结果;以及
根据至少该装置监控结果,动态地将该任务分割成该多个子任务。
7.如权利要求6的动态任务安排方法,其特征在于,该装置监控结果包含每一计算装置的估计任务队列延迟。
8.如权利要求6的动态任务安排方法,其特征在于,该装置监控结果包含每一计算装置的装置负载。
9.如权利要求6的动态任务安排方法,其特征在于,该装置监控结果包含每一计算装置的装置限制。
10.一种动态任务安排方法,包含:
接收一个任务,该任务包含有一个核心以及由该核心处理的多个数据项;
将该任务分割成多个子任务,且每一子任务包含有该核心以及该多个数据项的一部分,其中该部分的大小为固定的;
动态地将该多个子任务分配至异构计算系统的多个计算装置。
11.如权利要求10的动态任务安排方法,其特征在于,该多个子任务的数量大于该多个计算装置的数量。
CN201510333568.XA 2014-06-17 2015-06-16 动态任务安排方法 Active CN105183539B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462013515P 2014-06-17 2014-06-17
US62/013,515 2014-06-17
US14/727,887 US9959142B2 (en) 2014-06-17 2015-06-02 Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium
US14/727,887 2015-06-02

Publications (2)

Publication Number Publication Date
CN105183539A true CN105183539A (zh) 2015-12-23
CN105183539B CN105183539B (zh) 2019-03-01

Family

ID=54836224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510333568.XA Active CN105183539B (zh) 2014-06-17 2015-06-16 动态任务安排方法

Country Status (2)

Country Link
US (1) US9959142B2 (zh)
CN (1) CN105183539B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083558A (zh) * 2019-06-03 2019-08-02 苏州长江睿芯电子科技有限公司 一种用于自适应可编程存储计算加速卡装置
CN110109748A (zh) * 2019-05-21 2019-08-09 星环信息科技(上海)有限公司 一种混合语言任务执行方法、装置及集群
CN110678843A (zh) * 2017-04-17 2020-01-10 微软技术许可有限责任公司 在深度神经网络模块中动态划分工作负载以降低功率消耗

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569339B1 (en) * 2015-07-23 2017-02-14 Amazon Technologies, Inc. Debugging in an actor-based system
CN107038059A (zh) * 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
US10963309B2 (en) * 2016-09-16 2021-03-30 Advanced Micro Devices, Inc. Network interface controller-based scheduling of processing tasks in a distributed computing system
KR102309429B1 (ko) * 2017-03-20 2021-10-07 현대자동차주식회사 차량 및 그 제어 방법
US10891156B1 (en) * 2017-04-26 2021-01-12 EMC IP Holding Company LLC Intelligent data coordination for accelerated computing in cloud environment
CN108932212A (zh) * 2018-07-16 2018-12-04 郑州云海信息技术有限公司 一种基于异构计算芯片的数据处理方法、系统及相关组件
US11188348B2 (en) * 2018-08-31 2021-11-30 International Business Machines Corporation Hybrid computing device selection analysis
CN109614242B (zh) * 2018-12-20 2023-07-14 深圳市网心科技有限公司 一种计算能力共享方法、装置、设备及介质
US11106495B2 (en) * 2019-06-13 2021-08-31 Intel Corporation Techniques to dynamically partition tasks
US11494237B2 (en) * 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
US11113782B2 (en) 2019-10-15 2021-09-07 Vmware, Inc. Dynamic kernel slicing for VGPU sharing in serverless computing systems
US11145024B2 (en) * 2019-12-27 2021-10-12 Qualcomm Incorporated Adaptive dispatch for acceleration of deep neural networks on graphic processing units
US20220121500A1 (en) * 2020-10-19 2022-04-21 Komprise Inc. System and methods for subdividing an unknown tree for execution of operations by multiple compute engines
CN115061825B (zh) * 2022-08-09 2022-11-18 深圳致星科技有限公司 隐私计算、隐私数据和联邦学习的异构计算系统及方法
CN115543587B (zh) * 2022-11-29 2023-03-07 暨南大学 一种使用寿命驱动的OpenCL应用调度方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125793A1 (en) * 2003-12-04 2005-06-09 Aguilar Maximing Jr. Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US20070106995A1 (en) * 2005-11-04 2007-05-10 Canon Kabushiki Kaisha Information processing method, apparatus and system
US20080115143A1 (en) * 2006-11-10 2008-05-15 International Business Machines Corporation Job Execution Method, Job Execution System, and Job Execution Program
US20110138397A1 (en) * 2009-12-07 2011-06-09 Fujitsu Limited Processing time estimation method and apparatus
CN102480512A (zh) * 2010-11-29 2012-05-30 国际商业机器公司 用于扩展服务器端处理能力的方法和装置
US20120266176A1 (en) * 2011-04-18 2012-10-18 Microsoft Corporation Allocating Tasks to Machines in Computing Clusters
CN103713949A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 动态任务分配系统及方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428783A (en) * 1990-11-28 1995-06-27 Motorola, Inc. Lan based loosely coupled large grain parallel processing method
US8032566B2 (en) * 2006-12-04 2011-10-04 Teradata Us, Inc. Tools for defining and using custom analysis modules
US8434085B2 (en) * 2008-05-09 2013-04-30 International Business Machines Corporation Scalable scheduling of tasks in heterogeneous systems
US20100205606A1 (en) * 2009-02-12 2010-08-12 Panzer Adi System and method for executing a complex task by sub-tasks
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
EP2378412A1 (en) * 2010-04-19 2011-10-19 Robert Mathew Barrie Computing system and method for distributed and engaging software services
US8984519B2 (en) * 2010-11-17 2015-03-17 Nec Laboratories America, Inc. Scheduler and resource manager for coprocessor-based heterogeneous clusters
US9645854B2 (en) * 2010-12-15 2017-05-09 Advanced Micro Devices, Inc. Dynamic work partitioning on heterogeneous processing devices
US9430281B2 (en) * 2010-12-16 2016-08-30 Advanced Micro Devices, Inc. Heterogeneous enqueuing and dequeuing mechanism for task scheduling
US20120192200A1 (en) 2011-01-21 2012-07-26 Rao Jayanth N Load Balancing in Heterogeneous Computing Environments
US8782645B2 (en) 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8683468B2 (en) * 2011-05-16 2014-03-25 Advanced Micro Devices, Inc. Automatic kernel migration for heterogeneous cores
WO2012160629A1 (ja) * 2011-05-20 2012-11-29 富士通株式会社 データ処理方法
US8707314B2 (en) * 2011-12-16 2014-04-22 Advanced Micro Devices, Inc. Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
EP2856315A4 (en) * 2012-05-30 2016-02-17 Intel Corp TERMINATION REQUEST BETWEEN A HETEROGEN GROUP OF PROCESSORS
US20130339978A1 (en) 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems
US9329899B2 (en) * 2013-06-24 2016-05-03 Sap Se Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads
US9563470B2 (en) * 2013-12-23 2017-02-07 International Business Machines Corporation Backfill scheduling for embarrassingly parallel jobs
US9444695B2 (en) * 2014-01-30 2016-09-13 Xerox Corporation Methods and systems for scheduling a task
US9542221B2 (en) * 2014-05-22 2017-01-10 Oracle International Corporation Dynamic co-scheduling of hardware contexts for parallel runtime systems on shared machines

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125793A1 (en) * 2003-12-04 2005-06-09 Aguilar Maximing Jr. Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US20070106995A1 (en) * 2005-11-04 2007-05-10 Canon Kabushiki Kaisha Information processing method, apparatus and system
US20080115143A1 (en) * 2006-11-10 2008-05-15 International Business Machines Corporation Job Execution Method, Job Execution System, and Job Execution Program
US20110138397A1 (en) * 2009-12-07 2011-06-09 Fujitsu Limited Processing time estimation method and apparatus
CN102480512A (zh) * 2010-11-29 2012-05-30 国际商业机器公司 用于扩展服务器端处理能力的方法和装置
US20120266176A1 (en) * 2011-04-18 2012-10-18 Microsoft Corporation Allocating Tasks to Machines in Computing Clusters
CN103713949A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 动态任务分配系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110678843A (zh) * 2017-04-17 2020-01-10 微软技术许可有限责任公司 在深度神经网络模块中动态划分工作负载以降低功率消耗
CN110678843B (zh) * 2017-04-17 2023-07-07 微软技术许可有限责任公司 在深度神经网络模块中动态划分工作负载以降低功率消耗
CN110109748A (zh) * 2019-05-21 2019-08-09 星环信息科技(上海)有限公司 一种混合语言任务执行方法、装置及集群
CN110083558A (zh) * 2019-06-03 2019-08-02 苏州长江睿芯电子科技有限公司 一种用于自适应可编程存储计算加速卡装置

Also Published As

Publication number Publication date
US20150363239A1 (en) 2015-12-17
CN105183539B (zh) 2019-03-01
US9959142B2 (en) 2018-05-01

Similar Documents

Publication Publication Date Title
CN105183539A (zh) 动态任务安排方法
Jiménez et al. Predictive runtime code scheduling for heterogeneous architectures
CN110427262B (zh) 一种基因数据分析方法及异构调度平台
US9946563B2 (en) Batch scheduler management of virtual machines
CN102597950B (zh) 基于硬件排程gpu工作
KR101839544B1 (ko) 이종 코어의 자동 부하 균형
EP2620873B1 (en) Resource allocation method and apparatus of GPU
US20130160016A1 (en) Allocating Compute Kernels to Processors in a Heterogeneous System
US20130091507A1 (en) Optimizing data warehousing applications for gpus using dynamic stream scheduling and dispatch of fused and split kernels
WO2013192231A1 (en) Managing use of a field programmable gate array by multiple processes in an operating system
US20140375658A1 (en) Processor Core to Graphics Processor Task Scheduling and Execution
CN103608776A (zh) 异构型处理设备上的动态工作划分
KR20120055353A (ko) 이종 멀티 프로세서 환경에서의 데이터 처리 최적화 장치 및 방법
Gioiosa et al. The minos computing library: Efficient parallel programming for extremely heterogeneous systems
US8862786B2 (en) Program execution with improved power efficiency
JP6763411B2 (ja) 設計支援装置、設計支援方法、および設計支援プログラム
US10503557B2 (en) Method of processing OpenCL kernel and computing device therefor
CN113032154B (zh) 一种虚拟cpu的调度方法、装置、电子设备及存储介质
CN110825502A (zh) 神经网络处理器和用于神经网络处理器的任务调度方法
JP2009048358A (ja) 情報処理装置及びスケジューリング方法
Pietri et al. Evaluating scientific workflow execution on an asymmetric multicore processor
Han et al. Profiling-based task graph extraction on multiprocessor system-on-chip
CN114327767B (zh) 任务处理的方法、装置、电子设备及计算机可读存储介质
JP7157542B2 (ja) プリフェッチコントローラ
Wu et al. A graph-partition-based scheduling policy for heterogeneous architectures

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