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

文档序号:6478775阅读:270来源:国知局
专利名称:用于将多个作业分配给多个计算机的方法、系统和计算机程序的制作方法
技术领域
本发明涉及用于将多个作业分配给多个计算机的方法、系统和计算机程序。
背景技术
工作负荷调度是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(ik, jk)))。从此工作负荷分配((W(iik,jk))),优选实施例根据作业优先级可选地确定(12)工作 负荷分配(PW(iik,jk))。从上述两个参数或其中之一,优选实施例根据总的按优先顺序排列的权重参数确 定(14)工作负荷分配。优选实施例还确定(16)尝试将先前确定的候选工作负荷分配与目 标分配相匹配的工作负荷分配。类似地,优选实施例计算(18)尝试最大化作业吞吐量的其 他工作负荷分配。从所有这些工作负荷分配,优选实施例计算(20)有效地考虑了以下可配 置因素的总体最佳工作负荷分配-每个作业的资源选择策略;-作业优先级(可选)-工作平衡;以及-作业吞吐量在确定总体最佳工作负荷分配中,优选实施例在上述变量的基础上,通过为所述变量提供同类值(在区间W-100]中)并开发包括所有变量的目标函数,来评估和比较候 选作业分配的优点。出于实例目的,在 IBM Tivoli Dynamic Workload Broker(ITDffB)的上下文内描 述优选实施例。但是,将理解的是,优选实施例并不限于此实施方式并且可在各种不同的软 件平台中实现。B.更详细的描沭
制聚1 擁侧__石角飾搬后白■立工肺H要执行的作业通常具有一组资源约束(例如可用磁盘空间、存储器等),它们确定 了可以向其提交作业以便执行的目标(即“可用”资源)。每个作业还具有资源选择策略, 它对满足作业要求的可用资源进行分级。这些策略本质上包括可用资源的特定属性的最大 化或最小化。例如,需要大量CPU处理的作业可以将“最小化CPU利用率”作为其资源选择 策略。在此情况下,首选具有较小CPU利用率的可用资源。类似地,需要大量空闲存储器的 作业可以将“最大化空闲存储器”作为资源选择策略。在此情况下,首选具有更多空闲存储 器的可用资源。因此,为了简洁,假设具有N个要执行的作业J e Rn;并且假设对于每个作业 Ji ej,存在m(i)个可用资源EiE Rm⑴。每个作业么具有形式为MINI MAX RAttrOv Ji) (i = i到N ;p = i到m(i))的资源选择策略,其中RAttr是要最小化或最大化的属性。参 考图2,例如,假设作业J1具有选择包括最小属性值RAttr (!^,丄)的资源的资源选择策略。 类似地,假设作业j2具有选择包括最大属性值RAttr(r2p,j2)的可用资源的资源选择策略; 以及作业」3具有选择包括最大属性值RAttr (r3p,j3)的可用资源的资源选择策略。更概括 地说,假设作业jn具有选择包括最大属性值RAttr(rnp,jn)的可用资源的资源选择策略。参 考图3,例如,假设作业丄、j2、j3以及jn的可用资源是H1 = Ir1, r2}、!= IrljT2jT3I >r3 = {r2,r3,r4,r6}以及= {r2,r5}。优选实施例根据作业的资源选择策略和可用资源的相关 属性的值,对每个作业Ji的可用资源进行排序。例如,如果RAttr (^ijJ1) > RAttr (r12, J1), 并且资源选择策略要求相关属性的最小化,则作业J1的排序后的资源列表将变为r2、ri。更 概括地说并参考图4,优选实施例使用图2中所示的资源选择策略将作业j2的资源重新排 序为I^r3以及r2 ;将作业j3的资源重新排序为r2、r3、r6以及r4 ;将作业jn的资源重新排 序为r5、r2。虽然此排序过程提供了给定作业的最佳可用资源的指示,但它未提供任何有关最 佳可用资源超出其他可用资源的程度的信息。例如,优选实施例可能已经确定CPU利用率 为10%的可用资源优于CPU利用率为11%的第一其他可用资源或CPU利用率为90%的第 二其他可用资源。但是,这并不表明最佳可用资源稍稍优于第一其他可用资源并远远优于 第二其他可用资源。类似的考虑适用于具有绝对值的资源属性,例如空闲存储器。为了克 服此问题,优选实施例使用范围0-100中的权重对属性进行正规化。例如,如果作业jk的 资源选择策略包括最大化运算,则针对作业jk的可用资源&的加权(W(iik,jk))通过下式 给出
<formula>formula see original document page 7</formula>v ρ=1类似地,如果作业jk的资源选择策略包括最小化运算,则针对作业jk的可用资源
Xk的加权(W(4,jk))通过下式给出<formula>formula see original document page 7</formula>
例如,如果对于作业丄存在三个可用资源(CPU利用率为10%、11%和90% );并 且该作业的资源选择策略包括最小化运算,则资源的正规化权重为W(rn, ji) = ((1/10) / (1/10+1/11+1/90) )*100= ((1/10) / (0. 20202)) *100 = 49. 5W(r21, ji) = ((1/11) / (1/10+1/11+1/90) )*100= ((1/11)/(0· 20202) )*100 = 45W(r31, J11) = ((1/90) / (1/10+1/11+1/90)) *100= ((1/90)/(0· 20202) )*100 = 5. 5类似地,例如,如果对于作业J1存在三个空闲存储器为1000、900和IOOMb的资源; 并且该作业的资源选择策略包括最大化运算,则资源的正规化权重为Wrn, ji) = ((1000)/(1000+900+100) )*100= ((1000)/(2000)) *100 = 50W(r21, ji) = ((900)/(1000+900+100) )*100= ((900)/(2000))*100 = 45W(r31, J11) = ((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部署到巧,将j2部署到r2。备选地,可以将j2部署到r1; 将J1部署到r2 ;或将J1和j2部署到r2。 为了简洁,并且为了避免与在先前步骤中确定的工作负荷分配混淆,从考虑资源 约束和保留的时间方面产生的工作负荷分配将在此后被称为时间工作负荷分配。因此,在 任何给定时刻,假设具有η个可能的时间工作负荷分配S,其中每个仏(k = 1到η)包括作 业-资源对集合arle[1i(i)]} (i = 1到η)。在本步骤中,优选实施例根据每个可能的时 间工作负荷分配仏的按优先顺序排列的权重来评估其优点。为此,优选实施例使用以下表 达式计算每个时间工作负荷分配仏的所有按优先顺序排列的权重PW [^(⑴,么)的总 的按优先顺序排列的加权值TW(Sk)
<formula>formula see original document page 8</formula>更具体地说,使用以下表达式将总的按优先顺序排列的加权TW(Sk)值正规化到范 围 0-100。<formula>formula see original document page 8</formula>5)
Σ观⑷
k=l在图9中示出了图8中的时间工作负荷分配的总的按优先顺序排列的加权值和正 规化后的按优先顺序排列的加权值。正规化后的总的按优先顺序排列的加权值提供了用于 比较每个单独时间工作负荷分配的优点的度量。具体地说,较高值的正规化后的总的按优 先顺序排列的加权指示较好的时间工作负荷分配。步骤4 根据目标分配计算分配解在多数情况下,管理员可能已为系统指定了期望工作负荷分配,其中期望工作负 荷分配被称为目标分配(GD)。例如,管理员可能已经指定跨所有资源同等地分配工作负荷。 因此,给定五个资源,目标是为每个资源分配20%的作业。但是,优选实施例的先前步骤可 能已经产生不同于目标分配(GD)的工作负荷分配。为了克服此问题,优选实施例计算总计 增量平方分配(ADk),当Δ Dk被添加到预先存在的分配(PD)和候选分配Sk时,将使其更接 近目标分配(GD)。相应地,优选实施例实质上计算候选分配达到目标分配的程度的度量。假设预先存在的分配(PD)被定义为每个资源的预先存在的作业数(PNJ)的集合 IPNJ(R1),PNJ(R2),. . .,PNJ (Rm)},其中预先存在的作业数PNJ表示当算法根据入站作业开 始计算新的分配时正在运行的作业数。此外,假设目标分配(GD)被定义为每个资源的目标 分配(GD)的集合{GD (R1),GD (R2),...,⑶(Rm)}。分配解Sk包括如何在有限数量(m)的资 源之间分配多个入站作业(由系统在给定时间间隔内接收)的指示。更具体地说,分配解 Sk可以一般地被描述为分配给每个可用资源的当前作业数CNJk的集合(即Sk= (CNJk(R1), CNJk(R2),.. · CNJk(RmM)。例如,参考图10,在三个候选分配S1J2和S3中分配给资源Rl的 当前作业数为CNTOO = {2,1,0}。类似地,分配给资源R2的当前作业数由MIiE2I= U, 1,2}给出。优选实施例根据下面的等式(6),从候选分配(Sk)和预先存在的分配(PD)的当前 作业数(CNJk(RiI = 1 到 m))的组合计算计划分配(projecteddistribution,PD)。
<formula>formula see original document page 9</formula>
其中m=资源数。从此信息,优选实施例然后根据下面的等式7计算总计增量平方分配ADk(针对 每个资源)。<formula>formula see original document page 9</formula>
其中Δ Dk按如下方式被正规化到0-100 <formula>formula see original document page 9</formula>
总计增量平方分配ADk指示了计划分配与目标分配之间的距离。具体地说,较高 值的正规化后的增量(delta)变量指示较好的候选分配解。例如,在图11中示出了图10 中所示的权重分配、得到的PDk和Δ NDko步骤5根据最大化吞吐量的目标计算最佳分配解
取决于资源约束和保留,(在特定工作负荷分配中)将作业部署到给定资源可能 会阻止将后续作业部署到此资源(直到第一作业完成)。结果,在实施给定工作负荷分配期 间的任何给定时间,实际上可能具有不同数量的活动作业。这在试图保持高吞吐量时将导 致问题。因此,优选实施例计算工作负荷分配最大化系统吞吐量的程度的度量。更具 体地说,假设工作负荷分配&包括每个资源的当前作业数(CNJ)的集合ICNJk(R1), CNJk(R2),. . .,CNJk (Rm)},使用等式9计算在给定工作负荷分配中部署的作业总数TNJk。<formula>formula see original document page 9</formula>
将每个解的作业总数TNJk正规化到范围0-100中的值,以便获得如下式给出的每 个工作负荷分配的总作业分配TJD<formula>formula see original document page 9</formula>
总作业分配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)其中α、μ、λ e
可以用于具有不同的贡献或甚至排除任何准则。默认情 况下,α、μ、λ可以被设置为1,以便最佳解是平均而言对所有先前标识的方面来说都是 最佳的解。根据上述实例,在图13中示出了得到的OptD值。参考图13,可以看到最佳工作负 荷分配(其中α、μ、λ被设置为1)是S3。虽然此工作负荷分配在匹配个别首选项方面 是最佳,但它在匹配目标分配方面并非最佳,并在吞吐量方面与其他分配相当。其上运行优选实施例的计算机具有图14中所示的通用结构。更具体地说,所述 系统的通用计算机以40表示。计算机40包括并行连接到系统总线42的若干单元。详细 地说,一个或多个微处理器44控制计算机40的操作;RAM 46被微处理器44直接用作工作 存储器,ROM 48存储引导计算机40的基本代码。外围单元(通过各自的接口)聚集在本 地总线50的周围。具体地说,大容量存储器包括硬盘52和用于读取⑶-ROM 56的驱动器 54。此外,计算机40包括输入设备58(例如键盘和鼠标)和输出设备60 (例如显示器和打 印机)。网络接口卡(NIC)62用于将计算机40连接到网络。桥接单元64用作系统总线42 与本地总线50的接口。每个微处理器44和桥接单元64可以作为请求访问系统总线42以 传输信息的主机代理运行。仲裁器66管理对系统总线42的互斥访问的许可。可以对上述内容进行变更和修改而不偏离本发明的范围。
权利要求
一种将多个作业分配给多个计算机的方法,所述方法包括以下步骤-确定所述作业与所述计算机的多个可能的配对,以产生多个临时性分配;-根据所述临时性分配满足每个作业的个别要求的程度对所述临时性分配进行分级;-根据所述临时性分配匹配预定分配的程度对所述临时性分配进行分级;-根据所述临时性分配最大化所述计算机的吞吐量的程度对所述临时性分配进行分级;-从所述分级确定最佳分配;以及-根据所述最佳分配将所述作业或所述作业中的每个作业部署到所述计算机或所述计算机中的每个计算机。
2.如权利要求1中所述的方法,其中所述确定所述作业与所述计算机的多个可能的配 对的步骤包括以下步骤_通过将第一作业分配给其资源满足所述第一作业的要求的计算机以及将其余作业分 配给其资源满足所述其余作业的要求的其余计算机而产生第一临时性分配;以及_针对其资源满足所述第一作业的要求的每一个计算机重复所述产生第一临时性分配 的步骤。
3.如权利要求1或2中所述的方法,其中所述根据所述临时性分配满足每个作业的个 别要求的程度对所述临时性分配进行分级的步骤包括以下步骤_根据每个作业的资源选择策略确定(10)每个临时性分配的多个第一参数;和/或 _根据每个作业的优先级确定(12)每个临时性分配的多个第二参数;以及 -从所述第一和第二参数之一或两者确定(14)每个临时性分配的分级。
4.如权利要求3中所述的方法,其中所述确定每个临时性分配的多个第一参数的步骤 包括以下步骤-识别与每个作业的资源选择策略关联的资源属性; -确定每个计算机的所述资源属性的值;以及_根据与其他计算机的资源属性相比的每个计算机资源属性满足所述资源选择策略的 程度对所述计算机进行分级。
5.如任一上述权利要求中所述的方法,其中所述根据所述临时性分配匹配预定分配的 程度对所述临时性分配进行分级的步骤包括以下步骤-将被分配给每个计算机的作业数与当前在每个计算机上运行的作业数进行组合;以及_从每个计算机的组合后的作业数中减去在所述预定分配中被分配给每个计算机的作 业数。
6.如任一上述权利要求中所述的方法,其中所述根据所述临时性分配最大化所述计算 机的吞吐量的程度对所述临时性分配进行分级的步骤包括以下步骤-计算作为由每个临时性分配分配给计算机的作业总数的第一分配参数; -计算作为由所有临时性分配分配给所有计算机的作业总数的第二分配参数;以及 -计算所述第一分配参数占所述第二分配参数的百分比。
7.如任一上述权利要求中所述的方法,其中所述从所述分级确定最佳分配的步骤包括 以下步骤选择具有所述分级的最大组合值的临时性分配。
8.如任一上述权利要求中所述的方法,其中所述多个可能的配对包括所述作业与所述 计算机的每一个可能的配对。
9.一种用于将多个作业分配给多个计算机的系统,所述系统包括适于执行任一上述权 利要求中的方法的步骤的装置。
10.一种当在数据处理系统上执行时,用于执行权利要求1至8中的任一权利要求中的 方法的计算机程序。
11.一种存储在可由计算机读取的介质上的用于将多个作业分配给多个计算机的计算 机程序产品,所述计算机程序产品有形地体现权利要求10中的计算机程序。
全文摘要
优选实施例提供了一种用于从多个候选工作负荷分配确定最佳工作负荷分配的机制,每个所述候选工作负荷分配都已被确定为优化工作负荷调度问题的一个特定方面。具体地说,优选实施例根据资源选择策略确定工作负荷分配。从该工作负荷分配,优选实施例可选地根据作业优先级确定工作负荷分配。从上述两个参数或其中之一,优选实施例根据总的按优先顺序排列的权重参数确定工作负荷分配。优选实施例还确定尝试将先前确定的候选工作负荷分配与目标分配相匹配的工作负荷分配。类似地,优选实施例计算尝试最大化作业吞吐量的其他工作负荷分配。
文档编号G06F9/50GK101836190SQ200880113240
公开日2010年9月15日 申请日期2008年8月5日 优先权日2007年10月31日
发明者F·本内德蒂, P·戴达 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1