优化超立方体网络中的数据传输的制作方法
【专利摘要】一种对处理设备的超立方体网络进行操作的方法,包括确定多个处理设备存储有要在单个处理设备处进行处理的数据,获得存储有要处理的数据的多个处理设备的地址,确定存储有要处理的数据的多个处理设备的地址的每个数位的最常用数字,生成包括针对每个数位所确定的最常用数字的新地址,以及将要处理的数据传送至具有所生成的新地址的处理设备。
【专利说明】优化超立方体网络中的数据传输
【技术领域】
[0001]本发明涉及一种对处理设备的超立方体网络进行操作的方法。在一个实施例中,本发明提供了一种通过计算用于处理数据的中心位置而优化超立方体网络内的数据传输的机制。
【背景技术】
[0002]在许多计算环境中,多个处理设备在网络中被连接在一起。例如,高度复杂的软件产品可以跨连接在一起的多个物理机器进行划分。类似地,在互联网上所执行的任务经常由作为网络连接在一起的多个服务器来实施。这样的多个处理设备的另外的示例处于诸如超级计算机的个体机器之内,该超级计算机经由在该单部机器内提供多个处理设备而提供极大的处理能力。
[0003]当多个处理设备参与到要求来自多个位置的数据的计算中时,可能需要处理设备向单个点输送一定数量的数据以便能够对计算进行评估。其示例是分布式数据库中的联合查询,其中来自两个表的数据必须被合并到共用节点以便对该联合查询进行评估。数据在网络中的不同处理设备处可能在不同卷(differing volumes)中存在。
[0004]一些计算机网络特别是大量并行的超级计算机以超立方体拓扑进行配置。在这种拓扑中,每个处理设备具有与之相连的少量相邻设备。为了将数据从一台处理设备传送至已知目的地,要根据指明该处理设备在超立方体网络中的位置的处理设备逻辑地址在连续的相邻设备之间进行输送直至到达目的地。例如,更多信息参见http://en.wikipedia.0rg/wiki/MIMD#Hypercube_interconnection_network。
[0005]当需要数据从多个处理设备传送至单个位置进行处理时,如果数据数量很高和/或网络中的处理设备之间的带宽很低,则期望选择将所有数据传送至具体处理设备,以使得所传送的数据总量得以最小化,由此在执行计算时使用最小的网络带宽。在这种情况下,需要一种用于在这样的网络中确定理想处理设备的位置的方法和系统。
【发明内容】
[0006]因此,本发明的目标是对现有技术加以改进。
[0007]根据本发明的第一方面,提供了一种对处理设备的超立方体网络进行操作的方法,该包括确定多个处理设备存储有要在单个处理设备处进行处理的数据,获得存储有要处理的数据的多个处理设备的地址,确定存储有要处理的数据的多个处理设备的地址中的每个数位的最常用数字,生成针对每个数位包括所确定的最常用数字的新地址,以及将有要处理的数据传送至具有所生成的新地址的处理设备。
[0008]根据本发明的第二方面,提供了一种包括处理设备的超立方体网络的系统,该系统被操作以确定多个处理设备存储有要在单个处理设备处进行处理的数据,获得存储有要处理的数据的多个处理设备的地址,确定存储有要处理的数据的多个处理设备的地址的每个数位的最常用数字,生成包括针对每个数位所确定的最常用数字的新地址,以及将要处理的数据传送至具有所生成的新地址的处理设备。
[0009]根据本发明的第三方面,提供了一种在计算机可读介质上的用于对处理设备的超立方体网络进行操作的计算机程序产品,该产品包括用于如下的指令:确定多个处理设备存储有要在单个处理设备处进行处理的数据,获得存储有要处理的数据的多个处理设备的地址,确定存储有要处理的数据的多个处理设备的地址中的每个数位最常用数字,生成针对每个数位包括所确定的最常用数字的新地址,以及将要处理的数据传送至具有所生成的新地址的处理设备。
[0010]因此,有可能提供一种用于在已知待检索数据的分布时确定超立方体网络中的哪个处理设备将导致网络业务的最小总量的机制。其优势在于,跨超立方体网络提高了数据密集分布的计算的吞吐量。例如,在其中四个设备存储有必须要在单个位置进行处理的数据的十六个处理设备的网络中,以上的方法和系统将会确定这十六个处理设备中的哪一个应当进行该工作,同时使得网络内所要求的数据传输的数量最小化。所选择的处理设备可以是存储有数据的四个设备之一或者可以是网络中完全不同的处理设备。
[0011]构成超立方体网络的处理设备可以是超级计算机内的个体处理器,该超级计算机例如具有附接至每个个体处理器的存储器。该处理设备可以是诸如标准台式计算机的机器,它们例如经由以太网连接在一起而形成设备的网络。类似地,该处理设备可以在地理上进行分布并且通过诸如互联网的广域网进行连接。构成超立方体网络的处理设备无需是相同的,可以将不同机器连接在一起作为网络,例如服务器和客户端设备的网络。
[0012]超立方体网络是其中该网络的所有节点都具有相同长度的唯一地址的网络,其中网络节点之间的连接由该地址所确定,从而具有仅以一个数位而不同的地址的两个节点连接在一起。构成超立方体网络的处理设备的数量并不重要。在理论上纯数学的超立方体网络中,网络中节点(处理设备)的数量为(2N)的幂,其中每个节点具有长度为N个数位的二进制标签(地址)。每个节点连接至具有仅以一个数位与其自己的地址区别开来的地址的那些节点。例如,如果#3,则存在标记为000、001、010、011、100、101、110和111的8个节点。节点000连接至节点001、010和100等。然而,在该方法和系统的实际实现中,如果网络中的处理设备的数量并不是2的幂,则仍然能够通过对一个或多个处理设备标记以两个二进制地址而将网络配置为超立方体网络,只要这两个地址在超立方体拓扑方面是“相邻的”,并且仍然遵循连接规则。
[0013]确定处理设备在网络中的正确位置以便执行数据处理的方法能够在能够被归类为“一般超立方体”的网络上得以使用(更多信息参见Bhuyan,L.N.和Agrawal,D.P.的“Generalized Hypercube and Hyperbus Structures for a Computer Network,,,IEEETransactions on Computers,第 C-33 卷,第 4 期,第 323 至 333 页,1984 年 4 月)。一般超立方体通过允许地址标签中的数位为二进制地址中所使用的仅O或I以外的数值而在超立方体的标准概念上有所扩展。例如,所有网络标签可以取数位O、I或2,给定00、01、02、10、
11、12、20、21和22作为2维网络的标签集合。所有路由保持与标准超立方体中相同,所以如果标签以一个且仅以一个数位有所不同则节点是相邻的(02将连接至节点12、22、00和01)。优选地,该方法进一步包括确定要在存储待处理数据的多个处理设备中的每一个处进行处理的数据的量,并且其中确定存储待处理数据的多个处理设备的地址的每个数位的最常用数字的步骤包括根据所确定的数据数量对针对每个数位进行的最常用数字的确定进行加权。用于决定要使用哪个处理设备对数据进行处理的方法和系统能够作为非加权过程或加权过程之任一来执行。在加权过程中,在确定地址中的最常用数字时使用每个处理设备将要传送的数据量。对处理进行加权的优势在于,要执行数据处理的处理设备的选择将是导致在网络上传送最少量数据的选择。
[0014]在使用二进制地址的超立方体网络中,查看地址的每个数位以与O和I进行比较,这有效地根据所选择的维度将超立方体划分为两半并且随后确定每一半中起作用的节点的数量,选择具有最多节点的一半。如果超立方体沿所有维度进行划分,则具体节点被隔离为中心。在加权情况下,超立方体沿每个维度被划分为两半以查看哪一半包含最多的总体数据,有效地找出数据的“质心(centre of mass)”。有利地,该方法进一步包括,如果存储有待处理数据的多个处理设备的二进制地址的数位的最常用数字返回多于一个的结果,则选择所返回结果中的仅一个结果。无论是以加权还是非加权形式使用,该方法都能够返回多于一个的地址;由此隐含网络内多于一个的处理设备能够以带宽消耗方面的等同成本来执行处理。在这种情况下,需要一些选择逻辑在不同处理设备之间进行选择。
[0015]理想情况下,如果存储待处理数据的多个处理设备中的处理设备被指定以多于一个的地址,则获得存储待处理数据的多个处理设备的地址的步骤关于被指派以多于一个的地址的处理设备仅获得该处理设备的一个地址。能够想到的是,处理设备将具有多于一个的与之附接的地址。在这种情况下,为了过程正常工作,在计算用来对多个设备所存储的数据执行处理的最佳设备时,将仅使用那些地址中的一个地址。
【专利附图】
【附图说明】
[0016]现在将参考附图仅通过示例对本发明的实施例进行描述,其中:
[0017]图1是超立方体网络的示意图;
[0018]图2是超立方体网络的另外不意图;
[0019]图3是二进制地址的表;
[0020]图4是操作超立方体网络的方法的流程图;
[0021]图5是二进制地址和数据的表;和
[0022]图6是超立方体网络的另外的示意图。
【具体实施方式】
[0023]图1示出了超立方体网络10,其包括所连接的节点12。η维超立方体网络由N个节点所组成,其中N是2的幂(2η)。网络10中的每个节点12被指派以节点地址,在该示例中,该节点地址是具有η个数位的二进制数。在图1的示例中给出了具有8个节点的三维超立方体网络,上述节点具有三数位的二进制地址000、001、010、011、100、101、110和111。如果节点的二进制地址以一个且仅以一个数位区分开来,则它们连接在一起。因此,标记为000的节点连接至节点OOUOlO和100。标记为101的节点连接至节点100、111和001,等
坐寸O
[0024]两个节点之间的最短路径通过如下进行确定:每次比较两个节点的地址中的一个数位,并且针对二进制地址中的具体数位,当目的地节点的地址和相邻节点的地址相同并且不同于当前节点时行进至相邻节点。在图1的示例中,从节点000行进至节点101的消息将首先行进至节点100 (第一数位从O变为I)并且随后行进至节点101 (最终数位从O变为I)。这定义了被配置为超立方体网络的网络中的逻辑路线。
[0025]相同的方法应用于更大尺寸的所有超立方体网络。例如,如果n=4并且如果从节点1100向节点0111传送网络消息,则该消息能够从节点1100传送至节点0100(因为目的地的地址的第一数位距源点有所变化),随后从节点0100传送至节点0110 (目的地和当前节点的第二数位相同,但是第三数位不同),最后该消息从节点0110传送至节点0111 (目的地)。该消息需要通过三个步骤而从源到达目的地,并且这能够通过对源和目的地地址中不同数位的数量进行计数而容易地确定。在该示例中,地址1100和0111有三个数位不同,所以该消息需要在网络中行进三跳以在这些节点之间到达。两个地址之间不同的数位的数量被称作海明(Hamming)距离。可能存在相同最短长度的多条路径。在以上示例中,该消息还可以同样使用三跳从1100行进至1101至0101至0111。
[0026]图2示出了图1的超立方体网络10,其由各种处理设备12所构成。在该示例中,处理设备12是服务器和客户端设备,其中客户端设备由台式计算机和膝上计算机所组成。处理设备经由诸如广域网的适当网络连接在一起,上述广域网诸如互联网。处理设备全部具有可用的本地存储并且存储用于在网络上进行传输的数据。网络的拓扑是超立方体网络的拓扑,其中每个处理设备被指派以反映超立方体网络的连接拓扑的唯一二进制地址。
[0027]通常,超立方体网络的实际实现将具有比图2所示的8个更多的处理设备。例如,在具有以超立方体网络连接在一起的非常大量的处理设备的超级计算机中,η可以为5、6或者甚至更大的具有连接在一起的2η个处理设备。在这样的网络中,每个处理设备连接至η个邻居,并且逻辑二进制编号表示网络的潜在物理结构,也就是说,总体而言,具有相差I的二进制地址的处理设备(并且因此是逻辑上的邻居)在网络内将会物理上位于一起。
[0028]在这样的大型网络中,网络上的数据传输是重要的任务,例如如果η=6,则两个处理设备理论上可以相隔6个处理设备进行定位,并且这两个设备之间的数据传输将遵循以上所讨论的路线而通过五个其它处理设备进行。在这样的系统中常见的是,数据需要来自多个处理设备以便在单个位置进行处理。由于网络内的任何处理设备都可能执行处理,所以在整体超立方体网络内的带宽使用方面,针对该任务进行的处理设备选择是非常重要的。
[0029]超立方体网络能被被配置为进行操作而使得无论数据何时需要从多个节点传送至单个节点以便进行处理,网络都将确定节点集合的中心。例如,五维超立方体可以具有作为超立方体图形的节点子集的地址的节点集合S而使得S= (10100,11111,00110, 00010, 10000)。在这种情况下,集合S包含来自五维超立方体的五个标记的二进制地址。
[0030]网络对S中的节点的每个二进制地址中的数位进行分析以确定针对每个数位有多少地址具有“I”并且有多少地址具有“O”。在该示例中,在其第一数位,两个地址具有“O”并且三个地址具有“I”。在它们的第二数位中,四个地址具有“O”并且一个地址具有“1”,等等。这可以被如下表示:DigitCount(O) = (2,4,2,2,4)并且DigitCount (I) = (3, I, 3,3,I)。进而针对每个数位确定哪个数位计数最高,并且节点C的地址被如下设置为具有最高计数的数位的值:HighestDigitCount=(l, O, I, I, O)(在第一数位,digitcount (I) >digitcount (O),在第二数位,digitcount (O) >digit count (I),等等),从而 C=IOllO0[0031]在地址并非必然为二进制地址的更为一般的超立方体方案中,用于计算中央处理设备以减少数据传输的方法保持相同,仅DigitCount的数量针对每个数位有所增加。例如,在包括具有数位O、I和2的网络地址的一般超立方体网络中,则存在高达三个的数位计数集合DigitCount (O)、DigitCount (I)和DigitCount (2),并且针对地址中的每个位置,具有最高数位计数的维度被选择作为中央节点的位置。
[0032]图3图示了使用二进制地址的系统中的计算。二进制地址14的集合S被用来生成节点C的新的二进制地址16。相对于集合S的成员,具有C作为地址的节点是中央节点。该节点具有距节点集合S的最小总距离。从节点C到S中的节点的总距离能够通过如下对地址中每个数位的最低数位计数进行求和而确定:DigitCount(0) = (2, 4,2,2,4),DigitCount (I) = (3, 1, 3,3,I) , LowestDigitCount = (2, 1, 2,2,I)并且TotalLowestDigitCount=8 (2+1+2+2+1)。
[0033]该方法可以通过依次考虑每个数位对于总体海明距离的贡献而得到证明。如果节点C具有O作为第一数位,则存在三个需要从其“I”维度传送数据的节点,而如果“I”被选择为第一数位,则仅存在两个需要传送数据的节点(因为两个节点在其地址的第一数位中具有O)。针对地址中的每个数位,如果选择了具有最高计数的数位数值,则针对数据需要传送的分支数量的贡献被最小化,从而使得数据需要行进的总距离最小化。
[0034]在偶数数量的节点的情况下,在特定数位中具有I的节点可能与具有O的节点数量相同。在这种情况下,针对中心节点的数位能够选择O或I,将存在均具有到节点集合S相等的最小总距离的多个节点。
[0035]图4中概括了对处理设备的超立方体进行操作的方法。该方法中的第一步骤包括确定网络中的多个处理设备存储有要在单个处理设备进行处理的数据。这可以是要求来自多个位置的数据作为单个实体进行处理的命令得以被执行的结果。该方法中的下一个步骤是获得存储待处理数据的多个处理设备的地址的步骤S2。如以上所讨论的,处理设备将均具有识别每个设备的唯一地址(其可以是二进制地址)。
[0036]下一个步骤是步骤S3,其包括针对存储待处理数据的多个处理设备的地址的每个数位确定最常用数字。如以上参考图3所图示的,例如,对存储待处理数据的设备集合中的处理设备的二进制地址进行检查以识别出二进制地址的每个位置中的最常用数位。超立方体网络拓扑的属性意味着地址将全部具有相同长度,并且能够使用简单的计数操作来确定每个位置的最常用数位。
[0037]该步骤之后为步骤S4和步骤S5,步骤S4包括生成针对每个数位所确定的最常用数字的新地址,步骤S5包括将待处理数据传输至具有所生成的新地址的处理设备。在步骤S3中所确定的最常用数位被用来生成如图3的示例中的C节点所示的“中心节点”的新地址。设备集合中的所有处理设备所存储的数据随后被传送至该具有最常用数位所组成的新地址的新处理设备,数据随后在那里被处理。
[0038]以上所描述的处理可以被修改以将不同处理设备所存储的数据量纳入考虑。如果该信息可用,则有可能确定其中每个节点处具有不同数据量的节点集合的中心。例如,作为超立方体图的节点子集的地址的节点集合S,其中每个节点具有需要被递送至共用位置的数据量而使得D定义出每个节点处所保存的数据数量,从而使得Di (D的第i个成员)指定在具有地址Si (S的第i个成员)的节点处所保存的数据量。[0039]图5 图示 了这样的示例,其中 S=UOlOO, 11111,00110,00010,10000)并且D= (100,500,20,I, 500)。在这样的情况下,S包含来自五维超立方体的五个标记的地址并且D包含在S中的相对应节点处所保存的数据量(即,节点10100保存100个数据项,节点11111保存500个数据项,等等)。
[0040]随后执行S中每个地址中的相对应数位的分析以确定针对该数位具有数值“I”的地址处所保存的数据总量以及确定针对该数位具有数值“O”的地址处所保存的数据总量。例如,在它们的第一数位中,两个地址具有“O”,这些地址具有20和I个数据项,从而在第一数位具有“O”的地址的总数据为21。三个地址在其第一数位具有“1”,这些地址具有100、500和500个数据项,从而之第一数位具有“I”的地址处的总数据为1100。每个数位的分析能够通过如下维护O和I数值的DataCount集合来表示:DataCount (O) = (21,621, 501, 600,621)并且 DataCount (I) = (1100,500,620,521,500)。
[0041]相继针对每个数位,随后确定哪个数据计数为最高,并且节点C的地址被设置为具有最高计数的数位的值,从而HighestDataCount=Q, O, I, O, O)(在第一数位,DataCount (I) >DataCount (O),在第二数位,DataCount (O) >DataCount (I),等等。因此,C=IOlOO以及具有C作为地址的节点是该节点集合和数据量的“中心”节点。将来自节点S的所有数据都发送至该节点导致了最小的总体数据传输。
[0042]从集合S中的节点传送至节点C的数据总量能够通过如下对地址中每个数位的最低 DataCount 进行求和而确定:DataCount (O) = (21, 621,501,600,621), DataCount (1) = (1100,500, 620, 521, 500), LowestDataCount= (21, 500, 501, 521, 621),并且TotalLowestDataCount=2043 (21+500+501+521+621)。
[0043]该方法能够通过依次考虑每个数位对于总体数据传送距离的贡献而得到证明。如果节点C具有“O”作为第一数位,则有1100个数据单位需要从“I”维度进行发送,而如果我们选择“I”作为第一数位,则仅有21个数据单位需要进行传送。对于地址中的每个数位,如果具有最多数据的数位值被选择,则来自其它地址的对于需要传送的数据总量的贡献得以被最小化。在任意数量的节点的情况下,在特定数位中具有“I”和“O”的地址的数据总量可能相同。在这种情况下,可以针对中心节点的该数位选择“O”或“1”,将存在多个节点,其中每个节点具有相等的来自节点集合S的最小总数据传输。
[0044]图5中所图示并且在上文中描述的方法有效地作为构成集合S的处理设备的二进制地址中的最常用数位的加权确定。图6图示了图1的超立方体网络,其示出了该网络中的四个节点存储有用于在单个位置进行处理的数据。节点集合S= (000,001,100,111)并且数据集合 D= (15,6,10,20)。因此,DataCount (O) = (21,31,25)和 DataCount (I) = (30,20,26)意味着中心节点的二进制地址C=IOI。在该示例中,这将是超立方体网络中执行数据处理的处理设备。
【权利要求】
1.一种对处理设备的超立方体网络进行操作的方法,包括: 确定多个所述处理设备存储有要在单个处理设备处进行处理的数据, 获得存储有要处理的所述数据的所述多个处理设备的地址, 确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字, 生成包括针对每个数位所确定的所述最常用数字的新地址,以及 将要处理的所述数据传送至具有所生成的所述新地址的所述处理设备。
2.根据权利要求1的方法,进一步包括确定要在存储有要处理的所述数据的所述多个处理设备中的每个处理设备处进行处理的数据量,并且其中确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字的步骤包括根据所确定的数据量对每个数位的所述最常用数字的所述确定进行加权。
3.根据权利要求1或2的方法,其中如果存储有要处理的所述数据的所述多个处理设备的所述地址的数位的所述最常用数字返回多于一个的结果,则选择所返回的结果中的一个结果。
4.根据权利要求1、2或3的方法,其中如果存储有要处理的所述数据的所述多个处理设备中的一个处理设备被指派以多于一个的地址,则获得存储有要处理的所述数据的所述多个处理设备的所述地址的所述步骤关于被指派以多于一个的地址的所述处理设备仅获得所述处理设备的一个地址。
5.一种包 括处理设备的超立方体网络的处理系统,所述系统可操作用于: 确定多个处理设备存储有要在单个处理设备处进行处理的数据, 获得存储有要处理的所述数据的所述多个处理设备的地址, 确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字, 生成包括针对每个数位所确定的最常用数字的新地址,以及 将要处理的所述数据传送至具有所生成的新地址的所述处理设备。
6.根据权利要求5的系统,进一步可操作用于确定要在存储有要处理的所述数据的所述多个处理设备中的每个处理设备处进行处理的数据量,并且在确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字时,根据所确定的所述数据量对每个数位的所述最常用数字的所述确定进行加权。
7.根据权利要求5或6的系统,进一步可操作以使得如果存储有要处理的所述数据的所述多个处理设备的所述地址的数位的所述最常用数字返回多于一个的结果,则选择所返回的结果中的仅一个结果。
8.根据权利要求5、6或7的系统,进一步可操作以使得如果存储有要处理的所述数据的所述多个处理设备中的一个处理设备被指派以多于一个的地址,则获得存储有要处理的所述数据的所述多个处理设备的所述地址的所述步骤关于被指派以多于一个的地址的所述处理设备仅获得所述处理设备的一个地址。
9.一种在计算机可读介质上用于对处理设备的超立方体网络进行操作的计算机程序产品,所述产品包括用于如下的指令: 确定多个所述处理设备存储有要在单个处理设备处进行处理的数据,获得存储有要处理的所述数据的所述多个处理设备的地址, 确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字, 生成包括针对每个数位所确定的最常用数字的新地址,以及 将要处理的所述数据传送至具有所生成的新地址的所述处理设备。
10.根据权利要求9的计算机程序产品,进一步包括用于确定要在存储有要处理的所述数据的所述多个处理设备中的每个处理设备处进行处理的数据量的指令,并且其中确定存储有要处理的所述数据的所述多个处理设备的所述地址的每个数位的最常用数字的步骤包括根据所确定的所述数据量对每个数位的所述最常用数字的所述确定进行加权。
11.根据权利要求9或10的计算机程序产品,其中如果存储有要处理的所述数据的所述多个处理设备的所述地址的数位的所述最常用数字返回多于一个的结果,则所述产品包括用于选择所返回的结果中的仅一个结果的指令。
12.根据权利 要求9、10或11的计算机程序产品,其中如果存储有要处理的所述数据的所述多个处理设备中的一个处理设备被指派以多于一个的地址,则用于获得存储有要处理的所述数据的所述多个处理设备的所述地址的所述指令关于被指派以多于一个的地址的所述处理设备包括用于仅获得所述处理设备的一个地址的指令。
【文档编号】H04L12/701GK103891214SQ201280052106
【公开日】2014年6月25日 申请日期:2012年9月25日 优先权日:2011年10月26日
【发明者】P·D·斯通, P·丹特雷桑格尔, G·A·本特 申请人:国际商业机器公司