CN101126992A - 在网络中的多个节点中分配多个任务的方法和系统 - Google Patents
在网络中的多个节点中分配多个任务的方法和系统 Download PDFInfo
- Publication number
- CN101126992A CN101126992A CN200710129135.8A CN200710129135A CN101126992A CN 101126992 A CN101126992 A CN 101126992A CN 200710129135 A CN200710129135 A CN 200710129135A CN 101126992 A CN101126992 A CN 101126992A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- processor
- load
- sibship
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000011159 matrix material Substances 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000005259 measurement Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 10
- 230000008859 change Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 244000287680 Garcinia dulcis Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
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)
Abstract
一种在处理器网络中多个处理节点中分配多个任务的计算机实现方法,包括如下步骤:计算多个任务的任务处理消耗值;计算多个节点的测量的节点处理器消耗值;计算多个节点的目标节点处理器消耗值,所述目标节点处理器消耗值表明最佳节点处理器消耗;根据节点i的计算的节点处理器消耗值与节点i的目标节点处理器消耗值之间的差值来计算负载指数值;并且依照计算的负载指数值在节点当中分配任务以便在节点当中平衡处理器的工作负载,使得每个节点的计算的负载指数值基本上是零。所述方法还具体实现了一种多维平衡矩阵,矩阵的每一维表示对应于不同处理器类型的节点,并且每个单元表示分配给多个节点的任务。
Description
技术领域
本发明总体上涉及处理器负载平衡领域,具体而言,涉及处理器亲缘关系(affinity)负载平衡领域。
背景技术
在多处理器体系结构中,希望尽可能地在同一处理器上执行任务以便发挥高速缓存的效用。在非统一存储器访问(Non-UniformMemory Access,NUMA)体系结构中这是尤其重要的,在该体系结构中高速缓存间的访问等待时间明显高于高速缓存内部的访问等待时间。在这种NUMA体系结构中,如果频繁地把任务分派给没有共享硬件高速缓存的多个处理器,那么会出现相当大的性能退化。
为了尽可能地使任务在同一处理器(或者一组处理器)上执行,定义了被称为亲缘关系节点的逻辑概念。亲缘关系节点是共享硬件高速缓存的一组处理器。利用一个值(称为其亲缘关系)来标记任务,所述值用于将该任务与亲缘关系节点相关联。任务调度器(TaskDispatcher)通过始终把任务分派给属于由任务的亲缘关系值指定的亲缘关系节点的处理器来试图兑现(honor)任务的亲缘关系。
因为总是把任务分派给它们各自的亲缘关系节点,所以随着时间的经过,任务的改变特性和处理需求将在亲缘关系节点之间产生处理器负载不平衡。因此,需要处理器负载平衡机制来重新分配任务的亲缘关系,以便平衡跨越所有亲缘关系节点的总体系统处理器消耗。另外,亲缘关系节点可能包含不同数量的处理器,因此,每个亲缘关系节点可能具有不同的能力。术语“平衡”,不是经常使用的使所有亲缘关系节点上的处理器消耗相等的含义,而一般是指使所有亲缘关系节点上的处理器消耗满足特定标准。平衡系统的常用标准是这样一种标准,其中总体系统处理器消耗跨越所有亲缘关系节点、与其能力成比例地分布。
例如UNIX(以及UNIX变型)的成品操作系统中的现有处理器负载平衡方案具有一个共同的特性:它们都使用平均任务运行队列长度(average task run queue length)作为对处理器负载的估计。这是因为任务运行队列长度(亦称运行队列长度)容易测量,并且现今大部分的成品操作系统不具有嵌入式机制来以每一任务为基础进行精确的处理器消耗测量。虽然足以满足大多数情况的需要,但是平均任务运行队列长度并不总是准确地反映实际处理器负载。
参考图1,该图示出了具有两个节点的处理器网络100的简单示例,将用此示例来说明此概念。所述系统利用两个节点140和160以及逻辑任务管理器120和130来操作,其中每个节点包含一个CPU。任务管理器120把任务180分派给节点A 140,并且任务管理器130把任务分派给节点B 160。因为任务管理器120和130独立地操作,所以随着时间的经过,网络100内的处理器负载可能会因任务数目和到达节点140和160上的任务的CPU需求特性有很大不同而变得失衡。因此,需要平衡器150在任务管理器120和130之间移动任务,以便平衡节点140和160上的处理器负载。在已知的处理器网络中,平衡器150通过使用节点的平均运行队列长度来判断该节点上的处理器负载;队列长度越长,节点的负载越大。然而,正如我们下面举例说明的那样,此方法具有缺陷。
假定n+1个任务180进入亲缘关系节点A 140;所述节点在较短的一段时间t内使用其全部的处理能力;然后所有任务180结束。然后,在另外的n+1个任务180进入节点A以前,亲缘关系节点A 140中的处理器在较短的一段时间t内空闲,并且重复此循环,直到亲缘关系节点A的队列中不再有任务为止。对于节点A 140来说,处理器负载的平均值大约为50%(即,一半时间处理器繁忙而一半时间处理器空闲),并且运行队列长度大约为n/2(一半时间存在n个任务等待而一半时间没有任务在等待)。
现在考虑另一亲缘关系节点,即节点B 160,其中单个长期运行的处理器绑定任务使用节点B的全部处理能力并且没有别的任务在等待。对于此节点来说,处理器负载的平均值是100%(处理器总是繁忙),然而运行队列长度是零(没有任务在等待)。使用平均运行队列长度方法,所述平衡器150将把任务从半负载的节点A 140移动到全负载节点B 160,这往往使工作负载进一步失衡。
采用平均任务运行队列长度方法的另一个问题在于,当移动任务以便平衡处理器负载时,没有对被移动任务的实际处理器消耗给予任何考虑,这会导致系统进一步失衡。另一示例将说明这种情况。再次参照图1,假设除周期性地进入亲缘关系节点A的n+1个任务180以外,该亲缘关系节点A 140现在还具有占据CPU的长期运行的CPU绑定任务。对于此节点来说,处理负载平均为100%并且运行队列长度大约为(n+1)/2。现在考虑具有相同的单个长期运行的CPU绑定任务的亲缘关系节点B 160。对于节点B 160来说,处理负载平均为100%并且运行队列长度是0。此系统明显失衡并且需要把任务从节点A 140移动到节点B 160。平衡器150通常通过首先移动任务运行队列结束处的任务180来选择待移动的一个或多个任务,这是因为处于队列结束处的任务具有最长的等待时间。使用此方法而不考虑待移动的任务180的处理器消耗可能会使系统进一步失衡,这是因为在节点A 140上的长期运行的CPU绑定任务可能正巧是队列上的最后一个任务并且可能会被移动到节点B 160。结果,节点A 140将再次空闲一半时间(正如节点A 140不具有长期运行的CPU绑定任务的先前示例所示那样),同时节点B 160将因两个长期运行的CPU绑定任务而负担过重,而每个长期运行的CPU绑定任务只获得50%的处理器能力。
图2示出了具有多个处理器的处理器体系结构200中负载平衡的另一代表。该图示出了典型的NUMA处理器体系结构,其具有图1的两个亲缘关系节点,再加上两个另外的亲缘关系节点,每个节点现在具有四个CPU而不是一个。在实际中,亲缘关系节点的数目和每个节点中CPU的数目可以不同。每个节点中的四个CPU共享L2高速缓存(2级高速缓存,或者位于微处理器外部的高速缓冲存储器)。L2高速缓冲存储器驻留在独立于微处理器芯片的芯片上,这与驻留在微处理器芯片上的1级高速缓存相反。为了使多个CPU共享高速缓冲存储器,L2高速缓存是必需的。在此处理器体系结构200中,图1的任务管理器120和130现在实际是四个调度器,每个调度器负责一个节点。每个调度器为其特定节点接收任务的作业队列。调度器225把任务从作业队列A 220分派给节点A 140;调度器235把任务从作业队列B 230分派给节点B 160;调度器245把任务从作业队列C 240分派给节点C 250;并且调度器255把任务从作业队列D 250分派给节点D 260。
为了负载平衡的目的,每个节点经由网络200连接至网络中的每一其它节点。如图2所示的体系结构200是相当简单的多处理器体系结构,然而它可扩展到相当大的程度。实际上,随着现今不断增加的处理需求,成千的甚至数以万计的处理器的网络被使用,由此使得CPU负载平衡势在必行,然而现在的负载平衡算法达不到最佳平衡,这是因为平均运行队列长度不总是准确地反映实际处理器负载。
因此,需要一种处理器负载平衡方法来克服现有技术的缺陷。
发明内容
简单地讲,依照本发明,一种经由网络中的多个处理节点分配多个任务的用计算机实现的方法包括如下步骤:计算多个任务的任务处理消耗值;计算多个节点的测量的节点处理器消耗值;计算多个节点的目标节点处理器消耗值,所述目标节点处理器消耗值表明最佳节点处理器消耗;根据节点i的测量的节点处理器消耗值与节点i的目标节点处理器消耗值之间的差值来计算负载指数(index)值;在节点当中分配任务以便在节点当中平衡处理器工作负载,使得每个节点的计算的负载指数值基本上为零。
所述方法还具体实现了一种多维平衡矩阵,矩阵的每一维表示对应于不同处理器类型的节点,并且每个单元表示分配给多个节点的任务,所述方法实现了如下步骤:按照从最高负载指数值到最低负载指数值的顺序来排序计算的负载指数值;依照已排序的负载指数值来利用任务填充所述矩阵;在单元中重新布置任务以便表示节点当中处理器工作负载的平衡;以及依照所述矩阵表示来把任务分配至处理器。
所述方法还具体实现了一种多维平衡矩阵的扩展,其中每一维可以表示不同处理器类型的多个节点,所述方法包括如下步骤:根据预定的使用规则,重新布置单元中的任务,使得处理器工作负载可以从一种类型的节点自由地移动到另一类型的节点,但反向则不行。
附图说明
图1是依照现有技术的负载平衡系统的举例说明。
图2是依照现有技术的另一负载平衡系统的举例说明。
图3是举例说明依照本发明实施例的用于贪心(greedy)亲缘关系负载平衡的方法的流程图。
图4a、4b、4c是依照本发明实施例的在负载平衡系统中进行任务分配的说明。
具体实施方式
依照本发明的实施例的一种方法跨越位于处理器网络内的一组处理器组(称为亲缘关系节点)来执行总体系统处理器消耗的负载平衡。所述方法采用了这样一种算法,所述算法使用精确测量的亲缘关系节点CPU消耗和每一任务的CPU消耗数据。这种算法比使用平均任务运行队列长度(亦称为平均运行队列长度)的已知负载平衡算法有所改进,这是因为它使用实际的每一任务以及每一节点CPU消耗数据来避免与平均运行队列长度相关联的缺陷。
贪心负载平衡算法。
为了实现负载平衡目标,依照本发明实施例的算法使用了“贪心”方案,这种方案用于重复地把任务从负载最重的(最忙的)亲缘关系节点移动至负载最轻的(最空闲的)亲缘关系节点,直到没有任务可以被移动为止,由此使系统更接近目标。贪心算法存在于科学以及数学领域,并且当需要逐步问题解决方案时经常被使用。贪心算法的命名十分恰当,这是因为它基于此刻看起来的最佳移动来对是否移动任务做出判定,当同时考虑到所有可能的移动时,其最终也许是、也许不是最佳方案。尽管存在这种缺陷,贪心算法还是经常被使用,这是因为同时列举所有可能的移动并且试图找到绝对的最佳移动集合来实现平衡目标在计算上是不可行的。应用于处理器负载平衡的贪心算法(贪心亲缘关系负载平衡算法)采用如下输入:1)亲缘关系节点、它们的能力以及它们的测量的节点处理器消耗的列表;以及2)任务、它们的亲缘关系以及它们的测量的每一任务处理器消耗的列表。这种算法不同于参照图1讨论的算法之处在于,它考虑了每个节点以及每个任务的实际CPU消耗而不是平均运行队列长度。贪心亲缘关系算法的输出是任务亲缘关系值的重新分配,使得总体系统处理器消耗跨越所有亲缘关系节点与其能力成比例地被分配。
所述贪心亲缘关系负载平衡算法具有如下特征:
a)效率:用于平衡所需的计算非常简单并且每一任务最多被移动一次;
b)避免颠簸:在连续的平衡运行中,在把任务不断地从一个亲缘关系节点移动到另一个的情况下,避免了CPU颠簸;
c)异构:亲缘关系节点可以具有不同的类型(即,具有不同类型的CPU),并且每一任务具有一种以上类型的亲缘关系节点的CPU消耗;
d)不对称平衡:不同类型的亲缘关系节点之间的平衡可以是不对称的,即,可以把负载自由地从一种类型的亲缘关系节点移动到另一种类型的亲缘关系节点,但是反向不行;以及
e)反馈:提供向CPU消耗监视机制的反馈以便协调负载平衡和消耗测量精力。
为了量化系统接近其负载平衡目标的程度,可以进行某些简单的计算,并且将这些计算的结果报告给负载平衡器150或在分布式处理器网络中的处理器当中协调负载平衡的任何机制。第一个计算将为每个亲缘关系节点i计算负载指数(li)。li是节点i的测量的亲缘关系节点CPU消耗(ci)与节点i的目标亲缘关系节点CPU消耗(ti)之间的差值。此计算可以表示为:
li=ci-ti
其中ti是在总体系统CPU消耗跨越所有亲缘关系节点与其能力成比例地被分配的情况下亲缘关系节点的消耗。对于给定节点i的ti被如下计算:
1)对所有节点的测量的亲缘关系节点CPU消耗ci求和,并且对所有节点的亲缘关系节点能力pi求和;
2)用pi的和除ci的和;
3)把该商乘以给定节点i的亲缘关系节点能力pi。
其算术表达式为:
ti=pi*∑ci/∑pi
其中pi是亲缘关系节点能力。应注意的是,如果所有亲缘关系节点具有相同的能力,那么目标亲缘关系节点CPU消耗将仅仅是对所有亲缘关系节点求整个系统CPU消耗的均值。所述li用来度量亲缘关系节点的“负载”如何。li越高,亲缘关系节点的负载越大。应注意的是,li可以是负的,这意味着亲缘关系节点利用不足。贪心亲缘关系负载平衡算法的目标因此是使所有亲缘关系节点的li尽可能接近零。零代表完全平衡。为了度量亲缘关系节点CPU消耗的“跨度(spread)”,即,整个系统与其目标状态的距离(所述目标状态是所有亲缘关系节点的li是零),我们如下来计算负载指数偏差d:
其中n是亲缘关系节点的数目。应注意的是,当所有亲缘关系节点具有相同的能力时,d是常见的标准偏差。贪心亲缘关系平衡算法的进一步目的在于降低d,从而使其尽可能接近零。当把任务从一个亲缘关系节点移动到另一个时,为了看出d如何改变,我们如下来计算:
d2-d1=(d2 2-d1 2)/(d2+d1)=(v2-v1)/(d2+d1)
其中v=d2是负载指数方差,而下标1和2分别表示任务被移动前后的值。由于d1>0并且d2>0,如果v2-vl<0,那么d2-d1<0。也就是说,如果移动任务减小了负载指数方差,那么它也减小负载指数偏差。此外,当具有CPU消耗w的任务从亲缘关系节点i被移动到j时:
v1=(...+li 2+...+lj 2+...)/n
v2=(...+(li-w)2+...+(lj+w)2+...)/n
采用简单的数学,我们可以推导出:
v2-v1=2*w*(w+lj-li)/n
由于w>0并且n>0,如果w+li-li<0,那么v2-v1<0,这又意味着d2-d1<0。因此,为了确定把任务从亲缘关系节点i移动到j是否使系统更接近其平衡目标,我们仅仅需要检查不等式:w+lj-li<0。
当不等式成立时,所述移动将使系统更接近其平衡目标;否则将不会。
参考图3的流程图,贪心亲缘关系平衡算法的逻辑如下进行。在步骤310,平衡器150准备系统中所有亲缘关系节点的列表N。在步骤320,必须进行判定以便确定是否存在一个以上的亲缘关系节点。如果只存在一个亲缘关系节点,那么不需要在节点当中进行负载平衡。然而,如果系统包含一个以上的亲缘关系节点,那么处理移到步骤330以便找到每个节点i的li。一旦每个节点的li被计算,则必须识别具有最高负载指数值ls的节点S。另外,具有最低负载指数值lT的节点T也必须被识别。在此之后,准备亲缘关系节点S的所有任务的列表M。
移到步骤340,查询列表M。如果M等于零(即,没有具有亲缘关系节点S的任务),那么在步骤390把节点S从所有节点的列表N处移走,并且处理返回到步骤320。否则,从亲缘关系节点S的所有任务的列表M中找到最大CPU消耗任务W(其CPU消耗是w),然后将其从M中去除(从而使它只被移动一次)。在下一步骤360,计算w+lT-lS的值。如果此值小于零,那么任务从S移动到T将改进系统的平衡。因此,处理在步骤370继续以便把W的亲缘关系(从S)重新分配给T。否则,将任务从S移动到T将不会改进并且甚至恶化系统的平衡。因此,我们忽略此任务并且回到步骤340,以便从列表M中选择下一个最大CPU消耗任务。
接下来在步骤380,再次查询M以便确定它是否已经减小为零(不再有亲缘关系节点S的任务)。倘若如此,在步骤390,从亲缘关系节点的列表N中去除S,并且进行到步骤320,以便确定是否还剩下任何节点待处理。否则,如果M大于零(即,剩下亲缘关系S的至少一个任务),那么返回到步骤320,而不从列表N中去除S。所述过程将依照此方式继续,直到亲缘关系节点的列表减小为一为止。
用于处理图3的伪码如下:
Let N=the list of affinity nodes;
While(N has more than one affinity node)
{
Find the affinity node S with the highest load index value lS;
Find the affinity node T with the lowest load index value lT;
Let M=the list oftasks with affinity S;
While(M is not empty)
{
Find the largest CPU con suming task W in M;
Remove W from M;
if(w+lT-lS<0)
{
Reassign W′s affinity to be T;
break;
}
}
if(M is empty)Remove S from N;
}
实质上,图3流程图中描述的算法只有当移动造成负载指数偏差减小时,才重复地把最大CPU消耗任务W从负载最重的亲缘关系节点S移动到负载最轻的亲缘关系节点T。用于确定移动是否将造成负载指数偏差减小的条件,即:w+lT-LS<0,是非常简单的并且可以很快地计算。另外,每一任务只被移动一次,以便减少平衡器150本身引起的计算开销。应注意的是,每次移动任务时,负载最重的亲缘关系节点S和负载最轻的亲缘关系节点T可能改变;因此所述算法必须不断地更新其参数。当已经考虑了亲缘关系节点上的所有任务时,把亲缘关系节点从参与负载平衡的亲缘关系节点的列表N处移走。当列表N中只剩下一个亲缘关系节点时,所述算法结束。应该理解的是,如图1所示,平衡器150仅仅是用于执行上述步骤的逻辑的一种表示。本领域技术人员将理解的是,在本发明的精神和范围内,其它表示也是可以的。
负载平衡算法的一个重要特征在于避免CPU颠簸。当在连续的平衡运行中把任务重复地从一个亲缘关系节点移动到另一个时,会出现CPU颠簸。采用基于运行队列长度的平衡算法,当所述算法试图严格地平衡运行队列长度(即,使所有单独的运行队列长度相等)时,会发生CPU颠簸。避免CPU颠簸的一种方式是允许单独的运行队列长度与平均系统运行队列长度存在错误容许偏差。在贪心亲缘关系负载平衡算法中,如图4a、4b和4c的示例所示那样,也会出现CPU颠簸。
假定存在2个亲缘关系节点S 440和T 460(为简单起见,每个节点具有相等的能力),并且存在3个任务i 410、j 420和k 430,分别消耗几乎相同的CPU处理量,例如10%。在分配其中2个任务之后,例如把i分配给S并且把j分配给T,那么可以把第三个任务k分配给S或者T。假定把k分配给S,如图4a中所示那样。现在假定下次运行平衡算法时,j的CPU消耗稍微改变,从10%改变为9%,并且k的CPU消耗也稍微改变,从10%改变为11%。现在,在节点S上:任务k=11%并且i=10%,而在节点T上:任务j=9%,如图4b所示。节点S和T的平均CPU消耗是((11%+10%)+9%)/2=15%。节点S的负载指数是(11%+10%)-15%=6%,而节点T的负载指数是9%-15%=-6%。
如果平衡器150把任务k从节点S移动到节点T,那么11%-6%-6%=-1%<0。因此,移动减少了负载指数偏差,并且被允许(由图4b中的虚线箭头表示)。因此,目前在节点S上:任务i=10%,而在节点T上:任务k=11%并且j=9%。假定下次运行平衡算法时,i的CPU消耗稍微改变,从10%改变为9%,并且j的CPU消耗也稍微改变,从9%改变为10%。显而易见的是,现在的情况与上次运行平衡算法(如图4b所示那样)时的正相反。现在把任务k从节点T移回S(由图4c中的虚线箭头表示)。这种“乒乓”效应(CPU颠簸)会发生在每一已知的负载平衡场景中,并且它会不确定地继续发生。
很清楚,在贪心亲缘关系负载平衡算法中,CPU颠簸的原因是因为允许任务被移动的条件、即w+lT-lS<0,对于任务的CPU消耗方面的小波动极为敏感,即,每当负载指数偏差方面存在任何减小量,就会出现任务重新分配,无论减小量有多么小。为了避免CPU颠簸,需要修改允许任务被移动的条件。贪心亲缘关系负载平衡算法通过在计算中添加阈值来修改允许任务被移动的条件。新的阈值条件是:
w+lT-lS<-T(T>0)
换言之,只有当移动使负载指数偏差减少了超过某一数量T(阈值量)时,我们才允许任务被移动。T可以是平衡算法的参数并且可以根据工作负载特性进行调整。采用修改后的条件,只有当任务CPU消耗中的波动足够大以便在亲缘关系节点当中引起较大量的负载不平衡时,贪心亲缘关系负载平衡算法才移动任务,从而使移动减少较大量的负载指数偏差。
除标准的通用CPU以外,系统可以具有专用CPU,其是专用于某些类型的处理的CPU。例如,IBM的z系列应用辅助处理器(zAAP)只运行Java应用程序。像zAAP那样的专用CPU的益处在于其计算成本比通用CPU低得多。例如,具有诸如IBM的WebSphere的较大Java工作负载的客户通过在zAAP上运行其Java应用程序可以节省相当数额的成本。专用CPU给负载平衡算法提出了新的挑战,这是因为目前存在不同类型的亲缘关系节点,即,包含不同类型CPU的亲缘关系节点,并且要么每一类型的亲缘关系节点必须独立地加以平衡,要么多种类型的亲缘关系节点必须共同地加以平衡。任务现在可能具有多个亲缘关系,即,它们可能在不同类型的亲缘关系节点上执行,并且消耗不同类型的CPU资源。移动一个任务可能改变多个亲缘关系节点上的负载。
在一个实施例中,所述贪心亲缘关系负载平衡算法被增强来支持不同类型的亲缘关系节点。基本思想在于使用平衡矩阵来表示不同类型的亲缘关系节点和具有多个亲缘关系的任务。所述平衡矩阵可以具有任意维数,每一维表示一种类型的亲缘关系节点。平衡矩阵中的每一单元表示具有所述单元的相应维的亲缘关系的任务。为简单起见并且不失一般性,我们使用二维平衡矩阵(即,2种不同类型的亲缘关系节点)为例来说明所述思想。
表1-二维平衡矩阵。
Z1 | Z2 | Z3 | Z4 | |
S1 | 9 | 11 | ||
S2 | 8 | 5 | ||
S3 | 7 | 14 | 10 |
表1的平衡矩阵示出了两个不同类型的亲缘关系节点,标准CPU类型(S)节点和zAAP CPU类型(Z)节点。存在3个标准亲缘关系节点S1、S2和S3以及4个zAAP亲缘关系节点Z1、Z2、Z3和Z4。每一单元中的数字,例如单元[S1,Z2]中的9指的是存在9个在亲缘关系节点S1和Z2这二者上都消耗CPU资源因此具有亲缘关系[S1,Z2]的任务。没有数字的单元意味着没有在表示该单元的两个亲缘关系节点上都消耗CPU资源的任务。例如,不存在在两个亲缘关系节点S1和Z1上都消耗CPU资源的任务。为了使贪心亲缘关系平衡算法适应于平衡矩阵,应该执行如下过程:
把平衡矩阵的行和列从最高负载指数值向最低负载指数值排序。
例如,假定上述平衡矩阵已经被排序;因此我们知道S1是具有最高负载指数的标准亲缘关系节点,而S3是具有最低负载指数的节点。同样,Z1是具有最高负载指数值的zAAP亲缘关系节点,而Z4是具有最低负载指数值的亲缘关系节点。
为了平衡两个类型的亲缘关系节点,首先平衡一个类型,然后平衡另一个类型。例如,当平衡标准亲缘关系节点时,我们在负载最重的S1上找到最大的标准CPU消耗任务,所述任务可能是具有亲缘关系[S1,Z2]的9个任务之一,或者可能是具有亲缘关系[S1,Z4]的11个任务之一。如果假定是前者,那么也许此任务可以被移动到S3,即,被重新分配为[S3,Z2]。然而,在这样做之前,由于此任务还需要zAAP消耗,那么所述算法必须确定任务是否可以被重新分配为[S3,Z4]。这是更好的重新分配,因为这样做将同时从S1向S3以及从Z2向Z4平衡负载。在平衡标准节点之后,执行相同的过程来平衡zAAP亲缘关系节点。例如,假定在负载最重的Z1上,最大zAAP CPU消耗任务是具有亲缘关系[S2,Z1]的8个任务之一。所述算法确定它是否可以从[S2,Z1]被移动到[S3,Z4]。如果不是,那么把任务从[S2,Z1]移动到[S3,Z4]。参见表2,其示出了已经移动了两个任务之后、平衡矩阵中的中间步骤。
表2-移动了两个任务之后的二维平衡矩阵
当亲缘关系节点上没有剩余任何任务时,把表示该亲缘关系节点的平衡矩阵的行或者列从矩阵移去。例如,如果不再剩下具有亲缘关系[S1,*]的任务,那么移去平衡矩阵中的S1行并且把平衡矩阵减小至2行乘4列。同样,如果不再剩下具有亲缘关系[*,Z1]的任务,那么移去平衡矩阵中的Z1列,并且把平衡矩阵减小至2行乘3列。当平衡矩阵减小至1个单元时,算法结束。
如已经示出的那样,可以进行不同类型的亲缘关系节点之间的平衡,但是会存在平衡不对称的情况,即,工作负载可以自由地从一个类型的亲缘关系节点Z移动到另一个节点S,但从相反方向不行。这是因为标准处理器S可以运行任何类型的代码,而处理器Z是专门的处理器并且只能运行某些类型的代码,例如Java。因此,专用处理器上的工作负载可以被移到标准处理器,但是标准处理器上的工作负载并不总是可以被移到专用处理器。
在一个实施例中,所述贪心亲缘关系负载平衡算法被进一步增强以便支持这种不对称的平衡。这是通过扩展平衡矩阵使其每一维可以表示一个以上类型的亲缘关系节点来执行的。表3中示出了新的平衡矩阵的示例。
表3-具有不对称平衡支持的二维平衡矩阵
在上面新的平衡矩阵中,我们看到,表示zAAP亲缘关系节点Z1-Z4的列已经被扩展,附加列表示标准亲缘关系节点S1-S3。这意味着当我们平衡zAAP亲缘关系节点时,我们对待标准亲缘关系节点就好像它们是zAAP亲缘关系节点一样。因此,我们可以把负载从zAAP亲缘关系节点移动到标准亲缘关系节点。例如,如果我们在具有亲缘关系[S2,Z1]的8个任务之一中发现最大zAAP CPU消耗任务,那么除早先看到的可能的移动以外,我们目前具有两个另外的可能的移动:从[S2,Z1]到[S2,S2](虚线),其有效地把任务的zAAP CPU消耗从Z1移动至S2;或者如果这是不可能的(即,S2上没有足够的空间),那么我们可以尝试从[S2,Z1]移动到[S3,S3](虚线),其有效地把任务的标准CPU和zAAP CPU消耗这两者都移动到标准亲缘关系节点S3。应注意的是,我们选择S3作为接收zAAP CPU消耗的目标,这是由于其是负载最轻的标准亲缘关系节点。当我们平衡标准亲缘关系节点时,我们仍只使用来自于表1的原始未扩展平衡矩阵行S1-S3,这是由于标准CPU消耗无法自由地移动到zAAP亲缘关系节点。
如上面的示例那样使用精确测量的CPU消耗数据的负载平衡算法的有效性显然取决于CPU消耗数据的质量。对负载平衡算法具有重要影响的CPU消耗数据的质量的一个方面是数据粒度,这是可以获得CPU消耗数据的详细程度。例如,在由所谓的地址空间表示的z/OS应用程序中,其是包含应用程序代码和数据的连续虚拟存储器区域。在地址空间内,可以存在一个或多个被称为任务控制块(TCB)的执行单元。对于例如UNIX的其它操作系统来说,地址空间和TCB分别处于类似于UNIX进程和线程的较高水平。当z/OS具有用于测量单个TCB的CPU消耗的嵌入式机制时,默认地,因监控单个TCB的较高开销,它将只测量地址空间的总计CPU消耗。只使用地址空间的更加粗糙的合计的CPU消耗,所述负载平衡算法不那么有效。因此,平衡器150和CPU消耗测量机制需要彼此协调来实现良好的负载平衡和低测量开销之间的最佳折衷。
使用负载指数偏差,所述贪心亲缘关系负载平衡算法可以容易地测定系统被平衡得有“多么好”。平衡器150把阈值用于负载指数偏差,低于该阈值,其认为系统将令人满意地被平衡。同时,所述平衡器150还跟踪在平衡运行期间未被移动的几个消耗CPU最多的地址空间。此信息对后续运行十分有用。假设所述贪心亲缘关系负载平衡算法未能使负载指数偏差低于阈值,那么它将通知测量机构开始监视其跟踪的“有问题的”地址空间(这些通常是更高CPU消耗的地址空间)内的单独TCB的CPU消耗。因此,只有当必要时,所述贪心亲缘关系负载平衡算法才引起额外的CPU消耗测量开销。当所述算法已经成功地平衡了系统时,它将通知CPU消耗测量机构停止监视TCB并且把TCB聚集回到它们各自的地址空间。
因此,虽然已经描述了目前被认为是优选实施例的内容,但是本领域技术人员将理解的是,在本发明的精神范围内可以做出其他的修改。
Claims (19)
1.一种用计算机实现的方法,用于在处理器网络中的多个处理节点中分配多个任务,所述方法包括如下步骤:
计算多个任务的任务处理器消耗值;
计算多个节点的测量的节点处理器消耗值;
计算多个节点的目标节点处理器消耗值,所述目标节点处理器消耗值表明最佳节点处理器消耗;
根据节点i的测量的节点处理器消耗值与节点i的目标节点处理器消耗值之间的差来计算负载指数值;以及
根据每个节点的计算的负载指数值在节点中分配任务以便在节点中平衡处理器工作负载,使得每个节点的计算的负载指数值基本上为零。
2.如权利要求1所述的方法,还包括如下步骤:根据实际处理器工作负载分配与目标处理器工作负载分配的差来计算负载指数标准偏差值,使得负载指数标准偏差被减小到基本上为零,在所述目标处理器工作负载分配的情况下,所有亲缘关系节点的负载指数值基本上为零。
3.如权利要求1所述的方法,其中多个任务中的每一个只被分配一次。
4.如权利要求1所述的方法,还包括如下步骤:如果存在多于一种处理器类型,那么为每个节点确定处理器类型,其中所述处理器类型确定如何分配任务,使得为一种类型的处理器指定的任务被专门分配给该类型的处理器。
5.如权利要求4所述的方法,还包括如下步骤:
创建多维平衡矩阵,所述矩阵的每一维表示对应于特定处理器类型的节点,并且每个单元表示任务;
按照从最高负载指数值到最低负载指数值的顺序来排序计算的负载指数值;以及
根据已排序的负载指数值来用任务填充所述矩阵;
在单元中重新布置任务以便表示处理器工作负载在节点中的平衡;
如果其对应节点的任务列表为空,则去除矩阵的每一维;以及
根据所述矩阵表示来把任务分配给处理器。
6.如权利要求5所述的方法,还包括如下步骤:
扩展多维平衡,使得每一维可以表示对应于多个处理器类型的节点;以及
根据预定的使用规则来重新布置单元中的任务,使得任务的重新布置是非对称的。
7.如权利要求1所述的方法,还包括如下步骤:计算一个阈值,低于所述阈值,认为系统令人满意地被平衡,从而所述阈值表示负载指数偏差减少一个较大的量。
8.如权利要求7所述的方法,其中只有当重新分配使得负载指数偏差减少了超过阈值的值时才重新分配任务。
9.如权利要求8所述的方法,其中所述阈值根据处理器工作负载而改变。
10.如权利要求1所述的方法,还包括如下步骤:
在每一平衡器运行期间,跟踪具有高处理器消耗的多个任务。
11.如权利要求10所述的方法,其中当负载指数偏差未能达到阈值以下时,多个最大处理器消耗任务被更加密切地监视以便更好地获得处理器消耗的细节。
12.一种用于在网络中的多个节点中分配多个任务的系统,所述系统包括:
用于执行任务的多个处理器;
包括处理器的多个节点;
任务调度器,用于:
接收多个任务;
计算多个任务的任务处理器消耗值;
计算多个节点的节点处理器消耗值;
计算多个节点的目标节点处理器消耗值,所述目标节点处
理器消耗值表明最佳节点处理器消耗;以及
根据节点i的计算的节点处理器消耗值与节点i的目标节点处理器消耗值之间的差来计算负载指数值;以及
平衡器,用于根据每个节点的计算的负载指数值在节点中分配任务,以便在节点中平衡处理器工作负载,使得每个节点的计算的负载指数值基本上为零。
13.如权利要求12所述的系统,其中所述任务调度器和平衡器是驻留在计算机系统中的软件。
14.如权利要求13所述的系统,其中所述任务调度器还包括逻辑,用于:
如果存在多于一种处理器类型,那么为每个节点确定处理器类型,其中所述处理器类型确定如何分配任务。
15.如权利要求14所述的系统,其中所述任务调度器还包括逻辑,用于:
创建多维平衡矩阵,所述矩阵的每一维表示对应于特定处理器类型的节点,并且每个单元表示任务;
按照从最高负载指数值到最低负载指数值的顺序来排序计算的负载指数值;以及
根据已排序的负载指数值来用任务填充所述矩阵;
在单元中重新分配任务以便在节点中平衡处理器工作负载;
如果其对应节点任务列表为空,那么去除矩阵的每一维;以及
根据平衡矩阵表示把任务分配给处理器。
16.如权利要求12所述的系统,其中所述任务调度器还计算一个阈值,使得所述阈值表示负载指数偏差减少一个较大的量;并且只有当重新分配使负载指数偏差减少了超过所述阈值的值时才重新分配任务。
17.如权利要求16所述的系统,其中所述阈值根据处理器工作负载而改变。
18.如权利要求12所述的系统,其中所述平衡器按照实际处理器工作负载值与目标处理器工作负载值的差来计算负载指数标准偏差值,使得负载指数标准偏差被减小到基本上为零,在所述目标处理器工作负载值的情况下,所有亲缘关系节点的负载指数值基本上为零。
19.如权利要求18所述的系统,其中如果平衡器未能使负载指数偏差低于阈值,那么所述平衡器将通知测量机构开始监视几个最大处理器消耗的任务,以便更好地获得每一任务内的处理器消耗细节。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/504,155 US7941805B2 (en) | 2006-08-15 | 2006-08-15 | Affinity dispatching load balancer with precise CPU consumption data |
US11/504,155 | 2006-08-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101126992A true CN101126992A (zh) | 2008-02-20 |
CN100517241C CN100517241C (zh) | 2009-07-22 |
Family
ID=39095041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710129135.8A Active CN100517241C (zh) | 2006-08-15 | 2007-07-13 | 在网络中的多个节点中分配多个任务的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (3) | US7941805B2 (zh) |
JP (1) | JP5466354B2 (zh) |
CN (1) | CN100517241C (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387173A (zh) * | 2010-09-01 | 2012-03-21 | 中国移动通信集团公司 | 一种MapReduce系统及其调度任务的方法和装置 |
US8219725B2 (en) | 2010-06-16 | 2012-07-10 | International Business Machines Corporation | Cache optimized balanced handling of initiatives in a non-uniform multiprocessor computing system |
CN102934099A (zh) * | 2011-06-09 | 2013-02-13 | 华为技术有限公司 | 一种多核调度方法、装置与系统 |
CN103164262A (zh) * | 2011-12-15 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 一种任务管理方法及装置 |
CN103189845A (zh) * | 2010-09-17 | 2013-07-03 | 甲骨文国际公司 | 非一致存储器访问平台上的io资源的动态平衡 |
CN101604261B (zh) * | 2009-07-08 | 2013-07-31 | 深圳先进技术研究院 | 超级计算机的任务调度方法 |
CN104360909A (zh) * | 2014-11-04 | 2015-02-18 | 无锡天脉聚源传媒科技有限公司 | 一种视频处理方法及装置 |
CN104376087A (zh) * | 2014-11-19 | 2015-02-25 | 天津南大通用数据技术股份有限公司 | 一种采用交叉备份的分布式数据库负载均衡的计算方法 |
CN104503845A (zh) * | 2015-01-14 | 2015-04-08 | 北京邮电大学 | 一种任务分发方法和系统 |
CN104598319A (zh) * | 2015-01-13 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种实现应用性能优化的节点分配方法 |
CN105718317A (zh) * | 2016-01-15 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法及装置 |
CN103677996B (zh) * | 2012-08-28 | 2016-12-28 | 国际商业机器公司 | 用于平衡工作负荷分布的协作方法和系统 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN109144689A (zh) * | 2018-06-29 | 2019-01-04 | 华为技术有限公司 | 任务调度方法、装置及计算机程序产品 |
CN109783224A (zh) * | 2018-12-10 | 2019-05-21 | 平安科技(深圳)有限公司 | 基于负载调配的任务分配方法、装置及终端设备 |
WO2021139726A1 (zh) * | 2020-01-07 | 2021-07-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN114625507A (zh) * | 2022-03-14 | 2022-06-14 | 广州经传多赢投资咨询有限公司 | 基于有向无环图的任务调度方法、系统、设备及存储介质 |
CN114996198A (zh) * | 2022-08-03 | 2022-09-02 | 中国空气动力研究与发展中心计算空气动力研究所 | 跨处理器数据传输方法、装置、设备及介质 |
CN116436666A (zh) * | 2023-04-11 | 2023-07-14 | 山东省计算中心(国家超级计算济南中心) | 一种面向分布式异构网络的安全态势感知方法 |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941805B2 (en) * | 2006-08-15 | 2011-05-10 | International Business Machines Corporation | Affinity dispatching load balancer with precise CPU consumption data |
KR100834408B1 (ko) * | 2006-09-14 | 2008-06-04 | 한국전자통신연구원 | 분산처리시스템에서의 태스크 할당방법 및 시스템 |
JP4933284B2 (ja) * | 2007-01-25 | 2012-05-16 | 株式会社日立製作所 | ストレージ装置及び負荷分散方法 |
US8042119B2 (en) * | 2007-05-14 | 2011-10-18 | Teradata Us, Inc. | States matrix for workload management simplification |
US7996696B1 (en) * | 2007-05-14 | 2011-08-09 | Sprint Communications Company L.P. | Updating kernel affinity for applications executing in a multiprocessor system |
US9165032B2 (en) * | 2007-11-21 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Allocation of resources for concurrent query execution via adaptive segmentation |
US8312465B2 (en) * | 2008-01-11 | 2012-11-13 | International Business Machines Corporation | Real-time CPU dispatcher affinity re-balancing |
CN101960428B (zh) * | 2008-02-26 | 2013-11-13 | 国际商业机器公司 | 路由工作负载计算方法及系统 |
US7962803B2 (en) * | 2008-09-30 | 2011-06-14 | International Business Machines Corporation | Apparatus, system, and method for multi-address space tracing |
TWI382515B (zh) * | 2008-10-20 | 2013-01-11 | Accton Wireless Broadband Corp | 無線收發模組 |
US8745622B2 (en) * | 2009-04-22 | 2014-06-03 | International Business Machines Corporation | Standalone software performance optimizer system for hybrid systems |
US8438574B1 (en) * | 2009-08-14 | 2013-05-07 | Translattice, Inc. | Generating monotone hash preferences |
US8479215B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
US8856794B2 (en) * | 2009-10-13 | 2014-10-07 | Empire Technology Development Llc | Multicore runtime management using process affinity graphs |
US8627300B2 (en) * | 2009-10-13 | 2014-01-07 | Empire Technology Development Llc | Parallel dynamic optimization |
US8635606B2 (en) * | 2009-10-13 | 2014-01-21 | Empire Technology Development Llc | Dynamic optimization using a resource cost registry |
US8892931B2 (en) | 2009-10-20 | 2014-11-18 | Empire Technology Development Llc | Power channel monitor for a multicore processor |
US8316375B2 (en) * | 2010-01-26 | 2012-11-20 | International Business Machines Corporation | Load-balancing of processes based on inertia |
US8484279B1 (en) * | 2010-01-29 | 2013-07-09 | Sprint Communications Company L.P. | System and method of distributed computing using embedded processors |
EP2363769B1 (de) * | 2010-03-04 | 2012-12-12 | Siemens Aktiengesellschaft | Verfahren zur Ermittlung der Lastverteilung eines Automatisierungssystems |
US8863144B2 (en) * | 2010-03-15 | 2014-10-14 | International Business Machines Corporation | Method and apparatus for determining resources consumed by tasks |
US20110261692A1 (en) * | 2010-04-21 | 2011-10-27 | Josep Maria Pujol Serra | Method for balancing loads in mobile wireless ad-hoc networks |
US8340942B2 (en) * | 2010-04-26 | 2012-12-25 | International Business Machines Corporation | Identifying opportunities to improve multiprocess system performance |
US20110321056A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Dynamic run time allocation of distributed jobs |
US8391174B2 (en) | 2010-07-13 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Data packet routing |
US8566837B2 (en) * | 2010-07-16 | 2013-10-22 | International Business Machines Corportion | Dynamic run time allocation of distributed jobs with application specific metrics |
US9471389B2 (en) * | 2011-06-30 | 2016-10-18 | International Business Machines Corporation | Dynamically tuning server placement |
JP2014523598A (ja) | 2011-07-26 | 2014-09-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッシング・コンピュータ・システムにおいて作業負荷を管理するための方法、装置、コンピュータ・プログラム(マルチプロセッシング・コンピュータ・システムにおける作業負荷の管理) |
US9021138B2 (en) | 2011-08-26 | 2015-04-28 | Microsoft Technology Licensing, Llc | Performance of multi-processor computer systems |
US8621479B2 (en) | 2012-01-05 | 2013-12-31 | The Boeing Company | System and method for selecting task allocation method based on load balancing and core affinity metrics |
CN103294531B (zh) * | 2012-03-05 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种任务分配方法及系统 |
US9384055B2 (en) | 2012-04-16 | 2016-07-05 | International Business Machines Corporation | Programmatic load-based management of processor population |
US8930416B2 (en) * | 2012-08-13 | 2015-01-06 | Hulu, LLC | Job dispatcher of transcoding jobs for media programs |
KR20140080058A (ko) * | 2012-12-20 | 2014-06-30 | 삼성전자주식회사 | 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말 |
WO2014101093A1 (en) * | 2012-12-28 | 2014-07-03 | Intel Corporation | Power optimization for distributed computing system |
US9152467B2 (en) * | 2013-01-18 | 2015-10-06 | Nec Laboratories America, Inc. | Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors |
US9367357B2 (en) * | 2013-01-18 | 2016-06-14 | Nec Corporation | Simultaneous scheduling of processes and offloading computation on many-core coprocessors |
WO2014185906A1 (en) | 2013-05-15 | 2014-11-20 | Empire Technology Development, Llc | Core affinity bitmask translation |
US20150081400A1 (en) * | 2013-09-19 | 2015-03-19 | Infosys Limited | Watching ARM |
US10356165B2 (en) * | 2013-09-27 | 2019-07-16 | Sudarshan Deshmukh | Dynamic resource repositioning load balancing and location management system and method |
IN2013MU03081A (zh) * | 2013-09-27 | 2015-08-07 | Sudarshan Deshmukh | |
US9253253B1 (en) | 2014-09-26 | 2016-02-02 | International Business Machines Corporation | Techniques for assigning user workloads to application servers |
US9489242B2 (en) * | 2014-09-30 | 2016-11-08 | Telefonaktiebolaget L M Ericsson (Publ) | Algorithm for faster convergence through affinity override |
CN105988872B (zh) * | 2015-02-03 | 2020-02-18 | 阿里巴巴集团控股有限公司 | 一种cpu资源分配的方法、装置及电子设备 |
JP6518087B2 (ja) * | 2015-03-09 | 2019-05-22 | キヤノン株式会社 | プログラム処理装置 |
US10281303B2 (en) | 2015-03-23 | 2019-05-07 | Rosemount Aerospace, Inc. | Air data probe with improved performance at angle of attack operation |
US10733165B1 (en) * | 2015-07-06 | 2020-08-04 | Workiva Inc. | Distributed processing using a node hierarchy |
US11275721B2 (en) * | 2015-07-17 | 2022-03-15 | Sap Se | Adaptive table placement in NUMA architectures |
US10649670B2 (en) * | 2016-09-16 | 2020-05-12 | International Business Machines Corporation | Data block processing |
US10616317B2 (en) * | 2016-11-10 | 2020-04-07 | Trilliant Networks, Inc. | Method and system for affinity load balancing |
DE102016222375A1 (de) * | 2016-11-15 | 2018-05-17 | Robert Bosch Gmbh | Vorrichtung und Verfahren zum Bearbeiten von Aufträgen |
CN108255598A (zh) * | 2016-12-28 | 2018-07-06 | 华耀(中国)科技有限公司 | 性能保证的虚拟化管理平台资源分配系统及方法 |
US10489189B2 (en) * | 2017-02-17 | 2019-11-26 | International Business Machines Corporation | Selection of maintenance tasks |
CN108628677B (zh) * | 2017-03-20 | 2022-12-02 | 北京京东尚科信息技术有限公司 | 分布式任务处理系统、方法和装置 |
CN108287783A (zh) * | 2018-01-02 | 2018-07-17 | 浪潮通用软件有限公司 | 一种数据采集方法及装置 |
CN109379298A (zh) * | 2018-12-06 | 2019-02-22 | 江苏华生基因数据科技股份有限公司 | 一种大数据系统的负载均衡方法 |
US11144226B2 (en) | 2019-04-11 | 2021-10-12 | Samsung Electronics Co., Ltd. | Intelligent path selection and load balancing |
US20220214926A1 (en) * | 2019-05-22 | 2022-07-07 | Nippon Telegraph And Telephone Corporation | Virtual machine monitoring device, virtual machine monitoring method, and program |
US11216190B2 (en) | 2019-06-10 | 2022-01-04 | Samsung Electronics Co., Ltd. | Systems and methods for I/O transmissions in queue pair-based NVMeoF initiator-target system |
US11385941B2 (en) * | 2019-07-31 | 2022-07-12 | EMC IP Holding Company, LLC | System and method for address space slicing with strong CPU core affinity |
US11240294B2 (en) * | 2019-08-23 | 2022-02-01 | Samsung Electronics Co., Ltd. | Systems and methods for spike detection and load balancing resource management |
CN110991846B (zh) * | 2019-11-25 | 2023-06-20 | 深圳市北斗智能科技有限公司 | 服务人员任务分配方法、装置、设备及存储介质 |
CN113032145B (zh) * | 2021-03-18 | 2023-12-26 | 北京计算机技术及应用研究所 | 基于国产化多numa节点cpu结温均衡策略的任务调度方法 |
CN114296814A (zh) * | 2021-12-10 | 2022-04-08 | 中国科学院深圳先进技术研究院 | 一种边云计算任务卸载方法、系统、终端以及存储介质 |
US11996988B1 (en) | 2023-04-27 | 2024-05-28 | Dell Products Lp | Reinforced computer learning system and method for minimizing power consumed by underutilized data center hardware components |
CN117707741B (zh) * | 2024-02-05 | 2024-05-24 | 山东省计算中心(国家超级计算济南中心) | 基于空间位置的能耗均衡调度方法及系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5283897A (en) * | 1990-04-30 | 1994-02-01 | International Business Machines Corporation | Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof |
US5301324A (en) * | 1992-11-19 | 1994-04-05 | International Business Machines Corp. | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
US5764740A (en) | 1995-07-14 | 1998-06-09 | Telefonaktiebolaget Lm Ericsson | System and method for optimal logical network capacity dimensioning with broadband traffic |
JP2853654B2 (ja) * | 1996-04-17 | 1999-02-03 | 日本電気株式会社 | 密結合マルチプロセッサシステムにおける代替処理方式 |
US6026425A (en) | 1996-07-30 | 2000-02-15 | Nippon Telegraph And Telephone Corporation | Non-uniform system load balance method and apparatus for updating threshold of tasks according to estimated load fluctuation |
US6078943A (en) * | 1997-02-07 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for dynamic interval-based load balancing |
JPH10283330A (ja) | 1997-04-04 | 1998-10-23 | Hitachi Ltd | 並列計算機の負荷分散制御方法 |
US6996822B1 (en) * | 2001-08-01 | 2006-02-07 | Unisys Corporation | Hierarchical affinity dispatcher for task management in a multiprocessor computer system |
US7487504B2 (en) * | 2002-02-06 | 2009-02-03 | International Business Machines Corporation | Thread dispatch for multiprocessor computer systems |
WO2003083693A1 (fr) * | 2002-04-03 | 2003-10-09 | Fujitsu Limited | Planificateur de taches dans un systeme de traitement distribue |
US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
CN1464416B (zh) * | 2002-06-05 | 2012-06-27 | 天津中科蓝鲸信息技术有限公司 | 资源使用平衡方法 |
US7395536B2 (en) * | 2002-11-14 | 2008-07-01 | Sun Microsystems, Inc. | System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment |
US7296269B2 (en) * | 2003-04-22 | 2007-11-13 | Lucent Technologies Inc. | Balancing loads among computing nodes where no task distributor servers all nodes and at least one node is served by two or more task distributors |
JP3896352B2 (ja) * | 2003-08-08 | 2007-03-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 分散コンピューティングシステム |
US20050155032A1 (en) * | 2004-01-12 | 2005-07-14 | Schantz John L. | Dynamic load balancing |
US7574708B2 (en) | 2004-03-04 | 2009-08-11 | International Business Machines Corporation | Mechanism for enabling the distribution of operating system resources in a multi-node computer system |
US7712102B2 (en) * | 2004-07-30 | 2010-05-04 | Hewlett-Packard Development Company, L.P. | System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US7941805B2 (en) * | 2006-08-15 | 2011-05-10 | International Business Machines Corporation | Affinity dispatching load balancer with precise CPU consumption data |
-
2006
- 2006-08-15 US US11/504,155 patent/US7941805B2/en active Active
-
2007
- 2007-07-13 CN CN200710129135.8A patent/CN100517241C/zh active Active
- 2007-08-13 JP JP2007211128A patent/JP5466354B2/ja active Active
-
2008
- 2008-03-19 US US12/051,295 patent/US8108875B2/en not_active Expired - Fee Related
- 2008-03-19 US US12/051,611 patent/US8108877B2/en not_active Expired - Fee Related
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604261B (zh) * | 2009-07-08 | 2013-07-31 | 深圳先进技术研究院 | 超级计算机的任务调度方法 |
US8219725B2 (en) | 2010-06-16 | 2012-07-10 | International Business Machines Corporation | Cache optimized balanced handling of initiatives in a non-uniform multiprocessor computing system |
CN102387173A (zh) * | 2010-09-01 | 2012-03-21 | 中国移动通信集团公司 | 一种MapReduce系统及其调度任务的方法和装置 |
CN103189845B (zh) * | 2010-09-17 | 2016-07-06 | 甲骨文国际公司 | 非一致存储器访问平台上的io资源的动态平衡 |
CN103189845A (zh) * | 2010-09-17 | 2013-07-03 | 甲骨文国际公司 | 非一致存储器访问平台上的io资源的动态平衡 |
CN102934099A (zh) * | 2011-06-09 | 2013-02-13 | 华为技术有限公司 | 一种多核调度方法、装置与系统 |
CN103164262A (zh) * | 2011-12-15 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 一种任务管理方法及装置 |
CN103677996B (zh) * | 2012-08-28 | 2016-12-28 | 国际商业机器公司 | 用于平衡工作负荷分布的协作方法和系统 |
CN104360909A (zh) * | 2014-11-04 | 2015-02-18 | 无锡天脉聚源传媒科技有限公司 | 一种视频处理方法及装置 |
CN104360909B (zh) * | 2014-11-04 | 2017-10-03 | 无锡天脉聚源传媒科技有限公司 | 一种视频处理方法及装置 |
CN104376087A (zh) * | 2014-11-19 | 2015-02-25 | 天津南大通用数据技术股份有限公司 | 一种采用交叉备份的分布式数据库负载均衡的计算方法 |
CN104376087B (zh) * | 2014-11-19 | 2017-09-29 | 天津南大通用数据技术股份有限公司 | 一种采用交叉备份的分布式数据库负载均衡的计算方法 |
CN104598319A (zh) * | 2015-01-13 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种实现应用性能优化的节点分配方法 |
CN104598319B (zh) * | 2015-01-13 | 2017-06-30 | 浪潮电子信息产业股份有限公司 | 一种实现应用性能优化的节点分配方法 |
CN104503845A (zh) * | 2015-01-14 | 2015-04-08 | 北京邮电大学 | 一种任务分发方法和系统 |
CN104503845B (zh) * | 2015-01-14 | 2017-07-14 | 北京邮电大学 | 一种任务分发方法和系统 |
CN105718317A (zh) * | 2016-01-15 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法及装置 |
CN107943577A (zh) * | 2016-10-12 | 2018-04-20 | 百度在线网络技术(北京)有限公司 | 用于调度任务的方法和装置 |
CN107943577B (zh) * | 2016-10-12 | 2022-03-04 | 上海优扬新媒信息技术有限公司 | 用于调度任务的方法和装置 |
CN109144689A (zh) * | 2018-06-29 | 2019-01-04 | 华为技术有限公司 | 任务调度方法、装置及计算机程序产品 |
CN109783224A (zh) * | 2018-12-10 | 2019-05-21 | 平安科技(深圳)有限公司 | 基于负载调配的任务分配方法、装置及终端设备 |
WO2021139726A1 (zh) * | 2020-01-07 | 2021-07-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN114625507A (zh) * | 2022-03-14 | 2022-06-14 | 广州经传多赢投资咨询有限公司 | 基于有向无环图的任务调度方法、系统、设备及存储介质 |
CN114996198A (zh) * | 2022-08-03 | 2022-09-02 | 中国空气动力研究与发展中心计算空气动力研究所 | 跨处理器数据传输方法、装置、设备及介质 |
CN116436666A (zh) * | 2023-04-11 | 2023-07-14 | 山东省计算中心(国家超级计算济南中心) | 一种面向分布式异构网络的安全态势感知方法 |
CN116436666B (zh) * | 2023-04-11 | 2024-01-26 | 山东省计算中心(国家超级计算济南中心) | 一种面向分布式异构网络的安全态势感知方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080046895A1 (en) | 2008-02-21 |
US20080216087A1 (en) | 2008-09-04 |
JP2008047126A (ja) | 2008-02-28 |
US7941805B2 (en) | 2011-05-10 |
CN100517241C (zh) | 2009-07-22 |
JP5466354B2 (ja) | 2014-04-09 |
US8108875B2 (en) | 2012-01-31 |
US8108877B2 (en) | 2012-01-31 |
US20080178192A1 (en) | 2008-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517241C (zh) | 在网络中的多个节点中分配多个任务的方法和系统 | |
Fan et al. | Scheduling beyond CPUs for HPC | |
KR101629155B1 (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
US20040205759A1 (en) | Information processing system, information processing device, distributed information processing method and computer program | |
JP2004199674A (ja) | 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法 | |
CN105471985A (zh) | 负载均衡方法及云平台计算方法、云平台 | |
Li | Optimal load distribution in nondedicated heterogeneous cluster and grid computing environments | |
CN1987794A (zh) | 改进计算机系统中的块分配时间的方法和装置 | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
TWI465934B (zh) | 用以控制運算資源分配之裝置、系統及方法 | |
KR101770736B1 (ko) | 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기 | |
US7003772B2 (en) | Policy management for distributed computing and a method for aging statistics | |
CN114816715A (zh) | 一种面向跨地域的流计算延迟优化方法及装置 | |
CN102193828B (zh) | 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 | |
Qin | Performance comparisons of load balancing algorithms for I/O-intensive workloads on clusters | |
Huang et al. | Optimal power allocation and load balancing for non-dedicated heterogeneous distributed embedded computing systems | |
CN115168058A (zh) | 线程负载均衡方法、装置、设备及存储介质 | |
CN110427217B (zh) | 基于内容的发布订阅系统匹配算法轻量级并行方法和系统 | |
Shi et al. | Energy-efficient scheduling algorithms based on task clustering in heterogeneous spark clusters | |
Yang et al. | Tear Up the Bubble Boom: Lessons Learned From a Deep Learning Research and Development Cluster | |
Tomas | Reducing Tail Latency In Cassandra Cluster Using Regression Based Replica Selection Algorithm | |
Nunokawa et al. | Conflict-aware workload co-execution on SX-aurora TSUBASA | |
US9389919B2 (en) | Managing workload distribution among computer systems based on intersection of throughput and latency models | |
Wang | Local cluster first load sharing policy for heterogeneous clusters | |
Kim et al. | Popularity-based covering sets for energy proportionality in shared-nothing clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |