CN101300551B - 对称的多处理集群环境中的进程间的通信 - Google Patents
对称的多处理集群环境中的进程间的通信 Download PDFInfo
- Publication number
- CN101300551B CN101300551B CN2006800411835A CN200680041183A CN101300551B CN 101300551 B CN101300551 B CN 101300551B CN 2006800411835 A CN2006800411835 A CN 2006800411835A CN 200680041183 A CN200680041183 A CN 200680041183A CN 101300551 B CN101300551 B CN 101300551B
- Authority
- CN
- China
- Prior art keywords
- node
- multiprocessing
- smp
- message
- symmetrical
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
提供一种设置,用来在对称的多处理(SMP)集群环境中的各进程间通信,其中该SMP集群的至少某些SMP节点包括多个进程。该设置包括在一个SMP节点以节点内方式使用该SMP节点的共享存储器来在各进程间传送集合通信的消息;响应于该节点内传送,同时地以节点间方式从n个SMP节点向m个其它的SMP节点传送集合通信的多个消息,其中n或m至少之一大于1。该同时传送步骤由n个SMP节点或m个其它SMP节点的至少之一的多个进程实施。更具体地,该设置包括从下述之一以节点间方式同时传送多个消息:从一个SMP节点到多个其它SMP节点、多个SMP节点到其它一个SMP节点或者从多个SMP节点到多个其它的SMP节点。
Description
技术领域
本发明总地涉及消息处理,更具体地,涉及在对称的多处理(SMP)集群环境中在各进程间传递集合通信的消息。
背景技术
对称的多处理器(SMP)是指计算系统中硬件的一个方面,更具体地,涉及处理器平面的物理布局和设计。这样的多处理器单元的一个特征是全局存储器的共享以及对该SMP系统的输入/输出(I/O)的同等的访问。SMP集群(cluster)是指这样一个环境,其中多个SMP系统/节点耦合到一起用于并行计算。SMP集群变得越来越受欢迎,目前广泛地应用在科学和工程并行计算领域中。这些集群环境典型地包括数百个SMP节点,这些节点由低延迟、高带宽交换网络,(如纽约Armonk的IBM公司提供的高性能交换机(HPS))连接。每个SMP节点具有例如2到64个CPU并且总是具有多于一个交换机适配器来桥接交换机与单个的适配器功能之间的差距。例如,可以在具有8个IBM Power4的CPU的IBM的eServer pSeries655上安装两个交换机适配器。
作为进一步的背景技术,消息传递接口(MPI)标准定义了下面的方案:并行作业中的各进程在通信域(或者“通信集”)内交换消息,该通信域保证该域内消息的完整性。一个域内发布的消息不与另一域内发布的消息互相干扰。一旦一个并行作业开始,需要时,各进程的子集可以协作来形成分开的通信域。
MPI标准定义了一组集合通信(collective communication)操作。某些MPI集合通信是有根(rooted)的,意思是消息的源或者宿(sink)之一仅为一个MPI进程。这些集合通信是用于一对多或多对一通信模式的。使用最多的是MPI_Bcast和MPI_Reduce。无根(non-rooted)的集合通信,诸如MPI_Barrier、MPI_Allreduce和MPI_Alltotal是用于多对多通信模式的。
在SMP集群上,集合通信(例如发生在MPI通信集的上下文内)通常遵守分层消息分布模型来利用每个SMP节点上的快速共享存储器通信通道。但是,随着交换技术的快速发展,单个的MPI进程经常不能充分利用可以得到的交换网络容量。剥离技术已经被用来获取比一个适配器可提供的更高带宽,但是不能有助于满足对延迟的要求。
于是,需要一种用于SMP集群环境的集合通信的新的通信方法,其中交换机/适配器容量被充分利用,共享的存储器有助于集合通信操作的SMP间通信部分。
发明内容
通过提供一种在对称的多处理(SMP)集群环境中的进程间的通信方法来克服已有技术的缺点并提供附加的优点,其中SMP集群的至少一些SMP节点包括多个进程。该方法包括:(i)在SMP节点处以节点内方式利用该SMP节点的共享存储器在各进程之间传送集合通信的消息;(ii)响应于传送(i),同时地从n个SMP节点向m个其它SMP节点以节点间方式传送集合通信的多个消息,其中n或m至少之一大于1,并且该同时传送由该n个SMP节点或m个其它SMP节点至少之一的多个进程执行。
在改进的方面,同时传送(ii)包括以节点间方式同时从以下之一传送多个消息:一个SMP节点到多个其它SMP节点,多个SMP节点到一个其它SMP节点,或者多个SMP节点到多个其它的SMP节点。至少一个SMP节点或至少一个其它SMP节点的多个通信通道用来方便多个进程执行同时传送。此外,传送(i)和同时传送(ii)中涉及的SMP节点和进程可以在产生使用的通信集时定义。
在另外的方面,提供了一种在对称的多处理(SMP)集群环境中的进程间通信的系统,其中SMP集群的至少一些SMP节点包括多个进程。该系统包括用来在SMP节点处以节点内方式利用SMP节点的共享存储器在各进程之间传送集合通信的消息的装置;响应于该节点内传送,同时地从n个SMP节点向m个其它SMP节点以节点间方式传送集合通信的多个消息的装置,其中n或m至少之一大于1,并且该同时传送过程由该n个SMP节点或m个其它SMP节点至少之一的多个进程执行。
在另外的方面,提供了由至少一个计算机可读的至少一个程序存储设备,该存储设备有形地包含可由该至少一个计算机执行的指令的至少一个程序来执行对称的多处理(SMP)集群环境中的各进程间的通信的方法。该SMP集群的至少一些SMP节点包括多个进程。该方法包括:在SMP节点处以节点内方式利用该SMP节点的共享存储器在各进程之间传送集合通信的消息:响应于该节点内传送,同时地从n个SMP节点向m个其它SMP节点以节点间方式传送集合通信的多个消息,其中n或m至少之一大于1,并且该同时传送由该n个SMP节点或m个其它SMP节点至少之一的多个进程执行。
此外,通过本发明的技术还可以实现其它的特征和优点。本发明的其它实施例和方面在这里将被详细说明并考虑作为权利要求的一部分。
附图说明
作为本发明的主题被特别地指出并明确地限定在本说明书的结束部分的权利要求中。本发明的前述的以及其它的目的、特征和优点将从下面的结合附图的详细说明中变得显而易见。
图1描述了结合和使用了本发明的一个或多个方面的对称的多处理(SMP)集群环境的一个实施例;
图2描述了在SMP环境或非SMP环境之一中的使用传统的二元树来在各进程之间分配消息的MPI_Bcast通信方法;
图3描述了在SMP集群环境中使用二元树来分配MPI_Bcast消息的另一通信方法;
图4描述了又一通信方法,在SMP节点之间使用消息的二元树分配,使用SMP内部的集合通信级共享存储器来分配MPI_Bcast消息;
图5描述了根据本发明的一个方面的同时通信方法的一个实施例,用来在SMP节点内部传送MPI_Bcast消息,后继以消息在SMP节点之间的同时传送;
图6描述了检测结果的示图,显示出使用根据本发明的特定方面的图3、4、5中的不同消息通信方法的MPI_Bcast执行时间相对于消息大小的关系;
图7是根据本发明的一个方面的用来传送同时MPI_Bcast消息的通信方法的一个实施例的流程图;
图8是根据本发明的一个方面的用来在通信集产生时确定通信算法的选择的一个实施例的流程图;及
图9是根据本发明的一个方面的用来使用在通信集产生时选择的通信算法在集合通信时间确定一种通信方法的实施例的流程图。
具体实施方式
总地来说这里提供了一种新的通信方法,用来在对称的多处理(SMP)集群环境中的各进程之间传送集合通信的消息。该SMP集群的至少一些SMP节点包括多个进程。该技术包括初始地在SMP节点以节点内方式在各进程间传送集合通信的消息。该节点内消息传送是利用SMP节点的共享存储器来完成的。例如,在广播操作期间,SMP节点的根进程可以存储一个消息到共享存储器,后者于是可被该SMP节点的多个其它进程访问。响应于该节点内传送,该通信方法然后提供从n个SMP节点到m个其它SMP节点的节点间的集合通信的多个消息的传送,其中至少n或m之一大于1。该同时传送由n个SMP节点的多个进程或m个其它SMP节点的多个进程执行。虽然下面是结合广播操作来说明,但是本领域的技术人员会注意到这里的通信方法很容易用于其它的有根或无根的集合通信。
图1示出了结合和利用了本发明的一个或多个方面的处理环境的实施例。在此特定例子中,处理环境100包括由连接部分104耦合到一起的多个计算或处理节点102,例如IBM公司提供的pSeries服务器,连接部分104可以是包交换网络,诸如也由IBM公司提供的SP交换机或高性能交换机(HPS)。还要注意,图1仅为示例。在每个处理节点内,提供了多个处理器,运行多个用户进程106。这些处理器经低延迟、高带宽连接部分相互耦合并由例如IBM公司提供的AIX或LINUX的操作系统管理,来提供对称的多处理(SMP)功能。在一个例子中,该多处理功能通过使用多个处理线程来激活,每个处理线程在一个处理器上执行。此外,在一个实施例中,一个或多个处理器其自身可能提供多个线程。即,在本例中,一个或多个处理器可能能够执行两个线程。在其它例子中,一个或多个处理器能执行任何数量的线程。
在环境100中,消息包或消息利用共享存储器107在节点内(即在SMP节点内)传送。SMP节点的一个或多个进程106可以存储一个消息到共享存储器,后者然后可以由该SMP节点的一个或多个其它的进程访问。利用耦合到包交换网络104的通信适配器112,消息被在节点间(即在SMP节点之间)传送。SMP节点与其相应的通信适配器之间的通信包括用来发送和接收包的功能。在一个实施例中,该接口包括一个消息传递接口(MPI)110,这里也称为MPI库。
对适配器的访问由每个SMP节点内的核/扩展设备驱动器108来协调。扩展108包括一组功能,这些功能具有操作系统(例如IBM公司提供的AIX操作系统)本身的权力。需要时,核/扩展授权用户进程106使用一个或多个适配器112,并具有中断该用户进程的能力。用户进程106经MPI库110与适配器112通信。MPI库在例如IBM公司的出版物中作了更详细的说明,标题为“用于AIX 5L的IBM并行环境:MPI子例程参考”,版本4,第2次发行,第1次修正(2005年8月),该内容的全部结合在此作为参考。
这里使用的“并行作业”是在各处理器集合上执行的一组进程或任务。各进程合作并交换数据以便联合地解决一个问题。一个“任务”或“进程”是一个执行程序(指令序列)的实例(instance),包括一个或多个控制流中的地址空间。一个“地址空间”是一个进程可以参考或访问的一组存储器位置。“MPI通信集(communicator)”是包括一群通信进程的逻辑实体。在一个例子中,通信集可以用称为上下文ID的一个标识符来实现。“通信域”是包括通信集的进程在其中交换消息的上下文。通信域具有稳定性和孤立性的属性,即在该域内发送的消息不会被递送到该域之外(即在一个不同的通信集中)的进程。“通信域”和“通信集”这里是互用的。“集合通信”是每个通信集成员必须参与其中的一个操作。
虽然这里参考MPI集合通信操作、如MPI_Bcast操作予以说明,这里提出的概念可以容易地应用于对称的多处理(SMP)集群环境中的各进程之间的任何集合通信的消息传送,根据定义该环境中包括在每个SMP节点的共享存储器。这里提出的是用于SMP节点上的集合通信的新的共享存储器消息通信方法。该新方法允许多个同时发生的SMP间通信。利用此同时通信方法,交换机/适配器功能被更加充分利用,并且共享存储器的使用也方便了集合通信操作的SMP间通信部分。
在交换网络上,MPI集合通信操作通常映射为一系列点对点发送/接收通信。此点对点消息经过遵循一定的顺序和拓扑结构的交换链路被传送。当消息不是非常大时,MPI_Bcast实现总是使用一种类型的树算法来最优地实施。MPI_Bcast的根是该树的根进程。二元的、二项式的和其它的alpha树是最常用的。消息到达每个任务所需的时间大约为:
T=H*(L+O) (1)
这里L是把消息从一个节点通过该交换链路传送到另一节点的时间。O是MPI进程准备该消息并提供到该交换机以便传送的时间,H是树的高度。通常H=Log2N,这里N是树的节点数目(参与到MPI_Bcast操作中的MPI进程的数目)。该对数的底数反映了L和O之间的关系,这里O接近于L,底数为2时可以获得最优性能。如果O小得多,那么底数可以比2大,树的高度就会减小。在此情况下,一旦当前的消息发送出去该进程就会处理下一消息。当O很小时,消息会被以很快的序列发出使得该序列化过程无害。在另一网络例子中,O更加接近于L,所以父节点的多个进程被用来去掉该序列化过程而仍然采用大于2的对数底数。
图2显示了总地表示为200的二元树MPI_Bcast操作的例子。箭头代表消息传送。在该MPI_Bcast中有16个MPI进程(标为0-15),进程0是根。树的高度为4。
在单处理器计算机的集群上,上述的通信算法会工作得很好。但是,在SMP集群上,此算法若不做进一步的改进的话,通常不能最优地工作。其中的原因是在SMP集群中有2个不同的具有不同性能特征的通信通道,即共享存储器和适配器交换机。共享存储器快于交换机。
使用上述算法的SMP集群上的MPI_Bcast的时间为:
T=H1*(L1+O)+H2*(L2+O) (2)
这里,H1=Log2N,N是集群中的SMP节点数目,(2.1)
L1=交换机延迟,
H2=Log2M,这里M是每个SMP节点上的MPI进程的数目,
(2.2)
L2=共享存储器的延迟。
图3描述了运行在具有4个SMP节点301的SMP集群环境上的MPI_Bcast操作300的一个例子,每个SMP节点上有4个进程或任务,即一共有16个进程(再次标记为0-15)。使用上述算法,N=4,M=4,H1=2,H2=2。
为SMP集群环境已经开发出增强的通信算法。这些通信算法遵循层级模型,其中在SMP内使用共享存储器,每个SMP的一个MPI进程代表自身和该SMP上的所有其它MPI进程参与SMP之间的通信。这使得集合通信的SMP内部分和SMP间部分具有不同的优化。在此方法中,共享存储器用在集合操作级而不是点对点级。例如,在MPI_Bcast中,对于每个SMP节点选择一个进程作为该SMP节点上的进程的代表。根进程是称为根SMP节点的其SMP节点上的代表。在图4的SMP集群环境通信例子中,最左的SMP节点401是根SMP节点。代表进程首先经SMP间通信(即进程0与8之间的消息通信、进程8与12之间的消息通信和进程0与4之间的消息通信)在它们自己之间执行MPI_Bcast。一旦完成了SMP间的通信,每个SMP节点处收到的消息被从代表节点的缓冲器复制到共享存储器缓冲器,相同SMP节点上的其它进程于是同时地从共享存储器缓冲器复制数据。共享存储器缓冲器对于节点上的所有进程都是可访问的,因此对数的底数可以是公式(2.2)中的M,SMP内的子树变成平的。这将所花的时间减少为:
T=H1*(L1+O)+(L2+O) (3)
图4显示了在图3中相同的SMP集群环境中使用此通信算法400执行MPI_Bcast。不同之处在于,经共享存储器传送消息的过程由多个进程同时执行。SMP之间的通信部分保持相同。
当要广播的消息很大时,可以将其分割成较小的若干个部分,使用相同的方法逐个地广播。也存在其它的通信算法。例如,MPI_Bcast的根可以将消息分割成小的部分并向每个非根进程发送一个单独的部分。然后,所有的进程执行MPI_Allgather来完成该消息。但是,当在SMP集群上应用这些通信算法时采用一个通常的方法,即对于每个SMP节点一个进程参与到SMP间通信中。已有技术中的各种共享存储器优化方法仅关注集合操作的SMP内部分。对于较大的SMP集群,通信的SMP间部分决定了总的性能,来自上述共享存储器优化方法的加速效益是有限的。
因此,这里提出一种新的SMP集群上的集合通信的方法,可以显著改善性能。此方法称为同时(concurrent)通信方法,它得益于SMP节点内的共享存储器通信的同时性和SMP间交换机通信的同时性。此通信方法最大地改善了小消息集合通信,如果每个SMP节点有足够的适配器和网络容量增减,那么这种益处也可以扩展到大消息。
当前的交换技术提供比单个进程可以完全使用的带宽容量更大的带宽,并且可以允许节点上的多个任务来同时使用适配器和交换机而不会对于每个进程显著损害其性能。相比于适配器和交换机的能力,仅使得一个进程驱动SMP间通信限制了集合通信的总体性能。同时通信方法通过不是集中于一个单独的进程并放弃充分的适配器/交换机容量而改善了SMP间通信的性能。在共享存储器优化的帮助之下这是有可能的。该同时通信方法还包括SMP内和SMP间阶段。在SMP内阶段,在集合通信级上执行共享存储器优化。在SMP间通信中,对于每个SMP,多于一个MPI进程(如果需要则每个进程)访问交换机网络来参与传送消息。因此,公式(2.1)中的对数的底数加大,可以大到M。树变得更平,总体性能改善,特别是对于较大的SMP节点计数。
再次,利用MPI_Bcast作为例子,同时通信算法中涉及的步骤包括:
(1)非根SMP节点上的代表负责从其它SMP节点接收消息。这是因为在MPI_Bcast中将只有一个消息发送到每个SMP。这绝不限制多少个进程参与到SMP间通信中。事实上,在MPI_Bcast中,对于每个SMP,多个进程同时发送消息到其它SMP节点,在MPI_Reduce中,对于每个SMP,多个进程同时接收消息。在某些无根的集合通信、诸如MPI_Barrier和MPI_Allgather中,对于每个SMP,多个进程既参与发送又参与接收。
(2)基于在MPI通信集产生期间收集的并在每个进程中高速缓存的进程布局知识,SMP节点可以被组织成高度为LogmN的树,这里N是集群中的SMP节点数目,m是被选择参与SMP间通信的每个SMP的MPI进程的数目。M-元树为LogmN树的例子之一,其中每个非叶子节点具有m个子节点。每个进程基于它所属的SMP的位置计算其父SMP和子SMP。
(3)在根SMP上经集合通信级共享存储器进行SMP内Bcast。此步骤所需时间为L2+0。
(4)根SMP上的M个进程在一个循环中开始SMP间广播。在每次迭代中,消息被发送到m个子SMP节点。发送消息到m个子SMP节点由根SMP的m个进程同时进行。在第j次迭代中,根SMP的第i个进程发送消息到第(m*j+1)个子SMP节点上的代表。这里0<i<=m,0<=j<LogmN。每个迭代所需时间为L1’+O。L1’可以大于L1,这是由于有多个进程同时访问交换机/适配器。但是L1’应比L1*m小很多,这是由于现代的交换机适配器允许多个同时访问而不使它们串行化。
(5)在非根SMP节点上,代表等待消息且其它进程等待SMP内Bcast。一旦代表接收到消息,它就加入到该SMP内Bcast并经集合通信级共享存储器传递该消息到其它进程。为了使共享存储器节点内Bcast与SMP间通信交叠,代表进程可以首先直接地将消息接收到共享存储器缓存器。一旦接收过程完成,此SMP上的所有m个进程可以利用共享存储器缓存器作为发送缓存器开始将消息提供到子SMP节点,用于SMP间通信。在消息处于到子SMP节点的路径上之后,这些进程可以从共享存储器缓存器复制消息到它们自己的与用户指定的接收缓存器。
(6)在SMP内Bcast之后,如果非根SMP不是树的叶子节点,那么该SMP上的m个进程进入类似于步骤(4)的循环,并发送消息到子SMP节点上的代表进程。
由于在每个迭代中,消息到达的SMP节点的数目变成m倍,任何进程所进行的迭代的数目最大为LogmN。
图5显示了运行在具有多个节点501的SMP集群500上,并使用上述同时通信算法的MPI_Bcast。在此例子中,进程0,4,8,12是选出的代表。M=3。SMP间通信同时进行,所以用于节点间SMP传送的时间仅为L1+O。但是在图4中,对于SMP间通信需要的时间为2*(L1+O)。由于该同时通信方法不受一个进程发送消息的能力的限制,可以获得更好的同时性。这会导致更好的适配器/交换机的使用率。
下面列出了用于概括的算法的伪码。此伪码假定进程0是根并且各进程在SMP节点上均匀分布:
rank:此进程的阶,
srank:此进程处于其上的SMP的阶,
size:进程总数,
ssize:SMP节点总数,
psize:对于每个SMP的进程数,
prank:此进程在SMP内的阶,
base:参与SMP间通信的每SMP进程数。
MPI_Bcast
if this task is non-root representative
for Cur=1 to ssize,cur multiply by(base+1)each time
if srank is less than Cur·(base+1))
source process rank is((srank=cur)/base)·psize+
((srank-cur)mod base)
receive message from source process
break
intra-SMP Bcast through collective shared memory
if prank is less than base
for Cur=Cur·(base+1)to ssize,Cur multiply by(base+1)
each time
destination process rank is(Cur+srank·base+
prank)·psize
if the destination process rank is less than size
send message to destination.
如上所述,利用此算法消息到达每个进程所需时间为:
T=H1’*((L1’+O)+(L2+O))+(L2+O) (4)
这里,H1’是较平的树的高度,并且H1’=LogmN。最右的项是步骤(3)的成本(cost)。比较等式(4)和等式(3),对于树的每级来说在SMP内通信上花费了额外的时间,但是在SMP间通信上花费了较少的时间,这是由于树的高度减小了。只要m的选择值满足下列条件:
H1*(L1+O)=H1’*(L1’+O)>H1’*(L2+O) (5)
整体性能就会得到改善。通常,共享存储器延迟远小于交换机延迟L1,上述条件不难满足。当m等于1时,该算法减小到已有技术的算法。另一方面,所选择的m不一定小于每个SMP的进程数,并且简单的修正可以支持该公式。
图7是一个实施例的流程图,用来在对称的多处理集群环境中在集合通信的进程之间同时通信。集合通信(在一个例子中)为MPI_Bcast。该集合通信中的每个进程都执行此图的通信方法。此过程通过确定该进程在整个集合通信(即进程组)和用户进程正在其中运行的SMP节点中的阶(705)来开始(700)。此外,确定该进程所处的SMP节点的阶。然后该方法确定该进程是否为SMP节点上的第一进程而不是根进程(710)。假定该进程是SMP节点上的第一进程而不是根进程,那么变量“Cur”被设置为1(715)。Cur记录接收消息的SMP节点的数目。接下来,变量Cur被乘以每个SMP节点的参与到SMP间通信的进程的数目加1的和(720)。该方法确定变量Cur此时是否大于进程处于其上的SMP节点的阶(725)。如果“否”,那么变量Cur再被乘以每个节点的参与到SMP间通信的进程的数目加1的和。
一旦变量Cur大于进程的SMP节点的阶,那么消息被发送到下一级中的SMP节点。计算基于此SMP节点的阶和变量Cur的源进程的阶(730)。然后从源进程接收每个传送的消息(735)。
如果该进程不是SMP节点上的第一进程,或者是根进程,或者该进程是接收进程,那么执行SMP内共享存储器广播(740)。该通信方法确定进程在SMP内的阶是否小于每个SMP的参与SMP间通信的进程的数目(745)。如果是,那么广播通信完成(760)。否则该方法将变量Cur乘以每个节点的参与SMP间通信的进程的数目加1的和(750),并查询变量Cur是否大于进程数(755)。如果是,该通信方法完成(760)。否则基于此进程的阶和变量Cur来计算目的进程的阶(780),并且消息被发送到目的进程(785)。之后,该方法确定变量Cur是否大于进程数(755),一旦是则该处理完成。
图8描绘了一个用来在通信集产生时设置通信算法的方法。同样,通信集是一个抽象的概念,代表一组进程,这些进程能够在它们之间通信。每个进程被赋予一个用来标识该通信集的句柄,还被赋予一个在该通信集内分配的阶。通信集的生成是在一个集合通信操作中完成的,在该操作中将作为新通信集成员的每个进程都必须参与。一旦生产了一个通信集,该通信集中的成员的数目以及分配到每个进程的阶都不能改变。所有的通信都在某个通信集的上下文中指定,比如当MPI_COMM_WORLD的进程0执行MPI_Send到MPI_COMM_WORLD的第1阶(rank1),MPI_COMM_WORLD的进程1从MPI_COMM_WORLD的第0阶(rank0)执行MPI_Recv。
在MPI中,每个进程必须调用MPI_Init,在调用MPI_Init返回后,每个调用进程已经被提供了称为MPI_COMM_WORLD的通信集并且已经被分配了一个MPI_COMM_WORLD中的阶。一旦一个通信集(即MPI_COMM_WORLD)可用,附加的通信集可以通过操作产生,该操作利用先前存在的通信集来执行需要的通信。在启动具有N个进程的MPI作业时,作业开始架构必须生成和为每个进程提供所需的信息以便具有可用的MPI_COMM_WORLD。
因为新通信集的生成是在一组进程中集合的(这些进程能够利用已经生成的通信集来交换信息),此生成过程可以给每个进程关于在新的通信集中将有多少个进程、哪些进程位于所述每个SMP上的信息,并向每个进程分配一个该进程位于其上的SMP内的阶。关于每个SMP具有一个进程还是几个进程的信息以及每个SMP是否具有相同数目的进程的信息可以被推导出来。可以决定一个特定的算法是否适合于新的通信集的大小和布局,并且新的通信集的每个成员可以记录该决定。通信集生成的最简单的例子是当所有的进程调用MPI_COMM_WORLD上的MPI_Comm_dup,并且每个进程得到一个新的通信集的句柄,该新的通信集映射MPI_COMM_WORLD但是不同于它。从生成开始,在通信集上进行调用(例如MPI_Bcast)的该通信集的每个进程可以使用产生该通信集时选择并在每个进程同样记录的通信算法。
于是参考图8,通过收集例如集合通信中的进程数目和作业拓扑等的因数(805),通信算法选择过程开始(800)。查询共享存储器是否可用(810)。如果“否”,那么变量Alg被设置为“常规”,意思是要使用常规的通信方法,如图3所示的方法。假定共享存储器可以使用,查询同时SMP间通信是否有益(825)。如果“否”,那么变量Alg被设置成“共享存储器”(SHMEM)通信方法(如图4所示的)(830)。假定同时SMP间通信是有益的,那么变量Alg被设置成“同时”(835),意思是将使用图5所示的通信方法。变量Alg设置之后,算法选择完成(820)。
图9描绘了一个MPI_Bcast操作的实施例。该广播操作通过参照变量Alg(905)来确定该变量是否已经被设置成“常规”、“SHMEM”或者“同时”来开始(900)。如果是“常规”,那么利用例如图3所示的常规的非共享存储器广播来完成该广播操作(925)。否则,如果变量Alg被设置成“SHMEM”,那么利用引导节点上的非共享存储器广播和SMP节点内的共享存储器广播(915),如图4所示。再有,如果变量Alg被设置成“同时”,那么利用同时SMP间通信来进行广播操作(920),如图5所示。
本领域的技术人员从以上的讨论中将注意到,这里说明的同时SMP间通信方法可以应用于除了SMP集群上的MPI_Bcast之外的集合通信操作。MPI_Scatter类似于MPI_Bcast,不同之处在于每个非根进程得到一个不同的消息段。
MPI_Reduce可以通过将MPI_Bcast的同时SMP间通信算法中消息传送的方向反过来的方式来实施。如在MPI_Bcast中,也有一个进程被选作SMP节点的代表。同一子SMP节点上的各进程首先经共享存储器执行SMP内减少(reduce)操作,这时代表进程是SMP内减少操作的根。然后多个SMP节点的代表经交换网络发送它们的中间减少结果到父SMP节点的多个进程。在多个进程的每个中,接收的消息和本地消息上的减少操作的结果被用在共享存储器SMP内减少操作中,而不是本地消息。如果消息是被连在一起而不是减少,MPI_Reduce变成MPI_Gather。
MPI_Allreduce的实施可以首先执行MPI_Reduce,进程0作为根,然后将减少结果从进程0经MPI_Bcast广播到其它所有进程。在其它无根的集合通信、如MPI_Allgather中,通过交换消息而不是在一个方向传送消息(如在MPI_Bcast或MPI_Reduce中)该同时SMP间通信方法可以应用。在MPI_Allgather中,每个进程具有一个消息要广播到其它进程。这些进程首先经共享存储器执行SMP内聚集(allgather)。参与SMP间通信的每个进程然后同时地与来自分开的SMP的一个进程交换消息。从其它SMP接收的消息在操作的结尾处经共享存储器allgather与同一SMP上的其它进程交换,也可能在SMP间通信的各个阶段之间交换。MPI_Alltotal不同于MPI_Allgather之处仅在于不同的消息被从一个进程发送到所有的其它进程。MPI_Barrier可以作为MPI_Allgather实施,这时所有的消息都为空,即消息不包含数据。
已经为MPI_Barrier、MPI_Bcast和MPI_Reduce开发了该同时通信算法的原型。Intel MPI Benchmark2.3(参见例如http://www.intel.com/cd/software/products/asmona/eng/cluster/mpi/219847.htm)已经在8个16路SMP节点的集群(IBM pSeriesNighthawk II)上利用该原型运行,64进程(每个SMP 8个进程)MPI_Bcast的性能数示于图6。图3中的方法是简单的二元树算法。图4中的方法是二元树算法加上SMP内的集合通信级共享存储器优化。图5中的方法是利用了本发明的各方面的同时通信。数据显示了图5的方法有显著的性能改善。
上述提供的详细说明是以在计算机或计算机网络上执行的程序过程来讨论的。这些过程描述和表示被本领域的技术人员用来向本领域的其它人员最有效地传达他们工作的实质。这些过程描述或表示可以硬件或软件或二者的结合来实施。
这里一个过程通常被理解为导致一个需要的结果的一系列步骤。这些步骤是需要对物理量的物理控制的步骤。通常地,但不是必须的,这些物理量的形式为电的或磁的信号,这些信号能够被存储、传送、组合、比较和以其它方式控制。主要为了通常的使用,将这些信号称为比特、值、元素、符号、字符、词汇、数目、目标、属性等等比较方便。但是应当注意,这些和类似的名词要与适当物理量相关,而且仅仅是应用于这些物理量的方便的标记。
此外,执行的控制经常以诸如增加或比较的术语被提及,这些术语通常与操作员执行的脑力操作有关。在大多情况下,在这里说明的任何操作中(形成了本发明的一部分),操作员的这种能力不是必需的;这些操作是机器操作。用来执行本发明的操作的有用的机器包括通用数字计算机或类似设备。
该方法的每个步骤都可以在任何通用计算机诸如大型计算机、个人计算机等上,并且根据一个或多个,或者一个或多个的一部分,从任何编程语言(诸如C++、Java、Fortran或类似语言)产生的编程模块或对象执行。此外,每个步骤,或实施每个步骤的一个文件或对象等可以由专用硬件或为该目的设计的电路模块来实施。
本发明优选地在高级过程的或面向对象的编程语言中实施以便与计算机通信。但是,如果需要的话,本发明可以在汇编或机器语言中实施。在任何情况下,语言可以为翻译的或编译的语言。
本发明可以实施为包括记录介质的一个机制或计算机程序产品。这样的机制或计算机程序产品可以包括但不限于CD-ROM、盘、带、硬驱、计算机RAM或ROM和/或电子的、磁的、光的、生物的或其它类似的程序实施物。实际上,该机制或计算机程序产品可以包括任何的固体或流体传输介质,磁的或光的,或类似物,用来存储或传送机器可读的信号,该机器用于根据本发明的方法控制通用或专用目的的可编程计算机的操作和/或构造根据本发明的系统构造其部件。
本发明也可以在一个系统中实施。系统可以包括一个计算机(包括处理器和存储设备),及可选择地包括存储设备、输出设备(诸如视频显示器)和/或输入设备(诸如键盘或计算机鼠标)。此外,系统可以包括计算机的互联网络。计算机可以相等地是独立的形式(例如传统的桌面个人计算机)或集成到另一装置中(例如电子测试设备)。该系统可以特殊地构造用于所需的目的,来执行例如本发明的方法步骤或者它可以包括一个或多个通用目的的计算机,可以根据这里在计算机中的教导由计算机程序选择性被激活或重新构造。这里提供的过程不是固有地与特定计算机系统或其它装置相关。从这里给出的说明可以显见各种这样的系统所需要的结构。
再有,本发明的一个或多个方面的功能可以软件、固件、硬件或它们的结合来实现。
本发明的一个或多个方面可以包括在具有例如计算机可用介质的一个结构中(例如一个或多个计算机程序产品)。该介质中具有例如计算机可读的程序代码装置或逻辑(例如指令、代码、命令等等),来提供和方便本发明的功能。这样的结构可以作为计算机系统的一部分或单独销售。
此外,可以提供至少一个程序存储设备,该设备由机器可读,该设备包含该机器可执行的至少一个命令程序,来执行本发明的功能。
这里描绘的流程图只是例子。在不脱离本发明的精神的前提下可以对这些图和步骤(或操作)做出各种变化。例如,这些步骤可以不同的顺序来执行,或者可以增加步骤、减少步骤或者修改步骤。所有这些改变都考虑作为要求保护的本发明的一部分。
虽然这里已经详细描绘和说明了本发明的优选实施例,但是对于相关领域的熟练技术人员来说显而易见的是在不脱离本发明的精神的前提下可以做出各种的变化、附加、替换等等的改变,因此这些改变被考虑包括在后面定义的本发明的权利要求范围之内。
Claims (16)
1.一种在对称的多处理集群中的进程(106)之间通信的方法,该对称的多处理集群具有多个对称的多处理节点(102),其中该对称的多处理集群的至少一些对称的多处理节点包括多个进程,该方法包括:
(i)在对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器(107)在进程间传送集合通信的消息;及
(ii)响应于传送(i),以节点间方式同时地从n个对称的多处理节点向m个其它对称的多处理节点传送集合通信的多个消息,其中n或m中的至少一个大于1,并且该同时传送由所述n个对称的多处理节点和所述m个其它对称的多处理节点中的至少一个的多个进程实施。
2.根据权利要求1的方法,其中该同时传送(ii)包括从下述之一以节点间方式同时传送多个消息:一个对称的多处理节点到多个其它对称的多处理节点、多个对称的多处理节点到一个其它对称的多处理节点、或者多个对称的多处理节点到多个其它对称的多处理节点。
3.根据权利要求1的方法,其中传送(i)包括在该对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器从一个进程向多个进程传送集合通信的消息,并且其中该同时传送(ii)包括从该对称的多处理节点向多个其它对称的多处理节点传送该多个消息,其中所述多个进程中的每个进程传送所述多个消息中的一个消息到所述多个其它对称的多处理节点中的一个不同的对称的多处理节点。
4.根据权利要求1的方法,其中该传送(i)包括在该对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器从至少两个进程向该对称的多处理节点的引导进程传送消息,并且其中该同时传送(ii)包括以节点间方式同时从多个对称的多处理节点向m个其它对称的多处理节点传送集合通信的多个消息,该传送(i)在所述多个对称的多处理节点上重复,并且所述多个对称的多处理节点的多个引导进程同时以节点间方式传送该集合通信的该多个消息到所述m个其它对称的多处理节点的至少一个进程。
5.根据权利要求1的方法,还包括在使用的集合通信集产生时预定义传送(i)和同时传送(ii)中涉及的对称的多处理节点和进程。
6.根据权利要求1的方法,还包括针对不同的对称的多处理节点和进程自动地重复传送(i)和同时传送(ii)中的至少一个,直到完成该集合通信。
7.根据权利要求1的方法,其中该集合通信在一个消息传递接口(MPI)通信集内发生。
8.根据权利要求1的方法,其中所述n个对称的多处理节点或所述m个其它对称的多处理节点中的至少一个包括多个通信通道,用来便于所述多个进程执行所述同时传送。
9.一种在对称的多处理集群中的进程(106)之间通信的系统,该对称的多处理集群具有多个对称的多处理节点(102),其中该对称的多处理集群的至少一些对称的多处理节点包括多个进程,该系统包括:
(i)用于在对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器(107)在进程间传送集合通信的消息的装置;及
(ii)用于响应于传送(i),以节点间方式同时地从n个对称的多处理节点向m个其它对称的多处理节点传送集合通信的多个消息的装置,其中n或m中的至少一个大于1,并且该同时传送由所述n个对称的多处理节点和所述m个其它对称的多处理节点中的至少一个的多个进程实施。
10.根据权利要求9的系统,其中该同时传送(ii)包括从下述之一以节点间方式同时传送多个消息:一个对称的多处理节点到多个其它对称的多处理节点、多个对称的多处理节点到一个其它对称的多处理节点、或者多个对称的多处理节点到多个其它对称的多处理节点。
11.根据权利要求9的系统,其中传送(i)包括在该对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器从一个进程向多个进程传送集合通信的消息,并且其中该同时传送(ii)包括从该对称的多处理节点向多个其它对称的多处理节点传送该多个消息,其中所述多个进程中的每个进程传送所述多个消息中的一个消息到所述多个其它对称的多处理节点中的一个不同的对称的多处理节点。
12.根据权利要求9的系统,其中该传送(i)包括在该对称的多处理节点处以节点内方式利用该对称的多处理节点的共享存储器从至少两个进程向该对称的多处理节点的引导进程传送消息,并且其中该同时传送(ii)包括以节点间方式同时从多个对称的多处理节点向m个其它对称的多处理节点传送集合通信的多个消息,该传送(i)在所述多个对称的多处理节点上重复,并且所述多个对称的多处理节点的多个引导进程同时以节点间方式传送该集合通信的该多个消息到所述m个其它对称的多处理节点的至少一个进程。
13.根据权利要求9的系统,还包括用于在使用的集合通信集产生时预定义传送(i)和同时传送(ii)中涉及的对称的多处理节点和进程的装置。
14.根据权利要求9的系统,还包括用于针对不同的对称的多处理节点和进程自动地重复传送(i)和同时传送(ii)中的至少一个,直到完成该集合通信的装置。
15.根据权利要求9的系统,其中该集合通信在一个消息传递接口(MPI)通信集内发生。
16.根据权利要求9的系统,其中所述n个对称的多处理节点或所述m个其它对称的多处理节点中的至少一个包括多个通信通道,用来便于所述多个进程执行所述同时传送。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/282,011 | 2005-11-17 | ||
US11/282,011 US7958513B2 (en) | 2005-11-17 | 2005-11-17 | Method, system and program product for communicating among processes in a symmetric multi-processing cluster environment |
PCT/EP2006/067761 WO2007057281A1 (en) | 2005-11-17 | 2006-10-25 | Communicating among processes in a symmetric multi-processing cluster environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101300551A CN101300551A (zh) | 2008-11-05 |
CN101300551B true CN101300551B (zh) | 2012-08-29 |
Family
ID=37684837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800411835A Expired - Fee Related CN101300551B (zh) | 2005-11-17 | 2006-10-25 | 对称的多处理集群环境中的进程间的通信 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7958513B2 (zh) |
EP (1) | EP1955158A1 (zh) |
JP (1) | JP2009519504A (zh) |
CN (1) | CN101300551B (zh) |
WO (1) | WO2007057281A1 (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110078410A1 (en) * | 2005-08-01 | 2011-03-31 | International Business Machines Corporation | Efficient pipelining of rdma for communications |
US8924590B2 (en) * | 2006-02-14 | 2014-12-30 | Hewlett-Packard Development Company, L.P. | System and method for communicating in a networked system |
US8516444B2 (en) | 2006-02-23 | 2013-08-20 | International Business Machines Corporation | Debugging a high performance computing program |
US8554943B1 (en) * | 2006-03-31 | 2013-10-08 | Emc Corporation | Method and system for reducing packet latency in networks with both low latency and high bandwidths requirements |
US7646721B2 (en) * | 2006-04-13 | 2010-01-12 | International Business Machines Corporation | Locating hardware faults in a data communications network of a parallel computer |
US7697443B2 (en) * | 2006-04-13 | 2010-04-13 | International Business Machines Corporation | Locating hardware faults in a parallel computer |
US7796527B2 (en) * | 2006-04-13 | 2010-09-14 | International Business Machines Corporation | Computer hardware fault administration |
US20070242611A1 (en) * | 2006-04-13 | 2007-10-18 | Archer Charles J | Computer Hardware Fault Diagnosis |
US20080022079A1 (en) * | 2006-07-24 | 2008-01-24 | Archer Charles J | Executing an allgather operation with an alltoallv operation in a parallel computer |
US9330230B2 (en) * | 2007-04-19 | 2016-05-03 | International Business Machines Corporation | Validating a cabling topology in a distributed computing system |
US8140826B2 (en) * | 2007-05-29 | 2012-03-20 | International Business Machines Corporation | Executing a gather operation on a parallel computer |
US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
US7831866B2 (en) * | 2007-08-02 | 2010-11-09 | International Business Machines Corporation | Link failure detection in a parallel computer |
US7991857B2 (en) | 2008-03-24 | 2011-08-02 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8375197B2 (en) * | 2008-05-21 | 2013-02-12 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8161268B2 (en) * | 2008-05-21 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8281053B2 (en) * | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
US20100100703A1 (en) * | 2008-10-17 | 2010-04-22 | Computational Research Laboratories Ltd. | System For Parallel Computing |
US9235445B2 (en) | 2009-02-23 | 2016-01-12 | International Business Machines Corporation | Process mapping parallel computing |
US8161127B2 (en) * | 2009-02-23 | 2012-04-17 | International Business Machines Corporation | Process mapping in parallel computing |
JP5532849B2 (ja) * | 2009-11-20 | 2014-06-25 | 富士通株式会社 | コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法 |
US8365171B2 (en) * | 2010-03-22 | 2013-01-29 | International Business Machines Corporation | I/O agent assignment for jobs using an MPI library |
US8565089B2 (en) * | 2010-03-29 | 2013-10-22 | International Business Machines Corporation | Performing a scatterv operation on a hierarchical tree network optimized for collective operations |
US8332460B2 (en) | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8346883B2 (en) | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US8489859B2 (en) | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
JP5566832B2 (ja) * | 2010-09-28 | 2014-08-06 | 富士通テン株式会社 | 情報処理装置及び情報処理方法 |
US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
US8904118B2 (en) | 2011-01-07 | 2014-12-02 | International Business Machines Corporation | Mechanisms for efficient intra-die/intra-chip collective messaging |
US20120179896A1 (en) | 2011-01-10 | 2012-07-12 | International Business Machines Corporation | Method and apparatus for a hierarchical synchronization barrier in a multi-node system |
US9195550B2 (en) | 2011-02-03 | 2015-11-24 | International Business Machines Corporation | Method for guaranteeing program correctness using fine-grained hardware speculative execution |
US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US8667501B2 (en) | 2011-08-10 | 2014-03-04 | International Business Machines Corporation | Performing a local barrier operation |
US9063826B2 (en) | 2011-11-28 | 2015-06-23 | International Business Machines Corporation | Process mapping in parallel computing |
US8959010B1 (en) * | 2011-12-08 | 2015-02-17 | Cadence Design Systems, Inc. | Emulation system with improved reliability of interconnect and a method for programming such interconnect |
US8706847B2 (en) * | 2012-02-09 | 2014-04-22 | International Business Machines Corporation | Initiating a collective operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
CN103294560A (zh) * | 2012-03-01 | 2013-09-11 | 腾讯科技(深圳)有限公司 | 跨进程传递字符串的方法及装置 |
CN103455380A (zh) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | 多进程通信系统及其建立和通信方法 |
KR101994929B1 (ko) * | 2012-12-03 | 2019-07-01 | 삼성전자주식회사 | 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템 |
US11311582B2 (en) | 2015-11-19 | 2022-04-26 | Locus Biosciences, Inc. | Bacteriophage compositions and methods of use thereof |
US10963323B2 (en) * | 2018-10-25 | 2021-03-30 | Sangyung University Industry-Academy Cooperation Foundation | Method and apparatus for transformation of MPI programs for memory centric computers |
JP7193733B2 (ja) * | 2019-04-16 | 2022-12-21 | 富士通株式会社 | 通信制御プログラム、通信制御方法および情報処理装置 |
JP7193734B2 (ja) * | 2019-04-16 | 2022-12-21 | 富士通株式会社 | 通信制御プログラム、通信制御方法および情報処理装置 |
WO2021009901A1 (ja) * | 2019-07-18 | 2021-01-21 | 技術研究組合光電子融合基盤技術研究所 | 並列計算方法およびシステム |
CN110633145B (zh) * | 2019-08-27 | 2023-03-31 | 苏宁云计算有限公司 | 一种分布式系统内实时通讯方法、装置及分布式系统 |
CN114221736A (zh) * | 2020-09-04 | 2022-03-22 | 华为技术有限公司 | 数据处理的方法、装置、设备及介质 |
CN113285833B (zh) * | 2021-05-26 | 2023-03-31 | 北京百度网讯科技有限公司 | 用于获取信息的方法和装置 |
CN116170435A (zh) * | 2021-11-25 | 2023-05-26 | 华为技术有限公司 | 数据传输方法、计算设备及计算系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147785A1 (en) * | 2001-03-29 | 2002-10-10 | Narayan Venkatsubramanian | Efficient connection and memory management for message passing on a single SMP or a cluster of SMPs |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4818984A (en) * | 1986-11-26 | 1989-04-04 | American Telephone And Telegraph Company, At&T Bell Laboratories | Broadcasting messages in a distributed processing system |
US5428803A (en) * | 1992-07-10 | 1995-06-27 | Cray Research, Inc. | Method and apparatus for a unified parallel processing architecture |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US6338146B1 (en) * | 1997-09-30 | 2002-01-08 | Compaq Computer Corporation | Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors |
US5964838A (en) | 1997-09-30 | 1999-10-12 | Tandem Computers Incorporated | Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster |
US6094686A (en) * | 1997-10-24 | 2000-07-25 | Compaq Computer Corporation | Multi-processor system for transferring data without incurring deadlock using hierarchical virtual channels |
US6101420A (en) * | 1997-10-24 | 2000-08-08 | Compaq Computer Corporation | Method and apparatus for disambiguating change-to-dirty commands in a switch based multi-processing system with coarse directories |
US6154816A (en) * | 1997-10-24 | 2000-11-28 | Compaq Computer Corp. | Low occupancy protocol for managing concurrent transactions with dependencies |
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US6108737A (en) * | 1997-10-24 | 2000-08-22 | Compaq Computer Corporation | Method and apparatus for reducing latency of inter-reference ordering in a multiprocessor system |
US6122714A (en) * | 1997-10-24 | 2000-09-19 | Compaq Computer Corp. | Order supporting mechanisms for use in a switch-based multi-processor system |
US6249520B1 (en) * | 1997-10-24 | 2001-06-19 | Compaq Computer Corporation | High-performance non-blocking switch with multiple channel ordering constraints |
US6014690A (en) * | 1997-10-24 | 2000-01-11 | Digital Equipment Corporation | Employing multiple channels for deadlock avoidance in a cache coherency protocol |
US6108752A (en) * | 1997-10-24 | 2000-08-22 | Compaq Computer Corporation | Method and apparatus for delaying victim writes in a switch-based multi-processor system to maintain data coherency |
US6629152B2 (en) * | 1998-06-29 | 2003-09-30 | International Business Machines Corporation | Message passing using shared memory of a computer |
US6477535B1 (en) * | 1998-11-25 | 2002-11-05 | Computer Associates Think Inc. | Method and apparatus for concurrent DBMS table operations |
US6578131B1 (en) * | 1999-04-27 | 2003-06-10 | Microsoft Corporation | Scaleable hash table for shared-memory multiprocessor system |
US6601089B1 (en) | 1999-06-21 | 2003-07-29 | Sun Microsystems, Inc. | System and method for allocating buffers for message passing in a shared-memory computer system |
US6782537B1 (en) * | 1999-09-23 | 2004-08-24 | International Business Machines Corporation | Establishing a communicator across multiple processes in a multithreaded computing environment |
US20020009095A1 (en) * | 2000-05-31 | 2002-01-24 | Van Doren Stephen R. | Multicast decomposition mechanism in a hierarchically order distributed shared memory multiprocessor computer system |
US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6738871B2 (en) | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | Method for deadlock avoidance in a cluster environment |
US6738870B2 (en) | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
US6738872B2 (en) | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | Clustered computer system with deadlock avoidance |
US7634477B2 (en) * | 2002-09-18 | 2009-12-15 | Netezza Corporation | Asymmetric data streaming architecture having autonomous and asynchronous job processing unit |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a computer system |
US7149852B2 (en) * | 2004-01-20 | 2006-12-12 | Hewlett Packard Development Company, Lp. | System and method for blocking data responses |
US7539989B2 (en) * | 2004-10-12 | 2009-05-26 | International Business Machines Corporation | Facilitating intra-node data transfer in collective communications |
US7370156B1 (en) * | 2004-11-04 | 2008-05-06 | Panta Systems, Inc. | Unity parallel processing system and method |
-
2005
- 2005-11-17 US US11/282,011 patent/US7958513B2/en not_active Expired - Fee Related
-
2006
- 2006-10-25 EP EP06819140A patent/EP1955158A1/en not_active Withdrawn
- 2006-10-25 CN CN2006800411835A patent/CN101300551B/zh not_active Expired - Fee Related
- 2006-10-25 JP JP2008540557A patent/JP2009519504A/ja active Pending
- 2006-10-25 WO PCT/EP2006/067761 patent/WO2007057281A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147785A1 (en) * | 2001-03-29 | 2002-10-10 | Narayan Venkatsubramanian | Efficient connection and memory management for message passing on a single SMP or a cluster of SMPs |
Non-Patent Citations (2)
Title |
---|
Meng-Shiou Wu ET AL.Optimizing Collective Communications on SMP Clusters.PROCEEDINGS OF THE 2005 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING.2005,1-9. * |
Steve Sistare,Rolf vandeVaart,Eugene Loh.Optimization of MPI Collectives on Clusters of Large-ScaleSMP's.SUPERCOMPUTING,ACM/IEEE 1999 CONFERENCE.1999,1-14. * |
Also Published As
Publication number | Publication date |
---|---|
CN101300551A (zh) | 2008-11-05 |
US7958513B2 (en) | 2011-06-07 |
JP2009519504A (ja) | 2009-05-14 |
EP1955158A1 (en) | 2008-08-13 |
WO2007057281A1 (en) | 2007-05-24 |
US20070174558A1 (en) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101300551B (zh) | 对称的多处理集群环境中的进程间的通信 | |
US10951458B2 (en) | Computer cluster arrangement for processing a computation task and method for operation thereof | |
US7890733B2 (en) | Processor memory system | |
Gustavson | The scalable coherent interface and related standards projects | |
Siegel et al. | Using the multistage cube network topology in parallel supercomputers | |
CN101908036B (zh) | 一种高密度多处理器系统及其节点控制器 | |
CN101460923A (zh) | 用于在m核处理器上操作n核应用程序的虚拟机 | |
Bell | Scalable, parallel computers: alternatives, issues, and challenges | |
KR20100105414A (ko) | 정보 처리 시스템, 통신 제어 장치 및 방법 | |
CN111630487A (zh) | 用于神经网络处理的共享存储器的集中式-分布式混合组织 | |
JP2012252591A (ja) | プロセス割当システム、プロセス割当方法、およびプロセス割当プログラム | |
DeMara et al. | Tiered algorithm for distributed process quiescence and termination detection | |
Zhang et al. | An effective 2-dimension graph partitioning for work stealing assisted graph processing on multi-FPGAs | |
Hamacher et al. | Comparison of mesh and hierarchical networks for multiprocessors | |
Livny et al. | Distributed computation via active messages | |
RU2790094C1 (ru) | СПОСОБ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В ГЕТЕРОГЕННОЙ МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ НА КРИСТАЛЛЕ (СнК) | |
Shekhar et al. | Linda sub system on transputers | |
Cappello et al. | PTAH Introduction to a new parallel architecture for highly numeric processing | |
Abts et al. | The Case for Domain-Specific Networks | |
V’yukova et al. | Mapping Parallel Computations to Distributed Systems Based on RapidIO Technology | |
Shih et al. | Performance-Based Content Retrieval for Learning Object Repositories on Grid Environments | |
Mattson | Programming Distributed Memory Systems with MPI | |
Murta | Support for Transputer Based Program Development via Run-Time Link Reconfiguration | |
Reinefeld et al. | Portability versus E ciency? Parallel Applications on PVM and Parix | |
versus Efficiency et al. | Parallel Programming and Applications 35 P. Fritzson and L. Finmo (Eds.) IOS Press, 1995 |
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 | ||
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: 20120829 Termination date: 20181025 |