CN103677996B - 用于平衡工作负荷分布的协作方法和*** - Google Patents

用于平衡工作负荷分布的协作方法和*** Download PDF

Info

Publication number
CN103677996B
CN103677996B CN201310382257.3A CN201310382257A CN103677996B CN 103677996 B CN103677996 B CN 103677996B CN 201310382257 A CN201310382257 A CN 201310382257A CN 103677996 B CN103677996 B CN 103677996B
Authority
CN
China
Prior art keywords
node
calculate
directly adjacent
calculating
calculates
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.)
Expired - Fee Related
Application number
CN201310382257.3A
Other languages
English (en)
Other versions
CN103677996A (zh
Inventor
G·德拉科尔特
A·M·斯格罗
A·多纳特尔利
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103677996A publication Critical patent/CN103677996A/zh
Application granted granted Critical
Publication of CN103677996B publication Critical patent/CN103677996B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Abstract

本发明涉及用于平衡工作负荷分布的协作方法和***。可以提供一种用于多个联网的计算节点中的平衡的工作负荷分布的方法。可以布置联网的计算节点为连通图,该连通图定义每个联网的计算节点的至少一个直接邻居。该方法可以包括:确定第i个计算节点在第i个计算节点可以开始新任务之前的第一阶段的第一工作负荷指标;确定第i个计算节点在假设新任务在第i个计算节点上在第二阶段执行时的估计工作负荷指标;确定每个直接邻居在假设新任务在第二阶段执行时的估计工作负荷指标;判决是否向另一计算节点移动新任务;并且向第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点移动新任务,从而在多个联网的计算节点内平衡工作负荷。

Description

用于平衡工作负荷分布的协作方法和***
技术领域
本发明总体涉及一种平衡的工作负荷分布。本发明还涉及一种计算节点、计算***、数据处理程序和计算机程序产品。
背景技术
现代计算中心通常与计算机、计算机节点或者计算***的网络操作。在许多情况下,借助于虚拟化层将硬件***抽象化成操作***。云计算中心的这一典型设置——即使无虚拟化——满足计算中心的用户或者客户对在不同***之中分布工作负荷的要求,以便由于个体***的更佳利用而具有更高总吞吐量。对于计算中心管理,它意味着组织工作负荷在计算***之中的有意义分布以便实现工作负荷在不同计算***之中的平衡。这可以最佳利用可用资源。
存在与平衡的工作负荷有关的若干公开文献。例如文献US8,122,132B2公开一种用于操作具有多个节点(每个节点包括多个处理器)的高性能计算集群(HPC)的技术,其中该技术包括周期性地将与在多个节点中的每个节点的处理器利用率和网络利用率有关的信息从多个节点中的每个其它节点向多个节点中的其余节点广播。基于广播的信息更新在多个节点中的每个节点中维护的相应本地作业表。然后(基于各本地作业表中的广播信息)从多个处理器中的一个或者多个处理器向多个处理器中的不同处理器移动一个或者多个线程。
在另一文献US201122706A1中,公开一种方法,该方法提供网络拓扑的自动和优化选择用于分布在修改的网络拓扑的计算机上的作业调度。网络拓扑的自动和优化选择从当前拓扑和所需数目的附加连接开始。以这一方式,本发明的方法与例如简单环网络比较为修改的一致性算法提供更高收敛速度。该方法利用所谓小世界网络。
然而,用于实现工作负荷分布的当前方式基于使用集中方式在服务器之间拆分工作负荷。这可以在资源利用率的可扩展性、可适配性和优化方面具有一些限制。此外,当在网络本身内的计算节点随机生成工作负荷时适配资源利用率可能很复杂。
因此,可能需要克服用于计算节点网络中的工作负荷分布的集中方式的上述限制并且提供一种更动态、可适配的平衡的工作负荷分布。
发明内容
这一需求可以由根据独立权利要求的一种用于平衡的工作负荷分布的方法、计算节点、计算***、数据处理程序和计算机程序产品解决。
根据一个实施例,可以提供一种用于平衡的工作负荷分布的方法。该方法可以可操作用于分发多个联网的计算节点中的工作负荷。可以布置联网的计算节点布置为连通图,该连通图定义每个联网的计算节点的至少一个直接邻居。该方法可以包括:确定多个联网的计算节点之中的第i个计算节点在第i个计算节点可以开始新任务之前的第一阶段k的第一工作负荷指标xi(k),确定第i个计算节点在假设将在第i个计算节点上在第二阶段k+1执行新任务时的估计工作负荷指标yi(k+1),并且确定第i个计算节点的每n个直接邻居在假设将在第二阶段k+1执行新任务时的估计工作负荷指标yj(k+1),j≤n。基于这些确定,该方法也可以包括基于判决协议判决是否向第i个计算节点的n个直接邻近计算节点中的一个直接邻近计算节点移动新任务。这一判决协议可以包括第i个计算节点在阶段k的第一工作负荷指标xi(k)、第i个计算节点在阶段k+1的估计工作负荷指标yi(k+1)、第i个计算节点的直接邻近计算节点中的每个直接邻近计算节点在阶段k的第一工作负荷指标xj(k)以及第i个计算节点的直接邻近计算节点j中的每个直接邻近计算节点在阶段k+1的估计工作负荷指标yi(k+1),然后如果判决为移动新任务则向第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点移动新任务,从而在多个联网的计算节点内平衡工作负荷。
根据另一实施例,可以提供一种计算节点。该计算节点可以可连接到多个联网的计算节点。可以布置联网的计算节点为连通图,该连通图定义每个联网的计算节点的至少一个直接邻居。该计算节点可以包括:第一确定单元,适于确定它的作为多个联网的计算节点之中的计算节点在计算节点开始新任务之前的第一阶段k的第一工作负荷指标xi(k),以及第二确定单元,适于确定它的作为计算节点在假设新任务在计算节点上在第二阶段k+1执行时的估计工作负荷指标yi(k+1),以及第三确定单元,适于确定第i个计算节点的n个直接邻居中的每个直接邻居在假设新任务在第二阶段k+1执行时的估计工作负荷指标yj(k+1),j≤n。此外,可以提供可以适于基于判决协议来判决是否向计算节点的n个直接邻近计算节点中的一个直接邻近计算节点移动新任务的判决单元。判决协议可以包括计算节点在阶段k的第一工作负荷指标xi(k)、计算节点在阶段k+1的估计工作负荷指标yi(k+1)、计算节点的直接邻近计算节点中的每个直接邻近计算节点在阶段k的第一工作负荷指标xj(k)以及第i个计算节点的每个直接邻近计算节点j在阶段k+1的估计工作负荷指标yi(k+1)。计算节点也可以包括:移动单元,适于在判决为移动新任务的情况下向第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点移动新任务,从而在多个联网的计算节点内平衡工作负荷。
根据又一实施例,可以提供一种可以包括多个联网的如以上说明的计算节点的联网***。
可以注意,可以在连通图中、具体在构建连通图的拓扑中布置计算节点,从而可以使用从节点到节点的网络连接从任何计算节点开始到达每个节点。也可以值得提到的是工作负荷指标可以——具体为——具有离散值的标量参数或者具有有关参数值的标量参数的矢量,这些标量参数比如是CPU使用率、存储器使用率、网络使用率或者可以针对也见上文的计算节点的利用率和有关工作负荷而描述和表征的其它参数。
详细描述
在本申请的上下文中,可以使用以下约定、术语和/或表达:
术语“连通图”可以表示计算节点的拓扑,从而每个节点可以从任何计算节点开始可达。可以不只有到达节点的一个路径,而是有多个路径。但是可以存在至少一个路径,从而可以不存在隔离的子***。
术语“工作负荷指标”可以表示表征计算节点的一个或者多个参数。可以将其表达为标量值,或者备选地,它可以是不同参数如CPU使用率、存储器使用率、网络使用率、I/O速率、管理的进程数目、并行处理的线程数目的矢量。所有这些参数可以依赖于时间并且可以针对不同的可预定义时间间隔来测量或者确定这些参数。这一设置可以可由用户定义。备选地,计算节点可以基于工作负荷模式自动确定相关参数,这些工作负荷模式可以依赖于一天内的时间、一周内的日期、其它时间间隔或者用户在线、处理工作负荷、预定义工作负荷参数——可以针对这些工作负荷参数预定义某些合约条件——等。
术语“工作负荷分布”可以表示用于有关网络中的计算节点上的工作负荷平衡的措施。在相等工作负荷的情况下,所有计算节点——或者仅预定义子组——可以在给定的时间点具有相似工作负荷。它可以描述其中所有计算节点的工作负荷可以接近相等的情形。
“联网的计算节点”可以表示可以使用已知网络技术和协议来连接的计算机***。计算节点可以各自是具有它自己的外壳或者底盘的个体计算机。备选地,一对或者所有计算节点可以处于共同外壳中、比如在刀片***中,或者它们可以布置于共同机架中。它们可以是高性能***的一部分或者如在多处理器中通常使用的具有CPU和存储器的单核***——或者也可以是多核***。
术语“直接邻居”或者“直接邻近计算节点”可以表示计算节点在连通图的定义中的下一邻居。它可以意味着可以达到一个计算节点而无需通过连通图的另一成员。这些计算节点可以在它们之间具有直接网络或者其它直接链路——例如无线链路。
“第一工作负荷指标”可以表示有关计算节点的工作负荷指标。它可以描述计算节点的资源利用率。在计算节点中可用的每个资源及其有关利用率可以用作第一工作负荷指标。以下给出示例。
术语“CPU使用率”可以表示工作负荷指标的示例。可以按照其中CPU可以在空闲模式中的百分比、处理器计算的线程数目、每时间间隔的任务切换数目、在处理器的不同单元或者子处理器、例如浮点单元与定点单元之间的拆分等来度量它。
术语“存储器使用率”可以表示与计算节点的存储器的利用率有关的参数。它可以是工作负荷指标的另一示例。它可以涉及主存储器、内部存储器或者高速缓冲存储器或者外部存储器或者其任何组合。可以在时间段上、即在时间间隔内度量利用率。它可以是可用存储器的百分比,或者存储器可以不以任何方式***作***使用、即自由可访问的存储器。
术语“计算节点响应时间”也可以是第一工作负荷指标的或者简称为工作负荷指标的示例。响应时间可以是在已经开始任务之后在递送结果之前的时间。作为任务,可以参考标准任务以便具有可比较结果。响应时间也可以是用于如下组合响应的指示,该组合响应包括I/O时间、计算时间和网络延迟。
用于计算节点的“新任务”可以表示新工作负荷、新过程或者新线程等。新任务的计算可以尚未开始以便将它称为新任务。在可以开始新任务之前,必须做出两个判决、例如是否在当前计算***中或者在另一计算***中开始新任务。在本上下文中,“移动新任务”可以表示向邻近节点传递任务——例如使用网络向另一计算节点在物理上传递新任务——以便在邻近计算节点中继续任务或者另外操纵它。
“估计工作负荷指标”可以表示工作负荷指标在假设在计算节点执行新任务时的值。然而有关值可以不仅反映——即,基于以下而被确定——实际或者当前计算节点的工作负荷和有关参数而且反映直接邻近计算节点的工作负荷指标。这与第一工作负荷指标形成对比,该第一工作负荷指标是用于计算节点的实际工作负荷的度量。为此,可以不考虑邻近工作负荷。
可以理解,术语“工作负荷指标”可以是与上述示例之一有关的参数或者是可以描述计算节点的利用率的参数。也可以理解,可以组合或者使用个体参数的任何组合作为包括多个参数的矢量。
提出的用于平衡的工作负荷分布的方法可以提供两个优点:
基于新方法,计算节点的连接的组的工作负荷的平衡可以基于一致性算法(consensus algorithm),该一致性算法可以允许使用协作方法来平衡计算节点网络上的工作负荷。该方法可以允许完全利用网络内的机器或者计算资源而未将任何集中式部件用于作业或者工作负荷指派、作业负荷估计和作业贮存库。在最先进的解决方案中大量使用集中方式。
以这里公开的这一新方式,在计算节点中使用本发明的修改的一致性算法,可以改进、即更加平衡计算资源网络内的工作负荷平衡和资源利用率。这可以节省以附加计算节点、功率、编程要求、***管理开销、用于达到平衡状态的时间等这样的形式的资源。
这一解决方案可以基于逻辑拓扑,该逻辑拓扑基于计算节点的邻近概念。它也涉及到每个节点直接评估的在使用的资源方面的至少一个工作负荷指标(例如CPU使用率、存储器使用率、响应时间、网络使用率等)也可以反映与每个精化阶段(elaboration)或者新任务关联的“估计工作负荷指标”。它可以例如基于待由新任务分析的多个项或者数据、将向这一数据应用的逻辑复杂性以及可用硬件和操作***类型。另外,修改的平均一致性算法是解决方案的一部分,以及重新分配/判决范式或者判决协议,该范式或者协议允许每个节点选择是否可以在计算节点本地执行计算或者是否可以将它向它的直接邻居中的一个直接邻居传递。因此,可以将优点概括为提供一种能够以快速方式优化资源利用率并且避免整个***发散(diverge)———这可以由一致性算法确保—的方法和***。
根据该方法的一个实施例,判决协议可以由下式定义:
对于所有j≤n,max{(max[yj(k+1)-xj(k)]);[yi(k+1)-xi(k)]},
其中:
yj(k+1)可以是与第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点在阶段k+1——该阶段可以是其中可以处理新任务的阶段——的估计工作负荷指标,
xj(k)可以是与第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点在阶段k——意味着在新任务未被处理——的工作负荷指标,
yi(k+1)可以是第i个计算节点在阶段k+1的估计工作负荷指标,
xi(k)是第i个计算节点在阶段k的工作负荷指标,并且
“n”是第i个计算节点的直接邻近计算节点数目。
上述判决协议可以定义可以向如下节点移动的新任务,该节点具有它的估计工作负荷指标的最大增加。
根据该方法的一个实施例,每个工作负荷指标可以基于在包括CPU使用率、存储器使用率、计算节点响应时间、网络流量和盘I/O流量或者其组合的组之中的至少一项。因此,它可以是组合参数中的多于一个参数的标量值或者矢量。公式
x = Σ i = 1 R a i m i
可以定义这样的多个资源,其中“x”可以是工作负荷指标的矢量,“R”可以是资源数目,“a”可以是缩放因子,并且“m”可以是用于每个资源的度量,该度量指示该资源“I”的工作负荷。备选写入将是:
x → = diag ( β ) m → ,
其中可以是工作负荷指标的矢量,“β”可以是缩放因子“ai”的矩阵,并且可以是矩阵的矢量
这样,可以建立灵活基础从而反应在云计算中心的不同工作负荷情形、例如批作业繁重、交互繁重、基础设施繁重、数据库繁重、工作负荷的平衡的混合等。
根据该方法的再一个实施例,针对新任务,每个估计工作负荷指标可以基于与在包括待由新任务分析的多个项、待向有关数据应用的新任务的逻辑复杂性、用于计算节点的硬件类型、计算节点的操作***以及另外涉及到的硬件和/或软件部件的组之中的一项组合的相应工作负荷指标。项可以是用于待涉及到的数据点的度量。它也可以是用于涉及到的数据库中的表、数据库中的行或者列、不同数据类型的数目等的计数器。
待分析的项可以是新任务可以解决的任何项、例如数据、数据结构、数据块表、数据库行、数据库列、线程数目、线程复杂性、图像、文件***中的文件、在数据之间的依赖性等。
根据本发明的一个增强的实施例,第i个计算节点在阶段k+1的估计工作负荷指标yi(k+1)可以由下式确定:
y i ( k + 1 ) = 1 ( n + 1 ) ( x i ( k ) + Σ j = 1 n [ x j ( k ) ] ) , 其中:
“n”可以是第i个计算节点的直接邻近计算节点的数目,
xi(k)可以是第i个计算节点在阶段“k”的第一工作负荷指标,
xj(k)可以是“n”个直接邻近计算节点中的一个直接邻近计算节点在阶段“k”的第一工作负荷指标。
这使得清楚的是并未使用集中方式并且第i个计算节点的估计工作负荷指标也反映直接邻近计算节点的工作负荷。这使得本发明概念和修改的一致性算法相当清楚。
根据本发明的另一增强的实施例,第i个计算节点的直接近邻计算节点中的一个直接邻近计算节点在阶段k+1的估计工作量指标yj(k+1)由下式确定:
y j ( k + 1 ) = 1 ( m + 1 ) ( x j ( k ) + Σ c = 1 m [ x c ( k ) ] ) , 其中:
“m”可以是第i个计算节点的直接邻近计算节点中的该一个直接邻近计算节点的直接邻近计算节点的数目,
xj(k)可以是第j个计算节点在阶段“k”的第一工作负荷指标,该第j个计算节点可以是第i个计算节点的直接邻居,
xc(k)可以是第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点的“m”个直接邻近计算节点中的一个直接邻近计算节点在阶段“k”的第一工作负荷指标。
因此,第i个计算节点的直接邻居的估计工作负荷指标也用可以针对第i个计算节点执行确定的相同方式确定它们的估计工作负荷指标。因此,该概念可以跨越计算节点网络一致。这可以帮助减少确定例程并且可以在合理水平保持***管理。
另外,实施例可以采用从计算机可用或者计算机可读介质可访问的计算机程序产品的形式,该计算机可用或者计算机可读介质提供用于由计算机或者任何指令执行***使用或者与计算机或者任何指令执行***结合使用的程序代码。出于本说明书的目的,计算机可用或者计算机可读介质可以是任何可以包含如下单元的装置,该装置用于存储、传达、传播或者传送用于由指令执行***、装置或者设备使用或者与指令执行***、装置或者设备结合使用的程序。
介质可以是用于传播介质的电子、磁、光学、电磁、红外或者半导体***。计算机可读介质的示例可以包括半导体或者固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括紧致盘只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)、DVD和蓝光盘。
也应当注意,已经参照不同主题内容描述本发明的实施例。具体而言,已经参照方法类型权利要求描述一些实施例,而已经参照装置类型权利要求描述其它实施例。然而本领域技术人员将从以上和以下描述中推断,除非另有明示,否则除了属于一类主题内容的特征的任何组合之外,在涉及不同主题内容的特征之间、具体在方法型权利要求的特征与装置型权利要求的特征之间的任何组合也视为在本文内被公开。
从下文将描述的实施例的示例清楚并且参照实施例的示例说明本发明的以上定义的方面和更多方面,但是本发明不限于这些示例。
附图说明
现在将仅通过示例并且参照以下附图描述本发明的优选实施例:
图1示出用于工作负荷分布的本发明方法的实施例的框图。
图2示出连通图中的计算节点网络的实施例的框图。
图3示出具有工作负荷指标值示例以及估计工作负荷指标值示例的计算节点网络的实施例的框图。
图4示出其中可以必须执行新任务的计算节点网络的实施例。
图5示出计算节点网络的实施例,其中新任务在向新计算节点中转途中。
图6示出计算节点网络的实施例,其中已经随新工作负荷指标移动新任务。
图7示出计算节点的实施例,该计算节点具有允许执行本发明方法的单元。
图8另外示出计算节点的实施例,该计算节点具有计算***的典型单元。
具体实施方式
在下文中将给出附图的具体描述。图中的所有指示为示意的。首先给出用于平衡的工作负荷分布的本发明方法的实施例的框图。随后将描述适于执行该方法的计算节点的更多实施例。
图1示出用于多个联网的计算节点中的工作负荷分布的方法100的一个实施例的框图。布置联网的计算节点为连通图,从而每个节点可以从任何计算节点开始到达,并且定义网络中的与每个计算节点的至少一个直接邻居。该方法可以包括确定102多个联网的计算节点之中的第i个计算节点在第i个计算节点可以开始新任务之前的第一阶段k——意味着第一时间间隔——的第一工作负荷指标xi(k)————该第一工作负荷指标可以是如上文说明的标量参数或者矢量。另外,该方法可以包括确定104第i个计算节点在假设可以在第i个节点上在第二阶段k+1——意味着在比第一时间间隔更晚的时间点——执行新任务时的估计工作负荷指标yi(k+1)。此外,该方法可以包括确定106第i个计算节点的每n个直接邻居在假设可以在第二阶段k+1执行新任务时的估计工作负荷指标yj(k+1),并且判决108是否向第i个计算节点的n个直接邻近计算节点中的一个直接邻近计算节点移动新任务。这一判决可以基于判决协议,该判决协议包括第i个计算节点在阶段k的第一工作负荷指标xi(k)、第i个计算节点在阶段k+1的估计工作负荷指标yi(k+1)、第i个计算节点的直接邻近计算节点中的每个直接邻近计算节点在阶段k的第一工作负荷指标xj(k)和第i个计算节点的直接邻近计算节点j中的每个直接邻近计算节点在阶段k+1的估计工作负荷指标yi(k+1)。另外,该方法可以包括如果判决为移动新任务则向第i个计算节点的直接邻近计算节点中的一个直接邻近计算节点移动110新任务,从而在多个联网的计算节点内平衡工作负荷。由此可以实现上述优点。
图2示出连通图的示例性拓扑中的计算节点202、204、206、208、210、212、214、216的网络200的一个实施例的框图。可以值得注意的是第i个计算节点202和第j个计算节点210。第i个计算节点202可以——在所示示例性网络拓扑中——具有四个直接邻近计算节点204、206、208和210。类似地,计算节点210具有直接邻近计算节点202、212、214、216。相同逻辑可以应用于任何其它计算节点。计算节点也可以具有如示例性虚线所示多个连接。连通图的概念也可以在图2中可识别:可以从任何节点开始到达网络的每个节点。与其余(计算)节点无连接的子网络并不存在。
图3示出图3的计算节点网络的实施例的框图,该网络具有工作负荷指标值示例以及估计工作负荷指标值示例。这两个值可以由竖线分离。在计算节点的每个框中的在标号以下的左侧值可以表示第一工作负荷指标,而右侧数可以表示具体计算节点的估计工作负荷指标。例如计算节点202可以在假设可以执行新任务的之后时间阶段具有第一工作负荷指标“45”和估计工作负荷指标“27”。这一逻辑可以应用——在必要修改时——于图3、4、5和6中的所有计算节点符号。
图4示出如以上描述的计算节点网络200的实施例。这里,新任务402可以必须由第i个计算节点202执行。第一工作负荷指标和估计工作负荷指标可以示出尚未改变。
图5示出计算节点网络200的一个实施例,其中新任务402如在箭头502指示的那样,在向新计算节点中转途中。根据上述修改的一致性算法和判决协议,它可以已经判决向另一计算节点、例如第j个计算节点210移动新任务402。工作负荷指标可以仍然未变、尤其是第i个计算节点210的第一工作负荷指标504。这一参数502可以具有值例如10。
图6示出相同计算节点网络200的一个实施例,其中可以已经向新计算节点210移动新任务402。这里示出具有值“25”的新第一工作负荷指标602。在可以开始新任务、即可以开始对新任务的处理之前,将使检查与初始阶段相同。这意味着计算节点210可以在过程的开始在与计算节点202相同的情形中。因而,计算节点210可以经历如下过程,该过程检查直接邻近计算节点是否可以更好地适于执行新任务。这可以也包括确定计算节点212、214和216的第一工作负荷指标和估计工作负荷指标并且如以上提到的那样相应地应用判决协议。基本上,可以针对新计算节点210再次执行如以上描述的方法。这样可以用很高效方式达到计算节点网络200中的平衡的工作负荷分布。
图7示出计算节点700的实施例,该计算节点具有允许执行本发明方法的单元。具体而言,示出适于确定第i个节点的第一工作负荷指标的第一确定单元702。也可识别适于确定在假设可以在第i个节点处理新任务时的估计工作负荷指标的第二确定单元704。这同样适用于第三确定单元706,该第三确定单元可以适于为第i个计算节点的直接邻近计算节点确定估计工作负荷指标。可以提到的是,这一确定单元706可以依次确定直接邻近计算节点的估计工作负荷指标。因此每个节点仅需一个确定单元706。也示出适于基于一致性算法判决是否向另一计算节点移动新任务的判决单元708以及移动单元710。
无论适于存储和/或执行程序代码的平台如何,本发明的实施例都可以与实质上任何类型的计算机一起实施。例如,如图8中所示,计算***或者计算节点700——除了包括单元702至710(见上文)之外——还可以包括每个处理器有具有一个或者多个核的一个或者多个处理器802、关联存储器单元804、内部存储设备806(例如硬盘、光学驱动如紧致盘驱动或者数字视频盘(DVD)驱动、闪存棒、固态盘等)以及如今的计算机的许多其它典型单元和功能(未示出)。存储器单元804可以包括在实际执行程序代码期间运用的主存储器、例如随机存取存储器(RAM)以及如下高速缓冲存储器,该高速缓冲存储器可以提供对至少一些程序代码和/或数据的临时存储以便减少必须从长期存储介质或者外部大容量存储装置(bulk storage)816取回代码和/或数据以用于执行的次数。在计算机700以内的单元可以借助于总线***818与对应适配器一起链接。此外,确定单元702、704、706以及判决单元708以及移动单元710可以是计算***700的一部分。单元702、704、706、708和710也可以连接到总线***818,或者可以另外实施它们。
计算***700也可以包括输入装置、比如键盘808、指点设备、比如鼠标810或者麦克风(未示出)。备选地,计算***可以配备有触摸屏幕、比如主输入设备。另外,计算机700可以包括输出装置、比如监视器或者屏幕812[例如液晶显示器(LCD)、等离子体显示器、发光二极管显示器(LED)或者阴极射线管(CRT)监视器]。计算机***700可以经由网络接口连接814连接到网络、例如局域网(LAN)、广域网(WAN)、比如因特网或者包括无线网络的任何其它相似类型的网络。这可以允许耦合到其它计算机***或者存储网络或者带驱动。本领域技术人员将理解,存在许多不同类型的计算机***,并且前述输入和输出装置可以采用其它形式。一般而言,计算机***700可以至少包括为了实现本发明的实施例而必需的最少处理、输入和/或输出装置。
尽管已经关于有限数目的实施例描述本发明,但是从本公开内容受益的本领域技术人员将理解,可以设计为如这里公开的那样的其它实施例,这些实施例并未脱离本发明的范围。因而,本发明的范围应当仅受所附权利要求限制。也可以组合与不同实施例关联描述的单元。也应当注意,不应解释权利要求中的标号为限制要素。
所属技术领域的技术人员知道,本发明的各个方面可以实现为***、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置或者其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
这里所用术语仅用于描述具体实施例这样的目的而并非旨在于限制本发明。如这里所用,除非上下文另有明示,则单数形式“一(个)”和“该(所述)”旨在于也包括复数形式。还将理解,术语“包括”在使用于本说明书中时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组合。
在所附权利要求中的所有装置或者步骤加上功能单元的对应结构、材料、动作和等效物旨在于包括如具体要求保护的用于与其它要求保护的单元组合执行功能的任何结构、材料或者动作。本发明的描述已经出于示例和描述的目的而加以呈现、但是并非旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域其他普通技术人员能够针对具有如与设想的特定使用相适合的各种修改的各种实施例理解本发明。

Claims (7)

1.一种用于多个联网(200)的计算节点中的工作负荷分布的方法(100),所述联网(200)的计算节点被布置为连通图,所述连通图定义每个联网的计算节点的至少一个直接邻近计算节点,所述方法包括:
-确定(102)所述多个联网的计算节点之中的第i个计算节点(202)在所述第i个计算节点开始新任务之前的第一阶段k的第一工作负荷指标xi(k),
-确定(104)所述第i个计算节点(202)在假设所述新任务(402)在所述第i个计算节点(202)上在第二阶段k+1执行时的估计工作负荷指标yi(k+1),
-确定(106)所述第i个计算节点(202)的每n个直接邻近计算节点(204,206,208,210)在假设所述新任务(402)在所述第二阶段k+1执行时的估计工作负荷指标yj(k+1),j≤n,
-基于判决协议来判决(108)是否向所述第i个计算节点(202)的所述n个直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点移动所述新任务(402),所述判决协议包括:
-所述第i个计算节点在阶段k的所述第一工作负荷指标xi(k),
-所述第i个计算节点在阶段k+1的所述估计工作负荷指标yi(k+1),
-所述第i个计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的每个直接邻近计算节点在阶段k的所述第一工作负荷指标xj(k),以及
-所述第i个计算节点(202)的所述直接邻近计算节点j(204,206,208,210)中的每个直接邻近计算节点在阶段k+1的所述估计工作负荷指标yi(k+1),
-如果判决为移动所述新任务(402),则向所述第i个计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点移动(110)所述新任务(402),
从而在所述多个联网的计算节点内平衡工作负荷,
其中所述第i个计算节点(202)在阶段k+1的所述估计工作负荷指标yi(k+1)由下式确定:
其中:
“n”是所述第i个计算节点(202)的直接邻近计算节点(204,206,208,210)的数目,
xi(k)是所述第i个计算节点(202)在阶段k的所述第一工作负荷指标,
xj(k)是所述n个直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点在阶段k的所述第一工作负荷指标。
2.根据权利要求1所述的方法(100),其中所述判决协议由下式定义:
对于所有j≤n,max{(max[yj(k+1)-xj(k)]);[yi(k+1)-xi(k)]},
其中:
yj(k+1)是所述第i个计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点在阶段“k+1”的所述估计工作负荷指标,
xj(k)是所述第i个计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点在阶段“k”的所述工作负荷指标,
yi(k+1)是所述第i个计算节点(202)在阶段“k+1”的所述估计工作负荷指标,
xi(k)是所述第i个计算节点(202)在阶段k的所述工作负荷指标,并且
“n”是所述第i个计算节点(202)的直接邻近计算节点(204,206,208,210)的数目。
3.根据权利要求1或者2所述的方法(100),其中每个工作负荷指标基于包括CPU使用率、存储器使用率、计算节点响应时间、网络流量和盘I/O流量或者其组合的组之中的至少一项。
4.根据权利要求1或者2所述的方法(100),其中针对所述新任务(402),每个估计工作负荷指标基于与包括待由所述新任务分析的多个项、待向有关数据应用的所述新任务的逻辑复杂性、用于有关计算节点的硬件类型、所述计算节点的操作***以及另外涉及到的硬件和/或软件部件的组之中的一项组合的相应工作负荷指标。
5.根据权利要求1或者2所述的方法(100),其中所述第i个计算节点(202)的所述直接近邻计算节点(204,206,208,210)中的一个直接邻近计算节点在阶段k+1的所述估计工作负荷指标yj(k+1)由下式确定:
其中:
“m”是所述第i个计算节点(202)的所述直接邻近计算节点中的所述一个直接邻近计算节点(210)的直接邻近计算节点(202,212,214,216)的数目,
xj(k)是所述第j个计算节点(210)在阶段“k”的所述第一工作负荷指标,所述第j个计算节点(210)是所述第i个计算节点(202)的直接邻近计算节点,
xc(k)是所述第i个计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点的m个直接邻近计算节点(202,212,214,216)中的一个直接邻近计算节点在阶段“k”的所述第一工作负荷指标。
6.一种将被耦合到多个联网(200)的计算节点的计算节点(700),所述联网(200)的计算节点被布置为连通图,所述连通图定义每个联网的计算节点的至少一个直接邻近计算节点,所述计算节点(700)包括:
-第一确定单元(702),适于确定其作为所述多个联网的计算节点之中的第i个计算节点(202,700)在所述第i个计算节点(202,700)开始新任务(402)之前的第一阶段k的第一工作负荷指标xi(k),
-第二确定单元(704),适于确定其作为所述第i个计算节点(202)在假设所述新任务(402)在所述计算节点(202,700)上在第二阶段k+1执行时的估计工作负荷指标yi(k+1),
-第三确定单元(706),适于确定所述计算节点(202,700)的n个直接邻近计算节点(204,206,208,210)中的每个直接邻近计算节点在假设所述新任务(402)在所述第二阶段k+1执行时的估计工作负荷指标yj(k+1),j≤n,
-判决单元(708),适于基于判决协议来判决是否向所述计算节点(202,700)的所述n个直接邻近计算节点中的一个直接邻近计算节点移动所述新任务(402),所述判决协议包括:
-所述计算节点(202,700)在阶段k的所述第一工作负荷指标xi(k),
-所述计算节点(204,206,208,210)在阶段k+1的所述估计工作负荷指标yi(k+1),
-所述计算节点(202,700)的所述直接邻近计算节点(204,206,208,210)中的每个直接邻近计算节点在阶段k的所述第一工作负荷指标xj(k),以及
-所述计算节点(202,700)的每个直接邻近计算节点j(204,206,208,210)在阶段k+1的所述估计工作负荷指标yi(k+1),
-移动单元(710),适于在判决为移动所述新任务(402)的情况下向所述计算节点(202)的所述直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点移动所述新任务(402),
从而在所述多个联网(200)的计算节点内平衡工作负荷,
其中所述第i个计算节点(202)在阶段k+1的所述估计工作负荷指标yi(k+1)由下式确定:
其中:
“n”是所述第i个计算节点(202)的直接邻近计算节点(204,206,208,210)的数目,
xi(k)是所述第i个计算节点(202)在阶段k的所述第一工作负荷指标,
xj(k)是所述n个直接邻近计算节点(204,206,208,210)中的一个直接邻近计算节点在阶段k的所述第一工作负荷指标。
7.一种***,包括根据权利要求6所述的多个联网的计算节点(202,204,206,208,210,212,214,216)。
CN201310382257.3A 2012-08-28 2013-08-28 用于平衡工作负荷分布的协作方法和*** Expired - Fee Related CN103677996B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1215214.6A GB2505412A (en) 2012-08-28 2012-08-28 Collaborative modified consensus workload distribution between computing nodes
GB1215214.6 2012-08-28

Publications (2)

Publication Number Publication Date
CN103677996A CN103677996A (zh) 2014-03-26
CN103677996B true CN103677996B (zh) 2016-12-28

Family

ID=47045438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310382257.3A Expired - Fee Related CN103677996B (zh) 2012-08-28 2013-08-28 用于平衡工作负荷分布的协作方法和***

Country Status (3)

Country Link
US (1) US9577869B2 (zh)
CN (1) CN103677996B (zh)
GB (1) GB2505412A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10917458B2 (en) * 2018-11-12 2021-02-09 Pivotal Software, Inc. Message broker configuration
CN110554923B (zh) * 2019-09-09 2020-05-22 北京人民在线网络有限公司 一种用于云计算的分布链式计算资源的优化方法及***
CN110504715A (zh) * 2019-09-18 2019-11-26 中国科学技术大学 一种用于微电网负荷分配的分布式调度方法及***
CN113157427B (zh) * 2020-01-07 2024-03-15 中科寒武纪科技股份有限公司 任务迁移的方法、装置、计算机设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126992A (zh) * 2006-08-15 2008-02-20 国际商业机器公司 在网络中的多个节点中分配多个任务的方法和***
CN101604264A (zh) * 2009-07-08 2009-12-16 深圳先进技术研究院 超级计算机的任务调度方法及***

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05101019A (ja) * 1991-10-09 1993-04-23 Nec Corp 自動負荷検出分配型分散処理方法
JPH07225746A (ja) * 1994-02-09 1995-08-22 Mitsubishi Electric Corp 動的負荷分散方法
EP1022658A1 (de) * 1999-01-21 2000-07-26 Siemens Aktiengesellschaft Lastverteilungsverfahren eines Multiprozessorsystems und Multiprozessorsystem
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
EP1783604A3 (en) * 2005-11-07 2007-10-03 Slawomir Adam Janczewski Object-oriented, parallel language, method of programming and multi-processor computer
US8355709B2 (en) * 2006-10-23 2013-01-15 Qualcomm Incorporated Device that determines whether to launch an application locally or remotely as a webapp
KR20100133418A (ko) 2008-04-15 2010-12-21 인터내셔널 비지네스 머신즈 코포레이션 워크로드 스케줄링을 위한 방법, 시스템 및 컴퓨터 프로그램
US8122132B2 (en) 2008-12-16 2012-02-21 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
GB2509685B (en) 2009-07-21 2015-05-20 Ibm A method and system for job scheduling in distributed data processing system with identification of optimal network topology
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
JP5378629B2 (ja) * 2011-03-31 2013-12-25 エヌイーシー ヨーロッパ リミテッド リレー拡張ネットワークにおけるリレーノードの設定および再設定を実行する方法および装置
WO2013142210A1 (en) * 2012-03-21 2013-09-26 Tier3, Inc. Cloud application scaling framework

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126992A (zh) * 2006-08-15 2008-02-20 国际商业机器公司 在网络中的多个节点中分配多个任务的方法和***
CN101604264A (zh) * 2009-07-08 2009-12-16 深圳先进技术研究院 超级计算机的任务调度方法及***

Also Published As

Publication number Publication date
CN103677996A (zh) 2014-03-26
US9577869B2 (en) 2017-02-21
GB201215214D0 (en) 2012-10-10
US20140068082A1 (en) 2014-03-06
GB2505412A (en) 2014-03-05

Similar Documents

Publication Publication Date Title
Krause et al. JURECA: general-purpose supercomputer at Jülich supercomputing centre
Liu et al. Deadline‐constrained coevolutionary genetic algorithm for scientific workflow scheduling in cloud computing
Joseph et al. IntMA: Dynamic interaction-aware resource allocation for containerized microservices in cloud environments
Abdi et al. Cost minimization for deadline-constrained bag-of-tasks applications in federated hybrid clouds
CN113168569A (zh) 去中心化分布式深度学习
US8701112B2 (en) Workload scheduling
Li et al. An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters
CN103677996B (zh) 用于平衡工作负荷分布的协作方法和***
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
Mousavi Khaneghah et al. A mathematical multi-dimensional mechanism to improve process migration efficiency in peer-to-peer computing environments
Rauchecker et al. Using high performance computing for unrelated parallel machine scheduling with sequence-dependent setup times: Development and computational evaluation of a parallel branch-and-price algorithm
Ding et al. Kubernetes-oriented microservice placement with dynamic resource allocation
Visheratin et al. Hybrid scheduling algorithm in early warning systems
Qureshi et al. A comparative analysis of resource allocation schemes for real-time services in high-performance computing systems
Choi et al. DEXSim: an experimental environment for distributed execution of replicated simulators using a concept of single simulation multiple scenarios
Liu et al. KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes
Li et al. Cost-aware scheduling for ensuring software performance and reliability under heterogeneous workloads of hybrid cloud
Asghari et al. Bi-objective cloud resource management for dependent tasks using Q-learning and NSGA-3
Tuli et al. Optimizing the Performance of Fog Computing Environments Using AI and Co-Simulation
Zohrati et al. Flexible approach to schedule tasks in cloud‐computing environments
Dai et al. Collaborative task scheduling with new task arrival in cloud manufacturing using improved multi-population biogeography-based optimization
Nayak et al. Mapping of independent tasks in the cloud computing environment
Peer Mohamed et al. An efficient framework to handle integrated VM workloads in heterogeneous cloud infrastructure
Li et al. A PTS-PGATS based approach for data-intensive scheduling in data grids
Du et al. Stargazer: Toward efficient data analytics scheduling via task completion time inference

Legal Events

Date Code Title Description
PB01 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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161228