CN1988463A - 用于大容量消息广播的方法和系统 - Google Patents

用于大容量消息广播的方法和系统 Download PDF

Info

Publication number
CN1988463A
CN1988463A CN200610139293.7A CN200610139293A CN1988463A CN 1988463 A CN1988463 A CN 1988463A CN 200610139293 A CN200610139293 A CN 200610139293A CN 1988463 A CN1988463 A CN 1988463A
Authority
CN
China
Prior art keywords
fragment
partner
message
rep
pairing
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.)
Pending
Application number
CN200610139293.7A
Other languages
English (en)
Inventor
贾彬
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 CN1988463A publication Critical patent/CN1988463A/zh
Pending legal-status Critical Current

Links

Images

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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/546Xcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种用于在并行计算环境中进行消息广播的方法以及相关联的具体实现该方法的机器可读的程序存储设备。该方法包括步骤:通过首先确定如何划分待广播的消息来首先执行创建处理阶段;以及接着建立进程间的父-子关系,使得父进程负责将接收到的任意消息传递给所述子进程。此后,保证所有的非根进程获得该消息的一个片段,并且将其一并传递给该非根进程的指定子进程;并且执行包括多个子步骤的流水线处理阶段,在此期间广播停止并且使得每个进程基于预先选定的标准与其合作方交换消息片段。

Description

用于大容量消息广播的方法和系统
技术领域
本发明涉及在大型计算系统中的消息广播,并且特别地涉及在大型计算系统中的消息广播方面实现最优结果的算法。
背景技术
大型计算环境通常包括彼此间进行着正在处理的通信的计算机的网络。可以对联网的计算机进行松散的耦合从而形成计算机集群。在这样的布置中,松散耦合的计算机紧密地一起工作,使得在很多方面可以将其看作一个计算机。另外,许多这种大型环境提供并行处理能力。术语“并行处理器”有时用于具有多个处理器、可用于并行处理的计算机。具有成千上万个这种处理器的系统被称为大规模并行系统。
存在多个不同种类的并行计算机或并行处理器。通过在称为处理单元(PE)的处理器之间以及在处理器与存储器之间的互连种类来区分不同种类的并行计算机或并行处理器。并行处理器机还分为对称多处理器和不对称多处理器,这取决于是否所有的处理器都能够运行所有的操作系统代码,以及比方说访问I/O(输入/输出)设备,或者某些处理器是否多少具有某些特权。
计算机集群和并行处理既用于获得更快的速度又用于获得更好的性能。然而,系统的速度和性能极大地依赖于在计算操作期间是如何处理和传输数据的。就这一方面而言,在大型计算系统的设计中,消息广播变得最为重要。计算机网络中的广播是指对分组进行传输,网络上的每个设备将接收(概念上地)该分组。这些分组通常较小并且具有固定的大小。在并行应用级,广播是指从运行在并行计算机上的一个处理器向另一个处理器传输消息。消息可以是大容量的并且包括多个分组。
在大型计算环境(特别是并行计算)的设计中的一个特别的挑战是以协作的方式来使用从本质上说通常基本上是顺序的算法,以获得期望的并行结果。必须将大多数算法完全重新设计为在并行环境中有效。这种情况在同一程序的多个副本有可能互相影响的环境中尤其成立。
如前所述,在这种环境中并行应用广泛地使用广播,并且因此现有技术一直努力争取提供能够在一组进程之间有效地广播大容量消息的算法。遗憾的是,当前使用的现有技术算法不能够提供最优的通信调度,或者这种调度法对于在不同种类的进程(诸如二的幂次方个和非二的幂次方个进程)上实现大容量消息广播是不实际的。例如,散播-集合(Scatter-Allgather)算法的实现是直接的,但是其没有完全地和最优地使用可用的带宽。相反,边不相交的扩展二项式树(Edge-disjoint SpanningBinomial Tree)算法的性能更佳,但却具有非常复杂的结构并且只工作于二的幂次方个进程上。既工作于2的幂次方个进程上又工作于非2的幂次方个进程上的另一种算法是分区交换(Partition exchange)算法,但是尽管该调度法的通信内容部分比较简单,但通信合作方的确定非常复杂。因此,需要一种用于对大容量消息进行广播的能够克服现有技术的上述缺点的新颖算法。
发明内容
通过所公开的用于在并行计算环境中进行消息广播的方法以及相关联的具体实现该方法的机器可读的程序存储设备,克服了现有技术的缺点,并且提供了其他优点。该方法包括步骤:通过首先确定如何划分待广播的消息来首先执行创建处理阶段,以及接着建立进程间的父-子关系,使得父进程负责将接收到的任意消息传递给所述子进程。此后,保证所有的非根进程获得该消息的一个片段,并且将其一并传递给该非根进程的指定子进程;并且执行包括多个子步骤的流水线处理阶段,在此期间,通过在进程之间建立合作方关系并使得每个进程基于预先选定的标准与其合作方交换消息片段来进一步对已广播的消息片段进行流水线处理。
通过本发明的技术,可以实现其他的特征和优点。在此详细描述了本发明的其他的实施例和方面,并且这些实施例和方面被认为是所要求保护的本发明的一部分。为了更好地理解本发明的优点和特征,请参考描述和附图。
附图说明
在本说明书所附的权利要求中特别地指出并且明确要求保护被视为本发明的主题。根据下述结合附图而进行的详细描述,本发明的前述的和其他的目的、特征和优点将显而易见,在附图中:
图1是对根据本发明的一个实施例的用于广播的计算环境的示意性说明;
图2是对根据本发明的一个实施例的创建处理的流程图说明;
图3是对根据本发明的一个实施例的流水线处理的流程图说明;
图4是通常用于大容量消息MPI BCAST的散播-集合算法的例子;
图5是根据本发明的用于广播大容量消息的算法的例子;以及
图6是用于将图5的算法扩展到非二的幂次方个进程的算法的例子。
具体实施方式
本发明提供了一种用于广播大容量消息的新颖算法。该算法提供最优的通信调度,并且这种调度法对于在通信库中实现大容量消息广播来说是实际的。特别地,该算法既在二的幂次方个进程上也在非二的幂次方个进程上执行对大容量消息的最优广播。
图1提供了对计算环境100的示意性说明,其中计算环境100包括多个节点110,这些节点110经由通信网络120联网在一起。尽管可以选择各种不同的实施例,但为了易于理解,在下述讨论中,假设计算环境100是并行处理器。通信网络120可以包括本领域的普通技术人员已知的各种组件,包括但不限于局域网(LAN)130。如图所示,还提供了由140一般地表示的一个或多个存储设备,其可以包括主存储器和高速缓冲存储器。
图2和图3分别提供了对本发明所建议的处理的流程图说明。然而,在考查这些流程图之前,应该注意,为了易于理解,在下述讨论中结合并行应用来使用广播。这些广播中所使用的标准是消息传递接口(以下称为MPI)标准。MPI标准定义了称为MPI BCAST的集合通信操作,MPI BCAST将用于此处的讨论,应该理解,在替代性的实施例中还可以使用其他类似的标准。
在MPI BCAST中,最初具有消息的进程称为根。根向一组进程发送消息。为了便于讨论,假设进程0是根。在MPI BCAST结束时,每个进程具有该消息的一个副本。在本例中仅讨论单一的大容量消息广播算法以使得对该讨论的理解始终相对简单,应该理解,相同的概念可以应用于从同一个源广播一系列消息。
为了在该组进程和(图1的)节点110之间有效地广播大容量消息,最广泛采用的方法是:由根将大容量消息分成较小的片段并且以流水线操作的方式使这些片段进入系统中。不同的片段可以选取不同的路径到达其他进程。流水线操作的目的是完全利用系统中的可用带宽。现有技术中的多种大容量消息广播算法是使用这种方法来开发的。
这些算法之间的不同在于其流水线调度和调度方法,即如何构造调度。根据流水线调度,进程在每个通信步骤可以确定:1)其通信合作方,即输入片段的源进程和该输出片段的目标进程;以及2)通信内容,即哪个片段输入而哪个片段输出。最优调度是性能的关键,同时较低的调度复杂性和开销使得算法可以被实际实现并被包含到诸如MPI之类的通信库中。
仔细地考查先前简要讨论的散播-集合算法、边不相交的扩展二项式树算法和分区交换算法的工作原理可能有利于获得对本发明的工作原理的更好的理解。
在通常用于大容量消息MPI BCAST的散播-集合算法中,根将消息分为P个片段,其中P是该组中的进程数,包括根。接着,根通过称为MPI_SCATTER的进程将整个消息散播给所有的P个参与进程。作为散播的结果,每个进程获得该消息的至少一个片段。接着,在称为MPI_ALLGATHER的每个进程处重新对散播的片段进行集合。在MPI_ALLGATHER中,P个进程中的每一个进程表现得仿佛其只具有散播之后的一个独特的片段,并且其将该独特的片段贡献给该组。
该算法易于实现。散播阶段和集合阶段中的调度法简单而直接。然而,该算法的性能并非最优,原因是在散播阶段没有完全利用可用的带宽,并且在集合阶段存在冗余的数据传输。将每个步骤中的通信合作方关系示出在下述表格中,该表格针对于使用该算法在4个进程上进行广播的例子。在下述表格中可以看出通信内容,其示出了每个进程上可用的片段。进程0是根,并且组中有4个进程。图4和表1示出了这样的例子:
表1
进程  0     1     2     3
初始状态散播步骤0散播步骤1集合步骤0集合步骤1  01230123012301230123 1010123 2323230123 3230123
针对超立方体系统开发了n边不相交的扩展二项式树(nESBT)算法。其思想是通过合并n个扩展二项式树(SBT)来构造nESBT。从n-立方体中提取SBT,接着使该SBT旋转某个次数。根以循环的方式向SBT发送片段,并且沿一个SBT广播一个片段。该算法的性能比散播-集合算法的性能好,但是实现起来可能非常复杂。首先,nESBT图表构造非常复杂。其次,调度法的通信合作方部分虽然简单但是要在每个步骤期间确定通信内容,需要遍历nESBT图表,这带来较高的复杂性和开销。该算法可以移植到其他平台,但是仅作用于二的幂次方个进程。
另一种算法既处理二的幂次方个进程也处理非二的幂次方个进程。在申请中这种算法称为分区交换算法。其思想是在每个通信步骤期间,将P个进程分到若干个子集中。对于二的幂次方个进程,存在logP个子集,并且对于偶数的非二的幂次方个进程,存在logP+3个子集。对于奇数的非二的幂次方个进程,向该组添加一个虚进程(dummyprocess)。
虚进程不参与消息传递,并且该算法表现得仿佛存在P+1个进程。在每个步骤中,将一个进程与来自不同子集的另一个进程进行配对,并且在两者之间交换片段。一个进程先前已经接收哪个片段决定了该进程属于哪个子集,并且在当前步骤期间接着判断该进程应该发送和接收哪个片段。
对于二的幂次方个进程,通信调度与nESBT算法基本相同,只是构造方式不同。和nEBST算法不同,调度法的通信内容部分虽然简单但是尤其是对于非二的幂次方个进程,通信合作方的确定非常复杂。在理论上,nESBT算法和分区交换算法的性能好于散播-集合算法。然而,它们的调度法对于MPI实现来说是不实际的。
回头参考图2,在本发明中,提供了一种用于广播大容量消息的新颖方法,其能够实现最优通信调度,并且这种调度法对于在通信库中实现大容量消息广播来说是实际的。特别地,该方法以及相关联的算法对于在二的幂次方个进程上和在非二的幂次方个进程上的大容量消息广播都表现得最优。
使用新的调度法通过简单地检查进程ID(标识)的二进制表示可容易地确定通信合作方和通信内容二者。对于二的幂次方个进程,由该算法生成的通信调度相对地类似于结合nESBT算法和分区交换算法而讨论的但是具有新颖的、低复杂度的和低开销的调度法的算法。对于非二的幂次方个进程,通信调度和调度法二者都与现有技术的解决方案非常相同。
对于在P(P是二的幂次方)个进程之间的广播,如图2的流程图说明所示,在本申请所建议的方法中存在两个主要步骤。第一阶段是参考标号为200的创建阶段,而第二个主阶段是参考标号为300的流水线阶段。消息被分为q个片段。
在创建阶段200中,该消息的前n=logP个片段沿着二项式树220进行传递,将该二项式树220的父-子关系定义如下:
定义1:
对于i=(in-1in-2...ir...iO)并且r满足:
在i≠O时,ir=1且in-1=in-2=…=ir+1=0;或者在i=0时,r=-1,进程i的父进程(Parent)和子进程(Child)为:
Child ( i , s ) = { ( i n - 1 . . . i r + s + 1 ‾ . . . i r . . . i o ) | s ∈ { 0,1 , . . . , n - r - 2 } }
Parent ( i ) = ( i n - 1 . . . i r ‾ . . . i 0 )
根据该定义,进程0具有n个子进程。根据本发明的工作原理,进程0发出前n个片段,将每个片段发送给它的一个子进程,如225所示。在创建阶段,除进程0之外的每个进程从其父进程获得一个片段。一旦接收到一个片段,进程就将该片段发送给它的每个子进程,一个接一个,如226所示。
因此,对于进程i,进程i=(in-1in-2...ir...i0)期望从其父进程那里获得片段t,其中t满足it=1和it-1=it-2=...=i0=0。该创建采取了n个步骤,并且在最后,每个非根进程获得该消息的一个片段(227)。
流水线阶段300同样包括若干步骤。类似于创建阶段。在该阶段期间,父-子关系被由处理步骤320描述的配对的合作方关系(partner-shipping)替代。可以以多种方式来获得该合作方关系,下文将对其进行详细讨论。注意,可以通过检查进程ID的二进制表示容易地确定通信合作方和通信内容,如在310处所示。
对于每个进程,一旦确定合作方(如在320处所标示),则接着与合作方交换该消息的至少一个片段(如在325处所示),直到该处理完成(如327所述)为止。
也就是说,例如,在步骤k中,进程i与合作方进程交换一个片段。该合作方通过对比特ik%n求反来确定:
定义2:
对于i=(in-1in-2...ir...i0), Partner ( i , k ) = ( i n - 1 i n - 2 . . . i k % n ‾ . . . i 0 ) .
例如,当进程0是合作方时,若k<q-n,则该进程从进程0接收片段k+n,否则,该进程从进程0接收片段q-1。
另一方面,若k≥q-n,则进程0向其合作方发送片段k+n或片段q-1。
当进程i和进程Partner(i,k)都不是进程0时,进程i向进程Partner(i,k)发送片段k+s(i,k),并且从进程Partner(i,k)接收片段k+t(i,k)。若k+s(i,k)≥q或k+t(i,k)≥q,则作为替代,发送或接收片段q-1。s(i,k)和t(i,k)由下面的定义给出:
定义3:
对于i=(in-1in-2...ir...i0),s(i,k)满足ik%n=i(k+1)%n=...i(k+s(i,k)-1)%n=0以及i(k+s(i,k))%n=1。t(i,k)满足 i k % n ‾ = i ( k + 1 ) % n = . . . i ( k + t ( i , k ) - 1 ) % n = 0 以及i(k+t(i,k))%n=1。
将该算法的一个例子示出在图5和表2中:
通信合作方:二的幂次方个进程上的片段交换调度,P=q=8。
表2
    1     2     3     4     5     6     7
创建0     0
创建1     0     1     0
创建2     0     1     0     2     0     1     0
流水线0     30     10     10     20     20     10     10
流水线1     310     410     310     210     210     210     210
流水线2     3210     4210     3210     5210     3210     4210     3210
流水线3     63210     43210     43210     53210     53210     43210     43210
流水线4     643210     743210     643210     543210     543210     543210     543210
流水线5     6543210     7543210     6543210     7543210     6543210     7543210     6543210
流水线6     76543210     76543210     76543210     76543210     76543210     76543210     76543210
通信内容:在每个步骤之后在二的幂次方个进程上接收的片段,P=q=8。
一种简单的方法被用于将该算法扩展到非二的幂次方个进程。该思想是将进程配对成二的幂次方对,允许自配对,并且接着在仿佛每对是一个进程的情况下沿用该算法。当在P’个进程上进行广播时,其中P<P’<2P,首先定义一个简单的方案,该方案将进程i≥P与进程1到P’-P配对:
定义4:对于任意进程i,
并且
Figure A20061013929300141
当且仅当i=Rep(i),进程i参与创建阶段。创建阶段与在二的幂次方个进程的情况下完全相同。在流水线阶段,在计算合作方时,用Rep(i)代替i。在流水线的每个步骤期间,进程i和进程Pair(i)协作完成与其合作方的片段交换。配对的一方发送输出片段给合作方,并且称为配对的输出。被标记为配对的输入的另一方从合作方接收输入片段。注意,若Partner(i,k)≠Pair(Partner(i,k)),则输入片段的源和输出片段的目标是不同的。输入还将其在先前步骤期间接收的片段传递给输出。
更特别地,在流水线的开始,当i≠Pair(i)时,若i=Rep(i),则将进程i标记为配对的输出,并且Pair(i)为输入。否则,其为反过来的另一方式。若i=Pair(i),则进程i既是输出又是输入。在流水线的步骤k期间,若k<q-s(Rep(i),k),则输出向合作方配对{Partner(Rep(i),k),Pair(Partner(Rep(i),k))}的输入发送片段k+s(Rep(i)。若k≥q-s(Rep(i),k),则作为替代,输出发送片段q-1。若k<q-t(rep(i),k),则该配对的输入从该合作方配对的输出接收片段k+t(Rep(i),k)。否则,其接收片段q-1。当k>0时,该输入还向该输出发送片段k-1。处理器在配对中的角色可以改变。若Rep(i)k=1,则{i,Pair(i)}的输入和输出在步骤k之后发生交换。为了确定{i,Pair(i)}中哪个是输出,定义了u(i,k)和v(i,k):
定义5:u(i,k)是在i的二进制表示中从比特0到比特k的1的数目。v(i,k)是在步骤k(k>0)之前进行角色转换的次数,并且v(i,k)由下式给出:
v(i,k)=k/n*u(i,n-1)+u(i,k%n)
根据最初的角色分配,若v(i,k)是奇数,则若i=Rep(i),那么进程i是配对的输入,并且Pair(i)是输出。否则,其是反过来的另一方式。最后,在流水线的q-1个步骤之后,若i≠Pair(i),则配对的输入向输出发送片段q-2,并且输出向输入发送片段q-1。图6和表3描述了该算法的一个例子。
通信合作方:非二的幂次方个进程上的片段交换调度,P=q=6,进程1与进程4配对,进程2与进程5配对。
表3
0  1  2  3  4  5
创建0  0
创建1  0  1  0
流水线0  0  1  10  2  0
流水线1  10  10  210  20  30
流水线2  410  210  3210  210  310
流水线3  4210  5210  43210  3210  3210
流水线4  43210  53210  543210  53210  43210
流水线5  543210  543210  543210  543210  543210
通信内容:在基于非二的幂次方个进程的调度法的情况下,在每个步骤接收的片段,P=q=6,1与4配对,2与5配对
尽管已经对本发明的优选实施例描述了本发明,但是本领域的普通技术人员应该理解,在现在和将来,都可以在所附权利要求的范围内进行各种改进和增强。这些权利要求应该解释为主张首次描述的本发明的正确保护范围。

Claims (20)

1.一种在并行计算环境中广播数据的方法,包括:
通过首先确定如何划分待广播的消息来执行创建处理阶段;
建立进程间的父-子关系,使得父进程负责将接收到的任意消息传递给所述子进程;
保证所有的非根进程获得所述消息的一个片段,并且将其一并传递给所述非根进程的指定子进程;
执行包括多个子步骤的流水线处理阶段,在此期间通过基于预先选定的数据建立合作方来进一步对已广播的消息片段进行流水线处理,使得可以在合作方之间交换先前接收到的消息片段。
2.根据权利要求1所述的方法,其中所述消息被分成q个片段。
3.根据权利要求2所述的方法,其中沿着二项式树传递所述消息的前n=logP个片段。P是参与所述消息广播的进程的数目。P是2的幂次方。
4.根据权利要求3所述的方法,其中所述二项式树通过下述公式建立所述父-子关系:
对于i=(in-1 in-2...ir...i0)并且r满足:在i≠0时,ir=1且in-1=in-2=...=ir+1=0;或者在i=0时,r=-1,
进程i的父进程和子进程为:
Child ( i , s ) = { ( i n - 1 . . . i ‾ r + s + 1 . . i r . . . i 0 ) | s ∈ { 0,1 , . . . , n - r - 2 } }
Parent ( i ) = ( i n - 1 . . . i r - . . . i 0 )
5.根据权利要求1所述的方法,其中基于下述公式建立所述合作方关系:对于i=(in-1 in-2...ir...i0),在所述流水线处理阶段的子步骤k期间,进程i的父进程为 Partner ( i , k ) = ( i n - 1 i n - 2 . . . i - k % n . . . i 0 ) .
6.根据权利要求1所述的方法,其中所述进程被配对成2的幂次方对进程。
7.根据权利要求6所述的方法,其中还允许自配对。
8.根据权利要求6所述的方法,其中
当在P’个进程上进行广播时,其中P<P’<2P,
通过将进程i,i≥P,与进程1到进程P’-P配对来定义合作方。
9.根据权利要求8所述的方法,其中通过下述公式确定所述配对:
对于i大于或等于P,Pair(i)=i-P+1;
对于i大于0但小于或等于P’-P,Pair(i)=P-i+1;以及
在其他情况下,Pair(i)=i。
10.根据权利要求8所述的方法,其中
对于i<P,确定Rep(i)等于i;以及
在其他情况下,确定Rep(i)等于Pair(i)。
11.根据权利要求10所述的方法,其中计算合作方时用Rep(i)替代i。
12.根据权利要求11所述的方法,其中在每个所述流水线阶段期间,进程i和进程Pair(i)协作完成与其合作方的片段交换。
13.根据权利要求12所述的方法,其中所述配对中的一方发送输出片段给其合作方并且被称为所述配对的输出;而所述另一方是所述配对的输入并且从其合作方接收输入片段。
14.根据权利要求13所述的方法,其中如果i=Pair(i),则i既是所述输出也是所述输入。
15.根据权利要求13所述的方法,其中
若k<q-s(Rep(i),k),则输出向其合作方配对{Partner(Rep(i),k),Pair(Partner(Rep(i),k))}的所述输入发送片段k+s(Rep(i),k);
若k≥q-s(Rep(i),k),则作为替代,所述输出发送片段q-1。
16.根据权利要求15所述的方法,其中
若k<q-t(rep(i),k),则所述配对的输入从所述合作方配对的所述输出接收片段k+t(Rep(i),k);
否则,所述配对的所述输入接收片段q-1。
17.根据权利要求16所述的方法,其中当k>0时,所述输入还向所述输出发送片段k-1。
18.根据权利要求17所述的方法,其中所述配对中的进程的角色是可改变的。
19.根据权利要求18所述的方法,其中若Rep(i)k=1,则发生所述角色改变,{i,Pair(i)}的所述输入输出的所述角色在步骤k之后发生交换。
20.一种用于在并行计算环境中广播数据的系统,所述系统包括适合于执行权利要求1-19中任意一项所述的方法的每个步骤的装置。
CN200610139293.7A 2005-12-21 2006-09-22 用于大容量消息广播的方法和系统 Pending CN1988463A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/314,418 2005-12-21
US11/314,418 US20070140244A1 (en) 2005-12-21 2005-12-21 Optimal algorithm for large message broadcast

Publications (1)

Publication Number Publication Date
CN1988463A true CN1988463A (zh) 2007-06-27

Family

ID=38173376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610139293.7A Pending CN1988463A (zh) 2005-12-21 2006-09-22 用于大容量消息广播的方法和系统

Country Status (2)

Country Link
US (1) US20070140244A1 (zh)
CN (1) CN1988463A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013138982A1 (zh) * 2012-03-19 2013-09-26 华为技术有限公司 一种并行处理方法和装置
CN103701621A (zh) * 2013-12-10 2014-04-02 中国科学院深圳先进技术研究院 一种消息传递接口广播方法及装置
CN115102864A (zh) * 2022-06-21 2022-09-23 中国人民解放军国防科技大学 一种用于Dragonfly拓扑的Allgather方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274987B2 (en) * 2010-03-22 2012-09-25 International Business Machines Corporation Contention free pipelined broadcasting within a constant bisection bandwidth network topology
US10909651B2 (en) * 2018-08-08 2021-02-02 International Business Machines Corporation Graphic processor unit topology-aware all-reduce operation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4742511A (en) * 1985-06-13 1988-05-03 Texas Instruments Incorporated Method and apparatus for routing packets in a multinode computer interconnect network
DE69029239T2 (de) * 1989-09-18 1997-03-27 Fujitsu Ltd Übertragungsteuerungssystem zwischen Parallelrechnern

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013138982A1 (zh) * 2012-03-19 2013-09-26 华为技术有限公司 一种并行处理方法和装置
CN103701621A (zh) * 2013-12-10 2014-04-02 中国科学院深圳先进技术研究院 一种消息传递接口广播方法及装置
CN103701621B (zh) * 2013-12-10 2017-11-24 中国科学院深圳先进技术研究院 一种消息传递接口广播方法及装置
CN115102864A (zh) * 2022-06-21 2022-09-23 中国人民解放军国防科技大学 一种用于Dragonfly拓扑的Allgather方法及装置
CN115102864B (zh) * 2022-06-21 2023-08-29 中国人民解放军国防科技大学 一种用于Dragonfly拓扑的Allgather方法及装置

Also Published As

Publication number Publication date
US20070140244A1 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
Koti et al. {SWIFT}: Super-fast and robust {Privacy-Preserving} machine learning
Tong et al. Adaptive influence maximization in dynamic social networks
Chlebus et al. Deterministic radio broadcasting
CN1322452C (zh) 环形和树形网络中的算术函数
CN109040279B (zh) 区块链网络组网方法、装置、设备及可读存储介质
CN101165650A (zh) 计算图的计算机辅助并行化
CN111144545B (zh) 用于实现卷积运算的处理元件、装置和方法
CN1988463A (zh) 用于大容量消息广播的方法和系统
Bermond et al. Fast gossiping by short messages
CN113347164A (zh) 基于区块链的分布式共识系统及方法、设备、存储介质
CN113489583B (zh) 一种多方隐私求交中的数据处理方法、装置及电子设备
US20230318857A1 (en) Method and apparatus for producing verifiable randomness within a decentralized computing network
CN111869190B (zh) 用于随机差分中继和网络编码的系统和方法
Konrad et al. The complexity of symmetry breaking in massive graphs
Ferretti Publish-subscribe systems via gossip: a study based on complex networks
Malewicz et al. Distributed cooperation during the absence of communication
Wang et al. Consensus algorithm based on verifiable randomness
Gasieniec et al. Deterministic communication in radio networks with large labels
Rakesh et al. Linear-code multicast on parallel architectures
Schelter Large scale graph processing with apache giraph
Chen et al. Wavelength assignment for realizing parallel FFT on regular optical networks
Harutyunyan et al. Messy broadcasting—Decentralized broadcast schemes with limited knowledge
CN113992439B (zh) 分布式多方安全计算系统、方法和节点
CN115269234B (zh) 一种任务消息传输方法、装置及相关设备
Bandealinaeini et al. Broadcast distributed voting algorithm in population protocols

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070627