首页> 中国专利> 用于将多个作业分配给多个计算机的方法、系统和计算机程序

用于将多个作业分配给多个计算机的方法、系统和计算机程序

摘要

优选实施例提供了一种用于从多个候选工作负荷分配确定最佳工作负荷分配的机制,每个所述候选工作负荷分配都已被确定为优化工作负荷调度问题的一个特定方面。具体地说,优选实施例根据资源选择策略确定工作负荷分配。从该工作负荷分配,优选实施例可选地根据作业优先级确定工作负荷分配。从上述两个参数或其中之一,优选实施例根据总的按优先顺序排列的权重参数确定工作负荷分配。优选实施例还确定尝试将先前确定的候选工作负荷分配与目标分配相匹配的工作负荷分配。类似地,优选实施例计算尝试最大化作业吞吐量的其他工作负荷分配。

著录项

  • 公开/公告号CN101836190A

    专利类型发明专利

  • 公开/公告日2010-09-15

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200880113240.5

  • 发明设计人 P·戴达;F·本内德蒂;

    申请日2008-08-05

  • 分类号G06F9/50;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-18 00:52:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-13

    授权

    授权

  • 2010-11-03

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20080805

    实质审查的生效

  • 2010-09-15

    公开

    公开

说明书

技术领域

本发明涉及用于将多个作业分配给多个计算机的方法、系统和计算机程序。

背景技术

工作负荷调度是IT环境的越来越重要的部分。实际上,通过跨一组分布式资源(例如,计算、存储、通信容量、软件许可、专用设备等)调度工作来驱动许多网格计算环境。多数网格系统都包括作业调度器,以查找在其上运行用户所提交的作业的机器。简单的作业调度器将作业分配给其资源与作业需求匹配的下一可用机器。但是,较高级的调度器实现作业优先级系统,其中将优先级较高的作业优先分配给网格机器。调度器还可实现策略,提供对作业、用户和资源的各种约束(例如,限制网格作业在一天中的特定时间的执行)。

本质上,调度是一个优化问题,当只涉及一种资源类型(例如,CPU)时,调度是相当简单的。当通过在调度过程中包括更多资源变量可以实现进一步的性能提高时,所得的多变量优化变成了一个困难的数学问题。在尝试简化问题时,现有技术的工作负荷分配算法通常假设分配问题是在基本同类的环境中部署基本同类的作业的问题。因此,这些现有技术算法未能认识到不同的作业一般具有不同的资源要求。类似地,现有技术算法通常未能认识到给定作业部署对后续作业的影响程度,从而影响系统的整体作业吞吐量。

发明内容

根据本发明,提供了一种将多个作业分配给多个计算机的方法,所述方法包括以下步骤:

-确定所述作业与所述计算机的多个可能的配对,以产生多个临时性分配;

-根据所述临时性分配满足每个作业的个别要求的程度对所述临时性分配进行分级;

-根据所述临时性分配匹配预定分配的程度对所述临时性分配进行分级;

-根据所述临时性分配最大化所述计算机的吞吐量的程度对所述临时性分配进行分级;

-从所述分级确定最佳分配;以及

-根据所述最佳分配将所述作业或所述作业中的每个作业部署到所述计算机或所述计算机中的每个计算机。

与现有技术工作负荷调度系统相比,优选实施例同时考虑了要分配的作业以及可能向其分配作业的资源的不同方面。在此方面,优选实施例的基本原则之一是:每个作业都具有不同的特征并且应根据其自己的要求单独进行优化。

此外,优选实施例与现有技术工作负荷调度系统不同,因为它认识到给定作业分配对其他后续作业的操作的影响。具体而言,优选实施例认识到,将作业部署到给定资源可导致所述作业实际上保留所述资源,从而阻止将其他后续作业部署到所述资源。

附图说明

在此将参考附图仅通过实例的方式描述本发明的实施例,这些附图是:

图1是优选实施例的操作的流程图;

图2是优选实施例中的多个作业的实例的资源选择策略的表;

图3是优选实施例针对图2中所示的作业识别的资源的表;

图4是图2中所示的实例中的作业的资源的重新排序的表;

图5是优选实施例针对图3中所列的资源产生的正规化权重的表;

图6是图2的实例内的N个作业的基于权重的分配目标的表;

图7是图2的实例内的每个作业的优选资源的按优先顺序排列的权重的表;

图8是考虑时间问题时所产生的多个可能工作负荷分配中的作业-资源对的表;

图9是图8中所示的作业-资源配对的总的按优先顺序排列的加权值的表;

图10是目标分配和使用优选实施例的先前步骤确定的多个实际工作负荷分配的表;

图11是图10中所示的作业-资源对的增量平方分配值和正规化后的增量平方分配值的表;

图12是优选实施例确定的多个工作负荷分配中的每个工作负荷分配对系统作业吞吐量的贡献程度的度量的表;

图13是优选实施例使用图9和图11中所示的变量产生的最佳工作负荷分配值的表;以及

图14是优选实施例在其上工作的计算机的方块图。

具体实施方式

A.概述

优选实施例提供了一种用于从多个候选工作负荷分配确定最佳工作负荷分配的机制,每个所述候选工作负荷分配都已被确定为优化工作负荷调度问题的一个特定方面。更具体地说,参考图1,优选实施例根据资源选择策略确定(10)工作负荷分配((W(rk,jk)))。从此工作负荷分配((W(rk,jk))),优选实施例根据作业优先级可选地确定(12)工作负荷分配(PW(rk,jk))。

从上述两个参数或其中之一,优选实施例根据总的按优先顺序排列的权重参数确定(14)工作负荷分配。优选实施例还确定(16)尝试将先前确定的候选工作负荷分配与目标分配相匹配的工作负荷分配。类似地,优选实施例计算(18)尝试最大化作业吞吐量的其他工作负荷分配。从所有这些工作负荷分配,优选实施例计算(20)有效地考虑了以下可配置因素的总体最佳工作负荷分配:

-每个作业的资源选择策略;

-作业优先级(可选)

-工作平衡;以及

-作业吞吐量

在确定总体最佳工作负荷分配中,优选实施例在上述变量的基础上,通过为所述变量提供同类值(在区间[0-100]中)并开发包括所有变量的目标函数,来评估和比较候选作业分配的优点。

出于实例目的,在IBM Tivoli Dynamic Workload Broker(ITDWB)的上下文内描述优选实施例。但是,将理解的是,优选实施例并不限于此实施方式并且可在各种不同的软件平台中实现。

B.更详细的描述

步骤1:根据资源选择策略确定正规化后的独立工作负荷分配。

要执行的作业通常具有一组资源约束(例如可用磁盘空间、存储器等),它们确定了可以向其提交作业以便执行的目标(即“可用”资源)。每个作业还具有资源选择策略,它对满足作业要求的可用资源进行分级。这些策略本质上包括可用资源的特定属性的最大化或最小化。例如,需要大量CPU处理的作业可以将“最小化CPU利用率”作为其资源选择策略。在此情况下,首选具有较小CPU利用率的可用资源。类似地,需要大量空闲存储器的作业可以将“最大化空闲存储器”作为资源选择策略。在此情况下,首选具有更多空闲存储器的可用资源。

因此,为了简洁,假设具有N个要执行的作业J∈RN;并且假设对于每个作业jiJ,存在m(i)个可用资源Ri∈Rm(i)。每个作业ji具有形式为MIN|MAX RAttr(rip,ji)(i=1到N;p=1到m(i))的资源选择策略,其中RAttr是要最小化或最大化的属性。参考图2,例如,假设作业j1具有选择包括最小属性值RAttr(r1p,j1)的资源的资源选择策略。类似地,假设作业j2具有选择包括最大属性值RAttr(r2p,j2)的可用资源的资源选择策略;以及作业j3具有选择包括最大属性值RAttr(r3p,j3)的可用资源的资源选择策略。更概括地说,假设作业jn具有选择包括最大属性值RAttr(rnp,jn)的可用资源的资源选择策略。参考图3,例如,假设作业j1、j2、j3以及jn的可用资源是r1={r1,r2}、r2={r1,r2,r3}、r3={r2,r3,r4,r6}以及rn={r2,r5}。优选实施例根据作业的资源选择策略和可用资源的相关属性的值,对每个作业ji的可用资源进行排序。例如,如果RAttr(r11,j1)>RAttr(r12,j1),并且资源选择策略要求相关属性的最小化,则作业j1的排序后的资源列表将变为r2、r1。更概括地说并参考图4,优选实施例使用图2中所示的资源选择策略将作业j2的资源重新排序为r1、r3以及r2;将作业j3的资源重新排序为r2、r3、r6以及r4;将作业jn的资源重新排序为r5、r2

虽然此排序过程提供了给定作业的最佳可用资源的指示,但它未提供任何有关最佳可用资源超出其他可用资源的程度的信息。例如,优选实施例可能已经确定CPU利用率为10%的可用资源优于CPU利用率为11%的第一其他可用资源或CPU利用率为90%的第二其他可用资源。但是,这并不表明最佳可用资源稍稍优于第一其他可用资源并远远优于第二其他可用资源。类似的考虑适用于具有绝对值的资源属性,例如空闲存储器。为了克服此问题,优选实施例使用范围0-100中的权重对属性进行正规化。例如,如果作业jk的资源选择策略包括最大化运算,则针对作业jk的可用资源rk的加权(W(rk,jk))通过下式给出:

W(rkp,jk)=(RAttr(rkp,jk)Σp=1m(k)RAttr(rkp,jk))*100---(1)

类似地,如果作业jk的资源选择策略包括最小化运算,则针对作业jk的可用资源rk的加权(W(rk,jk))通过下式给出:

W(rkp,jk)=(RAttr(rkp,jk)-1Σp=1m(k)RAttr(rkp,jk)-1)*100---(2)

例如,如果对于作业j1存在三个可用资源(CPU利用率为10%、11%和90%);并且该作业的资源选择策略包括最小化运算,则资源的正规化权重为:

W(r11,j1)=((1/10)/(1/10+1/11+1/90))*100

          =((1/10)/(0.20202))*100=49.5

W(r21,j1)=((1/11)/(1/10+1/11+1/90))*100

          =((1/11)/(0.20202))*100=45

W(r31,j1)=((1/90)/(1/10+1/11+1/90))*100

          =((1/90)/(0.20202))*100=5.5

类似地,例如,如果对于作业j1存在三个空闲存储器为1000、900和100Mb的资源;并且该作业的资源选择策略包括最大化运算,则资源的正规化权重为:

W(r11,j1)=((1000)/(1000+900+100))*100

          =((1000)/(2000))*100=50

W(r21,j1)=((900)/(1000+900+100))*100

          =((900)/(2000))*100=45

W(r31,j1)=((100)/(1000+900+100))*100

          =((100)/(2000))*100=5

参考图5,此过程提供了一组可比较的首选项值,它们可以被视为跨所有可用资源的一系列工作负荷分配(其中与作业的任何要求都不匹配的资源具有权重0)。

步骤2:根据作业优先级确定独立工作负荷分配。

上述用于确定工作负荷分配的机制本质上专注于评估可用资源的不同属性。但是,作业本身具有在其优先级中反映的不同属性。优选实施例(可选地)通过按如下方式计算每个作业的每个可用资源的按优先顺序排列的权重(PW),来考虑作业优先级对工作负荷分配的作用:

PW(rk,jk)=pi*W(rk,jk)         (3)

图7中示出了得到的按优先顺序排列的作业权重。

步骤3:计算总的按优先顺序排列的加权度量

先前的步骤产生了可以在任何给定时间采用的特定工作负荷分配。但是,这些步骤没有考虑资源约束和保留的时间方面。参考图8,当考虑此特性时,可以看到在任何给定时间实际上可能具有若干不同的工作负荷分配。例如,如果作业j1和j2都使用并保留整个资源r1,而不是r2;然后可以将j1部署到r1,将j2部署到r2。备选地,可以将j2部署到r1,将j1部署到r2;或将j1和j2部署到r2

为了简洁,并且为了避免与在先前步骤中确定的工作负荷分配混淆,从考虑资源约束和保留的时间方面产生的工作负荷分配将在此后被称为时间工作负荷分配。因此,在任何给定时刻,假设具有n个可能的时间工作负荷分配S,其中每个Sk(k=1到n)包括作业-资源对集合{jirl∈[1→m(i)]}(i=1到n)。在本步骤中,优选实施例根据每个可能的时间工作负荷分配Sk的按优先顺序排列的权重来评估其优点。为此,优选实施例使用以下表达式计算每个时间工作负荷分配Sk的所有按优先顺序排列的权重PW(irl∈[1→m(i)],ji)的总的按优先顺序排列的加权值TW(Sk)

TW(Sk)=Σi=1NPW(Sk(ji,rl[1m(i)]))---(4)

更具体地说,使用以下表达式将总的按优先顺序排列的加权TW(Sk)值正规化到范围0-100。

(Sk)=TW(Sk)Σk=1nTW(Sk)*100---(5)

在图9中示出了图8中的时间工作负荷分配的总的按优先顺序排列的加权值和正规化后的按优先顺序排列的加权值。正规化后的总的按优先顺序排列的加权值提供了用于比较每个单独时间工作负荷分配的优点的度量。具体地说,较高值的正规化后的总的按优先顺序排列的加权指示较好的时间工作负荷分配。

步骤4:根据目标分配计算分配解

在多数情况下,管理员可能已为系统指定了期望工作负荷分配,其中期望工作负荷分配被称为目标分配(GD)。例如,管理员可能已经指定跨所有资源同等地分配工作负荷。因此,给定五个资源,目标是为每个资源分配20%的作业。但是,优选实施例的先前步骤可能已经产生不同于目标分配(GD)的工作负荷分配。为了克服此问题,优选实施例计算总计增量平方分配(ΔDk),当ΔDk被添加到预先存在的分配(PD)和候选分配Sk时,将使其更接近目标分配(GD)。相应地,优选实施例实质上计算候选分配达到目标分配的程度的度量。

假设预先存在的分配(PD)被定义为每个资源的预先存在的作业数(PNJ)的集合{PNJ(R1),PNJ(R2),...,PNJ(Rm)},其中预先存在的作业数PNJ表示当算法根据入站作业开始计算新的分配时正在运行的作业数。此外,假设目标分配(GD)被定义为每个资源的目标分配(GD)的集合{GD(R1),GD(R2),...,GD(Rm)}。分配解Sk包括如何在有限数量(m)的资源之间分配多个入站作业(由系统在给定时间间隔内接收)的指示。更具体地说,分配解Sk可以一般地被描述为分配给每个可用资源的当前作业数CNJk的集合(即Sk={CNJk(R1),CNJk(R2),...CNJk(Rm)})。例如,参考图10,在三个候选分配S1、S2和S3中分配给资源R1的当前作业数为CNJ(R1)={2,1,0}。类似地,分配给资源R2的当前作业数由CNJ(R2)={1,1,2}给出。

优选实施例根据下面的等式(6),从候选分配(Sk)和预先存在的分配(PD)的当前作业数(CNJk(Rii=1到m))的组合计算计划分配(projecteddistribution,PD)。

PDk(Ri)=CNJk(Ri)+PNJ(Ri)Σi=1mCNJk(Ri)+PNJ(Ri)---(6)

其中m=资源数。

从此信息,优选实施例然后根据下面的等式7计算总计增量平方分配ΔDk(针对每个资源)。

ΔDk=Σi=1mΔDk(Ri)2=Σi=1m(GD(Ri)-PDk(Ri))2---(7)

其中ΔDk按如下方式被正规化到0-100:

ΔNDk=1ΔDkΣk=1NSol1ΔDk*100---(8)

总计增量平方分配ΔDk指示了计划分配与目标分配之间的距离。具体地说,较高值的正规化后的增量(delta)变量指示较好的候选分配解。例如,在图11中示出了图10中所示的权重分配、得到的PDk和ΔNDk

步骤5:根据最大化吞吐量的目标计算最佳分配解

取决于资源约束和保留,(在特定工作负荷分配中)将作业部署到给定资源可能会阻止将后续作业部署到此资源(直到第一作业完成)。结果,在实施给定工作负荷分配期间的任何给定时间,实际上可能具有不同数量的活动作业。这在试图保持高吞吐量时将导致问题。

因此,优选实施例计算工作负荷分配最大化系统吞吐量的程度的度量。更具体地说,假设工作负荷分配Sk包括每个资源的当前作业数(CNJ)的集合{CNJk(R1),CNJk(R2),...,CNJk(Rm)},使用等式9计算在给定工作负荷分配中部署的作业总数TNJk

TNJk=Σi=1mCNJk(Ri)---(9)

将每个解的作业总数TNJk正规化到范围0-100中的值,以便获得如下式给出的每个工作负荷分配的总作业分配TJD

TJDk=TNJkΣk=1NSolTNJk*100---(10)

总作业分配TJD值提供了工作负荷分配最大化作业吞吐量的程度的度量。给定图12中示出的分配,得到的TJDk由TJD1=33.333333、TJD2=33.333333和TJD3=33.333333给出(在此情况中,所有TJDk值都相等,因为所有工作负荷分配都分配相同数量的作业)。

步骤6:组合所有准则以获得最佳解

在先前的步骤中,优选实施例计算了从不同角度描述给定工作负荷分配的优点的正规化后的度量(0-100)。具体地说,优选实施例已经计算:

-正规化后的总权重(TNWk),它提供解与单独作业资源分配相比的优点的度量;

-距离目标分配的正规化后的增量(ΔNDk),它提供解与目标分配相比的优点的度量;以及

-总作业分配(TJDk)值,它提供了每个解的分配最大化作业吞吐量的程度的度量。

使用这些度量,可以将最佳分配OptD解定义为最大化以下表达式的分配

OptD=Max(αTNWk+μΔNDk+λTJDk)         (11)

其中α、μ、λ∈[0,1]可以用于具有不同的贡献或甚至排除任何准则。默认情况下,α、μ、λ可以被设置为1,以便最佳解是平均而言对所有先前标识的方面来说都是最佳的解。

根据上述实例,在图13中示出了得到的OptD值。参考图13,可以看到最佳工作负荷分配(其中α、μ、λ被设置为1)是S3。虽然此工作负荷分配在匹配个别首选项方面是最佳,但它在匹配目标分配方面并非最佳,并在吞吐量方面与其他分配相当。

其上运行优选实施例的计算机具有图14中所示的通用结构。更具体地说,所述系统的通用计算机以40表示。计算机40包括并行连接到系统总线42的若干单元。详细地说,一个或多个微处理器44控制计算机40的操作;RAM 46被微处理器44直接用作工作存储器,ROM 48存储引导计算机40的基本代码。外围单元(通过各自的接口)聚集在本地总线50的周围。具体地说,大容量存储器包括硬盘52和用于读取CD-ROM 56的驱动器54。此外,计算机40包括输入设备58(例如键盘和鼠标)和输出设备60(例如显示器和打印机)。网络接口卡(NIC)62用于将计算机40连接到网络。桥接单元64用作系统总线42与本地总线50的接口。每个微处理器44和桥接单元64可以作为请求访问系统总线42以传输信息的主机代理运行。仲裁器66管理对系统总线42的互斥访问的许可。

可以对上述内容进行变更和修改而不偏离本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号