CN100555230C - 为具有多个处理器的系统提供处理器集群的方法 - Google Patents
为具有多个处理器的系统提供处理器集群的方法 Download PDFInfo
- Publication number
- CN100555230C CN100555230C CNB2004800219028A CN200480021902A CN100555230C CN 100555230 C CN100555230 C CN 100555230C CN B2004800219028 A CNB2004800219028 A CN B2004800219028A CN 200480021902 A CN200480021902 A CN 200480021902A CN 100555230 C CN100555230 C CN 100555230C
- Authority
- CN
- China
- Prior art keywords
- processor
- cluster
- service point
- clusters
- distance
- 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
Links
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/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- 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/505—Clust
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Mobile Radio Communication Systems (AREA)
- Exchange Systems With Centralized Control (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
描述了一种方法,用于配置具有多个处理器(2)的系统(1)以为系统提供至少一个处理器集群,其中每个集群具有一个服务点(10)。计算系统中从每个处理器到其他处理器的距离(302)。然后计算多个总距离(303),其中每个总距离与一个处理器相关。从多个总距离中确定一个最小总距离(304)。分配一个处理器作为服务点;该处理器是具有与之相关的最小总距离的处理器。
Description
技术领域
本发明涉及自主计算,并且尤其涉及用于使处理器集群化并且在系统中分配服务点以便进行高效、容错、自配置和自愈操作的方法。
背景技术
自主计算(通常是指自监视、自配置、容错和自愈的多处理机计算系统的设计)是一个具有重要理论和实践意义的主题。在构造一个成功的自主计算系统方面的一个重要考虑是将系统的容错功能嵌入其本身以增强其自愈机制。自愈机制会要求在有故障的情况下系统将立即检测故障的性质并设法消除故障。在不能消除故障的情况下,系统将通过分配有故障的处理器的工作给一个或多个其他处理器来最小化随之发生的性能降低。在一个典型的计算机结构中,故障检测及管理的任务或者由一个处理器,或者由一个主处理器完成。
包括自主计算系统的处理器可分布在大的地理区域上。更进一步地,该处理器可具有多种不同类型,运行多种不同类型操作系统,并由分布式网络相连。从地理上讲,不同的处理器常常被布置成集群。这样的布置不允许让一个主处理器管理整个系统的容错功能。因此最好让一些处理器完成容错管理。此处,这些处理器将被称作服务点。
图1A中示出了利用服务点的典型系统。系统1包括若干互连的处理器2,那些处理器中的一个被分配为服务点10。通常,选择服务点为到其他处理器的距离最小的处理器。此处,术语″距离″被用作处理器之间所需通信时间的量度。服务点除其自己的常规计算负载外还具有若干任务:(1)检测系统中其它地方的有故障处理器;(2)通过再分配该处理器的任务到其他处理器来替代有故障处理器;(3)监视由其他处理器所执行的任务;以及(4)平衡系统上的负载以确保最佳性能。图1B图解了一种情况,其中处理器3具有由服务点10检测出的故障,并且已被从系统中移除;系统的剩余部分继续运行。
虽然利用冗余计算的容错功能已被使用了一段时间,但是当前的自主计算系统的自愈及自配置特征产生若干新的关注,例如:
(1)当所有的处理器(包括那些位于远处的)是统一的和可互换的时,自主系统的可自配置和可自调节的特性工作得更好。这意味着服务点不应是特殊的处理器,而是从相同集合的处理器中选择以负担额外负载。
(2)通常,在并行可扩展计算机结构中,服务点的数目是固定的并且不能被指定为活动处理器数目的一部分。然而,具有太少服务点会引起自愈机制太慢;具有太多服务点会降低系统的综合性能。
(3)因为自主计算系统在动态环境中工作,重要的是动态地最优化集群及服务点分配以最优化系统性能。应该注意到,在随需应变计算环境中,处理器的总数(以及集群的组成和服务点的分配)根据计算负载而经常改变。
在自主计算系统的自配置环境中,预分配服务点通常是不可能的。因此,基于所处状态的需求,任何当前处理器都可被动态地分配为服务点。另一方面,建立太多服务点会导致系统上大计算负载。因此,可以期望将服务点的数目保持限于工作处理器的某部分。
因此,当前的问题是:对于分布式动态环境中给定的一组处理器,以及代表最大服务点数目与工作处理器总数之比的分数值的数,确定服务点和每个服务点将服务的处理器。
集群的概念已被成功地应用于许多其他领域。然而,在所有上面所注意到的应用领域中,集群的数目不能被预先确定。有必要给集群的数目设置一个上限,以使针对额外服务点的管理开销总是有限的。用固定限制形成集群的问题通常以棘手著称,即有效的最优解不存在。然而,仍存在针对有效但是次优的解决方案的需要。更特别地,存在针对在系统中给集群动态地分配各个处理器的有效过程的需要,以及在每个集群内分配服务点的需要,以确保系统的最佳性能(包括自配置和自愈)。
发明内容
本发明通过提供一种方法解决了上面所描述的需要,该方法用于配置具有多个处理器(2)的系统(1)以为该系统提供至少一个处理器集群的方法,其中每个集群具有一个服务点,该方法包括步骤:
计算(302)系统中从每个处理器到其他处理器的距离;
计算(303)多个总距离,其中每个总距离与一个处理器相关;
从多个总距离中确定(304)最小总距离;以及
将具有与之相关的最小总距离的处理器分配为服务点;
将所述系统划分成两个集群(L1,L2),其中
根据与每个处理器有关的总距离对处理器排序(322),
将每个处理器分配(324)给两个集群中的一个,
根据与每个集群中的处理器相关的多个总距离确定(325)所述集群中的处理器的最小总距离,以及
将每个集群中具有与之相关的最小总距离的处理器分配(327)为所述集群的服务点;
将所述两个集群(L1,L2)中的一个再分(352)成两个再分集群,因此将系统划分成三个集群;
根据与所述三个集群中的处理器相关的多个总距离,确定(354)所述三个集群的每个集群中的处理器的最小总距离;
根据所述三个集群的每个集群中的处理器的最小总距离将所述三个集群的每个集群中的处理器分别分配(355,356)给所述三个集群;以及
将所述三个集群的每个集群中具有与之相关的最小总距离的处理器分配(357)为所述集群的服务点。
根据本发明的附加实施例,该处理器可具有不同类型,并且根据类型将处理器分配给集群。
当处理器被增加给系统或从系统移走时,该系统可被动态地配置。更进一步地,当处理器被从该系统移走时可动态地改变系统的划分。
每个集群中,如果服务点被从系统中移走,则为承担服务点的功能,另一处理器可被分配为备用服务点。
根据本发明的另一实施例,提供一种计算机可读存储介质,在其中存储了用来执行一种方法的指令,该方法用于配置具有多个处理器的系统以为系统提供至少一个处理器集群,每个集群具有一个服务点。该方法包括步骤:计算系统中从每个处理器到其他处理器的距离;计算多个总距离,其中每个总距离与一个处理器相关;从多个总距离中确定最小总距离;以及将具有与之相关的最小总距离的处理器分配为服务点。
附图说明
图1A图解了具有服务点的系统中处理器的典型布置。
图1B图解了从系统中移除有故障处理器后图1A的系统。
图2图解了具有多处理器的系统,其中根据本发明确定处理器之间的距离。
图3A图解了具有多处理器的系统,根据本发明的一个实施例,其将被配置成为具有服务点的集群。
图3B示意地图解了根据本发明,计算系统中从一个处理器到其他处理器总距离的过程。
图3C是详述根据本发明的一个实施例的算法(N,1)中步骤的流程图。
图3D示意地图解了一个系统被分成两个集群。
图3E是详述根据本发明的一个实施例的算法(N,2)中步骤的流程图。
图3F-1示意地图解了根据本发明的一个实施例的系统,其中集群被再分。
图3F-2示意地图解了系统中集群的可选再分。
图3G是详述根据本发明的一个实施例的算法(N,p)中步骤的流程图。
图3H示出了在图3A的系统中配置集群以及分配服务点的处理的结果。
图4A图解了根据本发明的另一实施例具有不同类型的多处理器的系统,其将被配置成为具有服务点的集群。
图4B示出了在图4A的系统中配置集群以及分配服务点的处理的结果。
图5A图解了具有多处理器的系统,其中一个处理器将被从该系统移除。
图5B示出了一个处理器已被移除之后图5A的系统。
图5C图解了具有多处理器的系统,其中一个处理器将被增加给该系统。
图5D图解了具有两个集群的系统,其中一个处理器将被从该系统移除。
图5E图解了一个处理器已被移除之后图5D的系统,其中集群已被重新配置。
图6图解了具有多处理器的系统,其被配置成均具有服务点的集群,其中一集群的服务点将被从系统移除。
具体实施方式
在下面的描述中,假定该系统具有一组N个处理器c1,c2,......,cN(参见图2)。在处理器ci和cj之间定义一个距离函数d(i,j),以使d(i,i)=0并且d(i,j)满足三角形不等式:d(i,j)+d(j,k)大于或等于d(i,k)。就处理器之间的通信而言,这意味着通过第j个处理器的通信一定比第i个和第k个处理器之间的直接通信慢。距离d(i,j)是通信网络的速度、数据交换的速率和数据量、以及处理器的地理位置的函数。
分数值f被定义为可以承担充当服务点的额外负载的N个处理器的最大部分。则数字p=N*f表示充当服务点的处理器的最大数目。因此,系统可最多有p个集群。
根据本发明,在增加复杂性的若干情况中,为在具有p个集群的N处理器系统中分配集群及服务点提供一种方法如下:
情形1:统一处理器的静态系统。
处理器c1,c2,......,cN的系统将被分成p个不同的集群,其中每个集群用服务点标识,以使属于一集群的所有处理器到该集群的相应服务点的最大距离的和为最小。
例如,图3A图解了被分成p=4个集群的具有N=20个处理器的系统30。在这个例子中,分数f因此是1/5;实际上,f小得多,通常在1/50到1/100的范围内。
该方法将首先针对当p=1及p=2时,即针对1及2个集群的简单情形来描述。这两种情形形成了非寻常情形的基础。
对于p=1,即对于单个集群,使用以下算法。
算法(N,1):
对于i=1到i=N执行:
设置d_i=SUM{d(i,j)}对于j=1到N并且j不等于i;
输出i以使d_i对于i=1到N为最小。
图3B图解了具有N=10个处理器的系统,其中针对处理器c1计算距离d(1,j)。距离d(1,2),d(1,3),...,d(1,10)的和是处理器c1的总距离。
图3C是图解算法(N,1)的流程图。从第一个处理器(在步骤301中i=1)开始,计算处理器与每个其他处理器之间的距离(步骤302)。这些距离的总和是该集群中第i个处理器的总距离(步骤303)。其总距离为最小的处理器(步骤304)将为该集群的服务点。
对于p=2,即对于两个集群,使用以下算法,其中算法(N,1)的方法被反复地使用。作为一个起始步骤,整个N处理器组被当做单一集群,并且上述算法(N,1)用来计算每个处理器的总距离;即,N个处理器中的每个具有表示从该处理器到其他处理器的距离的总和的总距离。第i个处理器的距离被表示为d(i,1)。则N个处理器可依据该距离排序。
算法(N,2):
1.根据距离d(i,1)排序处理器。
2.初始化两个集群L1和L2,其中L1包含全部N个处理器而L2包含0个处理器。
2.i利用算法(N,1)计算L1的服务点及其最小距离;
2.ii初始化d_0为该距离。
3.按其排序次序扫描处理器c1,c2,...,cN:
3.i.针对每个处理器c_i,从L1移除它,然后将它放到L2中。
3.ii.计算L1及L2的服务点及距离d_1i及d_2i的最小和
3.iii.设置距离的总和d_i=d_1i+d_2i
4.针对i=1到N选择距离di以使d_i为最小,并针对该距离输出集群L1及L2。
图3D是系统30的示意图,其具有N=10个处理器,被分成两个集群L1及L2。图3E示出了图解算法(N,2)的流程图。如上所述,利用算法(N,1)首先计算系统中每个处理器的总距离(步骤321),然后依据该距离排序处理器(步骤322)。在集群的初始分配中,所有10个处理器在集群L1中,而集群L2中没有集群。因此初始的最小总距离d_0与先前利用算法(N,1)所计算的相同(步骤323)。从集群L1到集群L2相继移动每个处理器(如利用算法(N,1)所计算的,以根据距离排序的次序进行,从最小距离开始)(步骤324),然后对于每次迭代利用算法(N,1)计算每个集群的最小总距离(步骤325)。在第i次迭代中,集群L1的最小距离表示为d_1i而集群L2的则表示为d_2i。计算出组合最小距离d_i=d_1i++d_2i(步骤326)。在N次迭代的一次中,d_i的值将是最小的。该值被挑选作为系统的总距离,其中具有相应的集群分配(步骤327)。
对于p个集群的非寻常的情形,上述算法(N,2)被反复地使用。在每个阶段,利用算法(N,2)将每一所建立的集群分成两部分;然后识别出使总距离函数最小化的集群分配。
例如,随着算法(N,2)被执行,图3D中所示的N=10个处理器的系统被分成两集群L1和L2。然后在下一个阶段中,集群L1被分成两集群L1.1和L1.2,而L2保持不变(图3F-1)。然后计算总距离(表示为d2.1),以作为L1.1,L2.1和L2的集群距离的总和。然后集群L2被分成两集群L2.1和L2.2,L1保持不变(图3F-2)。再计算总距离(现在给定为d2.2),以作为L1,L2.1和L2.2的集群距离的总和。选择d2.1和d2.2的较小者,以及与其相应的集群配置。因此,如果d2.1<d2.2,那么集群L1.1,L1.2和L2被选择。子划分L1.1和L1.2被分别重命名为L1和L3,并且该组集群的总距离d3被设置为等于d2.1。
以同样方式,在任何迭代阶段q+1,其中q=2,...,N-1,有已存在的集群L1,....,L_q。然后针对j=1,...q通过一次一个地将每一个集群L1,....,L_q分成两个部分L_{j.1}和L_{j.2},同时保持全部其他集群不变,从而建立具有q+1集群的q个组。然后针对每个集群计算距离d_{q.1},...,{d_{q.q}}}。选择这些距离当中的最小距离,以及相应的集群配置。假定d_{m,j}=min{d_{q.1},...,{d_{q.q}}}。则选择相应的集群{L1,L2,...Lm.1,Lm.2,...,Lq}。然后将距离d_{q+1}设置为等于d_{m,j},Lm=Lm.1以及L_{q+1}=Lm.2.。这一过程产生一组q+1个集群,每个具有其自己的服务点。
针对p个集群的算法如下:
算法(N,p):
0.通过利用算法(N,2)将处理器组分成两个集群。
1.对于i=2到p执行:
1.1.对于j=1到i执行
1.1.1利用算法(N,2)将Lj分成Lj.1和Lj.2。
1.1.2对集群的总距离求和并称其d_{i.j}
1.2设置d_{i+1}=min{d_{i.j}|对于j=1到i}。
使出现最小值的j值为j=m,
1.3置Lm=Lm.1
1.4置L_{i+1}=Lm.2
2.返回结果L1,...Lp
图3G示出了上述算法(N,p)的流程图。首先利用算法(N,2)将系统分成两个集群(步骤351)。然后执行迭代,其中利用算法(N,2)将第j个集群分成两个(步骤352),并且计算所有集群(包括两个再分的集群)的总距离(步骤353)。找到这些总距离的最小值(步骤354),并且选择与其相应的集群配置(步骤355)。然后如前面参考图3F-1和3F-2所述地重命名这些集群。这些集群被再分,直到找到一组p个集群(步骤357)。则系统具有一组p个集群,每个具有一个服务点。对于N=20个处理器及p=4个集群,图3H(比较图3A)中示意地示出了该过程的结果。系统30被分成四个集群31,32,33,34,其具有相应的服务点311,312,313,314。
情形2:非统一处理器的静态系统
图4A是系统40的示意图,其中处理器不是全部统一的,而是根据其操作系统及/或技术预组合,并且一种处理器的服务点必须是相同类型的。系统40中,处理器具有两种类型41及42。可以理解不同类型的处理器可通过运行诸如TCP/IP的处理器无关协议的网络来互相通信。例如,自主计算环境可利用一组在Intel芯片上运行的基于Windows的处理器及一组运行AIX的服务器来建立。Intel系统的服务点必须是Intel系统,而AIX系统的服务点必须是基于AIX的系统。系统40因此必须被分成集群以使集群中全部处理器具有相同类型。
这种情况的解决方法可从上面所讨论的情形1的解决方法获得。假设有m种不同类型的处理器,并且每种不同类型的服务点可仅来自其自身的种类。这种情形下,我们首先检查是否m<p,其中p是集群的最大数目。如果m>=p(这在实际系统中是非常不可能的),则根据处理器的种类简单地组合集群。对于m<p,通过将处理器组合成m个集群L1、...、Lm来初始化集群,每个集群仅包含相同类型集群。然后将算法(N,p)应用于这些m个集群。图4B中示意地示出了该过程的结果,其中N=20,m=2以及p=4。处理器41被组合成集群411,412,413,而处理器42被组合成集群420。
情形3.动态系统:处理器进入及离开系统。
这种情形是情形2的延伸,其中处理器的数目动态地变化。由于故障或因为是在一个随需应变环境中运行,处理器可进入或离开系统。此外,处理器数目上的变化可导致集群的数目或者布置的变化,使得集群也动态地变化。更进一步地,如果处理器具有超过一种的类型(并因此在多于一个的不同组中),组的数目可动态地变化。例如,图5A示出了一种情况,其中集群50中的处理器501将被从系统中移走。如图5B所示,集群被重新配置为集群51。处理器501的移除可能会导致集群51的服务点的再分配。
集群中处理器和服务点之间的总距离必须被动态地最小化以避免系统性能的损失。每当向系统加入或从系统取出一个或多个处理器时,可通过利用算法(N,p)来再计算集群。这种处理就计算开销而言是昂贵的,并可显著降低性能。因此,有必要针对两种情形中的每一种动态地更新系统:(i)增加处理器到系统,和(ii)从系统移除处理器。针对这两种情形的过程描述如下。假定之前利用算法(N,p)已找到集群的最优组。
(i)给系统增加新处理器:这种情形下,我们对比所有已存在集群的所有服务点测试增加的处理器。新处理器被增加给总距离最小的集群。然后在新处理器被增加到的集群处使用算法(N,1),以找到新服务点。注意这一过程不一定优化系统,但速度非常快。图5C中示意地图解了这一过程。图5C中,系统55包括两个集群551和552;期望增加新处理器560。处理器560将被增加给集群552,因为系统的总距离因此而保持为最小。
(ii)从系统移除已存在的处理器:这种情形下,首先确定从哪个集群移除处理器。针对这种情况有两种情形。
a)如果被移除的处理器不是距服务点最远的处理器,则其不影响该集群的最大距离。在此情形下,移除处理器并针对该集群利用算法(N,1)来再计算新服务点。图5D图解了该情况,其中系统57包括集群571及572,并且处理器574将被移除。因而集群配置没有发生变化。
b)如果被移除的处理器是距服务点最远的处理器,则其移除会影响距该集群的服务点的最大距离。在那种情形下,首先从该集群移除该处理器。通常,系统必须重新平衡以维持最佳性能。当从当前集群移除处理器时,通过从另一集群将另一处理器放入当前集群,可使系统更有效。图5E中图解了这种情况,其中处理器577已被从系统移除(比较图5D)。从而,形成新集群578和579以最小化系统的总距离。为实现这一点,我们首先注意到在建立集群的最终集的算法(N,p)的每一步骤,利用算法(N,2)将之前建立的集群分开。因此,建立集群的整个过程可用二叉树来表示。所有的最终集群是该二叉树的叶节点。
当从集群移除处理器时,我们考虑从其移除处理器的集群的其他兄弟节点。检查兄弟节点中的处理器以确定从兄弟节点移动处理器到当前集群是否将最小化系统的总距离。如果整个系统的总距离没有被影响,则不需要采取处理。然而,如果通过移动处理器减小了总距离,则从兄弟节点移除该处理器并放入当前集群中,以使总距离被再次最小化。如果兄弟节点是叶节点或已存在的集群,则不需要采取进一步的处理。否则,在处理器移除之后利用算法(n,2)来平衡其子节点。
上述的调整本质上是局部的,并可非常快地执行;然而,它们不能全局地平衡系统。因此,在大量的动态调整之后,系统可显著地失去平衡;有必要时时利用算法(N,p)再优化系统。
情形4:服务点的备份
为了确保系统的无故障运行,本发明也包括一种用来为每个集群提供双服务点的方法,其中备份服务点保持存储在活动服务点内的信息的镜像,并且当在更新期间服务点出现故障的情况下,开始充当活动服务点。可以理解,服务点与系统的普通处理器没有不同。因此,有可能服务点出现故障并且被从系统移走。这种情形下为避免系统故障,服务点的服务信息被存储在相同集群的另一个处理器中。例如,图6中所示的系统60包括四个集群61、62、63和64,其中集群61的服务点是处理器601,而处理器602是备份处理器。在活动服务点601发生故障的情况下,备份服务点602承担服务点的作用。如果必要,则可利用算法(N,1)来重新平衡集群。
情形5:服务点的动态数目
一个更一般的问题是其中服务点的数目的最大允许极限p也变化的情况。这可以在一次向系统加入或从系统取出很多处理器的时候发生。这也可发生在分数值f(根据p=N*f给定服务点的最大允许数目p)也改变的情况下。要考虑两个情形:
(i)新的服务点最大允许数目p1大于p。这种情形下算法(N,p)被用于当前数目的集群,但是利用集群的新数目p1执行算法。这与情形1中所描述的解决方案相似,其中在第一步中,p个集群中的每个集群被划分一次,而其他集群不变。在每个情形下计算到最近服务点的距离的总和,并选择使总和最小的集群配置。针对p+1、...,p1反复地执行这一过程。
(ii)新的最大允许服务点数目p2小于p。在这种情况下,有必要回想p个集群中的每一个被产生的顺序(见情形1的上述讨论)。集群被按倒序重组,直到只有p2个集群保留。
实用性
本发明适用于具有多个处理器的计算系统,其中期望通过分配服务点执行故障管理任务来配置系统成为容错的以及自愈的。特别地,本发明适用于动态环境中的自主计算系统,其中处理器的数目以及服务点的分配是经常改变的。
虽然本发明是根据特定的实施例来描述的,但是鉴于前面的描述,显然许多可供选择的办法、修改和变化对于本领域技术人员来说将是显然的。因此,本发明意图是包含属于本发明及其后权利要求的范围和精神的所有这样的可供选择的办法、修改和变化。
Claims (6)
1.一种用于配置具有多个处理器(2)的系统(1)以为该系统提供至少一个处理器集群的方法,其中每个集群具有一个服务点,该方法包括步骤:
计算(302)系统中从每个处理器到其他处理器的距离;
计算(303)多个总距离,其中每个总距离与一个处理器相关;
从多个总距离中确定(304)最小总距离;以及
将具有与之相关的最小总距离的处理器分配为服务点;
将所述系统划分成两个集群(L1,L2),其中
根据与每个处理器有关的总距离对处理器排序(322),
将每个处理器分配(324)给两个集群中的一个,
根据与每个集群中的处理器相关的多个总距离确定(325)所述集群中的处理器的最小总距离,以及
将每个集群中具有与之相关的最小总距离的处理器分配(327)为所述集群的服务点;
将所述两个集群(L1,L2)中的一个再分(352)成两个再分集群,因此将系统划分成三个集群;
根据与所述三个集群中的处理器相关的多个总距离,确定(354)所述三个集群的每个集群中的处理器的最小总距离;
根据所述三个集群的每个集群中的处理器的最小总距离将所述三个集群的每个集群中的处理器分别分配(355,356)给所述三个集群;以及
将所述三个集群的每个集群中具有与之相关的最小总距离的处理器分配(357)为所述集群的服务点。
2.根据权利要求1的方法,其中处理器具有不同类型(41、42),并且根据所述类型分配处理器到集群(411,412、413,420)。
3.根据权利要求1的方法,其中当处理器(560)被增加到系统时,所述方法被动态地执行。
4.根据权利要求1的方法,其中当从系统移除处理器(574)时,所述方法被动态地执行。
5.根据权利要求7的方法,其中当从系统移除处理器(577)时,系统的划分被动态地改变。
6.根据权利要求1的方法,进一步地包括分配另一处理器(602)为备用服务点的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/604,585 US7111188B2 (en) | 2003-07-31 | 2003-07-31 | Dynamically configurable fault tolerance in autonomic computing with multiple service points |
US10/604,585 | 2003-07-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1829973A CN1829973A (zh) | 2006-09-06 |
CN100555230C true CN100555230C (zh) | 2009-10-28 |
Family
ID=34103114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800219028A Expired - Fee Related CN100555230C (zh) | 2003-07-31 | 2004-06-30 | 为具有多个处理器的系统提供处理器集群的方法 |
Country Status (11)
Country | Link |
---|---|
US (2) | US7111188B2 (zh) |
EP (1) | EP1652028B1 (zh) |
JP (1) | JP4405511B2 (zh) |
KR (1) | KR100847610B1 (zh) |
CN (1) | CN100555230C (zh) |
AT (1) | ATE469393T1 (zh) |
BR (1) | BRPI0413122A (zh) |
CA (1) | CA2529664A1 (zh) |
DE (1) | DE602004027385D1 (zh) |
TW (1) | TWI338229B (zh) |
WO (1) | WO2005015346A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005091136A1 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
CA2586763C (en) | 2004-11-08 | 2013-12-17 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
WO2006108187A2 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
US7917573B2 (en) * | 2005-11-30 | 2011-03-29 | International Business Machines Corporation | Measuring and reporting processor capacity and processor usage in a computer system with processors of different speed and/or architecture |
US20080059489A1 (en) * | 2006-08-30 | 2008-03-06 | International Business Machines Corporation | Method for parallel query processing with non-dedicated, heterogeneous computers that is resilient to load bursts and node failures |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8275866B2 (en) * | 2007-11-13 | 2012-09-25 | At&T Intellectual Property I, L.P. | Assigning telecommunications nodes to community of interest clusters |
US8881163B2 (en) * | 2007-12-07 | 2014-11-04 | Microsoft Corporation | Kernel processor grouping |
US8869035B2 (en) * | 2009-06-29 | 2014-10-21 | International Business Machines Corporation | Increasing resilience of a network service |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US9336302B1 (en) | 2012-07-20 | 2016-05-10 | Zuci Realty Llc | Insight and algorithmic clustering for automated synthesis |
CN103647830B (zh) * | 2013-12-13 | 2017-09-15 | 浪潮电子信息产业股份有限公司 | 一种集群管理系统中多层次配置文件的动态管理方法 |
CN103955404B (zh) * | 2014-03-28 | 2017-05-03 | 哈尔滨工业大学 | 一种基于NoC多核同构系统的负载判断方法 |
US9363008B2 (en) | 2014-07-22 | 2016-06-07 | International Business Machines Corporation | Deployment criteria for unmanned aerial vehicles to improve cellular phone communications |
US11205103B2 (en) | 2016-12-09 | 2021-12-21 | The Research Foundation for the State University | Semisupervised autoencoder for sentiment analysis |
MX2020008905A (es) | 2018-06-12 | 2020-12-03 | Vtv Therapeutics Llc | Usos terapeuticos de activadores de glucoquinasa en combinacion con insulina o analogos de insulinas. |
TWI691852B (zh) | 2018-07-09 | 2020-04-21 | 國立中央大學 | 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品 |
US11288117B2 (en) * | 2019-08-06 | 2022-03-29 | Oracle International Corporation | Predictive system remediation |
CN113252978A (zh) * | 2021-05-11 | 2021-08-13 | 国网浙江省电力有限公司营销服务中心 | 一种目标供电台区相位识别方法和识别装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475819A (en) * | 1990-10-02 | 1995-12-12 | Digital Equipment Corporation | Distributed configuration profile for computing system |
US5598532A (en) * | 1993-10-21 | 1997-01-28 | Optimal Networks | Method and apparatus for optimizing computer networks |
CN1416242A (zh) * | 2002-12-30 | 2003-05-07 | 清华大学 | 基于线性构造的服务质量路由性能评价方法 |
CN1416243A (zh) * | 2002-12-30 | 2003-05-07 | 清华大学 | 基于宽度优先搜索的性能可调启发式服务质量路由方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909540A (en) | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US6230303B1 (en) | 1997-02-24 | 2001-05-08 | Lucent Technologies Inc. | Proximity-based cluster allocation for hardware-software co-synthesis of heterogeneous distributed embedded systems |
TW325618B (en) * | 1997-06-10 | 1998-01-21 | Inst Information Industry | Broadcasting processing method of wireless modem network group |
US6594775B1 (en) | 2000-05-26 | 2003-07-15 | Robert Lawrence Fair | Fault handling monitor transparently using multiple technologies for fault handling in a multiple hierarchal/peer domain file server with domain centered, cross domain cooperative fault handling mechanisms |
US6807557B1 (en) | 2000-05-31 | 2004-10-19 | International Business Machines Corporation | Method, system and program products for providing clusters of a computing environment |
US6973473B1 (en) * | 2000-05-31 | 2005-12-06 | International Business Machines Corporation | Method, system and program products for managing identifiers of components of a clustered environment |
US6982960B2 (en) * | 2001-03-09 | 2006-01-03 | Motorola, Inc. | Protocol for self-organizing network using a logical spanning tree backbone |
-
2003
- 2003-07-31 US US10/604,585 patent/US7111188B2/en not_active Expired - Fee Related
-
2004
- 2004-06-30 CN CNB2004800219028A patent/CN100555230C/zh not_active Expired - Fee Related
- 2004-06-30 AT AT04756375T patent/ATE469393T1/de not_active IP Right Cessation
- 2004-06-30 CA CA002529664A patent/CA2529664A1/en not_active Abandoned
- 2004-06-30 JP JP2006521850A patent/JP4405511B2/ja not_active Expired - Fee Related
- 2004-06-30 BR BRPI0413122-3A patent/BRPI0413122A/pt not_active IP Right Cessation
- 2004-06-30 DE DE602004027385T patent/DE602004027385D1/de not_active Expired - Lifetime
- 2004-06-30 EP EP04756375A patent/EP1652028B1/en not_active Expired - Lifetime
- 2004-06-30 WO PCT/US2004/020906 patent/WO2005015346A2/en active Application Filing
- 2004-06-30 KR KR1020067000153A patent/KR100847610B1/ko not_active IP Right Cessation
- 2004-07-01 TW TW093119922A patent/TWI338229B/zh not_active IP Right Cessation
-
2006
- 2006-07-12 US US11/456,925 patent/US7328363B2/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475819A (en) * | 1990-10-02 | 1995-12-12 | Digital Equipment Corporation | Distributed configuration profile for computing system |
US5598532A (en) * | 1993-10-21 | 1997-01-28 | Optimal Networks | Method and apparatus for optimizing computer networks |
CN1416242A (zh) * | 2002-12-30 | 2003-05-07 | 清华大学 | 基于线性构造的服务质量路由性能评价方法 |
CN1416243A (zh) * | 2002-12-30 | 2003-05-07 | 清华大学 | 基于宽度优先搜索的性能可调启发式服务质量路由方法 |
Also Published As
Publication number | Publication date |
---|---|
DE602004027385D1 (de) | 2010-07-08 |
KR20060063870A (ko) | 2006-06-12 |
WO2005015346A3 (en) | 2005-09-22 |
EP1652028A2 (en) | 2006-05-03 |
US7328363B2 (en) | 2008-02-05 |
TW200515174A (en) | 2005-05-01 |
BRPI0413122A (pt) | 2006-10-03 |
US20060248141A1 (en) | 2006-11-02 |
TWI338229B (en) | 2011-03-01 |
US7111188B2 (en) | 2006-09-19 |
EP1652028B1 (en) | 2010-05-26 |
ATE469393T1 (de) | 2010-06-15 |
EP1652028A4 (en) | 2009-03-18 |
KR100847610B1 (ko) | 2008-07-21 |
WO2005015346A2 (en) | 2005-02-17 |
CA2529664A1 (en) | 2005-02-17 |
CN1829973A (zh) | 2006-09-06 |
JP4405511B2 (ja) | 2010-01-27 |
JP2007500895A (ja) | 2007-01-18 |
US20050027829A1 (en) | 2005-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100555230C (zh) | 为具有多个处理器的系统提供处理器集群的方法 | |
CN111953526B (zh) | 一种分层算力网络编排方法、装置及存储介质 | |
US6816905B1 (en) | Method and system for providing dynamic hosted service management across disparate accounts/sites | |
CN1285055C (zh) | 用于动态配置服务器场的方法和系统 | |
US6366945B1 (en) | Flexible dynamic partitioning of resources in a cluster computing environment | |
US7792992B2 (en) | Serverless distributed monitoring and anomaly detection for a service oriented architecture | |
US20140165061A1 (en) | Statistical packing of resource requirements in data centers | |
TW200712910A (en) | Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance | |
Tsai et al. | Two-tier multi-tenancy scaling and load balancing | |
KR20000073381A (ko) | 가상 현실 공간 공유 객체 관리방법 | |
US11144829B2 (en) | Secure intelligent networked architecture with dynamic feedback | |
CN101458808A (zh) | 银行管理系统、服务器集群和相关方法 | |
CN103986748A (zh) | 实现服务化的方法和装置 | |
CN112732491A (zh) | 数据处理系统、基于数据处理系统的业务数据处理方法 | |
CN107203256A (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
Martinez et al. | Robust and fault-tolerant fog design and dimensioning for reliable operation | |
DE102019211908A1 (de) | Verfahren und Vorrichtung zum Verteilen einer Anwendung | |
US20210258179A1 (en) | Distributing work in a distributed video conferencing system by using a consistent hash function | |
KR100616083B1 (ko) | Ogsi 프레임워크를 이용한 사이트 기반 수평 구조그리드 정보 서비스 제공 방법 | |
WO2024061438A1 (en) | Network cluster and tenant-aware hierarchical processing system for distributed quality of service | |
CN116797199A (zh) | 一种对象管理运维系统 | |
Ren et al. | Theory of commercial application management system and its implementation-AMPS. | |
Nozaki | Autonomous function in Interstage application server |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091028 Termination date: 20100630 |