CN104009907A - 并行计算系统中的“所有到所有”消息交换 - Google Patents
并行计算系统中的“所有到所有”消息交换 Download PDFInfo
- Publication number
- CN104009907A CN104009907A CN201410048340.1A CN201410048340A CN104009907A CN 104009907 A CN104009907 A CN 104009907A CN 201410048340 A CN201410048340 A CN 201410048340A CN 104009907 A CN104009907 A CN 104009907A
- Authority
- CN
- China
- Prior art keywords
- task
- level
- identifier
- exchange
- hierarchical
- 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 claims abstract description 71
- 230000001419 dependent effect Effects 0.000 claims abstract 5
- 241000238633 Odonata Species 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 6
- 240000004760 Pimpinella anisum Species 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
提供了并行计算系统中的“所有到所有”消息交换。程序任务由具有层级网络拓扑的互连网络连接,该层级网络拓扑包括N>1个层级级别ln,n=1到N,其中第一级别l1包括所述任务的多个组,并且每一个较高级别l(n>1)包括级别l(n-1)组的至少一个组。对于每一个任务定义唯一的层级标识符,所述层级标识符取决于网络拓扑的相应层级级别中的所述任务属于的组。在所述交换的连续阶段的每一个阶段中,取决于发送任务的层级标识符和所述网络拓扑,每个任务经由所述网络向其层级标识符被确定的相应目的地任务发送消息,以使得对于所述“所有到所有”消息交换的产生的交换模式按照期望的方式利用所述网络拓扑中的层级距离。
Description
技术领域
本发明概括地涉及并行计算系统中的“所有到所有”(all-to-all)消息交换。提供了用于在由层级互联网络连接的程序任务之间的“所有到所有”消息交换的方法,连同用于实现这样的方法的装置和计算机程序。
背景技术
在并行计算系统中,程序能够由并行操作的多个计算节点执行。取决于实现并行化的硬件水平,计算节点通常可以是分离的机器(例如,工作站、服务器)、处理器、核心等等。单独的计算节点可以执行并行算法的并行程序实体或者任务中的一个或多个(在此术语“任务”在并不意指粒度的任何特定水平的情况下在本文中通常指代这样的程序实体)。大多数并行算法计算在计算和通信的阶段之间交替,其中,通过程序任务来交换数据。共同实现并行算法的计算节点的集合通常经由网络互连以便允许这一数据交换。
在一组并行任务之间交换数据的方式可以宽泛地变化,但是在实际中,可以将涉及多于一对任务的大多数数据交换映射到典型交换的小的集合。最广泛使用的共同通信操作之一是“所有到所有”交换(有时被称为所有交换,索引操作或者个性化“所有到所有”交换)。在“所有到所有”消息交换中,给定集合中的每一个任务必须向该集合中的每一个其他任务(并且在一些情况下也向其本身)发送一个不同的消息。典型地以连续的阶段来组织该交换操作,阶段的数量等于要由每一个任务发送的消息的数量,以使得每一个任务在交换的每一个阶段中发送一个消息。整体交换模式,即,源(发送)任务与目的地(接收)任务在交换的连续的阶段中根据其来进行通信的模式,是交换的整体效率的基础。验证其的简单方式是考虑所有发送任务在给定的阶段中同时选择相同的目的地任务的极端情况。由于在接收方的输入端口处消息的串行化,所有发送方都将经历拥堵。互连网络中所有这些被阻挡的消息会产生甚至更多的拥堵并且严重地影响性能。容易规避这一极端示例,并且大多数“所有到所有”交换提议解决了这一特定情景。
形式上,“所有到所有”交换模式由函数f:IN×IN→IN进行完全特征化,其利用源任务索引(s)和阶段索引(p),并且将它们映射到目的地任务索引(d),以使得每一个s向每一个d发送一个(并且仅一个)消息,并且每一个d从每一个s接收一个(并且仅一个)消息。在大多数通信库中存在的两个非常普通的交换是:
(a)由下面的公式表示的线性移位(或者跨越)交换:
(s,p)→(s+p+移位)modulo X,
其中“移位”是固定的整数值,并且X是通信任务的总数量;以及
(b)由下面的公式表示的XOR(“二进制XOR”或者“递推减半”):
(s,p)→sXORp
任务经由其连接的互连网络的精确结构对消息交换操作具有很强的影响。这样的网络通常具有某一形式的层级网络拓扑。层级网络明确地包括层级拓扑,例如蜻蜓网络以及诸如树网络和粗树网络(包括扩展的通用粗树、细粗树等等)的树形拓扑。下面来简要地对这些进行解释。
在树形拓扑中,通过从树的叶子(级别0)到根部(级别N)的级别系列来定义层级。任务被认为放置在叶子节点上,而所有其他节点用于消息路由。附图中的图1示出了三级树互连的简单示例,每计算机节点一个任务。这里,由圆形表示的计算机节点形成在此的树的级别0中的叶子。较高级别由交换机(由方形表示)构成,每一个交换机经由链路(由直线表示)在紧接着先前的级别中连接到一组后代或者“孩子”。在示出的示例中,级别1交换机各自连接到级别0中的一组三个计算节点。级别2交换机各自连接到一组三个级别1交换机。在这一示例中的最高级别为级别3,这里级别3由单个交换机构成,再次连接到先前级别中的一组三个交换机。公知的粗树网络拓扑与如下标准树拓扑类似,即,在级别0中的叶子之上具有N个级别,级别l上的每一个节点精确地具有Ml个后代,区别在于任何给定的节点与其父辈之间的连接由多个链路构成。在原始设计中,从节点到其父辈可用的链路容量等于从该节点的孩子到其自身的聚合链路容量。结果,在级别l处每一个向上的链路的总容量等于从该向上的链路从其开始的节点可到达的叶子的数量(等于M1·M2·……·Ml,其中,“·”指代乘法)乘以每节点注入容量。由于这一数量随着树的高度呈指数增长,因此引入了扩展的通用粗树(XGFT)的概念。这一类别的拓扑实现了具有与基本的粗树网络类似的功能的设计,而不要求交换机具有朝向网络的根部呈指数增加的容量。XGFT目前是在高性能计算的互连设计中最流行的选项之一。
蜻蜓网络是另一公知的层级网络,图2示出了其简单示例。这一示例具有按照两个一组连接到该层级的级别1中的相应交换机(再次由方形表示)的每计算机节点一个任务(再次由圆形表示)。在该图中,较高级别由虚线指示。级别2包括四组级别1的交换机,这里,每一个级别2的组包括三个互连的级别1的“本地组”。这里为最高级别的级别3包括包含所有四个级别2的本地组的单个组。
尽管给定的“所有到所有”交换操作可以成功地完成,而与潜在的拓扑无关,但是交换模式会导致次优的性能。通过示出的方式,图3示出了用于在由具有图4所示的网络拓扑的互连网络连接的十六个任务之间的线性移位交换的交换模式。这里,该特定的网络实现可以是(N=2)级别树形网络,其中十六个通信任务放置在叶子级别处的各自计算节点中、四个第一级别交换机和单个第二级别交换机。该拓扑层级的第一级别,这里标记为l1,包括四个l1组,每一个组具有四个任务。下一个(这里为最高)级别,标记为l2,包括作为具有所有四个级别l1组的组的单个l2。图3的交换模式示出了在这一拓扑中具有移位值0的线性移位交换模式。任务由圆形指代,在图的左面标号为0到15。该图的连续列中的直线表示在该交换的十六个连续的阶段中发送和目的地任务的配对。在如这里由虚线指示的阶段0中,每一个任务向其自身发送消息。
通过考虑图3交换模式,显然,线性移位交换函数完全忽略了网络拓扑的布局。这一交换模式因而对于该拓扑的层级结构是未察觉的。不考虑发送和接收节点之间的层级距离(即,对于通信必须遍历的层级级别的数量)。然而,这一层级距离的概念对于层级网络是基本的,提供在这些拓扑中内在的本地/远程的概念。分离一对任务的层级级别越少,任务就“越近”,即,它们之间的路径就越短,并且到达彼此的延迟时间就越低。
图5示出了利用对于图4的层级网络拓扑的XOR交换算法获得的交换模式。可以看出,前四个阶段处理在相同的级别l1组中的任务之间的本地交换。如由这一简单示例示出的,XOR交换模式在这一网络拓扑中的应用产生按照远程递增顺序执行的消息交换。因而,在相同的节点上配置(collocate)的任务首先在它们本身之间执行交换(如果存在每计算节点多于一个任务),然后,相邻节点(在层级的意义上)中的任务专门地在它们本身之间执行交换(因此排除了节点内交换),等等,经过层级继续进行。这具有确定在大多数阶段中将业务尽可能地包含在较低级别处的优点,以及确保在给定阶段中的所有对之间通信延迟时间恒定(当不存在竞争时)的优点。这在每一个阶段内提供了更好的同步。同步是优化交换的整体性能的关键因素,因为解同步化暗含着随后的阶段将重复,因而导致附加的竞争,或者将形成在随后的阶段中间的间隙。
XOR交换的严重局限在于,仅在能够放置任务的互连节点的数量是二的整数幂时可用。这排除了许多实际感兴趣的网络,包括蜻蜓网络。而且,XOR交换仅在应用能够被划分为二的幂数量的任务时可用。实际上,该算法仅在经过将其应用局限于这一限制类别的网络时才实现上述的“增加的远程性”特征。该算法本身对于真实的网络拓扑仍然是未察觉的,简单地执行源任务索引s和阶段索引p的二进制表示的按位模2加法,而与物理网络层级无关。在图4和图5的示例中,例如,如同对于具有四个级别的重叠拓扑(每一个级别l1组中具有两个任务,并且每一个级别l(n>1)组包含两个级别l(n>1)组)运行XOR交换。图4中的网络拓扑中的每一个真实层级级别因而被有效地分离为两个重叠的级别。结果,我们看到,本地和远程交换在两个分离的种类中的差异,一个仅涉及一个重叠的子级别,而一个涉及另一个。因此可以看出,XOR功能确定对于消息的目的地任务的方式不取决于实际的网络拓扑,而是取决于仅能够被施加在有限类别的网络拓扑上的简单的重叠结构。
实际上,并行计算系统很少符合使用XOR交换函数必需的限制,特别是关于潜在的网络拓扑。由于这一原因,人们经常致力于上面讨论的使用不太有效的、但是更加通常的线性移位交换。Thakur等人在International Journal of Performance Computing Application,Vol.19,No.1,Spring2005,pp.49-66中的“Optimization of CollectiveCommunication Operations in MPICH”中,提出了XOR模式在节点的原始数量的二的幂子划分中的非均衡和次优应用。在Proceedingsof the8th International Euro-Par Conference onParallelProcessing,2002,LNCS2400,pp.799-803中的The Hierarchical Factor Algorithm forAll-to-All Communication中,Sanders等人提出了一种描述用于具有节点的层级系统的方案,该节点具有不同数量的处理器,从而按照节点尺度(节点中处理器的数量)的顺序来交换消息。
将高度期望用于层级网络的“所有到所有”交换操作的改善。
发明内容
本发明的第一方面提供一种用于在由具有层级网络拓扑的互连网络连接的程序任务之间的“所有到所有”消息交换的方法,所述层级网络拓扑包括N>1个层级级别ln,n=1到N,其中第一级别l1包括所述任务的多个组,并且每一个较高级别l(n-1)包括级别l(n-1)组的至少一个组。所述方法包括:
对于每一个任务,在所述网络拓扑的相应层级级别中定义取决于该任务属于的所述组的唯一的层级标识符;以及
在每一个任务处,在所述交换的连续阶段的每一个阶段中,经由所述网络向其层级标识符被确定的相应目的地任务发送消息,取决于发送任务的层级标识符以及网络拓扑,以使得对于所述“所有到所有”消息交换的产生的交换模式按照期望的方式利用所述网络拓扑中的层级距离。
因而,体现本发明的方法提供系统中的“所有到所有”消息交换,在该系统中任务经由其进行通信的网络具有层级拓扑。对于任务的层级标识符取决于这些任务在所述拓扑的不同层级级别中属于的组,并且因而捕捉关于所述网络的层级信息。在所述消息交换处理的每一个阶段中,所述任务各自向相应目的地任务发送消息,从而每一个任务在每一个连续的阶段中既发送消息也接收消息。对于给定阶段中的发送任务,以所述发送任务的所述层级标识符和所述网络拓扑为基础来确定对于每一个消息的目的地任务的层级标识符,按照期望的方式利用所述网络中的层级距离。因而,与上面讨论的先前交换不同,在这一意义上,所述交换操作真正地是“拓扑感知”,因为其取决于物理网络的实际层级拓扑(这与在真实的网络拓扑顶部上施加的重叠的某一固定拓扑相对,例如被嵌入在XOR交换函数中)。这允许根据期望来利用网络拓扑中的层级距离,在层级网络中提供高度有效的交换模式。而且,体现本发明的方法并不局限于类似上面讨论的XOR交换的有效类别的网络。如由下面描述的示例示出的,体现本发明的拓扑感知的交换方法提供显著性能益处并且能够容易地适合于相异的性能需求,允许根据对于层级网络的不同类型的不同准则的交换的优化。
本发明实施方式中的交换模式可以按照各种方式利用该网络拓扑中的层级距离。例如,所述交换模式可以按照增加层级距离的顺序实现所述消息交换(全部或者部分地)。所述交换因而可以按照如上面讨论的“增加的远程性”的顺序发生。一些实施方式进一步适于改善操作的某一特定方面,例如负载均衡、延迟时间、阶段内同步或带宽效率。利用体现本发明的一些交换,所述交换模式在某一程度上按照增加的远程性的顺序进行,与这一顺序偏离,以便实现带宽优化的期望程度。在将被描述的特定示例中,所述交换模式通过确保增加的远程性的程度被有效地最小化并且实现完全的带宽优化来利用层级距离。
尽管可以设计其中对于每一个发送任务预先计算对于连续的消息的目的地任务的特定序列的实施方式,但是典型地在每一个任务处动态地确定对于每一个消息的合适的目的地任务的层级标识符。因而,体现本发明的方法优选地在每一个任务处包括动态地确定对于在所述交换的每一个阶段中发送的消息的目的地任务的层级标识符。
本发明的第二方面提供一种包括多个计算节点的并行计算系统,所述计算节点包含由所述系统的互连网络连接的程序任务,所述网络具有包括N>1个层级级别ln的层级网络拓扑,n=1到N,其中第一级别l1包括所述任务的多个组并且每一个较高级别l(n>1)包括级别l(n-1)组的至少一个组,其中所述系统适于执行根据本发明第一方面的用于所述程序任务之间的“所有到所有”消息交换的方法。
本发明的第三方面提供一种根据本发明第二方面的并行计算系统的计算节点,所述计算节点包含所述系统的至少一个程序任务并且适于与所述系统的其他计算节点共同执行对于所述系统的所述程序任务之间的“所有到所有”消息交换的所述方法。
本发明的第四方面提供一种包括用于使根据本发明第三方面的计算节点与所述其他计算节点共同地执行用于“所有到所有”消息交换的所述方法的程序代码装置的计算机程序。一种计算节点能够由某一形式的计算机实现,这里术语“计算机”在大多数通常的意义上使用,并且包括具有用于实现计算机程序的数据处理能力的任何设备、部件或者系统。而且,体现本发明的计算机程序可以构成独立的程序或者可以是较大程序的元素,并且可以例如被提供、体现在诸如盘或者用于在计算机中加载的电子传输的计算机可读介质中。所述计算机程序的程序代码装置可以包括意在使计算机执行所讨论的方法的一组指令的以任何语言的任何表达、代码或者注释,或者直接或者在(a)转换到另一语言、代码或注释,和(b)按照不同的材料形式的再现中的一个或二者之后。
通常,本文参照本发明一个方面的实施方式描述了特征,可以适当地在本发明另一方面的实施方式中提供相对应的特征。
附图说明
现在将参照附图通过示例的方式来描述本发明的优选实施方式,在附图中:
图1示出了树形互连网络的示例;
图2示出了蜻蜓网络的示例;
图3示出了对于示例性网络拓扑的线性移位交换模式;
图4示出了对于图3交换模式的网络拓扑;
图5示出了对于图4拓扑的XOR交换模式;
图6指示了在体现本发明的方法中子组标签到层级互连拓扑的任务和组的分配;
图7示出了对于体现本发明的第一“所有到所有”交换方法的交换模式;
图8示出了对于体现本发明的第二“所有到所有”交换方法的交换模式;
图9指示了在体现本发明的第三“所有到所有”交换方法中的步骤的排序;以及
图10示出了对于体现本发明的第四“所有到所有”交换方法的交换模式。
具体实施方式
要描述的方法提供用于在并行计算系统中的“所有到所有”消息交换,其中通信程序任务在该系统中通过具有层级网络拓扑的互连网络连接。通常,可以认为这样的网络拓扑包括这里由ln指代的N>1个层级级别,其中n=1到N。所述层级的第一级别l1包括程序任务的多个组。每一个较高级别l(n>1)包括级别l(n>1)组的至少一个组。
图6示出了将用于解释在体现本发明的交换方法中如何定义对于任务的层级标识符的示例性系统的拓扑。所示出的特定拓扑与树形互连网络相对应,每计算节点一个任务,四个级别1交换机,四个级别2交换机以及一个级别3交换机。然而,将理解,能够将要描述的原理容易地扩展到其他层级网络。
在图6的拓扑中,具有阴影的圆形与在共同通信操作中涉及的并行程序任务的集合相对应。这些任务中的每一个以在计算节点上运行的软件实现。假设在这一示例中每计算节点一个任务,具有阴影的圆形代表各自包含一个任务的相应计算节点。所述层级的第一级别l1包括十二个级别l1组,每一个包含三个程序任务。所述层级的第二级别l2包括四个级别l2组,每一个包含三个级别l1组。所述层级的第三级别(这里为最高)包括单个级别l3组,包含四个级别l2组。产生的机构是同质的层级,从而相同的层级级别ln中的所有组具有相同的尺寸Mn(其中,这里将组的“尺寸”定义为其包含的来自先前层级级别的元素的数量)。在示出的示例中,组尺寸因而为M1=3,M2=3,M3=4。推广到N-级别层级,可以看出所述层级的级别l1中的组由M1个通信任务构成,级别l2中的组由M2个级别l1组(因而M1·M2)个任务构成,并且直到级别N,该级别N由MN个级别l(N-1)组构成,并且因而由个通信任务构成。
对于所述系统中的每一个任务定义唯一的层级标识符。对于任务的层级标识符取决于该任务在相应层级级别中属于的组。在优选实施方式中,层级标识符包括与相应的层级级别l1,l2,……,lN相对应的N个值的集合(这里将其称为“标识符元素”)m1,m2,……,mN。按照下面的方式获得层级标识符。首先定义对于每一个层级l1组中的每一个任务的唯一的子组标签si,i=1到Mn,并且对于每一个级别l(n>1)组中的每一个级别l(n>1)组。尽管可以设计替代方案,但是在优选实施方式中,每一个子组标签si=(i-1),以使得s1=0,s2=1等等,从而子组标签si是整数0,1,……,(Mn-1)。在该对于任务的层级标识符的N个标识符元素mn(n=1到N)的集合中,与层级级别l1相对应的标识符元素m1取决于对于该任务的子组标签si。与层级级别l(n>1)相对应的每一个进一步的标识符元素m(n>1)取决于对于该任务属于的级别l(n-1)组的子组标签si。
对于图6中的一些任务和组中,指示如上所述的子组标签的分配。在要描述的第一交换方法中,标识符元素m1简单地等于对于该任务的子组标签si。类似地,每一个进一步的标识符元素m(n>1)简单地为对于该任务属于的级别l(n-1)组的子组标签si。以这一系统为基础,在图中对于标记为t1的任务的层级标识符将为0,0,0。对于标记为t2的任务标识符将为2,2,0,等等。(然而,注意到,在子组标记步骤中,存在标记子组/任务的整个集合的M1!·M2!·……·MN!种不同的方式,并且这些中的任意一个能够用于要描述的方法中)。
除了层级标识符,体现本发明的交换方法对于交换处理的阶段使用类似的表示。特定的阶段由其值对于交换的每一个连续阶段改变的阶段索引识别。在要描述的一些交换方法中,阶段索引p包括与所述层级标识符的相应识别元素mn相对应的N个阶段元素pn的集合。由于在“所有到所有”交换处理中存在与通信任务一样多的阶段,因此对于交换的连续阶段,阶段索引p能够通过整数值递增。N个阶段元素的集合p1,p2,……,pN提供在可变基数M1,M2,……,MN中的这些值的可变基数表示,从而每一个阶段元素pn与基数Mn相对应。可变基数表示与数目的一致基数表示的熟悉概念类似,但是不同之处在于,每一个数位的基数与每一个其他数位的基数无关。作为示例,在数目的(一致)基数10表示中,任何数位能够取值从0到9(即,10-1)的值。类似地,在数目的(一致)基数2表示中,任何数位能够取值从0到1(即,2-1)的值。相比而言,在可变基数(2,10)表示中,最低有效数位能够取值0和(2-1)之间的值,而第二最低有效数位能够取值0和(10-1)之间的值。在这一可变基数中,数目0,1,2,3,4将被表示为00,10,,01,11,02(最低有效数位在最左面)。返回到阶段表示p1,p2,……,pN,其遵循着:如果qr是p除以M1·M2·……·M(r-1)的整数除法的商,则每一个数位pr能够被计算为qr除以Mr的整数除法的余数。
可以在网络的初始建立阶段上,或者在对于共同通信的特定并行任务的定义上,确定上述的层级标识符,并且可以将所述层级标识符存储在计算节点处的存储器中,以便定义对于每一个特定任务的标识符。在计算节点处类似地定义可变基数阶段表示,以使得节点索引p对于消息交换的连续阶段能够适当地递增。当要由所述任务集合执行“所有到所有”交换操作时,每一个任务经由网络向交换的每一个连续阶段中的相应目的地任务发送消息。因而,每一个任务精确地既发送又接收一个消息,以使得每一个阶段中在发送和目的地任务之间存在一对一配对。对于每一个发送任务的每一个消息,经由取决于发送任务的层级标识符和互连网络的拓扑二者以及阶段索引的值的交换算法,动态地确定配对的目的地任务的层级标识符。交换算法是这样的,使得产生的交换模式按照期望的方式利用网络拓扑中的层级距离。
在体现本发明的第一交换方法中,经由下面的交换函数,根据发送任务的层级标识符以及阶段的可变基数表示来确定对于每一个消息的目的地任务的层级标识符:
modulo Mn,n=1到N, (1)
其中:
是目的地任务的层级标识符的第n个识别元素;以及
是发送任务的层级标识符的第n个识别元素。
利用这一功能,对每一个步骤中的加法执行对Mn取模,并且因而取决于在互连网络层级的合适的级别处的实际组尺寸。图7中示出了这一交换函数的效果。这表示了对于具有图4的层级拓扑的系统的产生的交换模式,与每一个级别l1组中的四个通信任务以及每一个单个级别l2组中的四个级别l1组相对应。阶段0到3是本地的(与相同级别l1组中的任务之间的交换相对应),而剩余的阶段是远程的。对于远程的阶段,出于清晰目的,仅示出了在第一l1组中任务上发起的交换。(注意到,图7仅示出了与特定的子组标记系统相对应的一个可能的交换模式。这一标记与交换的属性正交,并且M1!·M2!·……·MN!个不同的标记系统中的每一个产生一个新的不同的交换模式。)
从图7可以看出,对于这一“所有到所有”消息交换的交换模式按照网络拓扑中的增加的层级距离的顺序行进。具体地说,首先在层级的最低级别内执行交换,然后在该层级的第二级别内执行交换,排他地,在不属于相同的第一层级级别组的节点之间,等等。该消息交换因而按照逐渐增加的远程性发生,具有先前讨论的产生的性能优点。而且,与XOR交换相比较,这按照对于物理网络的实际层级拓扑忠实的方式实现。与XOR交换不同,由等式(1)定义的交换无论如何不会在底层物理网络上施加重叠,并且简单地使用真实网络层级的内在拓扑属性。
上面的交换处理的进一步的优点在于,能够将其应用于包括树形网络(例如标准树以及其各种形式的诸如XFGT的粗树、细粗树等等)和蜻蜓网络二者的直接和间接层级网络。然而,尽管这一第一交换具有这里描述的实施方式的最常规的形状,但是这一规则性以某些类型的拓扑中的某些缺陷为代价。在诸如蜻蜓的直接层级网络中,例如,第一交换倾向于使远距离链路超载。下面描述消除这一效果的第二交换。
在体现本发明的第二交换方法中,除了子组标签si,我们还向每一个任务分配在每一个层级级别中该任务属于的每一个组内的偏移。特别是,对于属于每个级别l1组,对于每一个任务定义偏移值Ο,这一偏移值在该组中的任务之间唯一。在这一特定示例中,对于属于每一个级别ln组的偏移值是整数{0,1,……,(Tn-1)},其中Tn是该组中的任务的数量。在这一实施方式中,使用这里被称为由ps指代的“偏移-阶段表示”的修改的阶段表示来确定对于消息的目的地任务的层级标识符。这一偏移-阶段表示ps特定于消息的发送任务。具体地说,偏移-阶段表示ps取决于阶段索引p以及对于在相应层级级别中属于该任务的组中的发送任务定义的偏移值二者。在这一优选实施方式中,对于给定阶段中的给定发送任务s,该偏移-阶段表示ps包括取决于对于该阶段的阶段索引p的相应相对应的阶段元素pn的N个分量的集合,以使得:
对于n>1,如果相对应的阶段元素pn=0,则以及否则
因此,与第一实施方式相比较,由源任务用于计算其消息的目的地的原始阶段索引的每个非零阶段元素p(n>1)由被分配到位于与该阶段元素pn相对应的层级ln的紧邻下一层级级别中的源任务的偏移有效增加。然后使用产生的偏移-阶段表示ps代替上面等式(1)中的阶段索引p,以便获得对于第二实施方式的交换函数。即,经由下面的交换函数,根据发送任务的层级标识符以及偏移-阶段表示来确定对于每一个消息的目的地任务的层级标识符:
modulo Mn,n=1到N, (2)
同样,针对图4的层级拓扑,图8中示出了产生的交换模式。如之前描述的,阶段0到3是本地的而随后的阶段是远程的,并且出于清晰起见,在远程阶段中仅示出了起源于第一级别l1组中的任务上的交换。
从图8可以看出,交换模式再次按照网络拓扑中增加的层级距离的顺序进行。然而,这一方法提供了负载均衡的层级交换,这以最小对称的较小损失为代价而将远距离链路竞争降低到最小,同时维持了该交换的层级属性并且增加了性能。
保持在蜻蜓网络的上下文中,利用刚刚描述的第二交换,相同阶段中的交换由于在遍历网络时的不同路径长度而具有不同的延迟时间。利用体现本发明的第三交换方法,能够去除这一非对称性,结果极大地增加了阶段内同步。
第三交换方法尤其适用于蜻蜓网络。在这些网络中,层级的级别lc中的组与连接到包含任务的计算节点的相应交换机相对应,其中如果每一个计算节点包含单个任务,则c=1,并且如果每一个计算节点包含多个任务,则c=2。在图2中,例如,c=1,从而级别l1组与交换机相对应。然而,如果在这一网络中每一个计算节点包含多个任务,则该计算节点将与级别l1组相对应,并且级别l2将代表交换机的第一级别。因此,通常对于蜻蜓拓扑,每一个级别lc+1组与级别lc交换机的本地组相对应。这些级别lc交换机中的每一个交换机经由远距离链路而被连接至至少一个其他级别lc+1组中的交换机。继而,每个级别lc+2组对应于级别lc+1组的组。图9指示对于图2的简单的蜻蜓网络的各种组。在附图中以粗线示出了远的链路。在这一示例中,每一个交换机经由远距离链路连接到仅一个其他本地组中的交换机。在其他蜻蜓网络中,每一个交换机可以经由远距离链路连接到多于一个其他本地组中的交换机。
以前述定义为基础,第三交换方法通过按照特定顺序选择目的地任务,来确定对于来自给定发送任务的消息的目的地任务。具体地说,在交换的连续阶段中,每一个任务向按照下面的顺序选择的相应目的地任务发送消息:
a.与发送任务位于相同计算节点中的任务;
b.在连接到与发送任务相同级别lc交换机S的计算节点中的任务;
c.在连接到与交换机S位于相同级别lc+1本地组中的交换机的计算节点中的任务;
d.在连接到交换机S’的计算节点中的任务,在所述至少一个其他级别lc+1组中,其经由所述远距离链路连接到所述交换机S;
e.在连接到与所述交换机S’位于相同级别lc+1本地组中的级别lc交换机的计算节点中的任务;
f.在连接到交换机S’的计算节点中的任务,在所述至少一个其他级别lc+1组中,其经由所述远距离链路连接到与所述交换机S位于相同的级别lc+1本地组中的另一交换机;
g.所有其他任务。
因此,在这一第三交换方法中,以发送任务的层级标识符和网络拓扑为基础,在连续的阶段中确定对于来自发送任务的消息的目的地任务的层级标识符,以便对于每一个发送任务遵循上面的顺序。图9指示对于特定的发送任务与上述步骤中的每一个相对应的节点。这里,标记为“a”的节点是包含发送任务的节点。包含由上述处理的随后步骤到达的任务的节点由与该合适的步骤相对应的字母进行标记。
这一方法中的层级标识符可以关于第一或者第二交换进行定义,或者可以按照某一其他方式取决于在不同的层级级别中任务属于的组。阶段可以类似地由如上所述的阶段索引或者按照某一其他传统方式进行标示。用于在给定的场景中正确而有效地实现上面的消息顺序,特别是通过确保维持“所有到所有”交换的属性,并且通过借用在定义第二交换中使用的诸如负载均衡方案的原理,对于本领域的普通技术人员来说是易见的。当使用这一负载均衡方案时,产生的对于第三交换方法的交换模式通常与对于第二交换的交换模式相对应,按照增加层级距离的顺序行进,但是也使对于相同阶段中的消息交换的延迟时间相等,从而改善了阶段内同步。在任意给定阶段使延迟时间相等在于,每一个消息采取的路径相同,并且它们由相同数量和类型的线路按照相同的顺序构成。这样,在不存在网络竞争时,消息将与任意其他消息花费相同量的时间经过其路径。然而,如果存在竞争,则延迟时间会改变,但是交换的延迟时间优化属性精确地指代路径的这一均衡。
体现本发明的第四交换方法解决了在细粗树网络中带宽利用的问题。对于诸如XGFT的间接层级拓扑,典型的网络设计在相同的层级级别处的多个组之间以及在层级级别之间提供足够的带宽容量,以便按照免于竞争的方式来路由任意的排列业务模式(排列业务模式是其中每一个源向单个目的地进行发送并且目的地的集合与源的集合相同的一种业务模式)。这样,负载均衡不提供附加的益处。而且,由于拓扑的间接本质,上面描述的第一交换方法也已经是延迟时间均衡的。因此,在这一典型的情况下(该情况例如是对于n个树的所有第k个的情况),第一交换方法已经是优化的。然而,新的设计寻求通过降低可用带宽的一部分来降低网络成本。这是对于所谓的细粗树的情况。上面描述的该纯层级交换方法在一些阶段中要求充分的带宽,而其他阶段留下完全未使用的网络的部分。第四交换方法倾向于在阶段之间更加一致地使用网络,因而以交换的对称和层级属性为代价来优化带宽使用。换句话说,这一交换方法允许针对如下方面进行调节,一方面是层级结构和另一方面是带宽利用之间的折中。这允许优化的性能,与非细设计相比较少1/MN的对分带宽,以便具有尽可能少的非细长的对分带宽的一半。
在第四交换方法中,第一方法的层级标识符用于通过将该层级标识符看作是可变基数M1,M2,……,MN中的可变基数表示来获得对于每一个任务的任务索引t。即,任务索引t是由可变基数表示中对于任务的层级标识符的N个标识符元素mn的集合指示的值,其中每一个标识符元素mn与基数Mn相对应。然后在不同的可变基数MN,M(N-1),……,Mk+2,Mk+1,M1,M2……,Mk中将对于每一个任务的次要标识符定义为对于该任务的任务索引t的表示,其中k是选择的调节参数,以使得1<k<N。因而任务的次要标识符包括与相应基数Mj相对应的N个次要元素mj的集合,其中j=N,(N-1),……,k+2,k+1,1,2,……,k。然后在这一新的可变基数中表示阶段索引p(这里对于交换的连续阶段经过整数值来增加其值)。因而,阶段索引p包括在可变基数MN,M(N-1),……,Mk+2,Mk+1,M1,M2……,Mk中提供具有整数值的可变基数表示的N个阶段元素Pj的集合。
然后使用这些发送任务和阶段索引的新的表示来如前所述地执行模加法。为了获得目的地任务的层级标识符,可变基数结果中的数位被简单地排列回到原始的层级顺序。即,对于在交换的每一个阶段中发送的每一个消息,通过下面来确定对于该消息的目的地任务的层级标识符的N个识别元素:
(a)将目的地任务的次要标识符获得为:
j=N,(N-1),……,k+2,k+1,1,2,……,k,
其中,是目的地任务的次要标识符的第j个元素,并且是发送任务的次要标识符的第j个元素;并且然后
(b)将目的地任务的次要标识符的N个元素排列为基数顺序Mn,n=1到N。
对于这一第四交换产生的交换模式提供了可调节的折中,该折中在带宽优化和按照网络拓扑中增加的层级距离的顺序行进之间、经由对于调节参数k选择的值可调。对于调节参数k选择的值越小,带宽占用就变得更加优化(从顶级开始的扩展的通用粗树中的更多级别被带宽优化),对于k=1达到完全优化的巅峰。选择的k值越大,交换的层级就越多,对于k=N达到上述第一交换方法的巅峰。图10中示出了对于具有两个级别并且向下分支参数为4和4的经扩展的一般化粗树的k=1交换模式。除了以粗体示出的那些之外的4条线路代表与网络的对分交叉的交换。人们可以看出,与纯层级交换相反,对分使用(在图的底部对于每一个阶段进行标记)在交换的阶段之间一致地分散,这导致带宽使用的优化。这一特定模式因此通过确保有效地最小化“增加的远程性”的程度并且实现完全的带宽优化来利用拓扑中的层级距离。单个阶段中的通信对全部在远程的尽可能多的级别上进行分布。由于完全粗树的所有链路的带宽利用的完美均衡,这能够优化最小成本粗树(显著地减低了顶部级别处的对分带宽)。现有算法不能利用分半的对分带宽来在粗树中实现最佳性能。具体地说,线性移位和XOR(及其变体)交换模式在降低成本的网络方面很差地执行。
将看到,上面描述的各种实施方式提供本质上考虑网络拓扑的层级结构的一系列有效的拓扑感知的交换模式。这些交换的非常重要的优点在于,它们的应用不像XOR那样局限于层级网络设计的有限种类。而且,在性能方面,这些交换在细粗树中超出XOR和线性移位20%到40%。在蜻蜓式中,差异更加显著,与基本线性偏移相比较变为高达300%(交换完成得快三倍),并且与随机化的线性偏移相比较高达60%,这在目前被认为是最佳方案(当然,XOR在这种情况下不可用)。
将意识到,可以对描述的示例实施方式做出许多改变和变型。例如,在上面描述的交换的可选实施方式中,整体地保留在每一个阶段中的交换的结构,但是按照与上述使用的基本顺序不同的顺序执行所述阶段本身。这一阶段顺序可以是序列的任何排列。即,能够通过将所述阶段的顺序改变到所描述的顺序的任意排列,来修改上面的交换方法。对于第一、第二和第四交换方法,这可以通过使用阶段索引p来实现,该阶段索引p对于该交换的每一个连续阶段取整数值中的不同一个,其中这些值可以按照任意顺序发生。对于上述的第三交换方法,利用这一方法获得的该交换的产生的阶段能够简单地按照另一阶段顺序来执行。在较早的交换处理按照增加的远程性的顺序进行(即,增加网络拓扑中的层级距离)的情况下,对任意给定阶段中的消息交换进行排序的不同阶段将具有相同的“远程度的量”。即,在任意特定的阶段,所有消息将遍历相同的层级距离。每一个单独阶段的结构保持不受这一排序影响的事实将仍然导致保留较早描述的性能增益的大多数。
出于简化目的,尽管上面将一些系统描述为具有每计算节点一个任务,但是在每计算节点存在多于一个任务的情况下,操作基本上相同。这有效地增加了任务级别和交换机级别之间的附加的层级级别。因而,在具有每计算节点单个任务的系统中,级别l1组与连接到计算节点的组的交换机相对应。在其中计算节点包含多于一个任务的系统中,级别l1组与计算节点相对应。
尽管对于给定网络可以预先确定特定的交换函数,但是这一函数在操作中当然可以动态地改变,例如,以便调整到改变的条件或者操作要求。
在不偏离本发明的范围的情况下,可以对所描述的实施方式做出许多其他改变和修改。
Claims (22)
1.一种用于在由具有层级网络拓扑的互连网络连接的程序任务之间的“所有到所有”消息交换的方法,所述层级网络拓扑包括N>1个层级级别ln,n=1到N,其中第一级别l1包括所述任务的多个组,并且每一个较高级别l(n>1)包括级别l(n-1)组的至少一个组,所述方法包括:
对于每一个任务,在所述网络拓扑的相应层级级别中定义取决于所述任务属于的组的唯一的层级标识符;以及
在每一个任务处,在所述交换的连续阶段的每一个阶段中,取决于发送任务的层级标识符和所述网络拓扑,经由所述网络向其层级标识符被确定的相应目的地任务发送消息,以使得对于所述“所有到所有”消息交换的产生的交换模式按照期望的方式利用所述网络拓扑中的层级距离。
2.根据权利要求1所述的方法,其中:
相同层级级别ln中的所有组具有相同的尺寸Mn;
对于每一个级别l1组中的每一个任务,并且对于每一个级别l(n>1)组中的每一个级别l(n-1)组,定义唯一的子组标签si,i=1到Mn;以及
用于所述任务的所述层级标识符包括与相应的层级级别相对应的N个标识符元素的集合,其中与层级级别l1相对应的标识符元素m1取决于用于所述任务的子组标签si,并且与层级级别l(n>1)相对应的标识符元素m(n>1)取决于用于所述任务属于的所述级别l(n-1)组的所述子组标签si。
3.根据权利要求2所述的方法,其中每一个子组标签si=(i-1)。
4.根据权利要求2或者3所述的方法,其中在用于所述任务的所述层级标识符中,所述标识符元素m1是用于所述任务的所述子组标签si,并且每一个标识符元素m(n>1)是用于所述任务属于的所述级别l(n-1)组的所述子组标签si。
5.根据前述权利要求中的任意一项所述的方法,其中对于在所述交换中发送的每一个消息,用于所述消息的所述目的地任务的所述层级标识符进一步取决于其值对于所述交换的每一个连续阶段改变的阶段索引。
6.根据引用权利要求2的权利要求5所述的方法,其中所述阶段索引包括与所述层级标识符的相应识别元素mn相对应的N个阶段元素pn的集合。
7.根据权利要求6所述的方法,其中对于所述交换的每一个连续阶段,所述阶段索引p取整数值中的不同的值,所述N个阶段元素pn的集合提供所述值的可变基数表示,其中每一个阶段元素pn与基数Mn相对应。
8.根据权利要求7所述的方法,其中对于在所述交换的所述阶段的每一个阶段中发送的每一个消息,将用于所述消息的所述目的地任务的所述层级标识符的N个识别元素确定为:
modulo Mn,n=1到N,
其中是所述目的地任务的所述层级标识符的第n个识别元素,并且是用于所述消息的所述发送任务的所述层级标识符的第n个识别元素。
9.根据权利要求7所述的方法,其中:
对于属于每一个级别ln组的任务,对于每一个任务定义偏移值Ο,所述偏移值在所述组中的任务之间唯一;以及
对于在所述交换的每一个阶段中由每一个任务发送的每一个消息,用于所述消息的所述目的地任务的所述层级标识符取决于偏移-阶段表示ps,该偏移-阶段表示ps取决于用于所述阶段的阶段索引p以及对于在相应层级级别中所述任务属于的所述组中的所述任务而定义的偏移值。
10.根据权利要求9所述的方法,其中对于在所述交换的每一个阶段中由每一个任务发送的每一个消息,所述偏移-阶段表示ps包括N个分量的集合,所述N个分量的集合取决于用于所述阶段的所述阶段索引p的相应相对应的阶段元素pn,以使得:
对于n>1,如果所述相对应的阶段元素pn=0,则以及否则
加上(pn-1)与所述任务在所述任务属于的级别l(n-1)组中的偏移值Ο之和对(Mn-1)取模的结果。
11.根据权利要求10所述的方法,其中对于在所述交换的所述阶段的每一个中发送的每一个消息,将用于所述消息的所述目的地任务的所述层级标识符的所述N个识别元素确定为:
modulo Mn,n=1到N,
其中,是所述目的地任务的所述层级标识符的第n个识别元素,以及是用于所述消息的所述发送任务的所述层级标识符的第n个识别元素。
12.根据权利要求3和4所述的方法,
包括将用于每一个任务的次要标识符定义为用于所述任务在可变基数MN,M(N-1),……,Mk+2,Mk+1,M1,M2……,Mk中的任务索引t表示,其中k是预定的调节参数以使得1<k<N,其中所述任务索引t是由可变基数表示中用于所述任务的所述层级标识符的N个标识符元素mn的上述集合指示的值,其中每一个标识符元素mn与基数Mn相对应,从而所述次要标识符包括与相应基数Mj相对应的N个次要元素mj的集合,其中j=N,(N-1),……,k+2,k+1,1,2,……,k;
其中,对于在所述交换的所述阶段的每一个中发送的每一个消息,用于所述消息的所述目的地任务的所述层级标识符进一步取决于阶段索引p,所述阶段索引p对于所述交换的每一个连续阶段取整数值中的不同值,所述阶段索引p包括在所述可变基数MN,M(N-1),……,Mk+2,Mk+1,M1,M2……,Mk中提供所述整数值的可变基数表示的N个阶段元素pj的集合;以及
其中,对于在所述交换的所述阶段的每一个中发送的每一个消息,通过将所述目的地任务的所述次要标识符获得如下来确定用于所述消息的所述目的地任务的所述层级标识符的所述N个识别元素:
modulo Mj,j=N,(N-1),……,k+2,k+1,1,2,……,k,
其中,是所述目的地任务的所述次要标识符的第j个元素,并且是用于所述消息的所述发送任务的所述次要标识符的第j个元素,并且继而将所述目的地任务的所述次要标识符的N个元素排列为所述基数顺序Mn,n=1到N。
13.根据权利要求1到7中的任意一项所述的方法,其中所述网络包括蜻蜓网络,其中所述层级级别lc中的所述组与连接到包含所述任务的计算节点的相应交换机相对应,其中,如果每一个计算节点包含单个任务则c=1,并且如果每一个计算节点包含多个任务则c=2,其中每一个级别lc+1组与级别lc交换机的本地组相对应,所述级别lc交换机的每一个经由远距离链路连接到位于至少一个其他级别lc+1组中的交换机,并且每一个级别lc+2组与级别lc+1组中的组相对应,并且其中在所述交换的连续阶段中,每一个任务向按照下面的顺序选择的相应目的地任务发送消息:
a.与所述任务位于相同计算节点中的任务;
b.在连接到与所述任务相同级别lc交换机S的计算节点中的任务;
c.在连接到与所述交换机S位于相同级别lc+1本地组中的交换机的计算节点中的任务;
d.在连接到交换机S’的计算节点中的任务,在所述至少一个其他级别lc+1组中,所述交换机S’经由所述远距离链路连接到所述交换机S;
e.在连接到与所述交换机S’位于相同级别lc+1本地组中的级别lc交换机的计算节点中的任务;
f.在连接到所述交换机S’的计算节点中的任务,在所述至少一个其他级别lc+1组中,所述交换机S’经由所述远距离链路连接到与所述交换机S位于相同的级别lc+1本地组中的另一交换机;
g.所有其他任务。
14.根据权利要求13所述的方法,其中按照另一阶段顺序来执行所述交换的产生的阶段。
15.根据前述权利要求中的任意一项所述的方法,包括:在每一个任务处,动态地确定用于在所述交换的每一个阶段中发送的所述消息的所述目的地任务的所述层级标识符。
16.一种包括多个计算节点的并行计算系统,所述多个计算节点包含通过所述系统的互连网络连接的程序任务,所述网络具有层级网络拓扑,所述层级网络拓扑包括N>1个层级级别ln,n=1到N,其中第一级别l1包括所述任务的多个组并且每一个较高级别l(n>1)包括级别l(n-1)组中的至少一个组,其中所述系统适于执行根据在前述权利要求中的任意一项中所述的用于所述程序任务之间的“所有到所有”消息交换的方法。
17.根据权利要求16所述的系统,其中所述网络是粗树网络,所述系统适于执行根据权利要求8所述的用于所述程序任务之间的“所有到所有”消息交换的方法。
18.根据权利要求16所述的系统,其中所述网络包括蜻蜓网络,所述系统适于执行根据权利要求11所述的用于所述程序任务之间的“所有到所有”消息交换的方法。
19.根据权利要求16所述的系统,其中所述网络包括细粗树网络,所述系统适于执行根据权利要求12所述的用于所述程序任务之间的“所有到所有”消息交换的方法。
20.根据权利要求16所述的系统,其中所述网络包括蜻蜓网络,所述系统适于执行根据权利要求13或者14所述的用于所述程序任务之间的“所有到所有”消息交换的方法。
21.一种根据权利要求16到20中的任意一项所述的并行计算系统的计算节点,所述计算节点包含所述系统的至少一个程序任务,并且适于与所述系统的其他计算节点共同执行用于所述系统的所述程序任务之间的“所有到所有”消息交换的所述方法。
22.一种包括程序代码装置的计算机程序,所述程序代码装置用于使根据权利要求21所述的计算节点与其他计算节点共同地执行用于“所有到所有”消息交换的所述方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1303181.0 | 2013-02-22 | ||
GB1303181.0A GB2511089A (en) | 2013-02-22 | 2013-02-22 | All-to-all message exchange in parallel computing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104009907A true CN104009907A (zh) | 2014-08-27 |
CN104009907B CN104009907B (zh) | 2017-05-31 |
Family
ID=48091952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410048340.1A Active CN104009907B (zh) | 2013-02-22 | 2014-02-12 | 并行计算系统中的“所有到所有”消息交换 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9329914B2 (zh) |
JP (1) | JP6366291B2 (zh) |
CN (1) | CN104009907B (zh) |
GB (1) | GB2511089A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331336A (zh) * | 2014-11-21 | 2015-02-04 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机结构的多层嵌套负载平衡方法 |
WO2022048328A1 (zh) * | 2020-09-04 | 2022-03-10 | 华为技术有限公司 | 数据处理的方法、装置、设备及介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2511089A (en) * | 2013-02-22 | 2014-08-27 | Ibm | All-to-all message exchange in parallel computing systems |
JP6665607B2 (ja) | 2016-03-16 | 2020-03-13 | 富士通株式会社 | 通信管理方法、通信管理プログラム及び情報処理装置 |
JP6623939B2 (ja) | 2016-06-06 | 2019-12-25 | 富士通株式会社 | 情報処理装置、通信手順決定方法、および通信プログラム |
US10425358B2 (en) * | 2016-09-29 | 2019-09-24 | International Business Machines Corporation | Network switch architecture supporting multiple simultaneous collective operations |
US10394738B2 (en) | 2016-09-29 | 2019-08-27 | Intel Corporation | Technologies for scalable hierarchical interconnect topologies |
JP6844198B2 (ja) | 2016-10-25 | 2021-03-17 | 富士通株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP6930381B2 (ja) * | 2017-11-06 | 2021-09-01 | 富士通株式会社 | 情報処理システム、演算処理装置及び情報処理システムの制御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050105515A1 (en) * | 2003-10-29 | 2005-05-19 | Interactic Holdings, Llc | Highly parallel switching systems utilizing error correction |
CN102868782A (zh) * | 2012-09-27 | 2013-01-09 | 北京邮电大学 | 一种物理实体连接网络的命名分析方法 |
US20130022047A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Network apparatus and network managing apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08110846A (ja) * | 1994-10-11 | 1996-04-30 | Nippon Telegr & Teleph Corp <Ntt> | 階層ネットワーク情報の階層型メニュー表示装置 |
RU2335089C2 (ru) * | 2004-03-05 | 2008-09-27 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для выделения поднесущих в широкодиапазонной системе беспроводной передачи, использующей множество несущих |
US20100049942A1 (en) * | 2008-08-20 | 2010-02-25 | John Kim | Dragonfly processor interconnect network |
JP5860670B2 (ja) * | 2010-11-05 | 2016-02-16 | インテル コーポレイション | Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング |
US9577918B2 (en) * | 2012-11-19 | 2017-02-21 | Cray Inc. | Increasingly minimal bias routing |
GB2511089A (en) * | 2013-02-22 | 2014-08-27 | Ibm | All-to-all message exchange in parallel computing systems |
-
2013
- 2013-02-22 GB GB1303181.0A patent/GB2511089A/en not_active Withdrawn
-
2014
- 2014-02-10 JP JP2014023356A patent/JP6366291B2/ja not_active Expired - Fee Related
- 2014-02-12 US US14/178,413 patent/US9329914B2/en not_active Expired - Fee Related
- 2014-02-12 CN CN201410048340.1A patent/CN104009907B/zh active Active
-
2016
- 2016-04-18 US US15/131,278 patent/US9740542B2/en not_active Expired - Fee Related
-
2017
- 2017-04-18 US US15/490,293 patent/US10042683B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050105515A1 (en) * | 2003-10-29 | 2005-05-19 | Interactic Holdings, Llc | Highly parallel switching systems utilizing error correction |
US20130022047A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Network apparatus and network managing apparatus |
CN102868782A (zh) * | 2012-09-27 | 2013-01-09 | 北京邮电大学 | 一种物理实体连接网络的命名分析方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331336A (zh) * | 2014-11-21 | 2015-02-04 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机结构的多层嵌套负载平衡方法 |
CN104331336B (zh) * | 2014-11-21 | 2016-01-20 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机结构的多层嵌套负载平衡方法 |
WO2022048328A1 (zh) * | 2020-09-04 | 2022-03-10 | 华为技术有限公司 | 数据处理的方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2014164756A (ja) | 2014-09-08 |
US20160239356A1 (en) | 2016-08-18 |
US9740542B2 (en) | 2017-08-22 |
JP6366291B2 (ja) | 2018-08-01 |
US10042683B2 (en) | 2018-08-07 |
US20140245324A1 (en) | 2014-08-28 |
US20170220398A1 (en) | 2017-08-03 |
GB201303181D0 (en) | 2013-04-10 |
CN104009907B (zh) | 2017-05-31 |
US9329914B2 (en) | 2016-05-03 |
GB2511089A (en) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104009907B (zh) | 并行计算系统中的“所有到所有”消息交换 | |
AU2018221097B2 (en) | Data processing method and device | |
Zahavi et al. | Optimized InfiniBandTM fat‐tree routing for shift all‐to‐all communication patterns | |
CN102804712B (zh) | 用于在多个相等成本路径之间进行选择的方法和设备 | |
CA2872831A1 (en) | Flexible radix switch | |
JP6973150B2 (ja) | 最短経路行列生成プログラム、装置、及び方法 | |
JP6275263B2 (ja) | 大規模データセンターネットワークのためのトラフィック工学 | |
Kosowski et al. | k-chordal graphs: From cops and robber to compact routing via treewidth | |
KR101942194B1 (ko) | 토폴로지 및 라우팅 테이블을 위한 네트워크 토폴로지 시스템 및 생성 방법 | |
CN102546380B (zh) | 修改的基于树的多播路由方案 | |
US9860132B2 (en) | Multiple petabit-per-second switching system based on orthogonal formations of sets of access nodes | |
US20160301572A1 (en) | Communication control device, communication control method, and computer program product | |
US10333794B2 (en) | Validating routing tables of routing devices | |
Liestman et al. | Network communication in edge-colored graphs: gossiping | |
Toda et al. | Autonomous and distributed construction of locality aware skip graph | |
CN117176638A (zh) | 一种路由路径确定方法及相关组件 | |
Moraveji et al. | Multispanning tree zone-ordered label-based routing algorithms for irregular networks | |
Busch et al. | Optimal oblivious routing in hole-free networks | |
JP6854253B2 (ja) | ネットワーク設計装置、ネットワーク設計方法およびネットワーク設計処理プログラム | |
JP6472911B2 (ja) | 通信装置、通信方法、プログラムおよび通信システム | |
Barg et al. | Storage codes and recoverable systems on lines and grids | |
Wang et al. | An in‐depth study of dimension‐extended dragonfly interconnection network | |
JP6302109B2 (ja) | 通信制御装置、通信制御方法、プログラムおよび通信システム | |
Atar et al. | Routing strategies for fast networks | |
Nienaber | Effective Routing on Fat-Tree Topologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |