CN109697115B - 用于调度应用的方法、装置以及计算机可读介质 - Google Patents

用于调度应用的方法、装置以及计算机可读介质 Download PDF

Info

Publication number
CN109697115B
CN109697115B CN201710983591.2A CN201710983591A CN109697115B CN 109697115 B CN109697115 B CN 109697115B CN 201710983591 A CN201710983591 A CN 201710983591A CN 109697115 B CN109697115 B CN 109697115B
Authority
CN
China
Prior art keywords
processing unit
target application
processing units
applications
processing
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.)
Active
Application number
CN201710983591.2A
Other languages
English (en)
Other versions
CN109697115A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201710983591.2A priority Critical patent/CN109697115B/zh
Priority to US16/162,551 priority patent/US10877800B2/en
Publication of CN109697115A publication Critical patent/CN109697115A/zh
Application granted granted Critical
Publication of CN109697115B publication Critical patent/CN109697115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/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/505Allocation 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 the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • 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)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开的实施例提供了用于调度应用的方法、装置以及计算机可读介质。根据本公开的实施例,获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,多个应用正由多个处理单元中的至少一个处理单元运行。基于所获取的影响因素,选择多个应用中待调度的目标应用和多个处理单元中的第一处理单元,第一处理单元不同于至少一个处理单元中正运行目标应用的第二处理单元。将目标应用从第二处理单元调度到第一处理单元,以由第一处理单元继续运行。

Description

用于调度应用的方法、装置以及计算机可读介质
技术领域
本公开的实施例涉及数据处理领域,并且更具体地,涉及用于调度应用的方法、装置以及计算机可读介质。
背景技术
客户端上的应用可以被设计用于利用处理和存储资源等计算资源来完成各种处理或分析任务。随着诸如高性能计算(HPC)、机器学习(ML)或深度学习(DL)以及人工智能(AI)等任务的需求和复杂度不断增加,需要大量和/或可变的计算资源来满足相应应用的运行。这可以通过具有多个处理单元的机器或系统来实现,其中应用可以被调度到该机器或系统的一个或多个处理单元上运行。例如,已经开发了基于云的计算系统,该计算系统包括具有一个或多个处理单元的机器。不同客户端可以根据需要来租赁该系统的计算资源(例如,处理单元)用以运行各自的应用。
在存在多个处理单元可用于运行多个应用的情况中,由于不同应用的发起时间不同、将会占用的处理和/或存储资源量也不同,所面临的挑战之一是如何在多个处理单元之间合理调度这些应用。
发明内容
本公开的实施例提供了一种改进的在多个处理单元之间调度应用的方案。
在本公开的第一方面中,提供了一种调度应用的方法。该方法包括获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,多个应用正由多个处理单元中的至少一个处理单元运行。该方法还包括基于所获取的影响因素,选择多个应用中待调度的目标应用和多个处理单元中的第一处理单元,第一处理单元不同于至少一个处理单元中正运行目标应用的第二处理单元。该方法进一步包括将目标应用从第二处理单元调度到第一处理单元,以由第一处理单元继续运行。
在本公开的第二方面中,提供了一种用于调度应用的装置。该装置包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使装置执行动作。动作包括获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,多个应用正由多个处理单元中的至少一个处理单元运行。动作还包括基于所获取的影响因素,选择多个应用中待调度的目标应用和多个处理单元中的第一处理单元,第一处理单元不同于至少一个处理单元中正运行目标应用的第二处理单元。动作进一步包括将目标应用从第二处理单元调度到第一处理单元,以由第一处理单元继续运行。
在本公开的第三方面中,提供了一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令在被执行时使设备执行根据第一方面的方法。
在本公开的第四方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例可以在其中被实现的计算系统的示意图;
图2示出了根据本公开的一个实施例的用于应用调度的示例调度器的框图;
图3A和图3B示出了根据本公开的一个实施例的在处理单元之间调度应用的示意图;
图4示出了根据本公开的一个实施例的多个处理单元的拓扑结构的示意图;以及
图5示出了根据本公开的一个实施例的调度应用的过程的流程图;以及
图6示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,客户端上的应用可以利用处理单元提供的计算资源来运行。处理单元可以在客户端本地或者可以由远程机器或系统提供。在一些示例中,可以部署基于云的计算系统,其中包括具有一个或多个处理单元的多个机器。该计算系统的处理单元可以由不同客户端根据需要来使用,以将相应的应用调度到可用的处理单元上运行。
图1示出了本公开的实施例可以在其中被实现的示例计算系统100的示意图。在该计算系统100中部署了用于应用运行的多个机器110-1、110-2和110-3等(以下统称或单独称为机器110)。机器110可以是物理的或虚拟的机器。例如,机器110可以是部署于数据中心或者私有或公共云中的逻辑、容器或虚拟机,或者物理的服务器或计算设备等等。每个机器110上具有一个或多个处理单元112。在图1的示例中,机器110-1具有两个处理单元112(即处理单元1、2),机器110-2具有三个处理单元112(即处理单元3、4和5),并且机器110-3具有两个处理单元112(即处理单元6、7)。处理单元112可以是专用处理单元或通用处理单元。处理单元112的示例可以包括诸如图形处理单元(GPU)、现场可编程门阵列(FPGA)等专用处理单元,也可以包括诸如中央处理单元(CPU)等通用处理单元。为便于讨论,某些实施例将以GPU作为处理单元112的示例进行描述。
图1还示出了多个客户端120-1、120-2和120-3等(以下统称或单独称为客户端120),分别具有要运行的应用122(例如,应用A、B和C)。客户端120可以是任何终端设备、计算机或服务器。应用122可以是处理单元上可运行的任何应用,该应用可以被设计为执行相应数据处理或分析等任务。作为示例,应用122可以执行与高性能计算(HPC)、机器学习(ML)或深度学习(DL)以及人工智能(AI)等相关的数据处理或分析任务。
为了能够快速高效运行这些应用和/或为了保留本地处理资源,客户端120可以请求机器110的处理单元112来运行这些应用122。在这样的实现中,客户端120可以通过互连网络130连接到一个或多个机器110,并且将应用122交由机器110的一个或多个处理单元112运行。取决于客户端120、机器110和/或处理单元112所支持的接口,互连网络130可以支持基于诸如远程直接内存访问(RDMA)和传输控制协议(TCP)等各种网络传输技术的不同类型的有线或者无线连接。
在计算系统100中,多个处理单元112可以被池化或虚拟化,以供多个客户端120或其中的多个应用122使用。在客户端120中,可以呈现虚拟处理单元用于运行该客户端110的应用122,而该应用122实际由机器110侧的一个或多个处理单元112运行。客户端120可以根据需要请求处理单元112的使用。计算系统100中还包括调度器140,用于将客户端120的应用122调度到一个或多个机器110的一个或多个处理单元112上运行。
应当理解,图1示出的设备和/或布置仅是一个示例。在其他示例中,该计算系统100可以包括任意适当数目的机器110和客户端120。每个机器110可以安装有任意适当数目的处理单元112,并且每个客户端120可以具有待运行的多个应用122。此外,尽管被单独示出,调度器140在实际应用中可以由独立于机器110的其他设备实现,或者可以被部分或全部实现在一个或多个机器110上。
当存在多个处理单元可用于运行多个应用时,需要确定将每个应用调度到哪个或哪些处理单元上运行。在常规方案中,应用仅在初始请求阶段被调度。具体地,当客户端请求运行应用时,可以采用轮询机制,以按照客户端的请求到来的顺序,将应用依次调度到不同的处理单元。例如,最先请求的应用被调度到第一处理单元,随后到来的应用被调度到第二处理单元。如果仅存在两个处理单元,后续应用将继续被调度到第一处理单元,以此类推。在其他常规方案中,也可能以随机方式或者按照处理单元的工作负荷来调度应用。
然而,无论何种常规方案,当应用被初始调度到特定处理单元并且由特定处理单元运行后,该应用将被固定在该处理单元上。这样的固定调度难以适应与处理单元的工作负荷(包括负荷均衡和资源整合)和/或应用的服务质量相关的要求。例如,在一些情况中,经过初始调度过程,多个应用可能被初始调度到同一个或若干个处理单元上运行,使得该处理单元的工作负荷过高,而其他处理单元的工作负荷较低,无法实现处理单元的负荷均衡。由于无法将处理单元上正在运行的应用再次进行调度,这不仅可能会导致高工作负荷的处理单元的运行性能过低。在另外一些情况中,为了提高资源使用率或者为了降低设备运营成本,可能期望在满足性能要求的情况下将应用尽可能多地调度到尽可能少的处理单元上,以达到资源整合的目的。对于资源整合的需求也是考虑到应用可能以突发的方式被发起,或者单个应用对处理单元的资源使用率不高。与负荷均衡的情况类似,当应用已被初始调度之后,资源整合需求也难以被满足。
除了在工作负荷方面的负荷均衡和/或资源整合的要求之外,应用的服务质量相关的要求在固定调度的方案中也难以被实时保证。例如,由于处理单元被调度用于运行更多的应用,应用之间的资源竞争导致之前在该处理单元上运行的应用的服务质量下降。由于无法对该应用或者该处理单元上的其他应用进行重新调度,该应用将持续在较低的服务质量下运行。
从上述分析可知,仅在初始阶段调度应用而无法根据需求改变应用的初始调度,处理单元和/或应用可能无法以期望的方式持续工作。因此,期望能够根据需要灵活且动态地重新调度在处理单元上运行的应用。
根据本公开的示例实施例,提出了一种调度应用的方案。在该方案中,在多个应用正由计算系统的多个处理单元中的至少一个处理单元运行时,基于与这些应用在多个处理单元之间的调度相关的影响因素,将一个或多个应用重新调度到与当前运行这些应用的处理单元不同的一个或多个其他处理单元。这些应用将由重新调度到的处理单元继续执行该应用。由此,通过不断监测相关的影响因素,可以灵活且动态地将正被运行的一个或多个应用调度到其他处理单元,从而满足与处理单元的工作负荷和/或应用的服务质量相关的要求。
以下将通过具体示例来进一步描述本公开的各种实施例。
图2示出了根据本公开的一个实施例的示例调度器。该调度器可以被实现在图1的计算环境100中的调度器140处。为了讨论的目的,将参考图1来描述调度器140。如以上提及的,该调度器140可以被包括在除了提供处理单元112的机器110之外的单独设备中,或者可以被部分或全部实现在一个或多个机器110中。因此,本文中描述的调度器140的功能可以由单独设备或机器110中的控制器/处理器,例如处理单元112或者其他通用处理单元来执行。
如图2所示,调度器140包括因素采集器210、目标选择器220和调度执行器230。因素采集器210被配置用于获取与多个应用122在计算系统100的多个处理单元112之间的调度相关的影响因素201。应用122可以被设计用于执行与HPC、ML或DL以及AI等相关的数据处理或分析任务。出于快速高效运行这些应用和/或保留本地处理资源的目的,客户端120请求使用机器110提供的处理单元112来运行应用122。在本公开的实施例中,多个应用122正由一个或多个处理单元112运行。也就是说,多个应用122已经被调度到相应的处理单元112。根据本公开的实施例,将期望重新调度这些应用122中的一个或一些应用以由另外的处理单元运行。
在一些实施例中,调度器140可以负责在多个或全部机器110上的多个处理单元112之间调度应用122。在另外一些实施例中,调度器140可以仅负责在单个机器110上的处理单元112之间调度应用122。调度器140负责的多个处理单元112可以具有相同的类型,例如多个GPU、多个FPGA或者多个CPU等。因素采集器210可以从所负责的处理单元112和应用122采集相关的影响因素201。为便于讨论,在图2中示出因素采集器210从计算系统100的各个处理单元112(未全部示出)以及这些处理单元112中正在运行的所有应用122采集影响因素201。
因素采集器210采集的影响因素201被提供给目标选择器220。基于影响因素201,目标选择器220从正在运行的多个应用122中选择待调度(重新调度)的目标应用,并且从多个处理单元112中选择目标应用将被调度到的处理单元112。在一些实施例中,目标选择器220可以选择多个目标应用用于重新调度。为便于描述,目标应用要被调度到的处理单元112在本文中可被称为第一处理单元或目标处理单元。当前正运行目标应用122的处理单元112在本文可被称为第二处理单元或源处理单元。目标应用的目标处理单元不同于正执行该应用的源处理单元,并且目标处理单元可以位于与源处理单元相同或不同的机器110中。
目标选择器220对目标应用和处理单元的选择与影响因素201有关。在本公开的实现中,将正在运行的应用122进行重新调度的目的例如可以是:多个处理单元112的工作负荷要求(包括负荷均衡和/或资源整合),和/或应用122的服务质量要求。负荷均衡指的是期望应用122产生的工作负荷在多个处理单元112上较均匀地分布,避免某个或某些处理单元112上的工作负荷过高,而其他处理单元112处于空闲或仅具有较低工作负荷。资源整合指的是避免将较低工作负荷的应用122分散到过多处理单元112,而是整合到的单个或较少数目的处理单元112,从而达到降低运营成本和/或提高资源使用率的目的。在应用122的运行过程中,还可以通过调度来使得具有较高服务质量要求的应用122能够由具有充足资源处理单元112运行。此外,重新调度对正在运行的应用和总体计算性能的影响、调度成本等也应考虑。考虑这些原因,需要监测相关的影响因素来支持对合适的目标应用和处理单元的选择。以下将详细讨论影响因素201的获取和基于影响因素201的目标选择。
在一些实施例中,因素采集器210可以获取多个处理单元112的资源使用率作为影响因素201。每个处理单元112的资源使用率可以包括处理单元112的处理资源使用率(例如,GPU核的占用率)和/或存储资源使用率(可以由百分比指示)。在目标选择器220选择目标应用和目标处理单元时,处理单元112的资源使用率可以被考虑。
出于负荷均衡目的,在一些实施例中,目标选择器220可以基于处理单元112的资源使用率,将目标处理单元和目标应用选择为使得:在将目标应用从源处理单元调度到目标处理单元之后,多个处理单元112之间的资源使用率之间的差异将被降低。由此,多个处理单元112上的工作负荷将趋于平衡。在一个示例中,如果某个处理单元112的更多资源已被使用,那么在考虑负荷均衡的重新调度目的时将有更小的概率被选择为目标处理单元;反之亦然。
图3A示出了与负荷均衡有关的应用调度的示例。该图示出了多个机器110的处理单元112(包括处理单元1至4等)。初始地,应用122A至C均由处理单元112 1运行,从而造成该处理单元112的资源使用率过高,而其他处理单元空闲。为了降低处理单元112 1的工作负荷,调度器140的目标选择器220可以将应用122B选择为目标应用,并且将处理单元112 3选择为目标处理单元,从而使得将应用122B调度到处理单元112 3之后,缓解多个处理单元112的负荷不均衡的问题。
在与资源整合目的有关的其他示例中,目标处理单元和目标应用可以被选择为使得在调度之后多个处理单元112之间的资源使用率之间的差异将。由此,多个应用122的工作负荷被集中到某个或某些处理单元上。在该实现中,更多资源已被使用的处理单元112将有更高的概率被选择为目标处理单元。图3B示出了与资源整合有关的应用调度的示例。在该示例中,应用122A至C正分别由处理单元112 1、3和4运行,并且它们各自仅占用相应处理单元112较少的资源。基于处理单元112 1、3和4的资源使用率,目标选择器220可以将当前已有相对较高工作负荷的处理单元112 3选择为目标处理单元,并且将应用122A和C选择为目标应用。这样的选择使得多个应用122产生的工作负荷集中由较少处理单元处理。
在一些实施例中,因素采集器210可以附加地或备选地获取每个应用122对运行该应用122的处理单元112的资源使用率。如果某个应用122正在多个处理单元112上运行,因素采集器210可以获取该应用122在多个处理单元112的每个处理单元的资源使用率。与处理单元112本身的总体资源使用率类似,每个应用122对处理单元112的资源使用率可以包括对该处理单元112的处理资源和/存储资源的使用率(可以由百分比指示)。
应用122在每个处理单元112上的资源使用率可以单独地或者与处理单元112的总资源使用率结合起来由目标选择器220用于选择目标应用和目标处理单元。通过应用122在每个处理单元112上的资源使用率,可以更合理地估计将某个应用122从当前处理单元112调度到其他处理单元112之后,对这两个处理单元112的总资源使用率的改变。在一个示例中,可以选择对单个处理单元112上的资源使用率或多个处理单元112上的总资源使用率较高的应用122作为目标应用,因为这将会释放更多资源,从而更快实现相应调度目的(例如,多个处理单元的资源使用率的增加或降低)。
除了资源使用率或者作为备选,因素采集器210还可以获取与多个处理单元112的拓扑相关的信息作为影响因素201。机器110的一些或全部处理单元112可以经由接口互相连接,或者经由接口连接到其他机器110和/或网络。与多个处理单元112的拓扑相关的信息可以包括多个处理单元112之间的连接跳数(也被称为连接距离),具体包括从一个处理单元112到与其连接的另一处理单元112要经过多少接口和/或其他设备。
与拓扑相关的信息还可以包括多个处理单元112之间的连接类型。连接类型与用于处理单元112和机器110提供的端口和/或所基于的传输协议相关。作为示例,连接类型可以包括NVlink、外设部件互连标准(PCI)-Express(PCI-e)开关、PCI-e根组件(例如,根桥接器)、非一致内存访问(NUMA)快速通道互连(QPI)、聚合以太网上的RDMA(RoCE)(用于跨网络的连接)等等类型。应当理解,当前已有的或者未来待开发的用于在机器110内或跨机器110连接处理单元112的各种连接均可以被采用。
图4示出了多个处理单元112的示例拓扑结构。如图4所示,处理单元112 1和处理单元112 2由PCI-e开关401互连,并且处理单元112 3和处理单元112 4由PCI-e开关402互连。开关401和402分别连接到CPU套接字接口411和412,其中接口411和412通过QPI连接互连。此外,接口411还连接到RoCE端口420,从而使得处理单元112 1至处理单元112 4可以经由该端口420连接到其他设备或处理单元。从图4可以看出,机器110内的处理单元112可以采用一种连接类型,而为了连接到其他机器110内的处理单元112,其他类型的连接将被使用。
与多个处理单元112的拓扑相关的信息在目标应用和目标处理单元的选择中影响调度的成本。通常,如果确定在一个处理单元112运行的特定应用122调度到另一处理单元112,将需要与该应用122相关的数据从原处理单元112迁移到处理单元112(具体可能迁移到与该处理单元相关的存储资源中)。这样的迁移成本与两个处理单元之间的连接跳数(即连接距离)和/或连接类型相隔。连接跳数越大,意味着两个处理单元的连接距离越远,那么迁移成本可能会增加。此外,经由不同连接类型的连接进行数据迁移,对于迁移过程中的处理和时间的消耗也不同。例如,在经由NVlink接口连接的两个处理单元112之间迁移数据将比在经由PCIe开关或NUMA QPI接口连接的两个处理单元112之间的迁移数据更高效。
在一个实现中,因素采集器210可以将与多个处理单元112的拓扑相关的信息存储为拓扑矩阵,该矩阵指示每个处理单元112与另一处理单元112之间的连接以及在它们之间调度应用的成本得分。目标选择器220可以基于这样的信息来选择目标应用和目标处理单元,以使得将与目标应用相关的数据从其源处理单元迁移到目标处理单元的成本将满足预定准则(例如,小于特定阈值或具有总体最低成本)。
在不同处理单元之间调度应用的成本除了与处理单元112的拓扑相关之外,还可以基于要被调度的目标应用需要迁移的数据量。该数据量可以由应用在正在运行的源应用上的资源使用率来指示。当前占用更多资源的应用,在被调度时将需要迁移更多数据。因此,在一些实施例中,目标选择器220可以将因素采集器210提供的多个因素结合起来选择目标应用和目标处理单元。例如,目标应用和目标处理单元的选择不仅可以满足相应的调度目的(例如,负荷均衡、资源整合和/或服务质量的保证),还不会导致过大的调度成本。
以上描述了多个影响因素201。因素采集器210可以通过机器110中的处理单元驱动或虚拟驱动软件来获取每个处理单元112的资源使用率、每个应用122在单个处理单元112上的资源使用率和/或与多个处理单元112的拓扑相关的信息。通过其他方式来采集这些因素也是可能的。在一些实施例中,因素采集器210可以持续监测这些影响因素201中的一个或多个,并且存储和不断更新监测到的信息。例如,因素采集器210可以按照相同或不同间隔来监测处理单元112和/或各个应用122的实时资源使用率。因素采集器210可以以相对长的间隔来更新与多个处理单元112的拓扑相关的信息。
以上讨论了在考虑处理单元112的工作负荷以及调度成本的情况下对目标应用和目标处理单元的选择。在一些实施例中,还可以附加或备选地考虑应用122的服务质量。在一些情况中,应用122的服务质量要求也可以被称为服务等级协议(SLA)要求。在按需购买云计算资源的示例中,每个应用122的服务质量要求可以与对应客户端120或用户对资源的付费情况相关。当然,在其他情况中,应用122的服务质量要求由用户和/或运营方设置。本文的范围在此方面不受限制。
基于应用122的服务质量,可以确定应用122的优先级。具有较高服务质量要求的应用122可以具有更高的优先级。目标选择器220还可以应用122的优先级来选择目标应用和目标处理单元。具体地,目标应用和目标处理单元可以被选择为确保高优先级的应用122(例如,具有高服务质量要求)由具有充足资源的处理单元112运行。此时,高优先级的应用122可以作为目标应用被重新调度或者被保留在原处理单元。对于具有较低服务质量的应用122,可以被调度或保留在资源使用率更高的处理单元112上运行。在一些实施例中,应用的优先级可以与以上提及的影响因素201结合起来,由目标选择器220用于选择目标应用和目标处理单元。
在一些实施例中,基于影响因素201以及可能基于应用122的优先级,目标选择器220可以为多个应用122在多个处理单元112之间的可能调度方案指派相应的分数,并且基于分数来选择目标应用和目标处理单元。分数有益分数和成本分数。目标选择器220可以基于将给定应用122指派到给定处理单元112之后对调度目的(负荷均衡、资源整合和/或服务质量的满足)的改进来指派有益分数,并且基于应用122在两个处理单元112之间的调度成本来指派成本分数。在选择目标应用和目标处理单元时,目标选择器220可以通过考虑有益分数和/或成本分数,来选择相应调度方案涉及的目标应用及其将被调度到的目标处理单元。应当理解,目标选择器220还可以以任何其他方式利用上文讨论的各个因素来进行选择。
继续参照图2,在调度器140中,目标选择器220将选择的目标应用和目标处理单元作为信息202提供给调度执行器230。调度执行器230被配置为将目标应用从源处理单元调度到目标处理单元,以由目标处理单元继续运行。目标应用的调度可能涉及与应用相关的数据从源处理单元到目标处理单元的迁移。为了降低目标应用的调度对该应用的运行的影响,可以采用热迁移技术将数据进行迁移。在数据迁移过程中,目标应用的运行可以被暂停,并且在被调度到目标处理单元之后继续执行。
在一些实施例中,在目标应用的调度过程中涉及的数据迁移可以由计算系统100中的迁移执行器(未示出)执行。该迁移执行器也被称为迁移引擎或迁移模块。调度执行器230可以向迁移执行器发送迁移请求,以促使迁移执行器将目标应用从源处理单元调度到目标处理单元。迁移请求可以包括目标应用的标识、目标应用的源处理单元的标识和目标处理单元的标识。取决于具体实现,迁移执行器可以被实现在一个或多个机器110中,被实现在独立于机器110的设备中,或者被合并在调度器140中。应当理解,本公开的实施例的范围在此方面不受限制。任何当前已有的或者将来待开发的用于执行跨处理单元的应用数据迁移技术均可以被采用。
在一些实施例中,调度器140可以基于预定策略执行调度。除了因素采集器210可以按预定时间间隔监测和更新相关因素之外,调度器140也可以按相同或不同的预定时间间隔来决定是否触发对目标应用和目标处理单元的选择和调度。备选地或附加地,调度器140还可以基于事件来触发调度。例如,为了负荷均衡的目的,如果监测到一个或多个处理单元112的资源使用率与其他处理单元的资源使用率的差异(或者与平均资源使用率的差异)高于预定阈值,则目标选择器220被触发以选择目标应用和目标处理单元用于调度。如果为了实现资源整合,当多个处理单元112运行有应用122并且每个处理单元112的资源使用率均低于预定阈值,则应用的调度被触发。附加地或备选地,应用122的服务质量要求无法得到满足也可以触发调度器140中的调度。
尽管已经讨论了负荷均衡和资源整合两种不同的调度目的,在一些实施例中,调度器140可以同时满足这两个调度目的。例如,多个处理单元112的资源使用率将被持续监测。无论基于监测发现若干处理单元112上的工作负荷过高或是占用较少资源的应用122被分散到过多处理单元112,调度器140中的调度均可被触发。此外,在调度过程中,调度器140在选择目标应用和目标处理单元时可以在负荷均衡和资源整合的目标之间进行权衡,从而同时避免工作负荷极端不均衡和工作负荷过于分散的情况。
以上基于图1的计算系统100来描述本公开的应用调度的实施例。在这些实施例中,来自客户端的应用被调度到与客户端不同的机器上的处理单元进行运行。应当理解,在其他实施例中,还可以在客户端(例如,服务器或计算设备)的处理单元之间调度多个本地应用。本公开的实施例的范围对于应用和处理单元的来源方面没有限制。
图5示出了根据本公开的一个实施例的调度应用的过程500的流程图。过程500可以由参照图1和图2描述的调度器140来执行。出于说明的目的,以下结合图1和图2来描述过程500。
在510,调度器140获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素。多个应用正由多个处理单元中的至少一个处理单元运行。在520,调度器140基于所获取的影响因素,选择多个应用中待调度的目标应用和多个处理单元中的第一处理单元。第一处理单元不同于至少一个处理单元中正运行目标应用的第二处理单元。在530,调度器将目标应用从第二处理单元调度到第一处理单元,以由第一处理单元继续运行。
在一些实施例中,获取影响因素包括获取以下至少一项:多个处理单元的资源使用率,多个应用中的每个应用对多个处理单元中运行应用的每个处理单元的资源使用率,以及与多个处理单元的拓扑相关的信息,信息包括多个处理单元之间的连接跳数和连接类型中的至少一个。
在一些实施例中,选择目标应用和第一处理单元包括:选择目标应用和第一处理单元,以使得在目标应用被调度到第一处理单元之后,多个处理单元的资源使用率之间的差异将被降低。
在一些实施例中,选择目标应用和第一处理单元包括:选择目标应用和第一处理单元,以使得在目标应用被调度到第一处理单元之后,多个处理单元的资源使用率之间的差异将被提高。
在一些实施例中,选择目标应用和第一处理单元包括:选择目标应用和第一处理单元,以使得将与目标应用相关的数据从第二处理单元迁移到第一处理单元的成本将满足预定准则,成本基于从第二处理单元到第一处理单元之间的连接跳数和连接类型中的至少一项。
在一些实施例中,选择目标应用和第一处理单元还包括:还基于多个应用的优先级来选择目标应用和第一处理单元,优先级至少与多个应用的服务质量要求有关。
在一些实施例中,多个处理单元被包括在计算系统的单个机器中。在另外一些实施例中,多个处理单元被分布在计算系统的多个机器中。
在一些实施例中,多个处理单元具有相同的类型并且选自以下中的一项:图形处理单元(GPU),现场可编程门阵列(FPGA),以及中央处理单元(CPU)。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以用于实现图1和图2的调度器140或者可以是调度器140的一部分。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的各个方法和处理,例如过程500。例如,在一些实施例中,过程500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的过程500的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程500。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (20)

1.一种调度应用的方法,包括:
获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,所述多个应用正由所述多个处理单元中的至少一个处理单元运行;
基于所获取的影响因素,选择所述多个应用中待调度的目标应用和所述多个处理单元中的第一处理单元,所述第一处理单元不同于所述至少一个处理单元中正运行所述目标应用的第二处理单元;以及
将所述目标应用从所述第二处理单元调度到所述第一处理单元,以由所述第一处理单元继续运行;
其中获取所述影响因素包括获取以下至少一项:
(i)所述多个处理单元的资源使用率,
(ii)所述多个应用中的每个应用对所述多个处理单元中运行所述应用的每个处理单元的资源使用率,以及
(iii)与所述多个处理单元的拓扑相关的信息,所述信息包括在至少所述多个处理单元的子集之间的连接跳数和连接类型中的至少一个,所述连接跳数在所述多个处理单元中的多个处理单元之间,所述信息至少部分地基于接口数目和其他设备数目中的至少一项;以及
其中选择所述目标应用和所述第一处理单元包括:
基于所获取的所述影响因素为多个不同的可能的方案中的相应方案指派分数,所指派的所述分数包括以下至少一个:
(i)有益分数,表征在给定应用被调度到给定处理单元后,
负载平衡、资源整合和服务质量中的一个或多个的改进,以及
(ii)成本分数,表征所述给定应用到所述给定处理单元的调度成本;以及
基于所指派的所述分数选择所述目标应用和所述第一处理单元。
2.根据权利要求1所述的方法,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被降低。
3.根据权利要求1所述的方法,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被提高。
4.根据权利要求1所述的方法,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得将与所述目标应用相关联的数据从所述第二处理单元迁移到所述第一处理单元的成本将满足预定准则,所述成本基于从所述第二处理单元到所述第一处理单元之间的连接跳数和一个或多个连接类型中的至少一项。
5.根据权利要求1所述的方法,其中选择所述目标应用和所述第一处理单元还包括:
还基于所述多个应用的优先级来选择所述目标应用和所述第一处理单元,所述优先级至少与所述多个应用的服务质量要求有关。
6.根据权利要求1所述的方法,其中所述多个处理单元被包括在所述计算系统的单个机器中。
7.根据权利要求1所述的方法,其中所述多个处理单元被分布在所述计算系统的多个机器中。
8.根据权利要求1所述的方法,其中所述多个处理单元具有相同的类型并且选自以下中的一项:
图形处理单元(GPU),
现场可编程门阵列(FPGA),以及
中央处理单元(CPU)。
9.一种用于调度应用的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行动作,所述动作包括:
获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,所述多个应用正由所述多个处理单元中的至少一个处理单元运行;
基于所获取的影响因素,选择所述多个应用中待调度的目标应用和所述多个处理单元中的第一处理单元,所述第一处理单元不同于所述至少一个处理单元中正运行所述目标应用的第二处理单元;以及
将所述目标应用从所述第二处理单元调度到所述第一处理单元,以由所述第一处理单元继续运行;
其中获取所述影响因素包括获取以下至少一项:
(i)所述多个处理单元的资源使用率,
(ii)所述多个应用中的每个应用对所述多个处理单元中运行所述应用的每个处理单元的资源使用率,以及
(iii)与所述多个处理单元的拓扑相关的信息,所述信息包括连接跳数和在至少所述多个处理单元的子集之间的连接类型中的至少一个,所述连接跳数在所述多个处理单元中的多个处理单元之间,所述信息至少部分地基于接口数目和其他设备数目中的至少一项;
其中选择所述目标应用和所述第一处理单元包括:
基于所获取的所述影响因素为多个不同的可能的方案中的相应方案指派分数,所指派的所述分数包括以下至少一个:
(i)有益分数,表征在给定应用被调度到给定处理单元后,负载平衡、资源整合和服务质量中的一个或多个的改进,以及
(ii)成本分数,表征所述给定应用到所述给定处理单元的调度成本;以及
基于所指派的所述分数选择所述目标应用和所述第一处理单元。
10.根据权利要求9所述的装置,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被降低。
11.根据权利要求9所述的装置,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被提高。
12.根据权利要求9所述的装置,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得将与所述目标应用相关的数据从所述第二处理单元迁移到所述第一处理单元的成本将满足预定准则,所述成本基于从所述第二处理单元到所述第一处理单元之间的连接跳数和连接类型中的至少一项。
13.根据权利要求9所述的装置,其中选择所述目标应用和所述第一处理单元还包括:
还基于所述多个应用的优先级来选择所述目标应用和所述第一处理单元,所述优先级至少与所述多个应用的服务质量要求有关。
14.根据权利要求9所述的装置,其中所述多个处理单元被包括在所述计算系统的单个机器中。
15.根据权利要求9所述的装置,其中所述多个处理单元被分布在所述计算系统的多个机器中。
16.根据权利要求9所述的装置,其中所述多个处理单元具有相同的类型并且选自以下中的一项:
图形处理单元(GPU),
现场可编程门阵列(FPGA),以及
中央处理单元(CPU)。
17.一种包括计算机可读指令的计算机可读介质,所述计算机可读指令在被执行时使设备执行以下步骤:
获取与多个应用在计算系统的多个处理单元之间的调度相关的影响因素,所述多个应用正由所述多个处理单元中的至少一个处理单元运行;
基于所获取的影响因素,选择所述多个应用中待调度的目标应用和所述多个处理单元中的第一处理单元,所述第一处理单元不同于所述至少一个处理单元中正运行所述目标应用的第二处理单元;以及
将所述目标应用从所述第二处理单元调度到所述第一处理单元,以由所述第一处理单元继续运行;
其中获取所述影响因素包括获取以下至少一项:
(i)所述多个处理单元的资源使用率,
(ii)所述多个应用中的每个应用对所述多个处理单元中运行所述应用的每个处理单元的资源使用率,以及
(iii)与所述多个处理单元的拓扑相关的信息,所述信息包括在至少所述多个处理单元的子集之间的连接跳数和连接类型中的至少一个,所述连接跳数在所述多个处理单元中的多个处理单元之间,所述信息至少部分地基于接口数目和其他设备数目中的至少一项;以及
其中选择所述目标应用和所述第一处理单元包括:
基于所获取的所述影响因素为多个不同的可能的方案中的相应方案指派分数,所指派的所述分数包括以下至少一个:
(i)有益分数,表征在给定应用被调度到给定处理单元后,
负载平衡、资源整合和服务质量中的一个或多个的改进,以及
(ii)成本分数,表征所述给定应用到所述给定处理单元的调度成本;以及
基于所指派的所述分数选择所述目标应用和所述第一处理单元。
18.根据权利要求17所述的计算机可读介质,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被降低。
19.根据权利要求17所述的计算机可读介质,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得在所述目标应用被调度到所述第一处理单元之后,所述多个处理单元的资源使用率之间的差异将被提高。
20.根据权利要求17所述的计算机可读介质,其中选择所述目标应用和所述第一处理单元包括:
选择所述目标应用和所述第一处理单元,以使得将针对与所述目标应用相关联的数据从所述第二处理单元迁移到所述第一处理单元的成本的预定准则将被满足,所述成本基于连接跳数和所述第二处理单元与所述第一处理单元之间的一个或多个连接类型中的至少一项。
CN201710983591.2A 2017-10-20 2017-10-20 用于调度应用的方法、装置以及计算机可读介质 Active CN109697115B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710983591.2A CN109697115B (zh) 2017-10-20 2017-10-20 用于调度应用的方法、装置以及计算机可读介质
US16/162,551 US10877800B2 (en) 2017-10-20 2018-10-17 Method, apparatus and computer-readable medium for application scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710983591.2A CN109697115B (zh) 2017-10-20 2017-10-20 用于调度应用的方法、装置以及计算机可读介质

Publications (2)

Publication Number Publication Date
CN109697115A CN109697115A (zh) 2019-04-30
CN109697115B true CN109697115B (zh) 2023-06-06

Family

ID=66169990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710983591.2A Active CN109697115B (zh) 2017-10-20 2017-10-20 用于调度应用的方法、装置以及计算机可读介质

Country Status (2)

Country Link
US (1) US10877800B2 (zh)
CN (1) CN109697115B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11221876B2 (en) * 2018-12-30 2022-01-11 Paypal, Inc. Scheduling applications in CPU and GPU hybrid environments
CN117834614B (zh) * 2024-01-11 2024-06-28 北京蓝耘科技股份有限公司 一种云计算环境中gpu资源调度方法

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1310869A1 (en) * 2001-11-12 2003-05-14 Hewlett-Packard Company Data processing system and method
US7130891B2 (en) * 2002-02-04 2006-10-31 Datasynapse, Inc. Score-based scheduling of service requests in a grid services computing platform
US7228354B2 (en) * 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7313560B2 (en) * 2002-12-09 2007-12-25 International Business Machines Corporation Data migration system and method
US7735088B1 (en) * 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7448037B2 (en) * 2004-01-13 2008-11-04 International Business Machines Corporation Method and data processing system having dynamic profile-directed feedback at runtime
US7600217B2 (en) * 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US8499023B1 (en) * 2005-03-23 2013-07-30 Oracle America, Inc. Servlet-based grid computing environment using grid engines and switches to manage resources
US7593948B2 (en) * 2005-06-23 2009-09-22 Network Appliance, Inc. Control of service workload management
US8719787B2 (en) * 2006-09-30 2014-05-06 American Express Travel Related Services Company, Inc. System and method for server migration synchronization
US8533697B2 (en) * 2007-02-14 2013-09-10 The Mathworks, Inc. Graphical processing unit (GPU) arrays providing high computational capabilities in a computing environment
US8990527B1 (en) * 2007-06-29 2015-03-24 Emc Corporation Data migration with source device reuse
US8429645B2 (en) * 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
WO2009026703A1 (en) * 2007-08-31 2009-03-05 Cirba Inc. Method and system for evaluating virtualized environments
US8688628B2 (en) * 2008-02-29 2014-04-01 Red Hat, Inc. Nested queued transaction manager
US8200771B2 (en) * 2008-10-10 2012-06-12 International Business Machines Corporation Workload migration using on demand remote paging
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US8832699B2 (en) * 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US8984523B2 (en) * 2009-05-26 2015-03-17 Telefonaktiebolaget L M Ericsson (Publ) Method for executing sequential code on the scalable processor at increased frequency while switching off the non-scalable processor core of a multicore chip
US8150971B2 (en) * 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US8352633B2 (en) * 2009-06-22 2013-01-08 Citrix Systems, Inc. Systems and methods of state migration in a multi-core system
US8310492B2 (en) * 2009-09-03 2012-11-13 Ati Technologies Ulc Hardware-based scheduling of GPU work
US8589921B2 (en) * 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
US8571040B2 (en) * 2010-03-01 2013-10-29 Deutsche Telekom Ag Apparatus, method, manufacture, and system for providing network services from building blocks
JP2013524386A (ja) * 2010-04-13 2013-06-17 イーティー インターナショナル,インコーポレイティド ランスペース方法、システムおよび装置
US9141625B1 (en) * 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US8365009B2 (en) * 2010-09-10 2013-01-29 Microsoft Corporation Controlled automatic healing of data-center services
JP2012094030A (ja) * 2010-10-28 2012-05-17 Hitachi Ltd 計算機システム及び処理制御方法
US8869136B2 (en) * 2011-01-05 2014-10-21 International Business Machines Corporation Calculating migration points for application migration
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8924541B2 (en) * 2011-05-29 2014-12-30 International Business Machines Corporation Migration of virtual resources over remotely connected networks
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US20130054734A1 (en) * 2011-08-23 2013-02-28 Microsoft Corporation Migration of cloud applications between a local computing device and cloud
US8949431B2 (en) * 2011-08-24 2015-02-03 Radware, Ltd. Method for live migration of virtual machines
US20130155077A1 (en) * 2011-12-14 2013-06-20 Advanced Micro Devices, Inc. Policies for Shader Resource Allocation in a Shader Core
US20130166504A1 (en) * 2011-12-27 2013-06-27 RiverMeadow Software, Inc. Systems and methods for virtual machine migration
CN103197952B (zh) * 2012-01-09 2017-08-25 华为技术有限公司 基于云基础设施的针对应用系统维护部署的管理系统和方法
JP6072834B2 (ja) * 2012-02-08 2017-02-01 インテル・コーポレーション 方法、プログラム、装置、およびシステム
US9531805B1 (en) * 2012-06-19 2016-12-27 Google Inc. Systems and methods for run time migration
US20140068581A1 (en) * 2012-08-30 2014-03-06 International Business Machines Corporation Optimized division of work among processors in a heterogeneous processing system
US10733358B2 (en) * 2012-09-17 2020-08-04 Salesforce.Com, Inc. Method and system for site migration
JP5954074B2 (ja) * 2012-09-20 2016-07-20 富士通株式会社 情報処理方法、情報処理装置、及びプログラム。
US20140122577A1 (en) * 2012-10-26 2014-05-01 Syntel, Inc. System and method for evaluating readiness of applications for the cloud
CN103443771B (zh) * 2013-01-16 2017-11-24 华为技术有限公司 一种数据中心间资源调度方法和设备
US9891949B2 (en) * 2013-03-06 2018-02-13 Nvidia Corporation System and method for runtime scheduling of GPU tasks
WO2014142217A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 情報処理システム、及びアプリケーションの移転方法
WO2014149041A1 (en) * 2013-03-20 2014-09-25 Empire Technology Development Llc Heterogeneous router clock assignment and packet routing
WO2014171935A1 (en) * 2013-04-17 2014-10-23 Empire Technology Development Llc Scheduling computing tasks for multi-processor systems
US9424027B2 (en) * 2013-07-29 2016-08-23 Ralph Moore Message management system for information transfer within a multitasking system
US9294097B1 (en) * 2013-11-15 2016-03-22 Scientific Concepts International Corporation Device array topology configuration and source code partitioning for device arrays
US10326448B2 (en) * 2013-11-15 2019-06-18 Scientific Concepts International Corporation Code partitioning for the array of devices
CN105830031B (zh) * 2013-12-18 2020-12-11 瑞典爱立信有限公司 用于选择媒体处理单元的方法和网络节点
US9871741B2 (en) * 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9660933B2 (en) * 2014-04-17 2017-05-23 Go Daddy Operating Company, LLC Allocating and accessing hosting server resources via continuous resource availability updates
US9298518B2 (en) * 2014-07-09 2016-03-29 International Business Machine Corporation Safe consolidation and migration
US20160036923A1 (en) * 2014-08-03 2016-02-04 Microsoft Corporation Efficient Migration of Application State Information
US9858166B1 (en) * 2014-08-26 2018-01-02 VCE IP Holding Company LLC Methods, systems, and computer readable mediums for optimizing the deployment of application workloads in a converged infrastructure network environment
US9594591B2 (en) * 2014-09-26 2017-03-14 International Business Machines Corporation Dynamic relocation of applications in a cloud application service model
US9342338B2 (en) * 2014-10-15 2016-05-17 Red Hat, Inc. Application migration in a process virtual machine environment
US9729632B2 (en) * 2014-10-17 2017-08-08 International Business Machines Corporation Managing migration of an application from a source to a target
WO2016068999A1 (en) * 2014-10-31 2016-05-06 Hewlett Packard Enterprise Development Lp Integrated heterogeneous processing units
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
KR102586628B1 (ko) * 2015-06-05 2023-10-11 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
US9612865B2 (en) * 2015-06-15 2017-04-04 International Business Machines Corporation Managed services coordinator
US9983857B2 (en) * 2015-06-16 2018-05-29 Architecture Technology Corporation Dynamic computational acceleration using a heterogeneous hardware infrastructure
US9667606B2 (en) * 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments
US10057336B2 (en) * 2015-11-17 2018-08-21 Sap Se Dynamic load balancing between client and server
US9684533B2 (en) * 2015-11-18 2017-06-20 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a concurrency limit
CN107153573A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 分布式任务处理方法和装置
US9830678B2 (en) * 2016-03-03 2017-11-28 International Business Machines Corporation Graphics processing unit resource sharing
US10069758B2 (en) * 2016-05-23 2018-09-04 Hartford Fire Insurance Company Processing system responsive to analysis filter criteria
CN106919446A (zh) * 2016-06-07 2017-07-04 阿里巴巴集团控股有限公司 目标应用程序的选取方法及装置
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
US10169065B1 (en) * 2016-06-29 2019-01-01 Altera Corporation Live migration of hardware accelerated applications
US20200034167A1 (en) * 2016-08-10 2020-01-30 Nutanix, Inc. Automatic application migration across virtualization environments
US10353736B2 (en) * 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
CN107783815B (zh) * 2016-08-30 2020-12-01 华为技术有限公司 一种确定虚拟机迁移的方法和装置
US10462012B1 (en) * 2016-09-30 2019-10-29 EMC IP Holding Company LLC Seamless data migration to the cloud
US10218637B2 (en) * 2016-11-03 2019-02-26 International Business Machines Corporation System and method for forecasting and expanding software workload boundaries
EP3552104B1 (en) * 2016-12-08 2021-06-23 AB Initio Technology LLC Computational resource allocation
CN108268317B (zh) * 2016-12-30 2020-07-28 华为技术有限公司 一种资源分配方法及装置
US10489204B2 (en) * 2017-01-31 2019-11-26 Samsung Electronics Co., Ltd. Flexible in-order and out-of-order resource allocation
US10248355B2 (en) * 2017-02-22 2019-04-02 International Business Machines Corporation Data migration for applications on a mobile device
US10896064B2 (en) * 2017-03-27 2021-01-19 International Business Machines Corporation Coordinated, topology-aware CPU-GPU-memory scheduling for containerized workloads
US9910618B1 (en) * 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US10255105B2 (en) * 2017-04-11 2019-04-09 Imagination Technologies Limited Parallel computing architecture for use with a non-greedy scheduling algorithm
US10379908B2 (en) * 2017-05-30 2019-08-13 Red Hat, Inc. Merging scaled-down container clusters using vitality metrics
US10558418B2 (en) * 2017-07-27 2020-02-11 Advanced Micro Devices, Inc. Monitor support on accelerated processing device
US10664278B2 (en) * 2017-08-17 2020-05-26 Huawei Technologies Co., Ltd. Method and apparatus for hardware acceleration in heterogeneous distributed computing
US11989647B2 (en) * 2019-02-08 2024-05-21 Adobe Inc. Self-learning scheduler for application orchestration on shared compute cluster

Also Published As

Publication number Publication date
CN109697115A (zh) 2019-04-30
US20190121664A1 (en) 2019-04-25
US10877800B2 (en) 2020-12-29

Similar Documents

Publication Publication Date Title
EP3577561B1 (en) Resource management for virtual machines in cloud computing systems
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
CN106933669B (zh) 用于数据处理的装置和方法
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN110389826B (zh) 用于处理计算任务的方法、设备和计算程序产品
US20170070567A1 (en) Load balancing apparatus and load balancing method
CN109218355A (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US12099884B2 (en) Scheduling method for selecting optimal cluster within cluster of distributed collaboration type
JP2006048680A (ja) 複数のインスタンスアプリケーションに対し負荷分散装置を動作させるシステムおよび方法
JP5687666B2 (ja) スケジューリング装置、システム、方法およびプログラム
CN110221920B (zh) 部署方法、装置、存储介质及系统
US10614542B2 (en) High granularity level GPU resource allocation method and system
US9635102B2 (en) Broker module for managing and monitoring resources between internet service providers
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
WO2014166603A1 (en) Flow migration between virtual network appliances in a cloud computing network
CN112882827B (zh) 用于负载均衡的方法、电子设备和计算机程序产品
CN109697115B (zh) 用于调度应用的方法、装置以及计算机可读介质
CN109729113A (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
JP5879117B2 (ja) 情報処理システムおよび運用管理方法
US20230089925A1 (en) Assigning jobs to heterogeneous graphics processing units
Kushwaha et al. Review of optimize load balancing algorithms in cloud
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
CN111459651B (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
GR01 Patent grant
GR01 Patent grant