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

文档序号:6504549
用于分配资源的设备和方法
【专利摘要】一种资源分配方法包括:基于包括作业顺序的调度策略来选择作业,基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源,和基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
【专利说明】用于分配资源的设备和方法
[0001](多个)相关申请
[0002]本申请要求2013年I月30日提交的韩国专利申请第10-2013-0010378号的权益,由此通过引用进行合并,如同全部在这里阐明一样。
【技术领域】
[0003]本发明涉及用于分配资源的方案,并更具体地,涉及适于在分布计算环境中执行包括按照管线(pipeline)形式配置的作业的服务的、用于分配资源的设备和方法。
【背景技术】
[0004]如公知的,资源管理系统管理簇中的计算资源并运行用户提交的作业。当前使用的资源管理系统包括简单Linux用途资源管理(Simple Linux Utility for ResourceManagement) (SLURM)系统、Terascale 开放源资源和队列管理器(Terascale Open-SourceResource and Queue Manager) (TORQUE)、太阳网格引擎(Sun Grid Engine) (SGE)等。
[0005]图1图示了典型资源管理系统的配置,其包括队列管理器102、作业调度器104、资源管理器106、资源分配管理器108、和资源110。
[0006]参考图1,队列管理器102接收用户提交的作业。当提交作业时,用户应设立或指定执行每一作业所必需的资源需求。提交的作业在作业调度器104选择之后运行。
[0007]作业调度器104从资源管理器106接收资源的状态信息,并确定何时使用计算资源、以及使用哪些计算资源,来运行作业。结果,可能根据调度策略而最佳地使用构成簇的资源。为此目的,资源管理器106向作业调度器104报告可用资源的状态信息。
[0008]资源分配管理器108接收作业调度器104所提供的关于要运行的作业的信息,并运行作业(参考 Kalim Qureshi, Syed Munir Hussain Shah, Paul Manuel, “Empiricalperformance evaluation of schedulers for cluster of workstations,,,Cluster Computing, Volumel4Issue2, June2011)o
[0009]图2是示出了根据现有技术的向所选择的作业分配资源并运行所选择的作业的处理的流程图。
[0010]参考图2,用户可在传统资源管理系统中设立或指定作业的运行顺序、关于预测的运行时间的信息、以及关于作业必需的资源的信息。传统资源管理系统在步骤202基于包括作业的运行顺序的调度策略来选择要运行的作业。
[0011]为了所选择的作业的运行,在步骤204检查所选择的作业的在前作业。在步骤206检查是否存在在前作业。如果确定存在在前作业,则在步骤208检查是否正常完成在前作业的运行。作为步骤206的检查处理的结果,如果确定不存在在前作业,则认为(presume)正常完成在前作业,并且过程进行到步骤210。
[0012]作为步骤208的检查处理的结果,如果确定没有正常完成在前作业,则过程回到步骤202,并且执行选择新作业的处理。
[0013]作为步骤208的检查处理的结果,如果确定正常完成在前作业,则在步骤210确定为了所选择的作业指定的必要资源是否是可用的。作为步骤210的确定处理的结果,如果不存在可用资源,则在步骤212暂停该过程达到预定时间,并然后进行确定是否存在可用资源的处理。
[0014]作为步骤210的确定处理的结果,如果必要资源是可用的,则向所选择作业分配可用资源,并然后过程进行在步骤214运行所选择作业的处理。
[0015]作为示例,当假设其中按照管线形式顺序运行三个作业Jl、J2和J3的服务S时,可如下基于诸如要运行的作业的规范、在前作业、必要资源、和预测的运行时间等属性,来定义用于运行服务S的输入到资源管理系统(RMS)的作业:
[0016]Jl= {作业 I,空,2 个 CPU, 20}
[0017]J2= {作业 2,Jl, 2 个 CPU, 30}
[0018]J3= {作业 3,J2, 3 个 CPU, 20}
[0019]这里,作为作业Jl、J2和J3的预测运行时间Jetime之和,来计算服务S的预测运行
时间 Setimeo Setime=Jletime+J2etime+J3etime=20+30+20=70
[0020]传统资源管理系统通过仅考虑是否完成在前作业Jl或J2,基于作业所指定的(多个)必要资源来搜索和分配(多个)资源,以运行作业J2或J3。
[0021]所以,如果构成该服务的作业中的至少一个具有比其预测运行时间更长的运行时间,则该服务的实际运行时间也变得更长,并由此用户满意度恶化。例如,如果作业Jl的实际运行时间Jlrtime是比预测运行时间长10分钟的30分钟,则服务S的实际运行时间变长至少10分钟。
[0022]Srtime ≥ Jlrtime+J2etime+J3etime=30+30+20=80
[0023]Jlrtime — Jletime=30 — 20=10 ( Srtime-Setime
[0024]即,在包括按照管线形式配置的多于两个作业的服务的情况下,传统资源管理系统具有的问题在于,作业运行延迟几个阶段与服务的运行的延迟直接关联。这仅因为,是否完成在前作业影响在后作业的运行。
[0025]另外,在传统资源管理系统中,如果在前作业在比它们的预测运行时间更短的时间中运行,则即使在用户的服务预测运行时间中存在余地,也向在后作业分配用户指定的(多个)资源,以运行在后作业。所以,这成为使得使用资源的效率恶化的因素,因为不能向其他服务的作业分派比满足用户的预测运行时间必需的资源更大的可用资源。

【发明内容】

[0026]所以,本发明的目的是提供一种通过指定在完成在前作业之前所花费的服务运行时间的阈值、来向在后作业分配比用户指定的必要资源更多或更少的资源的方法,由此一般改进用户对于资源管理系统中包括按照环线形式配置的两个或多个作业的服务的运行时间的满意度。
[0027]根据本发明的一个方面,提供了一种资源分配方法,包括:基于包括作业顺序的调度策略来选择作业;基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源;和基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
[0028]根据本发明的另一方面,提供了一种资源分配方法,包括:基于包括作业顺序的调度策略来选择作业;检查当选择作业时是否正常完成在前作业;如果正常完成在前作业,则计算在预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值;检查所计算的差值是否在预定在前运行阈值的范围中;如果所计算的差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;如果所计算的差值在预定在前运行阈值的范围中,则确定用户指定的用于运行所选择的作业的必要资源;确定该必要资源或该最佳资源是否可用;和如果确定该必要资源或该最佳资源可用,则向所选择的作业分配资源,并运行所选择的作业。
[0029]该预定在前运行阈值可表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。该预定在前运行阈值可表示为运行时间的值或比率(%)。
[0030]所述计算最佳资源的步骤可包括:如果所计算的差值不在该预定在前运行阈值的范围中,则计算最佳资源以分配比该必要资源更多或更少的资源。
[0031]所述确定该必要资源或该最佳资源是否可用的步骤可包括:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
[0032]所述方法可进一步包括:当完成所选择的作业的运行时,生成包括所选择的作业的运行时间的运行相关信息;和在数据库中存储该运行相关信息。
[0033]根据本发明的另一方面,提供了一种资源分配设备,包括:队列管理器,配置为在数据库中注册用于选择作业的作业信息,并响应于用户的作业提交请求来使得作业进入队列用于运行;资源管理器,配置为管理可用资源的状态信息;作业调度器,配置为选择作业用于下一运行,并基于从数据库提供的在前作业的运行时间相关信息和从资源管理器提供的状态信息,来确定可用于所选择的作业的最佳资源;和资源分配管理器,配置为基于该必要资源或该最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
[0034]该运行时间相关信息可包括在前作业的服务运行时间、预定预测运行时间、以及预定在前运行阈值。
[0035]该作业调度器可包括:在前作业检查块,配置为选择作业用于下一运行,检查是否正常完成在前作业,如果正常完成在前作业,则计算预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值,并检查该差值是否在预定在前运行阈值的范围中;最佳资源计算块,配置为如果该差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;和资源确定块,配置为基于用户指定的该必要资源或该最佳资源计算块所计算的该最佳资源是否可用,来确定该必要资源或该最佳资源。
[0036]该在前作业检查块可将该预定在前运行阈值表示为运行时间的值或比率(% )。
[0037]如果该差值不在该预定在前运行阈值的范围中,则该最佳资源计算块可以计算最佳资源以分配比该必要资源更多或更少的资源。
[0038]如果不存在要向所选择的作业分配的可用资源,则该资源确定块可以在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
[0039]当完成所选择的作业时,该资源分配管理器可生成包括所选择的作业的运行时间的运行相关信息,并在数据库中存储该运行相关信息。
[0040]根据本发明的实施例,在包括按照管线形式配置的多个作业的服务的情况下,对于该服务中每一阶段处的作业的运行,可根据在前作业的实际运行时间来改变资源量,并然后向该作业分配改变的资源量。结果,可能提供多个服务达到用户的预测运行时间,并改进使用资源的效率。
【专利附图】

【附图说明】
[0041]根据结合附图给出的实施例的以下描述,本发明的以上和其他目的和特征将变得清楚,其中:
[0042]图1是传统资源管理系统的配置;
[0043]图2是示出了根据现有技术的用于向所选择作业分配资源并运行所选择作业的处理的流程图;
[0044]图3图示了根据本发明实施例的资源分配设备的框图;
[0045]图4图示了图3中示出的作业调度器的详细框图;和
[0046]图5是示出了根据本发明实施例的用于向所选择作业分配资源并运行所选择作业的处理的流程图。
【具体实施方式】
[0047]在本发明的以下描述中,如果已知结构和操作的详细描述可使得本发明的主题模糊,则将省略其详细描述。以下术语是通过考虑本发明实施例中的功能而定义的术语,并可改变算符(operator)意欲用于本发明和实践。由此,在本发明的描述的全文中,应定义这些术语。
[0048]其后,将参考附图来详细描述本发明的实施例,使得它们可以由本领域技术人员容易地实现。
[0049]图3图示了根据本发明实施例的资源分配设备的框图。资源分配设备包括队列管理器302、作业调度器304、资源管理器306、数据库(DBMS) 308、资源分配管理器310、和资源 312。
[0050]用户可设立或指定信息,诸如关于构成服务的每一作业必需的资源的信息、预测运行时间等。另外,用户可指定作业的运行顺序和在前运行阈值。这里,在前运行阈值表示预测运行时间和在完成当前作业的所有在前作业所花费的实际运行时间之间的可接受的差。在前作业的实际运行时间和预测运行时间之间的差被表示为值或比率(%)。在本发明的实施例中,假设将在前运行阈值表示为比率。
[0051]根据本发明实施例的资源分配设备(或资源管理系统)使用在前运行阈值作为用于分配运行按照管线形式配置的多个作业的资源的参考信息,所述多个作业构成服务。基于用户指定的必要资源,在在前作业的实际运行时间不在预测运行时间的在前运行阈值的范围中的情况下,分配比必要资源更多或更少的资源。
[0052]根据本发明实施例的资源分配包括使用物理或虚拟计算节点的通过节点的资源分配、以及在单一计算节点中诸如中央处理单元(CPU)、图形处理单元(GPU)、存储器等的特定资源的分配。本发明可应用到以上两种资源分配方法。
[0053]参考图3,如果用户输入(指定)运行作业必需的作业信息(诸如在前作业信息、在前运行阈值、必要资源信息、预测运行时间等),则队列管理器302在数据库308中注册这些数据(即,作业信息)。队列管理器302具有提交的(排队的)作业,并根据请求而将这些作业提供到作业调度器304。这里,在前运行阈值表示所有在前作业之中根据具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。在前作业的预测运行时间和实际运行时间之间的差被表示或指定为值或比率(%)。
[0054]作业调度器304选择运行的作业,并基于从数据库308提取的在前作业的运行时间相关信息以及从资源管理器306提供的可用资源的状态信息,来确定用于所选择作业的可用必要或最佳资源。为了实现这些功能,作业调度器304可具有图4中示出的配置。这里,在前作业的运行时间相关信息可包括预定在前运行阈值、预测运行时间、以及在前作业的服务运行时间。
[0055]图4图示了图3中示出的作业调度器304的详细框图。作业调度器304包括在前作业检查块402、最佳资源计算块404、和资源确定块406。
[0056]参考图4,在前作业检查块402选择用于下一运行的作业,搜索在数据库308中存储的所选择作业的信息,并检查是否存在在前作业。如果存在在前作业,则在前作业检查块402检查是否正常完成在前作业。如果正常完成在前作业,则在前作业检查块402计算预测运行时间与在完成在前作业之前花费的服务运行时间之间的差值,并检查该差值是否在预定在前运行阈值的范围中。
[0057]S卩,如果不存在在前作业,则在前作业检查块402生成指示不存在在前作业的不存在检测信号,并将该不存在检测信号传递到资源确定块406。如果该差值在预定在前运行阈值的范围中,则在前作业检查块402生成指示该差值在该预定在前运行阈值的范围中的范围内检测信号,并将该范围内检测信号传递到资源确定块406。如果该差值不在预定在前运行阈值的范围中,则在前作业检查块402生成指示该差值不在该预定在前运行阈值的范围中的范围外检测信号,并将该范围外检测信号传递到最佳资源计算块404。这里,在前作业的不存在检测信号可意味着,如果不存在在前作业,则将在前作业看作正常完成。
[0058]如果从在前作业检查块402传递范围外检测信号,则最佳资源计算块404基于从资源管理器306提供的可用资源的状态信息来计算用于运行所选择的作业的最佳资源,并将所计算的最佳资源传递到资源确定块406。这里,当该差值不在预定在前运行阈值的范围中时,最佳资源计算块404可计算最佳资源,以分配比用户指定的必要资源更多或更少的资源。
[0059]如果从在前作业检查块402传递范围外检测信号,则资源确定块406基于从资源管理器306提供的可用资源的状态信息,来确定从最佳资源计算块404传递的最佳资源是否可用。此后,资源确定块406根据确定结果来生成资源分配控制信号,并将该资源分配控制信号传递到图3中示出的资源分配管理器310。这时,如果不存在要向所选择作业分配的可用资源,则资源确定块406可在预定时间过去之后再次执行用于确定最佳资源是否可用的处理。
[0060]如果从在前作业检查块402传递不存在检测信号或范围内检测信号,则资源确定块406确定从在前作业检查块402传递的必要资源是否可用。此后,资源确定块406执行范围外检测信号处理过程。
[0061]返回参考图3,资源管理器306管理在计算节点处可使用的可用资源的状态信息。资源管理器306管理的可用资源的状态信息可根据作业调度器304的资源搜索请求来搜索,并然后提供到作业调度器304。
[0062]资源分配管理器310基于计算的最佳资源或用户指定的必要资源来向所选择作业分配资源312,并运行所选择作业。另外,资源分配管理器310将运行结果传递到用户,当完成所选择作业的运行时生成包括所选择作业的运行时间的运行相关信息,并将运行相关信息存储在数据库308中。
[0063]数据库308中存储的作业信息可包括作业名称、在前作业名称、在前运行阈值、作业运行的必要资源、作业的预测运行时间等。根据本发明实施例的资源分配设备所设立的作业信息可包括实际运行时间、预测服务时间、实际服务时间、延迟时间等。作业的预测运行时间和必要资源可使用各种方法来设立,诸如从配置文件信息的提取或用户定义。
[0064]每一作业的预测服务时间是其在前作业的预测服务时间和作业的预测运行时间之和,并且当插入用户定义的作业信息时被计算和存储。这里,实际运行时间表示从选择作业到完成向所选择作业分配的资源中的所选择作业的运行所花费的时间。
[0065]每一作业的实际服务时间是其在前作业的实际服务时间和作业的实际运行时间之和。在不存在在前作业的情况下,所选择的作业的实际运行时间和实际服务时间相同。如果存在在前作业的各种运行路径,则基于具有最长预测运行时间的路径来计算预测服务时间和实际服务时间。将该服务延迟时间计算为预测服务时间和实际服务时间之间的差。如果服务延迟时间具有正值,则其表示该服务的延迟运行。另一方面,如果服务延迟时间具有负值,则其表示该服务的快速运行。
[0066]其后,将参考具有图3和4中所示上述配置的资源分配设备,来详细描述用于向用户提供资源分配服务的处理的序列。
[0067]图5是示出了根据本发明实施例的用于向所选择作业分配资源并运行所选择作业的处理的流程图。
[0068]参考图5,用户输入或指定作业运行必需的作业信息,该作业信息包括在前作业信息、在前运行阈值、必要资源信息、预测运行时间等。
[0069]此后,作业调度器304中的在前作业检查块402在步骤502基于包括作业顺序的调度策略来选择作业,在步骤504搜索数据库308中存储的选择作业信息,并在步骤506检查选择作业的在前作业是否存在于数据库308中。
[0070]作为步骤506的检查结果,如果不存在在前作业,则过程前进到步骤510,以将在前作业处理为正常完成。
[0071]作为步骤506的检查结果,如果存在在前作业,则在步骤508确定是否正常完成在前作业。作为步骤508的确定结果,如果确定没有正常完成在前作业,则过程返回到步骤502,用于选择要运行的新作业。
[0072]作为步骤508的确定结果,如果确定正常完成在前作业,则在前作业检查块402在步骤510计算在前作业的预测服务时间和实际服务时间之间的差值,并在步骤512检查所计算的差值是否在预定在前运行阈值的范围中。这里,预定在前运行阈值表示预测运行时间和完成当前作业的所有在前作业所花费的实际运行时间之间的可接受的差。在前作业的实际运行时间和预测运行时间之间的差值被表示为值或比率(% )。
[0073]作为步骤512的检查结果,如果计算的差值在预定在前运行阈值的范围中,则过程前进到步骤516。如果计算的差值不在预定在前运行阈值的范围中,则最佳资源计算块404在步骤514基于从资源管理器306提供的可用资源的状态信息,来计算用于运行所选择作业的最佳资源。这里,可将该最佳资源计算为比用户指定的必要资源更多或更少的资源。
[0074]然后,资源确定块406在步骤516基于从资源管理器306提供的可用资源的状态信息,来检查或确定来自在前作业检查块402的必要资源或来自最佳资源计算块404的最佳资源是否可用。作为步骤516的检查结果,如果不存在要向所选择作业分配的可用资源,则在步骤518等待预定时间之后,再次执行确定必要资源或最佳资源是否可用的处理。
[0075]作为步骤516的检查结果,如果存在要向所选择作业分配的(多个)可用资源,则资源确定块406生成资源分配控制信号,并将该资源分配控制信号传递到资源分配管理器310。
[0076]结果,资源分配管理器310在步骤520响应于资源分配控制信号,基于该必要资源或计算的最佳资源,来向所选择作业分配资源312,并使用资源312来运行所选择作业。
[0077]此后,资源分配管理器310在步骤522使用分配的资源来检查是否运行所选择的作业。作为步骤522的检查结果,如果确定完成所选择作业,则在步骤524生成包括所选择作业的运行时间的运行相关信息并存储在数据库308中。
[0078]作为示例,如表格1 一 1和表格1 一 2所示定义数据库308中存储的作业信息。
[0079]表格1— 1
[0080]
【权利要求】
1.一种资源分配方法,包括: 基于包括作业顺序的调度策略来选择作业; 基于可用资源的状态信息、在前作业的服务运行时间、预定预测运行时间、和在前运行阈值,来确定可用于所选择的作业的必要或最佳资源;和 基于所确定的必要或最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
2.一种资源分配方法,包括: 基于包括作业顺序的调度策略来选择作业; 检查当选择作业时是否正常完成在前作业; 如果正常完成在前作业,则计算在预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值; 检查所计算的差值是否在预定在前运行阈值的范围中; 如果所计算的差值不在预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源,并确定该最佳资源是否可用; 如果所计算的差值在预定在前运行阈值的范围中,则确定必要资源是否可用;和如果确定该必要资源或该最佳资源可用,则向所选择的作业分配资源,并运行所选择的作业。
3.根据权利要求2的方法,其中该预定在前运行阈值表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。
4.根据权利要求3的方法,其中该预定在前运行阈值表示为运行时间的值或比率(%)o
5.根据权利要求2的方法,其中所述计算最佳资源的步骤包括:如果所计算的差值不在该预定在前运行阈值的范围中,则计算该最佳资源以分配比该必要资源更多或更少的资源。
6.根据权利要求2的方法,其中所述确定该必要资源或该最佳资源是否可用的步骤包括:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
7.根据权利要求2的方法,进一步包括: 当完成所选择的作业的运行时,生成包括所选择的作业的运行时间的运行相关信息;和 在数据库中存储该运行相关信息。
8.一种资源分配设备,包括: 队列管理器,配置为在数据库中注册用于选择作业的作业信息,响应于用户的作业提交请求来使得作业进入队列,并响应于作业调度器的请求来使得从该队列中出列; 资源管理器,配置为管理可用资源的状态信息; 作业调度器,配置为选择要运行的下一作业,并在检测到完成的作业时,基于从数据库提 供的在前作业的运行时间相关信息和从资源管理器提供的状态信息,来确定可用于所选择的作业的必要资源或最佳资源;和 资源分配管理器,配置为基于该必要资源或该最佳资源,来向所选择的作业分配资源,并运行所选择的作业。
9.根据权利要求8的设备,其中该运行时间相关信息包括在前作业的服务运行时间、预定预测运行时间、以及预定在前运行阈值。
10.根据权利要求9的设备,其中该作业调度器包括: 在前作业检查块,配置为选择要运行的作业,检查是否正常完成所选择的作业的在前作业,如果正常完成在前作业,则计算预测运行时间和完成在前作业之前所花费的服务运行时间之间的差值,并检查该差值是否在该预定在前运行阈值的范围中; 最佳资源计算块,配置为如果该差值不在该预定在前运行阈值的范围中,则计算用于运行所选择的作业的最佳资源;和 资源确定块,配置为基于该必要资源或该最佳资源是否可用,来确定该必要资源或该最佳资源。
11.根据权利要求10的设备,其中该预定在前运行阈值表示所有在前作业之中的具有最长运行时间的最长运行路径的、实际运行时间和预测运行时间之间的差的可接受范围。
12.根据权利要求11的设备,其中该在前作业检查块配置为将该预定在前运行阈值表示为运行时间的值或比率(%)。
13.根据权利要求10的设备,其中该最佳资源计算块配置为,如果所述差值不在该预定在前运行阈值的范围中,则计算该最佳资源以分配比该必要资源更多或更少的资源。
14.根据权利要求10的设备,其中该资源确定块配置为:如果不存在要向所选择的作业分配的可用资源,则在等待预定时间之后,重新确定该必要资源或该最佳资源是否可用。
15.根据权利要求8的设备,其中该资源分配管理器配置为:当完成所选择的作业时,生成包括所选择的作业的运行时间的运行相关信息,并在数据库中存储该运行相关信息。
【文档编号】G06F9/50GK103970606SQ201310248688
【公开日】2014年8月6日 申请日期:2013年6月21日 优先权日:2013年1月30日
【发明者】崔贤花, 裵承朝 申请人:韩国电子通信研究院
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1