CN103970606A - 用于分配资源的设备和方法 - Google Patents

用于分配资源的设备和方法 Download PDF

Info

Publication number
CN103970606A
CN103970606A CN201310248688.0A CN201310248688A CN103970606A CN 103970606 A CN103970606 A CN 103970606A CN 201310248688 A CN201310248688 A CN 201310248688A CN 103970606 A CN103970606 A CN 103970606A
Authority
CN
China
Prior art keywords
resource
time
predefined
working time
threshold
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
CN201310248688.0A
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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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 Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of CN103970606A publication Critical patent/CN103970606A/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/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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种资源分配方法包括:基于包括作业顺序的调度策略来选择作业,基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源,和基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。

Description

用于分配资源的设备和方法
(多个)相关申请
本申请要求2013年1月30日提交的韩国专利申请第10-2013-0010378号的权益,由此通过引用进行合并,如同全部在这里阐明一样。
技术领域
本发明涉及用于分配资源的方案,并更具体地,涉及适于在分布计算环境中执行包括按照管线(pipeline)形式配置的作业的服务的、用于分配资源的设备和方法。
背景技术
如公知的,资源管理系统管理簇中的计算资源并运行用户提交的作业。当前使用的资源管理系统包括简单Linux用途资源管理(Simple Linux Utilityfor Resource Management)(SLURM)系统、Terascale开放源资源和队列管理器(Terascale Open-Source Resource and Queue Manager)(TORQUE)、太阳网格引擎(Sun Grid Engine)(SGE)等。
图1图示了典型资源管理系统的配置,其包括队列管理器102、作业调度器104、资源管理器106、资源分配管理器108、和资源110。
参考图1,队列管理器102接收用户提交的作业。当提交作业时,用户应设立或指定执行每一作业所必需的资源需求。提交的作业在作业调度器104选择之后运行。
作业调度器104从资源管理器106接收资源的状态信息,并确定何时使用计算资源、以及使用哪些计算资源,来运行作业。结果,可能根据调度策略而最佳地使用构成簇的资源。为此目的,资源管理器106向作业调度器104报告可用资源的状态信息。
资源分配管理器108接收作业调度器104所提供的关于要运行的作业的信息,并运行作业(参考Kalim Qureshi,Syed Munir Hussain Shah,Paul Manuel,“Empirical performance evaluation of schedulers for cluster of workstations,”Cluster Computing,Volume14Issue2,June2011)。
图2是示出了根据现有技术的向所选择的作业分配资源并运行所选择的作业的处理的流程图。
参考图2,用户可在传统资源管理系统中设立或指定作业的运行顺序、关于预测的运行时间的信息、以及关于作业必需的资源的信息。传统资源管理系统在步骤202基于包括作业的运行顺序的调度策略来选择要运行的作业。
为了所选择的作业的运行,在步骤204检查所选择的作业的在前作业。在步骤206检查是否存在在前作业。如果确定存在在前作业,则在步骤208检查是否正常完成在前作业的运行。作为步骤206的检查处理的结果,如果确定不存在在前作业,则认为(presume)正常完成在前作业,并且过程进行到步骤210。
作为步骤208的检查处理的结果,如果确定没有正常完成在前作业,则过程回到步骤202,并且执行选择新作业的处理。
作为步骤208的检查处理的结果,如果确定正常完成在前作业,则在步骤210确定为了所选择的作业指定的必要资源是否是可用的。作为步骤210的确定处理的结果,如果不存在可用资源,则在步骤212暂停该过程达到预定时间,并然后进行确定是否存在可用资源的处理。
作为步骤210的确定处理的结果,如果必要资源是可用的,则向所选择作业分配可用资源,并然后过程进行在步骤214运行所选择作业的处理。
作为示例,当假设其中按照管线形式顺序运行三个作业J1、J2和J3的服务S时,可如下基于诸如要运行的作业的规范、在前作业、必要资源、和预测的运行时间等属性,来定义用于运行服务S的输入到资源管理系统(RMS)的作业:
J1={作业1,空,2个CPU,20}
J2={作业2,J1,2个CPU,30}
J3={作业3,J2,3个CPU,20}
这里,作为作业J1、J2和J3的预测运行时间Jetime之和,来计算服务S的预测运行时间Setime。Setime=J1etime+J2etime+J3etime=20+30+20=70
传统资源管理系统通过仅考虑是否完成在前作业J1或J2,基于作业所指定的(多个)必要资源来搜索和分配(多个)资源,以运行作业J2或J3。
所以,如果构成该服务的作业中的至少一个具有比其预测运行时间更长的运行时间,则该服务的实际运行时间也变得更长,并由此用户满意度恶化。例如,如果作业J1的实际运行时间J1rtime是比预测运行时间长10分钟的30分钟,则服务S的实际运行时间变长至少10分钟。
Srtime≥J1rtime+J2etime+J3etime=30+30+20=80
J1rtime–J1etime=30–20=10≤Srtime-Setime
即,在包括按照管线形式配置的多于两个作业的服务的情况下,传统资源管理系统具有的问题在于,作业运行延迟几个阶段与服务的运行的延迟直接关联。这仅因为,是否完成在前作业影响在后作业的运行。
另外,在传统资源管理系统中,如果在前作业在比它们的预测运行时间更短的时间中运行,则即使在用户的服务预测运行时间中存在余地,也向在后作业分配用户指定的(多个)资源,以运行在后作业。所以,这成为使得使用资源的效率恶化的因素,因为不能向其他服务的作业分派比满足用户的预测运行时间必需的资源更大的可用资源。
发明内容
所以,本发明的目的是提供一种通过指定在完成在前作业之前所花费的服务运行时间的阈值、来向在后作业分配比用户指定的必要资源更多或更少的资源的方法,由此一般改进用户对于资源管理系统中包括按照环线形式配置的两个或多个作业的服务的运行时间的满意度。
根据本发明的一个方面,提供了一种资源分配方法,包括:基于包括作业顺序的调度策略来选择作业;基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源;和基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
根据本发明的另一方面,提供了一种资源分配方法,包括:基于包括作业顺序的调度策略来选择作业;检查当选择作业时是否正常完成在前作业;如果正常完成在前作业,则计算在预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值;检查所计算的差值是否在预定在前运行阈值的范围中;如果所计算的差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;如果所计算的差值在预定在前运行阈值的范围中,则确定用户指定的用于运行所选择的作业的必要资源;确定该必要资源或该最佳资源是否可用;和如果确定该必要资源或该最佳资源可用,则向所选择的作业分配资源,并运行所选择的作业。
该预定在前运行阈值可表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。该预定在前运行阈值可表示为运行时间的值或比率(%)。
所述计算最佳资源的步骤可包括:如果所计算的差值不在该预定在前运行阈值的范围中,则计算最佳资源以分配比该必要资源更多或更少的资源。
所述确定该必要资源或该最佳资源是否可用的步骤可包括:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
所述方法可进一步包括:当完成所选择的作业的运行时,生成包括所选择的作业的运行时间的运行相关信息;和在数据库中存储该运行相关信息。
根据本发明的另一方面,提供了一种资源分配设备,包括:队列管理器,配置为在数据库中注册用于选择作业的作业信息,并响应于用户的作业提交请求来使得作业进入队列用于运行;资源管理器,配置为管理可用资源的状态信息;作业调度器,配置为选择作业用于下一运行,并基于从数据库提供的在前作业的运行时间相关信息和从资源管理器提供的状态信息,来确定可用于所选择的作业的最佳资源;和资源分配管理器,配置为基于该必要资源或该最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
该运行时间相关信息可包括在前作业的服务运行时间、预定预测运行时间、以及预定在前运行阈值。
该作业调度器可包括:在前作业检查块,配置为选择作业用于下一运行,检查是否正常完成在前作业,如果正常完成在前作业,则计算预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值,并检查该差值是否在预定在前运行阈值的范围中;最佳资源计算块,配置为如果该差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;和资源确定块,配置为基于用户指定的该必要资源或该最佳资源计算块所计算的该最佳资源是否可用,来确定该必要资源或该最佳资源。
该在前作业检查块可将该预定在前运行阈值表示为运行时间的值或比率(%)。
如果该差值不在该预定在前运行阈值的范围中,则该最佳资源计算块可以计算最佳资源以分配比该必要资源更多或更少的资源。
如果不存在要向所选择的作业分配的可用资源,则该资源确定块可以在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
当完成所选择的作业时,该资源分配管理器可生成包括所选择的作业的运行时间的运行相关信息,并在数据库中存储该运行相关信息。
根据本发明的实施例,在包括按照管线形式配置的多个作业的服务的情况下,对于该服务中每一阶段处的作业的运行,可根据在前作业的实际运行时间来改变资源量,并然后向该作业分配改变的资源量。结果,可能提供多个服务达到用户的预测运行时间,并改进使用资源的效率。
附图说明
根据结合附图给出的实施例的以下描述,本发明的以上和其他目的和特征将变得清楚,其中:
图1是传统资源管理系统的配置;
图2是示出了根据现有技术的用于向所选择作业分配资源并运行所选择作业的处理的流程图;
图3图示了根据本发明实施例的资源分配设备的框图;
图4图示了图3中示出的作业调度器的详细框图;和
图5是示出了根据本发明实施例的用于向所选择作业分配资源并运行所选择作业的处理的流程图。
具体实施方式
在本发明的以下描述中,如果已知结构和操作的详细描述可使得本发明的主题模糊,则将省略其详细描述。以下术语是通过考虑本发明实施例中的功能而定义的术语,并可改变算符(operator)意欲用于本发明和实践。由此,在本发明的描述的全文中,应定义这些术语。
其后,将参考附图来详细描述本发明的实施例,使得它们可以由本领域技术人员容易地实现。
图3图示了根据本发明实施例的资源分配设备的框图。资源分配设备包括队列管理器302、作业调度器304、资源管理器306、数据库(DBMS)308、资源分配管理器310、和资源312。
用户可设立或指定信息,诸如关于构成服务的每一作业必需的资源的信息、预测运行时间等。另外,用户可指定作业的运行顺序和在前运行阈值。这里,在前运行阈值表示预测运行时间和在完成当前作业的所有在前作业所花费的实际运行时间之间的可接受的差。在前作业的实际运行时间和预测运行时间之间的差被表示为值或比率(%)。在本发明的实施例中,假设将在前运行阈值表示为比率。
根据本发明实施例的资源分配设备(或资源管理系统)使用在前运行阈值作为用于分配运行按照管线形式配置的多个作业的资源的参考信息,所述多个作业构成服务。基于用户指定的必要资源,在在前作业的实际运行时间不在预测运行时间的在前运行阈值的范围中的情况下,分配比必要资源更多或更少的资源。
根据本发明实施例的资源分配包括使用物理或虚拟计算节点的通过节点的资源分配、以及在单一计算节点中诸如中央处理单元(CPU)、图形处理单元(GPU)、存储器等的特定资源的分配。本发明可应用到以上两种资源分配方法。
参考图3,如果用户输入(指定)运行作业必需的作业信息(诸如在前作业信息、在前运行阈值、必要资源信息、预测运行时间等),则队列管理器302在数据库308中注册这些数据(即,作业信息)。队列管理器302具有提交的(排队的)作业,并根据请求而将这些作业提供到作业调度器304。这里,在前运行阈值表示所有在前作业之中根据具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。在前作业的预测运行时间和实际运行时间之间的差被表示或指定为值或比率(%)。
作业调度器304选择运行的作业,并基于从数据库308提取的在前作业的运行时间相关信息以及从资源管理器306提供的可用资源的状态信息,来确定用于所选择作业的可用必要或最佳资源。为了实现这些功能,作业调度器304可具有图4中示出的配置。这里,在前作业的运行时间相关信息可包括预定在前运行阈值、预测运行时间、以及在前作业的服务运行时间。
图4图示了图3中示出的作业调度器304的详细框图。作业调度器304包括在前作业检查块402、最佳资源计算块404、和资源确定块406。
参考图4,在前作业检查块402选择用于下一运行的作业,搜索在数据库308中存储的所选择作业的信息,并检查是否存在在前作业。如果存在在前作业,则在前作业检查块402检查是否正常完成在前作业。如果正常完成在前作业,则在前作业检查块402计算预测运行时间与在完成在前作业之前花费的服务运行时间之间的差值,并检查该差值是否在预定在前运行阈值的范围中。
即,如果不存在在前作业,则在前作业检查块402生成指示不存在在前作业的不存在检测信号,并将该不存在检测信号传递到资源确定块406。如果该差值在预定在前运行阈值的范围中,则在前作业检查块402生成指示该差值在该预定在前运行阈值的范围中的范围内检测信号,并将该范围内检测信号传递到资源确定块406。如果该差值不在预定在前运行阈值的范围中,则在前作业检查块402生成指示该差值不在该预定在前运行阈值的范围中的范围外检测信号,并将该范围外检测信号传递到最佳资源计算块404。这里,在前作业的不存在检测信号可意味着,如果不存在在前作业,则将在前作业看作正常完成。
如果从在前作业检查块402传递范围外检测信号,则最佳资源计算块404基于从资源管理器306提供的可用资源的状态信息来计算用于运行所选择的作业的最佳资源,并将所计算的最佳资源传递到资源确定块406。这里,当该差值不在预定在前运行阈值的范围中时,最佳资源计算块404可计算最佳资源,以分配比用户指定的必要资源更多或更少的资源。
如果从在前作业检查块402传递范围外检测信号,则资源确定块406基于从资源管理器306提供的可用资源的状态信息,来确定从最佳资源计算块404传递的最佳资源是否可用。此后,资源确定块406根据确定结果来生成资源分配控制信号,并将该资源分配控制信号传递到图3中示出的资源分配管理器310。这时,如果不存在要向所选择作业分配的可用资源,则资源确定块406可在预定时间过去之后再次执行用于确定最佳资源是否可用的处理。
如果从在前作业检查块402传递不存在检测信号或范围内检测信号,则资源确定块406确定从在前作业检查块402传递的必要资源是否可用。此后,资源确定块406执行范围外检测信号处理过程。
返回参考图3,资源管理器306管理在计算节点处可使用的可用资源的状态信息。资源管理器306管理的可用资源的状态信息可根据作业调度器304的资源搜索请求来搜索,并然后提供到作业调度器304。
资源分配管理器310基于计算的最佳资源或用户指定的必要资源来向所选择作业分配资源312,并运行所选择作业。另外,资源分配管理器310将运行结果传递到用户,当完成所选择作业的运行时生成包括所选择作业的运行时间的运行相关信息,并将运行相关信息存储在数据库308中。
数据库308中存储的作业信息可包括作业名称、在前作业名称、在前运行阈值、作业运行的必要资源、作业的预测运行时间等。根据本发明实施例的资源分配设备所设立的作业信息可包括实际运行时间、预测服务时间、实际服务时间、延迟时间等。作业的预测运行时间和必要资源可使用各种方法来设立,诸如从配置文件信息的提取或用户定义。
每一作业的预测服务时间是其在前作业的预测服务时间和作业的预测运行时间之和,并且当插入用户定义的作业信息时被计算和存储。这里,实际运行时间表示从选择作业到完成向所选择作业分配的资源中的所选择作业的运行所花费的时间。
每一作业的实际服务时间是其在前作业的实际服务时间和作业的实际运行时间之和。在不存在在前作业的情况下,所选择的作业的实际运行时间和实际服务时间相同。如果存在在前作业的各种运行路径,则基于具有最长预测运行时间的路径来计算预测服务时间和实际服务时间。将该服务延迟时间计算为预测服务时间和实际服务时间之间的差。如果服务延迟时间具有正值,则其表示该服务的延迟运行。另一方面,如果服务延迟时间具有负值,则其表示该服务的快速运行。
其后,将参考具有图3和4中所示上述配置的资源分配设备,来详细描述用于向用户提供资源分配服务的处理的序列。
图5是示出了根据本发明实施例的用于向所选择作业分配资源并运行所选择作业的处理的流程图。
参考图5,用户输入或指定作业运行必需的作业信息,该作业信息包括在前作业信息、在前运行阈值、必要资源信息、预测运行时间等。
此后,作业调度器304中的在前作业检查块402在步骤502基于包括作业顺序的调度策略来选择作业,在步骤504搜索数据库308中存储的选择作业信息,并在步骤506检查选择作业的在前作业是否存在于数据库308中。
作为步骤506的检查结果,如果不存在在前作业,则过程前进到步骤510,以将在前作业处理为正常完成。
作为步骤506的检查结果,如果存在在前作业,则在步骤508确定是否正常完成在前作业。作为步骤508的确定结果,如果确定没有正常完成在前作业,则过程返回到步骤502,用于选择要运行的新作业。
作为步骤508的确定结果,如果确定正常完成在前作业,则在前作业检查块402在步骤510计算在前作业的预测服务时间和实际服务时间之间的差值,并在步骤512检查所计算的差值是否在预定在前运行阈值的范围中。这里,预定在前运行阈值表示预测运行时间和完成当前作业的所有在前作业所花费的实际运行时间之间的可接受的差。在前作业的实际运行时间和预测运行时间之间的差值被表示为值或比率(%)。
作为步骤512的检查结果,如果计算的差值在预定在前运行阈值的范围中,则过程前进到步骤516。如果计算的差值不在预定在前运行阈值的范围中,则最佳资源计算块404在步骤514基于从资源管理器306提供的可用资源的状态信息,来计算用于运行所选择作业的最佳资源。这里,可将该最佳资源计算为比用户指定的必要资源更多或更少的资源。
然后,资源确定块406在步骤516基于从资源管理器306提供的可用资源的状态信息,来检查或确定来自在前作业检查块402的必要资源或来自最佳资源计算块404的最佳资源是否可用。作为步骤516的检查结果,如果不存在要向所选择作业分配的可用资源,则在步骤518等待预定时间之后,再次执行确定必要资源或最佳资源是否可用的处理。
作为步骤516的检查结果,如果存在要向所选择作业分配的(多个)可用资源,则资源确定块406生成资源分配控制信号,并将该资源分配控制信号传递到资源分配管理器310。
结果,资源分配管理器310在步骤520响应于资源分配控制信号,基于该必要资源或计算的最佳资源,来向所选择作业分配资源312,并使用资源312来运行所选择作业。
此后,资源分配管理器310在步骤522使用分配的资源来检查是否运行所选择的作业。作为步骤522的检查结果,如果确定完成所选择作业,则在步骤524生成包括所选择作业的运行时间的运行相关信息并存储在数据库308中。
作为示例,如表格1-1和表格1-2所示定义数据库308中存储的作业信息。
表格1-1
表格1-2
将基于表格1-1和表格1-2中规定的构成服务的作业J1、J2和J3,来描述根据本发明实施例的资源分配。为了更好地理解根据本发明实施例的资源分配,假设顺序执行这三个作业J1、J2和J3。
作业J1是初始作业,并且已基于用户指定的必要资源来运行。所以,为了向作业J2分配资源,确定预测服务时间中的在完成在前作业J1之前所花费的运行时间(即,实际服务时间)是否在在前运行阈值的范围中。这可通过检查预测服务时间和实际服务时间之间的差值是否小于在前运行阈值来确定。如果实际服务时间在在前运行阈值的范围中,则在检查该必要资源是否可用之后,向作业J2分配该可用资源。
【等式1】
(J1的服务延迟时间)/(J1的预测服务时间)*100=(10/20)*100=50%>20%=J2的在前运行阈值
如等式1中所示,由于在前作业J1进行的服务的运行时间不在作业J2中指定的在前运行阈值的范围中,所以计算最佳资源。对于基于并行编程的应用的作业,将和CPU一样多的资源链接到输入数据处理的并行化。即,在将必要资源和预测运行时间的乘积(multiplication)看作输入数据的情况下,最佳资源和最佳运行时间的乘积应和输入数据相同。这时,如果延迟运行,则添加资源。如果运行快,则减少资源。使得延迟时间接近0的资源成为最佳资源。如果在前作业J1的服务延迟时间是10,则作业J2的最佳资源如下确定。
输入数据=(必要资源×预测运行时间)=(最佳资源×最佳运行时间)
2个CPU(必要资源)×30(预测运行时间)=60=输入数据
输入数据=60=3个CPU(最佳资源)*20(最佳运行时间)
30(预测运行时间)–20(最佳运行时间)=10=服务延迟时间
所以,作业J2的最佳资源成为3×CPU,并且检查最佳资源是否可用。如果可用,则分配最佳资源,使得运行作业J2。
如果运行作业J2,则基于作业J2的实际运行时间来确定实际服务时间和服务延迟时间。通过分配比必要资源更多的最佳资源,作业J2的实际运行时间变得比预测运行时间更短。即,作业J1的运行延迟时间不直接链接到服务延迟时间,并且可通过作业J2的运行来安排(settle)运行延迟时间。
另一方面,因为作业J1具有比预测运行时间更短的实际运行时间,所以如果从作业J2中指定的在前运行阈值的范围导出实际运行时间,则可能通过分配比作业J2中指定的必要资源更少的最佳资源,来分配用于其他服务运行的过剩资源,维持用户对服务运行时间的满意度。
即,根据本发明的实施例,在服务包括具有基于并行编程的应用并按照管线形式构造的两个或多个作业的情况下,用于作业运行的资源分配方法使得通过在前作业运行的延迟或迅速来确定要向在后作业分配的资源量。结果,可能有效利用簇中的资源,同时维持用户对服务运行时间的满意度。
尽管已针对优选实施例示出和描述了本发明,但是本发明不限于此。本领域技术人员将理解的是,可进行各种改变和修改,而不脱离以下权利要求中限定的本发明的范围。

Claims (15)

1.一种资源分配方法,包括:
基于包括作业顺序的调度策略来选择作业;
基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源;和
基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
2.一种资源分配方法,包括:
基于包括作业顺序的调度策略来选择作业;
检查当选择作业时是否正常完成在前作业;
如果正常完成在前作业,则计算在预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值;
检查所计算的差值是否在预定在前运行阈值的范围中;
如果所计算的差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源,并确定该最佳资源是否可用;
如果所计算的差值在预定在前运行阈值的范围中,则确定必要资源是否可用;和
如果确定该必要资源或该最佳资源可用,则向所选择的作业分配资源,并运行所选择的作业。
3.根据权利要求2的方法,其中该预定在前运行阈值表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。
4.根据权利要求3的方法,其中该预定在前运行阈值表示为运行时间的值或比率(%)。
5.根据权利要求2的方法,其中所述计算最佳资源的步骤包括:如果所计算的差值不在该预定在前运行阈值的范围中,则计算该最佳资源以分配比该必要资源更多或更少的资源。
6.根据权利要求2的方法,其中所述确定该必要资源或该最佳资源是否可用的步骤包括:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
7.根据权利要求2的方法,进一步包括:
当完成所选择的作业的运行时,生成包括所选择的作业的运行时间的运行相关信息;和
在数据库中存储该运行相关信息。
8.一种资源分配设备,包括:
队列管理器,配置为在数据库中注册用于选择作业的作业信息,响应于用户的作业提交请求来使得作业进入队列,并响应于作业调度器的请求来使得从该队列中出列;
资源管理器,配置为管理可用资源的状态信息;
作业调度器,配置为选择要运行的下一作业,并在检测到完成的作业时,基于从数据库提供的在前作业的运行时间相关信息和从资源管理器提供的状态信息,来确定可用于所选择的作业的必要资源或最佳资源;和
资源分配管理器,配置为基于该必要资源或该最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
9.根据权利要求8的设备,其中该运行时间相关信息包括在前作业的服务运行时间、预定预测运行时间、以及预定在前运行阈值。
10.根据权利要求9的设备,其中该作业调度器包括:
在前作业检查块,配置为选择要运行的作业,检查是否正常完成所选择的作业的在前作业,如果正常完成在前作业,则计算预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值,并检查该差值是否在该预定在前运行阈值的范围中;
最佳资源计算块,配置为如果该差值不在该预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;和
资源确定块,配置为基于该必要资源或该最佳资源是否可用,来确定该必要资源或该最佳资源。
11.根据权利要求10的设备,其中该预定在前运行阈值表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。
12.根据权利要求11的设备,其中该在前作业检查块配置为将该预定在前运行阈值表示为运行时间的值或比率(%)。
13.根据权利要求10的设备,其中该最佳资源计算块配置为,如果所述差值不在该预定在前运行阈值的范围中,则计算该最佳资源以分配比该必要资源更多或更少的资源。
14.根据权利要求10的设备,其中该资源确定块配置为:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
15.根据权利要求8的设备,其中该资源分配管理器配置为:当完成所选择的作业时,生成包括所选择的作业的运行时间的运行相关信息,并在数据库中存储该运行相关信息。
CN201310248688.0A 2013-01-30 2013-06-21 用于分配资源的设备和方法 Pending CN103970606A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0010378 2013-01-30
KR1020130010378A KR101770191B1 (ko) 2013-01-30 2013-01-30 자원 할당 방법 및 그 장치

Publications (1)

Publication Number Publication Date
CN103970606A true CN103970606A (zh) 2014-08-06

Family

ID=51240140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310248688.0A Pending CN103970606A (zh) 2013-01-30 2013-06-21 用于分配资源的设备和方法

Country Status (2)

Country Link
KR (1) KR101770191B1 (zh)
CN (1) CN103970606A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959891A (zh) * 2017-03-30 2017-07-18 山东超越数控电子有限公司 一种实现gpu调度的集群管理方法和系统
CN109063897A (zh) * 2018-07-03 2018-12-21 蔚来汽车有限公司 服务系统中服务资源的产能预测方法、系统与设备
CN110389816A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于资源调度的方法、装置以及计算机程序产品
CN111090401A (zh) * 2020-03-23 2020-05-01 上海飞旗网络技术股份有限公司 存储设备性能预测方法及装置
CN111198755A (zh) * 2019-12-23 2020-05-26 曙光信息产业(北京)有限公司 一种基于slurm作业调度系统的预计费装置和方法
CN112269650A (zh) * 2020-12-18 2021-01-26 北京达佳互联信息技术有限公司 任务调度方法、装置、电子设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486644A (zh) * 2020-11-27 2021-03-12 北京百度网讯科技有限公司 用于生成信息的方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1967488A (zh) * 2005-11-15 2007-05-23 索尼计算机娱乐公司 任务分配方法和任务分配装置
CN1993677A (zh) * 2004-07-30 2007-07-04 法国原子能委员会 任务处理的调度方法及应用该方法的装置
CN100576176C (zh) * 2005-04-21 2009-12-30 国际商业机器公司 调度工作单元执行的方法和系统
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN102521056A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 任务分配装置和任务分配方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4015898B2 (ja) 2002-07-26 2007-11-28 松下電器産業株式会社 プログラム実行装置
JP5377231B2 (ja) 2009-10-30 2013-12-25 株式会社東芝 ジョブネット制御プログラムおよびジョブネット制御装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993677A (zh) * 2004-07-30 2007-07-04 法国原子能委员会 任务处理的调度方法及应用该方法的装置
CN100576176C (zh) * 2005-04-21 2009-12-30 国际商业机器公司 调度工作单元执行的方法和系统
CN1967488A (zh) * 2005-11-15 2007-05-23 索尼计算机娱乐公司 任务分配方法和任务分配装置
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN102521056A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 任务分配装置和任务分配方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959891A (zh) * 2017-03-30 2017-07-18 山东超越数控电子有限公司 一种实现gpu调度的集群管理方法和系统
CN110389816A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于资源调度的方法、装置以及计算机程序产品
CN110389816B (zh) * 2018-04-20 2023-05-23 伊姆西Ip控股有限责任公司 用于资源调度的方法、装置以及计算机可读介质
CN109063897A (zh) * 2018-07-03 2018-12-21 蔚来汽车有限公司 服务系统中服务资源的产能预测方法、系统与设备
CN111198755A (zh) * 2019-12-23 2020-05-26 曙光信息产业(北京)有限公司 一种基于slurm作业调度系统的预计费装置和方法
CN111090401A (zh) * 2020-03-23 2020-05-01 上海飞旗网络技术股份有限公司 存储设备性能预测方法及装置
CN112269650A (zh) * 2020-12-18 2021-01-26 北京达佳互联信息技术有限公司 任务调度方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
KR101770191B1 (ko) 2017-08-23
KR20140097815A (ko) 2014-08-07

Similar Documents

Publication Publication Date Title
CN103970606A (zh) 用于分配资源的设备和方法
US20220027202A1 (en) Stream-based accelerator processing of computational graphs
Liu et al. Online multi-workflow scheduling under uncertain task execution time in IaaS clouds
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
CN109254842B (zh) 分布式流式系统的资源管理方法、装置及可读存储介质
Tsai et al. A hyper-heuristic scheduling algorithm for cloud
US9354938B2 (en) Sequential cooperation between map and reduce phases to improve data locality
US20090077235A1 (en) Mechanism for profiling and estimating the runtime needed to execute a job
US20160226966A1 (en) Task management among multiple servers
EP3374933A2 (en) Training neural networks represented as computational graphs
Kaminsky et al. Due Date Quotation Models and Algorithms.
US11816509B2 (en) Workload placement for virtual GPU enabled systems
CN105474204A (zh) 确定性的渐进式大数据分析
US20070226743A1 (en) Parallel-distributed-processing program and parallel-distributed-processing system
CN106648831B (zh) 基于萤火虫算法和动态优先级的云工作流调度方法
Zikos et al. A clairvoyant site allocation policy based on service demands of jobs in a computational grid
CN108134851B (zh) 数据传输的服务质量控制方法及装置
JP2009037369A (ja) データベースサーバへのリソース割当て方法
Mulge Optimization of Task Scheduling Algorithm Using Modified Mean Grey-Wolf.
CN113452546A (zh) 深度学习训练通信的动态服务质量管理
Pietri et al. Fairness in dataflow scheduling in the cloud
Han et al. Multiple rules decision-based DE solution for the earliness-tardiness case of hybrid flow-shop scheduling problem
US8201023B2 (en) Test optimization
Qian et al. Enhancing user experience of task assignment in spatial crowdsourcing: a self-adaptive batching approach
CN113254200B (zh) 资源编排方法及智能体

Legal Events

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

Application publication date: 20140806