CN106576055A - 用于改进高性能计算中的集体操作的性能的系统、方法和装置 - Google Patents
用于改进高性能计算中的集体操作的性能的系统、方法和装置 Download PDFInfo
- Publication number
- CN106576055A CN106576055A CN201580045185.0A CN201580045185A CN106576055A CN 106576055 A CN106576055 A CN 106576055A CN 201580045185 A CN201580045185 A CN 201580045185A CN 106576055 A CN106576055 A CN 106576055A
- Authority
- CN
- China
- Prior art keywords
- switch
- node
- spanning tree
- state
- collective
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用于改进高性能计算(HPC)中的集体操作的性能的系统、方法和装置。联网的HPC环境中的计算节点形成集体分组以执行集体操作。生成树被形成为包括计算节点以及用于互连所述计算节点的交换机和链路,其中,所述生成树被配置以使得该树中的任何一对节点之间仅仅存在单个路径。这些计算节点实现用于执行集体操作的进程,包括在其他计算节点上执行的进程之间交换消息,其中,所述消息包含标识它们所属于的集体操作的标记。每个交换机被配置为实现针对它的生成树的部分的消息转发操作。所述生成树中的节点中的每个节点实现用于将集体操作进行同步的齿轮周期状态机,以及在节点之间所交换的状态消息。业务ID还用于检测乱序和丢失的消息。
Description
背景技术
近年来,高性能计算(HPC)在使用和兴趣方面已经看到了大幅度增长。在历史上,HPC通常与所谓的“超级计算机”相关联。超级计算机是在1960年代引入的,首先并且在数十年里主要由Seymour Cray在以Cray的名字或名字的组合命名的控制数据公司(CDC)、Cray研究、和子公司处制造。1970年代的超级计算机仅仅使用几个处理器,而在1990年代,开始出现具有数千个处理器的机器,并且近来已经实现了具有成千上万个“现成的”处理器的大容量并行超级计算机。
在HPC环境中,大量计算系统(例如,刀片式服务器或服务器模块)被配置为并行地工作以解决复杂的任务。每个服务器可以包括具有相关联的资源(例如,针对每个处理器的本地存储器)的一个或多个处理器,其中,每个处理器作为一个计算“节点”而运行。所述服务器通常在被称为聚类的集体分组内运行以执行集体操作。对于更加复杂的任务,服务器的聚类可以被配置在HPC聚类层级等中,其中每个聚类专用于执行整个复杂任务的一个子任务。
各种类型的网络拓扑和协议可以用于互连HPC环境中的节点,其中最通常用的互连采用无限带宽技术或以太网。在无限带宽技术的一般的HPC使用中,计算节点运行进程,所述进程使用应用程序接口(API)来与在其他节点上运行的其他进程交换数据和结果。这些API的示例包括消息传递接口(MPI)、对称层级存储器访问(SHMEM)、和统一并行C语言(UPC)。特别地,这些进程使用被称为“集体”的一类操作,其用于使能多个节点上的多个进程之间的通信和同步。
这些集体操作要求HPC聚类中的多个计算机之间的通信。随着参与操作的进程数量的增长,处理可能的错误和对进程进行同步所需要的额外的消息的数量也会增长。另外,集体操作没有感知到互联网络的物理拓扑。这两个因素造成了降低HPC聚类的性能的低效率,从而使得需要更长时间来完成计算。
附图说明
该发明的前述的方面和很多伴随的优点将会变得更容易了解,这是因为当结合附图时通过参考以下的详细描述,其变得更好理解,其中,除非另外指定,否则相同的附图标记指的是各个视图通篇中相同的部件:
图1是示出了用于实现在本文中所公开的各种实施例的方面的示例性系统的框图;
图2是可以用于在图1的系统中所示出的交换机中的一个或多个交换机的交换机的框图;
图3是包括经由交换机和链路互连的多个计算节点的HPC网络环境的子网络的框图。
图3a示出了从图3的子网络中的节点形成的第一生成树,其包括计算节点D、E、F、G、H、和I以及三个交换机;
图3b示出了从图3的子网络中的节点形成的第二生成树,其包括计算节点A、B、C、D、E、F、G、H、I、J、K、和L以及五个交换机;
图4是示出了根据一个实施例的用于建立集体操作的操作的流程图;
图5是示出了包括4个状态周期性轮;
图6a是示出了结合进入壁垒操作而实现的多个阶段上的图3a的生成树中的节点的状态的图;
图6b是示出了当执行释放操作时多个阶段上的图3a的生成树中的节点的状态的图;
图7是根据一个实施例的示出了在生成树中的各个节点处执行以促进集体操作的操作的流程图;
图8是根据一个实施例的示出了用于实现业务ID状态的操作的流程图;
图9a、9b、9c、9d、9e、9f、和9g示出了随着进入并完成壁垒操作、图3b的生成树中的节点的状态机状态和业务ID状态;
图10a、10b、和10c示出了结合处理乱序操作和丢失消息的子树的状态机状态和业务ID状态;以及
图11是示出了使用HPC聚类的现有的MPI实现和使用类似的HPC聚类的经卸载的壁垒实现之间的经建模的性能比较的图表。
具体实施方式
在本文中描述了用于改进高性能计算中的集体操作的性能的系统、方法、和装置的实施例。在以下的描述中,阐述了很多具体细节以提供对在本文中所公开和说明的实施例的彻底的理解。然而,本领域技术人员应当理解的是,可以没有这些具体细节中的一个或多个具体细节,或者利用其他方法、组件、材料等来实践本发明。在其他实例中,没有示出或详细地描述公知的结构、材料、或操作以避免使得本发明的方面难以理解。
为了清楚起见,本文中的附图中的个体的组件也可以由它们在附图中的标签而不是由特定的附图标记来指代。额外地,指代特定类型的组件(相对于特定的组件)的附图标记可以被示出为附图标记后面跟着“(typ)”意为“一般的”。应当理解的是,这些组件的配置将会是可以在附图中存在但为了简化和清楚而没有示出的类似的组件或者另外没有用分别的附图标记来标记的类似的组件的一般配置。相反,“(typ)”不被解释为意味着该组件、元件等通常用于其所公开的功能、实现、目的等。
图1是示出了用于实现在本文中所公开的各种实施例的方面的示例性系统100的框图。在一个实施例中,系统100包括经由多个交换机104、106、108、110、112、和114以及网络链路116彼此通信地链接的多个计算系统102a-102g(其在本文中也可以被称为计算系统102、计算节点、或简单地被称为节点)。系统100包括在处理器122上执行管理应用120的子网络管理器(SM)118,其在下文中更加详细地描述。可以存在可以置于前述组件之间的其他系统/组件,但是它们与在本文中所公开的实施例没有密切关系。值得注意的是,在本文中所公开的实施例不限于任何特定数量的计算机或交换机,相反,所示出的数量仅仅是出于说明性的目的。
针对计算系统102a示出了计算系统102的一个实施例的细节。每个计算系统102包括中央处理单元124,其可以包括经由一个或多个互连(为了简单起见被描绘为互连128)连接至计算系统中的其他组件的一个或多个处理器126a-126n。可替代地,处理器126a-126n可以表示多核处理器中的核心,或者处理器126a-126n可以包括多插槽计算机系统中的分离的CPU。通常而言,CPU 124可以包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、应用专用集成电路(ASIC)、可编程逻辑器件(PLD)等或这样的硬件器件的组合。
互连128可以包括以下中的一个或多个:系统总线、外围组件互连(PCI)总线或PCI快速(PCIe)互连、超传输或工业标准架构(ISA)总线、SCSI总线、通用串行总线(USB)、电气与电子工程师学会(IEEE)标准1394总线(有时被称为“火线”)、或任何其他类型的互连系统。额外地,互连128可以包括互连结构,例如 QuickPath InterconnectTM结构、片上可缩放结构(IOSF)、以及其他基于结构的接口,其包括开放核心协议(OCP)和ARM的AMBA(高级微控制器总线架构)接口。
计算系统102还可以包括存储设备130,其可以包括硬盘(磁盘、光盘、或固态硬盘(SSD))、CD-ROM或DVD驱动、非易失性存储器设备(闪速存储器或记忆棒)、或任何其他类型的存储设备。存储设备130可以存储处理器可执行指令和数据,例如操作系统模块和组件、应用模块和数据文件、以及其他文件。在一个实施例中,使用安装程序等将这些文件中的一些文件存储在存储设备130处。
计算系统102还包括存储器132,其通常代表一个或多个类型的存储器,例如随机存取存储器(RAM)和/或只读存储器(ROM)。通常而言,当从存储设备130执行所存储的计算机可执行指令时,CPU 124可以将所述指令加载到存储器132中并且从存储器取回所述指令以供执行。可选地,所述指令中的全部或部分可以从网络下载并且被加载到存储器132中。
计算系统102还可以包括其他设备和接口133,其可以包括显示设备接口、键盘接口、指向设备接口、和其他接口。在一些实施例中,计算机系统102是刀片式服务器或服务器模块等,其不与键盘、指向设备、或类似的用户接口直接地接合,并且可以不包括显示设备接口。
计算系统102还包括经由链路138耦合至网络适配器136的IO(输入-输出)接口134。例如,IO接口134可以包括外围总线接口,其包括经由PCI、PCI-X、或PCIe互连而连接至网络适配器136的PCI、PCI-X、或PCIe接口中的一个或多个接口。可选地,可以使用任何其他类型的IO接口和相关联的互连。通常而言,网络适配器136可以被配置为使用各种网络和存储协议来处理网络和/或存储业务流。在下文中描述了一些常见协议。
无限带宽技术(“IB”)是通常用于计算系统和输入/输出(I/O)设备的工业标准。IB标准用于创建结构,该结构可以包含很多(例如数千)经互连的主机/交换机/服务器,它们全都并行地工作以解决复杂的问题。一般的IB网络包括彼此链接或链接至一个或多个计算系统的多个交换机。常常在高性能计算环境环境中使用IB网络。
另一种常见网络协议是以太网。各种以太网标准是由IEEE在有关802.3的规范下定义的。原始的以太网总线或星形拓扑是针对用于以10Mbp(每秒兆比特)传输数据的局域网(LAN)开发的。近年来,已经由各种IEEE802.3工作组开发了针对10Gbps(每秒千兆比特,也被称为10千兆比特以太网或10G以太网)、40Gbps(40G以太网)、和100Gbps(100G以太网)的以太网标准。以10Gbps及以上的速度运行的以太网链路有时被称为高速以太网链路,并且这样的链路通常部署在HPC架构中。
用于访问存储系统的一种常见的存储网络协议是光纤信道。光纤信道是提供针对存储的串行传输协议和诸如HIPPI、SCSI、IP、ATM等之类的网络协议的一组美国国家标准协会(ANSI)标准。光纤信道支持三种不同拓扑:点对点、仲裁环路、和结构(fabric)。点对点拓扑将两个设备直接附接。仲裁环路拓扑将设备附接在环路中。结构拓扑将主系统直接附接(经由HBA)至结构,所述结构接着连接至多个设备。光纤信道结构拓扑允许几个媒体类型被互连。光纤信道结构设备包括管理结构连接的节点端口或“N_Port”。该N_port建立至具有结构端口或F_port的结构元件(例如,交换机)的连接。
近来引入的被称为以太网上的光纤信道(FCoE)的标准已经被开发以处理存储区域网(SAN)中的以太网和光纤信道业务流两者。该功能允许光纤信道在物理层利用10千兆比特以太网,同时保留光纤信道协议。
值的注意的是,本发明实施例不限于任何特定的协议。相反,可以使用各种协议来实现在本文中的实施例中所公开的原理和技术,所述协议包括现有的标准化协议和未来的标准化协议、以及现有和未来的专有协议两者。
如在上文中所描述的,交换机104、106、108、110、112、和114使能包括计算系统102a-102g和子网络管理器118在内的系统100的各个组件之间的通信。作为示例,交换机104的端口104a耦合至网络适配器136,而端口104b耦合至交换机106的端口106a。交换机106的另一个端口106b耦合至计算机系统102b的网络适配器136b。另外,交换机104、106、108、110、112、和114上的各种其他端口用于经由网络链路116将系统100的各种组件通信地互连。
在上文中所描述并且在图1中所示出的各种互连链路是具有多个交换机的网络系统的示例。在本文中所公开的实施例不限于任何特定数量的交换机、端口、适配器、或其他网络设备。
针对交换机104、106、108、110、112、和114所示出的各种交换机端口可以包括用于促进使用一个或多个网络协议来接收和转发业务流的逻辑和电路。在一个实施例中,所述各种端口被配置为处理符合IB标准的信息。在其他实施例中,所述端口被配置为促进使用以太网协议对分组化业务流的传输。在其他实施例中,可以支持专有的非标准化协议。另外,在一些实施例中,交换机104、106、108、110、112、和114中的一个或多个交换机可以被配置为支持网络网关功能,以使能将使用给定的协议所接收到的业务流使用不同的协议转发出交换机端口。
在一个实施例中,子网络管理器118可以是类似于在上文中所描述的计算系统102a-102g的计算系统。例如,子网络管理器118包括能够访问存储器138和一个或多个存储设备(未示出)的一个或多个处理器122。处理器122执行管理应用120以使得子网络管理器118能够配置系统100的各个组件,例如交换机104、106、108、110、112、和114。
在一个实施例中,管理应用120包括或者是由IB标准所提供的子网络管理器(SM)。该IB标准还指定实现SMA协议的子网管理代理(SMA),其可以由管理应用120使用以与计算系统102a-102g和在系统100中所使用的各种交换机进行通信。为了方便和简单起见,可以在本文中使用SM和SMA以一般地应用于被配置为支持可以针对除了IB之外的其他网络协议而实现的类似的子网络管理器和子网络管理代理功能的组件。
计算系统102a-102g可以同时执行一个或多个应用140。由应用140所表示的应用的示例包括存储应用(例如,网络文件系统(NFS)、由Sun Microsystem公司所提供的Lustre文件系统;或者由IBM公司所提供的通用并行文件系统(“GPFS”))、网络应用(例如,安全外壳(SSH)应用、TELNET(使用互联网和局域网的网络协议)应用和/或网络服务器)、计算应用(例如,MPI(消息传递接口)应用,例如LS-Dyna,由Livermore软件技术公司(LSTC)所开发的一种高级通用多重物理模拟软件包;或者Fluent(由Fluent公司所开发的一种计算流体动力学软件))等。
MPI常常在HPC环境中由计算系统用来交换数据和结果。计算进程使用被称为“集体”的一类操作以使能由多个计算系统所执行的各种进程之间的通信。随着HPC环境中进程数量的增加,要处理错误状况的消息的数量也会增加。
如在上文中所讨论的,传统的集体操作会随着进程数量的持续增加而遇到挑战。例如,传统的系统中的集体操作不能感知到网络拓扑并且消息是像任何其他标准化网络消息一样分发的。在本文中所描述的实施例下,用于促进集体操作的消息是以更智能和更高效的方式来实现的。这是部分地由集体状态机(CSM)逻辑142和应用程序接口(API)144来促进的,它们被提供以用于在集体分组内协调和路由操作,如在下文中将更加详细地描述的。
图2示出了可以用于图1的交换机104、106、108、110、112、和114中的一个或多个交换机的交换机200的框图。交换机200包括n个端口202a-202n,它们在本文中概括地被称为端口202。每个端口202包括输入端口‘I’和输出端口‘O’。端口202a-202n的每个连接至交叉(crossbar)204,该交叉204用于描绘用于使得数据能够在交换机202a-202n的输入端口和输出端口之间转发的交换机200内的互连电路。应当注意的是,除了该互连电路之外,在交换机200内实现各种缓冲器和其他逻辑(两者都未示出)以促进网络交换机操作的各种方面,如网络领域的技术人员将会认识到的那样。这些操作还通过处理器206、存储器208、和CSM逻辑210的使用来促进。通常而言,处理器206说明了各种类型的处理器,包括单核和多核通用或专用处理器以及嵌入式处理器。尽管存储器208被示出为单个块,但其可以是分布式的。另外,存储器208中的存储器地址范围包括由交换机200所使用的一个或多个存储器映射IO(MMIO)地址空间。
如在图2中进一步示出的,端口202a-202n中的每个端口经由相应的链路216a-216n连接至相应的节点214a-214n上的相应的端口212a-212n。这些节点中的每个节点代表系统100中的另一个组件,例如另一个交换机、计算机系统、或子网络管理器。
图3描绘了系统300,其包括经由五个交换机200a-200e和网络链路216互连的12个计算节点102a-102l(也被标记为节点A—节点L)和SM 302,所述网络链路216形成了通常被称为“结构”的网络网格。通常而言,业务流(例如,MPI消息)可以从任何一个计算节点经由一个或多个路由路径(路由)而被发送至任何其他计算节点。例如,节点A可以经由每个穿过三个交换机(例如,经由交换机200a、200c和200e)的三个不同的路径将业务流发送至节点J、K、或L中的任何一个节点。同时,在针对节点A、B、和C的节点对之间仅仅存在一个路由(全都经由交换机200a)。还应当注意的是,存在由交换机200a-200e和将这些交换机彼此连接的链路302所形成的多个环路。
图4示出了根据一个实施例的示出了用于建立集体分组的操作的流程图400。在由开始框402所描绘的过程的开始之后,该过程继续至框404,在框404中,MPI应用进程跨结构在节点上启动。在框406中,给定节点上的MPI进程识别出其是构成了该节点上的MPI应用的进程的集合或子集的一部分。在框408中,该MPI进程向其本地主进程登记其在该集合或子集中的成员资格。包括在该登记中的是作为该集合或子集的一部分的所有其他进程的列表。
接下来,在框410中,每个本地主进程通知SM(例如,SM 302)关于该计算节点(托管该主进程的)将加入集体分组,并且发送与在该计算节点上执行的MPI应用进程的集合或子集相对应的登记信息。如在图3a中所示出的,在第一示例中,将加入该集体分组的计算节点是节点D、E、F、G、H和I。响应于登记,SM 302将经标识的集体分组(CGID)返回至主进程,该主进程将该CGID分配至在该计算节点上执行的进程的集合或子集中的其他进程。
接下来,在框414中,SM 302确定生成树,所述生成树包括已经加入了该集体分组的计算节点、用于将这些计算节点互连的交换机节点(交换机)、以及该集体分组将使用的路径。在一些实例中,所述生成树被构建为新的树,这将涉及确定包括已经加入了该集体分组的计算节点的网络的至少一部分的网络拓扑。用于确定网络拓扑的技术是公知的,并且包括下一相邻节点的传播(每个节点和交换机与其相邻节点交换链路和端口配置信息,并且接着将其传播至其他相邻节点)、链路路径跟踪、以及中央化链路管理方法的使用,在该方法中,每个节点和交换机转发其端口配置信息,以使得中央管理实体能够确定该网络拓扑。在一个实施例中,每个交换机将其本地端口配置信息发送至SM 302。除了从头开始构建生成树,也可以在从还没有在现有的生成树中的新的计算节点接收到登记信息时扩展现有的生成树。
该生成树是从由生成树协议(STP)所使用的原理导出的。STP是确保针对任何桥式以太网局域网(LAN)的无环路拓扑的网络协议。在其原始的传统使用下,STP被实现为阻止桥环路,而同时确保所有LAN或网络分段保持经由该网络中的任何节点可访问。STP还允许网络设计包括多余(冗余)的链路以提供在活动链路失败时的自动备份路径,而没有桥环路的问题或者对这些备份链路的手动启用/禁用的需要。STP的标准实现是在IEEE标准802.1D-2004中定义的。
为了可视化STP的操作,该网络拓扑被描绘为图表,其中该网络拓扑的节点是使用在每个连接处具有对应的接口(即,端口)的网络链路而耦合至LAN分段的桥。在该公开的上下文中,该网络拓扑包括计算节点102a-102l、SM 302、以及包括交换机节点和链路116在内的交换机200a-200e,而不包括桥和LAN分段。
目标与标准化STP的目的类似——移除环路。同时,这移除任何冗余的路径,以使得参与到该集体分组中的每个计算节点和交换机节点可以仅仅通过单个指定的路径来访问另一个计算或交换机节点。在本文中的实施例下,实现标准STP的一般原则,但不需要实现具体的协议和消息的使用。相反,可以使用类似的技术。例如,可以用提供类似数据的消息来替代在针对以太网STP的IEEE标准802.1D-2004中所指定的桥协议数据单元(BPDU)帧。
在一个实施例中,在生成树中有两种类型的成员:局部根和交换机。计算节点充当局部根,并且这样的术语一般可以可交换地使用。这两种类型的成员共享相同的基础特征。首先,该生成树的所有成员都将有至少一个子成员。局部根的子成员是在计算节点上执行的实际的MPI进程,其不被认为是该生成树的一部分。交换机的子成员是其他交换机或局部根。第二,除了整个树的根之外,生成树的所有成员在该生成树中将具有父成员,其将包括核心交换机。如在下文中所描述的,每个成员还将具有用于实现业务ID的集体状态机和逻辑。
在图3a中示出了生成树操作的结果,其中,该生成树中的节点和链路是以粗体示出的,并且包括节点D、E、F、G、H、和I以及交换机200b、200c、和200d。如在上文中所讨论的,生成树被配置以使得每个节点可以仅仅通过单个通路访问任何其他节点,并且不存在潜在的环路。其他节点A、B、C、J、K、和L以及交换机200a和200e是以虚线框示出的。这些计算节点和交换机以及将它们连接起来的链路依然存在;然而,它们没有参与到集体分组或该集体分组的生成树中。
如在图6a和6b中所示,交换机200b和200d是分别被重新标记为“边缘1”和“边缘2”的边缘交换机,而交换机200c是重新标记为“核心”的核心交换机。通常而言,边缘交换机将连接至一个或多个计算节点,而核心交换机将不连接至任何计算节点。对于较大的网络而言,可以存在大量核心交换机,它们也可以被称为内部交换机。可以根据各种标准来选择生成树通路,所述标准例如最短可能通路、最少拥塞通路、最高带宽通路、或其组合。
在框416中,SM 302通知交换机关于它们是用于处理关于集体任务的消息的集体分组的成员,以及它们的端口中的哪些端口连接至该集体分组的其他成员。在一个实施例中,SM发送包括描述交换机的父节点和子节点的集体转发表的配置信息。这使得所述交换机能够识别针对集体分组的消息。作为示例,可以给予集体分组的成员以唯一的集体分组标识符(例如,在框412中所返回的CGID),其可以被嵌入到在分组成员之间所发送的消息中(例如,消息标头中)以将那些消息标识为属于集体分组。另外,转发所述消息的交换机使用集体分组标识符来将所述消息标识为集体分组的一部分。
集体分组的每个成员具有与其相关联的状态机,其在本文中被称为集体状态机或CSM。CSM定义在接收集体卸载分组时该成员的行为。在一个实施例中,可以以软件来实现针对计算节点的CSM,而可以以硬件来实现交换机的CSM。例如,可以使用公知的技术经由嵌入式逻辑等来以硬件实现状态机。可选地,可以通过在嵌入式处理器等上执行的软件或固件来实现CSM。
在一个实施例中,每个CSM被配置为实现以下功能:
·指示状态机是运行还是停止(暂停)的标记。
·指示状态机是否已经失败的标记。
·链接至集体分组生成树中的交换机的子成员的交换机端口的列表。
·指示每个交换机端口是当前的壁垒的入口还是出口的方法。
·哪个交换机端口链接至生成树中该交换机的父成员,或者该交换机是否是该生成树的根。
·用于检测丢包的一个2比特业务ID。
·当前的机器状态。
·当前的集体卸载操作(例如,壁垒)
·用于调节(throttle)Ack请求能够多频繁地被转发至生成树中的交换机的父成员的可配置延迟。
状态机的操作根据操作而变化,但是理论上它们全都可以被认为是具有以下四个状态的周期性齿轮机制:空闲、填充、填满、和退出以及一个错误标记:失败。
图5示出了根据一个实施例的用于追踪集体操作的进程的CSM 142的示例。CSM142是由参与集体分组内的计算系统以及用于该集体分组的成员之间的通信的网络交换机来执行的。CSM 142有多个状态/阶段,其按逆时针方向像齿轮一样转换。第一状态是空闲状态500。下一个状态是在集体分组成员进行有效的请求以开始集体操作时的填充状态502。CSM 142保持在该状态直到所有成员的子成员都已经请求了集体操作。术语“子成员”在该上下文中意指在层级结构中(例如,在下文中更加详细地描述的在图6a和6b中所示出的生成树中)在该成员之下的交换机或计算节点。此后,CSM 142移动至“填满”状态504。
如果成员是生成树的“根”成员并且完成了集体操作,则其移动至退出状态506。如果一个成员不是根成员,则其向其父成员发送请求,通知该父成员关于该成员已经准备好退出。术语“父成员”在该上下文中意指在层级结构中(例如,在下文中所描述的生成树中)比该成员更高的交换机。接着,该成员等待其父成员告诉它移动至退出状态。一旦处于退出状态,该成员就通知其子成员关于它们也应该移动至退出状态并且接着从退出状态306移动至空闲状态300。
图6a示出了其中涉及多个节点(或计算系统)以执行集体操作的生成树的示例。作为示例,集体操作可以是“壁垒”操作。术语壁垒操作意指集体分组内的每个成员(或计算节点)等待直到所有成员已经到达相同的状态为止的操作。换句话说,每个机器停止并等待,直到它被告知所有系统已经准备好前进为止。图6a和6b中的生成树与在图3a中所描绘(其中,为了清楚而移除了其他节点和链路)并且在上文中所讨论的相同。
在图6a中,随着节点进入壁垒操作,每个节点处的CSM 142从空闲状态500移动至填充状态502,并且接着移动至填满状态504。一旦节点的CSM 142到达填满状态504,其通知其“父成员”——其连接至的交换机。接着,交换机的CSM 142从空闲状态500转换至填充状态502。当连接至该交换机的所有参与的节点指示它们处于填满状态504时,该交换机也移动至填满状态304。此后,该交换机通知执行相同进程的其父成员。作为示例,以5个阶段示出了开始该壁垒操作的进程,其继续如下。
在阶段1中,节点E、F、和I处于填充状态502,而剩余的节点和交换机全都处于空闲状态500。在阶段2中,节点E和F到达填满状态504,使得交换机边缘1移动至填充状态502,而节点G、H、和I独立地到达填充状态502。在阶段3中,节点G到达填满状态504,使得交换机边缘2转换至填充状态502。节点D独立地转换至填充状态502。在前三个阶段期间核心交换机继续处于空闲状态502。
在阶段4中,节点D到达填满状态504,使得交换机边缘1到达填满状态504。这引起核心交换机移动至填充状态502,而节点I独立地到达填满状态504。在阶段5中,所有节点D、E、F、G、H、和I、交换机边缘1和边缘2、以及核心交换机全都处于填满状态504中。这意味着集体分组中的每个节点都已经进入了壁垒操作。
图6b示出了根据一个实施例的壁垒操作的后半部分,其被称为“释放”。释放也以五个阶段被示出。在高等级处,当核心交换机到达填满状态504时,其进行至退出状态506,并且接着向交换机边缘1和边缘2通知该转换。接着,交换机边缘1和边缘2将该通知转发给每个参与的节点,即节点D、E、F、G、H、和I中的每个节点。
在阶段1中,核心交换机处于退出状态506。在阶段2中,该核心交换机进入空闲状态500,而交换机边缘1和边缘2到达退出状态506。在阶段3中,所有交换机处于空闲状态500,而节点D、E、F、G、H、和I中的每个节点处于退出状态506。在阶段4中,仅仅节点D、F、和G处于退出状态506,而集体分组的剩余成员处于空闲状态500中。此后,在阶段5中,所有成员处于空闲状态500中。应当注意的是,CSM的一个特征是它不等待子成员验证它们已经接收到消息。
图7示出了由集体分组成员所执行以在执行了流程图400的建立操作之后执行一个或多个任务的操作的流程图700。该过程在框702处继续,在框702中,在计算节点上运行的个体的进程发起MPI集体操作。如在图6a中所示出并且在上文中所讨论的,交换机将集体通信引导至生成树中的其他计算节点(和其他交换机,当适用时),如在框704中所示。接着,在框706中,当交换机已经确认了所述操作已经完成时,它们通知参与的计算机节点关于该操作被完成。与前面一样,这是通过将消息从核心交换机通过边缘交换机传播至计算机节点来执行的。
在决策框708中,确定是否存在任何更多集体操作要做以完成任务。如果存在,则流程图逻辑循环回框702,并且框702、704、和706的操作被完成。
一旦已经完成了集体操作,则对决策框708的答案将会是否,并且逻辑将继续进行到框710,在框710中,进程通知每个计算节点处的主进程关于它们正在离开分组。接着,主进程通知SM关于它们正在离开分组,如在框712中所示。在框714中作为响应,SM接着通知交换机关于分组已经被销毁。
如果该结构是完美的、完美编码的并且系统可以确保从来没有信息会丢失,则集体状态机由其本身的使用是足够。然而,可能不是这种情况。生成树的成员可能以多种方式落后其他成员,包括丢包、冗长的计算、分组拥塞、和被拉的电缆。
从而,为了检测乱序或丢失消息,在一个实施例中,所有集体卸载状态机和所有集体卸载消息具有短的、2比特的业务ID或“TID”。这些TID以错误检测所必要的2比特模块化方式进行比较:0的TID“小于”1或2的TID但是大于具有3的值的TID。
在以下的表1中示出了示例性业务ID比较表。
B=0 | B=1 | B=2 | B=3 | |
A=0 | A==B | A<B | A<B | A>B |
A=1 | A>B | A==B | A<B | A<B |
A=2 | A>B | A>B | A==B | A<B |
A=3 | A<B | A>B | A>B | A==B |
表1
在该模型中,生成树的所有成员以业务ID为零开始。当生成树上的第一集体操作完成时,成员从该根开始增加该业务ID。在一个实施例中,TID的提升可以经由类似于用于集体状态机(例如,4TID状态齿轮)的周期性齿轮状态机来实现。
在图8的流程图800和图9a-9g中的图中描述了关于业务ID的改变是如何通过集体分组来传播的说明性示例。在图9a-9g中的图中所示出的集体分组成员包括系统300的所有计算节点和交换机,而对应的生成树300b是在图3b中示出的。所述计算节点和交换机现在将通过它们的附图标记来指代,并且包括计算机节点102a、102b、102c、102d、102e、102f、102g、102h、102i、102j、102k、和102l,它们是经由交换机边缘交换机200a、200b、200d、和200e、核心交换机200c、以及链路116来互连的。核心交换机200c还用作生成树的根。
过程在框802中开始,其中,当创建集体分组时将0的初始业务ID值分配至该集体分组的每个成员。这在图9a的阶段1中示出,其中,给运行CSM 142的所有组件都分配了业务ID(t_id)0。在框804中,开始集体操作,例如壁垒操作。所述操作从生成树的边缘开始并且随着子树被完成而沿着生成树向上。所述操作的开始是在图9b的阶段2中示出的,而图9c的阶段3示出了已经到达填满状态504的两个子树。
如在框806中所示,释放操作从树的根(即,核心交换机200c)开始。这在图9d的阶段4中示出,其中核心交换机200c被描述为处于退出状态506。一旦核心交换机200c完成了退出,其返回至空闲状态500并且其业务ID增加到1。这是在图9e、阶段5中示出的,其中核心交换机200c的业务ID增加到1。
成员的业务ID随着每个节点完成其退出操作而递增,如在框808中所描绘的。这从核心交换机200c继续到边缘交换机,并且接着继续至计算节点。如在图9f的阶段6中所示,边缘交换机200a、200b、200d、和200e中的每个边缘交换机已经完成了退出并且它们的业务ID已经增加到1。
该向外传播继续直到所有节点已经返回至空闲状态500并且它们的业务ID都已经增加到1为止,如图9g的阶段7中所示。此后,在块、框910中,验证节点的业务ID以确保它们具有相同的业务ID。图9g描述阶段7,在该阶段下所有节点的业务ID都是1,并且所有节点的状态都是空闲状态500。
在一个实施例中,通过简单地审查业务ID,能够确定在执行集体操作时节点是超前还是落后。如果由于节点超前或落后而发生任何错误,可以使用业务ID来检测错误,并且接着采取合适的动作。
由于该壁垒退出只从生成树的顶部向下流动,并且业务ID不会递增直到该生成树的根的CSM从退出转换至空闲为止,因此我们可以断定该生成树的成员将永远不会具有大于其父成员的业务ID的业务ID,并且当且仅当告诉子成员退出操作的消息丢失时,子成员的业务ID将小于其父成员的业务ID。这允许自动地恢复各种错误,即使该恢复要求具有不同成员的整个生成树的重新构建。例如,考虑在图10a-10c中所示出的生成树的片段。
在阶段8中,我们看到子成员中的一个子成员仍然致力于旧的业务。应当注意的是,由于生成树的所有成员必须参与所有集体操作,并且由于它们必须以同一顺序参与,因此直到落后的子成员完成业务#0并且前进至业务#1为止,业务#1才能完成。因此,落后的子成员永远不能比该生成树的剩余节点落后多于一个步骤。(并且,出于该原因,我们只需要从0到3的业务ID,以周期性的方式重复。除了编码错误之外,子成员不可能使用与其父成员相差多于一的值的业务ID。)
这个条件将会持续直到落后的子成员向其父成员发送针对状态的请求或其他卸载操作为止,如在阶段9中所描绘的。看到子成员具有旧的业务ID时,父成员丢弃该操作,但是接着将响应发送回子成员,以指示该旧的业务已经完成,如在阶段10中所描绘的。由于丢失的退出消息是子成员具有比父成员更旧的id的唯一方式,因此这将使得该子成员将其自己的状态机从填满前进至退出、递增它自己的业务ID、并且为了接下来的集体操作对其进行准备。
通过在本文中所公开的非限制性实施例而示出的原理和技术提供了对传统集体操作的大量改进。如在上文中所讨论的,现有的MPI实现执行集体操作而不考虑网络上的计算节点的物理布置。这可能会导致低效的通信模式,其中物理上相互远离的计算节点频繁地通信并且通过单个网络链路进行大量通信。这两种状况都将减慢集体操作。如在本文中所公开的,通过将计算节点和交换机组织成生成树并且使得HPC应用感知到该生成树的拓扑来降低这样的超量通信和业务流,因此确保集体通信将只会发生在网络上物理上相互靠近的计算机节点之间,并且确保生成树的成员将永远不需要共享通信链路。
图11是示出了使用HPC聚类的现有的MPI实现以及使用类似的HPC聚类的经卸载的壁垒实现之间的经建模的性能比较的图表。如图所示,随着现有的MPI方法下的进程的增加,平均消息延迟以轻微的指数速率增加。相比之下,即使在进程数量增加了几个数量级时,在经卸载的壁垒实现下增加进程的数量引起平均消息延迟的非常小的增加。因此,随着HPC集体操作在尺寸(例如,计算节点和进程的数量)上的增加,使用经卸载的壁垒方案的好处越大。
虽然在本文中描述并示出了对示例性壁垒集体操作的使用,但在本文中所公开的技术和原理可以以类似的方式针对其他类型的集体操作来实现。此外,同一个交换机可以是多个生成树的成员。这是部分地经由对在经由交换机传输并且在生成树成员之间交换的消息中的CGID的使用来促进的。
在下面的编号的条款中阐述了在本文中所描述的主题的进一步的方面:
1、一种在包括经由多个交换机和链路而互连的多个计算节点的高性能计算(HPC)环境中所实现的方法,所述方法包括:
从所述多个计算节点标识一组计算节点以参与集体分组从而执行集体操作;
配置包括多个节点的生成树,所述多个节点包括所述一组计算节点和由多个链路互连的一组交换机,所述一组交换机包括连接至计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径而与其他节点中的每个节点进行通信;
将所述生成树中的每个交换机配置为感知到涉及所述交换机的指定的路径,并且将一个或多个消息标识符配置为被包括在用于执行所述集体操作的集体操作消息中;以及
在每个交换机处,识别集体操作消息及它们的目的地,并且沿着连接至所述交换机的所述指定的路径的链路分段来转发所述集体操作消息。
2、根据条款1所述的方法,还包括采用所述生成树中的所述交换机来监视集体操作的进行并且确保所述集体操作保持同步。
3、根据条款1或2所述的方法,还包括:
在所述生成树中的每个节点处实现状态机;
在所述生成树中的所述节点之间交换状态机状态消息;以及
采用所述状态机状态消息和状态机来同步由所述集体分组所执行的集体操作。
4、根据条款3所述的方法,其中,每个节点处的所述状态机被实现为其中一次只前进一个状态的周期性齿轮,所述状态包括第一状态、一个或多个中间状态、以及最后状态,并且其中,所述状态从所述最后状态前进回到所述第一状态。
5、根据条款4所述的方法,其中,所述状态机状态包括空闲状态、填充状态、填满状态、和退出状态。
6、根据前述任何条款所述的方法,还包括:
在所述集体分组中的每个节点处实现业务标识(ID)机制;以及
采用业务ID来检测乱序或丢失的消息。
7、根据前述任何条款所述的方法,其中,所述集体操作包括壁垒操作。
8、根据前述任何条款所述的方法,还包括:
在所述集体分组中的每个计算节点处发起至少一个应用;
识别每个计算节点处的主进程;以及
通知子网络管理器(SM)关于所述计算节点将加入集体分组。
9、根据前述任何条款所述的方法,还包括:
经由参与所述集体分组的所述计算节点处的个体的进程来发起集体操作;
经由所述生成树中的所述交换机来在所述计算节点上运行的进程之间转发消息;
检测所述集体操作已经被完成;以及
通知参与的计算节点关于操作已经被完成。
10、一种系统,包括:
多个计算节点,每个计算节点包括处理器、至少一个网络端口、和存储器,其中,指令存储在所述存储器中以用于实现促进集体操作的一个或多个进程;
多个交换机,每个交换机包括多个网络端口,每个交换机经由相应的链路与至少一个其他交换机通信地链接;所述交换机的至少一部分与计算节点通信地链接,每个交换机包括用于实现转发表的逻辑;
子网络管理器(SM),其具有处理器、其中存储有被配置为在所述处理器上执行的子网络管理应用的存储器、以及与交换机通信地链接的网络端口;
其中,由所述SM对所述计算节点中的所述指令和所述子网管理应用的执行对以下操作进行执行,包括,
将信息从计算节点发送至所述SM以通知所述SM关于所述计算节点将加入集体分组;
配置包括多个节点的生成树,所述多个节点包括所述一组计算节点和由多个链路互连的一组交换机,所述一组交换机包括连接至计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径而与其他节点中的每个节点进行通信;
将所述生成树中的每个交换机配置为感知到涉及所述交换机的指定的路径,并且将一个或多个消息标识符配置为被包括在用于执行所述集体操作的集体操作消息中;以及
在每个交换机处,识别集体操作消息及它们的目的地,并且沿着连接至所述交换机的所述指定的路径的链路分段来转发所述集体操作消息。
11、根据条款10所述的系统,其中,所述交换机被配置为监视集体操作的进行并且确保所述集体操作保持同步。
12、根据条款10或11所述的系统,其中,所述生成树中的每个节点被配置为:
实现状态机;
与相邻的节点交换状态机状态消息;并且
其中,所述节点被配置为集体地采用所述状态机状态消息和状态机来同步由所述集体分组所执行的集体操作。
13、根据条款12所述的系统,其中,每个节点处的所述状态机被实现为其中一次只前进一个状态的周期性齿轮,所述状态包括第一状态、一个或多个中间状态、以及最后状态,并且其中,所述状态从所述最后状态前进回到所述第一状态。
14、根据条款13所述的系统,其中,所述状态机状态包括空闲状态、填充状态、填满状态、和退出状态。
15、根据条款10-14的任何一个所述的系统,其中,所述生成树中的每个节点被配置为实现业务标识(ID)机制,并且其中,所述节点集体地被配置为采用业务ID来检测乱序或丢失的消息。
16、根据条款10-15的任何一个所述的系统,其中,所述生成树中的每个计算节点配置为:
发起包括一个或多个进程的应用;
识别主进程;以及
通知所述(SM)关于所述计算节点将加入集体分组。
17、根据条款10-16的任何一个所述的系统,其中,所述生成树中的所述计算节点被配置为经由在所述计算节点上执行的个体的进程来发起集体操作,并且将消息发送至在其他计算节点上运行的进程,并且其中,所述交换机被配置为;
在所述计算节点上执行的进程之间转发消息;
检测所述集体操作已经被完成;以及
通知参与的计算节点关于所述集体操作已经完成。
18、一种被配置为被实现为网络环境中的子网络管理器的装置,所述网络环境包括经由多个交换机和链路互连的多个计算节点,所述装置包括:
处理器;
网络适配器,其操作性地耦合至具有至少一个端口的所述处理器;以及
其中存储了包括管理应用的指令的存储器,其中,所述指令被配置为:当所述装置与所述网络环境中的交换机通信地链接时,使得所述装置执行以下操作:
从计算节点接收指示它们将加入集体分组的通知;
确定将用于所述集体分组的生成树包括多个节点以及一组交换机,所述多个节点包括提供指示它们将加入所述集体分组的通知的所述计算节点,所述一组交换机包括连接至所述计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径来与其他节点中的每个节点进行通信;以及
向所述生成树中的所述交换机中的每个交换机提供配置信息以用于实现针对包括耦合至所述交换机的链路的所述生成树的一部分的消息转发操作。
19、根据条款18所述的装置,其中,所述指令的执行还使得所述装置能够执行以下操作:
从所述网络环境中的所述计算节点和所述交换机的至少一部分接收网络拓扑信息;以及
确定包括所述生成树中的所有节点在内的所述网络环境的至少一部分的网络拓扑。
20、根据条款18或19所述的装置,其中,所述生成树中除了作为所述生成树的所述根的节点之外的每个节点包括父节点和至少一个子节点,并且提供给每个交换机的所述配置信息包括描述所述交换机的父节点和子节点的集体转发表。
21、根据条款18-20的任何一个所述的装置,其中,所述指令的执行还使得所述装置能够执行以下操作:
从计算节点接收关于它们将离开集体分组的通知;以及
通知所述生成树中的交换机关于所述集体分组已经被销毁。
22、一种被配置为被实现为网络环境中的交换机的交换机装置,所述网络环境包括经由多个交换机和链路互连的多个计算节点,所述交换机装置包括:
多个端口;
处理器;以及
操作性地耦合至所述处理器的存储器;以及
被配置为实现状态机的嵌入式逻辑;
其中,所述交换机装置被配置为被实现为生成树中的交换机节点,所述生成树包括作为集体分组的成员并且运行进程以实现集体操作的多个计算节点,并且其中,所述交换机装置还被配置为,
接收包括描述所述生成树中所述交换机的父节点和子节点的集体转发表的配置信息;
根据所述集体转发表来转发源自发送计算节点并且去往目的地计算节点的消息;以及
与相邻的节点交换消息以确保所述集体操作的同步。
23、根据条款22所述的交换机装置,还包括用于实现齿轮周期状态机的嵌入式逻辑,并且其中,所述交换机装置还被配置为:
响应于可应用事件而更新其状态机状态;以及
与所述生成树中的相邻的节点交换状态机状态消息。
24、根据条款22或23所述的交换机装置,其中,所述交换机装置被配置为被实现为所述生成树的边缘交换机,其中,多个端口链接至相应的计算节点。
25、根据条款22-24的任何一个所述的交换机装置,其中,所述交换机装置被配置为被实现为包括所述生成树的根的核心交换机。
26、一种非瞬时性有形的机器可读介质,其具有包括管理应用的指令,所述管理应用被配置为在被配置为被实现为网络环境中的子网络管理器的装置上执行,所述网络环境包括经由多个交换机和链路而互连的多个计算节点,其中,所述指令的执行使得所述装置执行以下操作:
从计算节点接收指示它们将加入集体分组的通知;
确定将用于所述集体分组的生成树包括多个节点以及一组交换机,所述多个节点包括提供指示它们将加入所述集体分组的通知的所述计算节点,所述一组交换机包括连接至所述计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径来与其他节点中的每个节点进行通信;以及
向所述生成树中的所述交换机中的每个交换机提供配置信息以用于实现针对包括耦合至所述交换机的链路的所述生成树的一部分的消息转发操作。
27、根据条款26所述的非瞬时性有形的机器可读介质,其中,所述指令的执行还使得所述装置执行以下操作:
从所述网络环境中的所述计算节点和所述交换机的至少一部分接收网络拓扑信息;以及
确定包括所述生成树中的所有节点在内的所述网络环境的至少一部分的网络拓扑。
28、根据条款26或27所述的非瞬时性有形的机器可读介质,其中,所述生成树中除了作为所述生成树的所述根的节点之外的每个节点包括父节点和至少一个子节点,并且提供给每个交换机的所述配置信息包括描述所述交换机的父节点和子节点的集体转发表。
29、根据条款26-28中的任何一个所述的非瞬时性有形的机器可读介质,其中,所述指令的执行还使得所述装置执行以下操作:
从计算节点接收关于它们将离开集体分组的通知;以及
通知所述生成树中的交换机关于所述集体分组已经被销毁。
尽管已经关于特定的实现描述了一些实施例,但根据一些实施例,其他实现时可能的。额外地,在附图中所示出和/或在本文中所描述的元素或其他特征的布置和/或顺序不需要以所示出和所描述的特定的方式来布置。根据一些实施例,许多其他布置是可能的。
在附图中所示出的每个系统中,在一些情况下,元件每个都可以具有相同的附图标记或者不同的附图标记以暗示所表示的元件可以是不同和/或类似的。然而,元件可以足够灵活以具有不同的实现并且与在本文中所示出或所描述的系统中的一些或所有系统一起工作。在附图中所示出的各种元件可以是相同或不同的。哪个元件被称为第一元件以及哪个元件被称为第二元件是任意的。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及其衍生词。应当理解的是,这些术语不旨在作为彼此的同义词。相反,在特定的实施例中,可以使用“连接”来指示两个或更多个元件彼此间接物理或电气接触。“耦合”可以意指两个或更多元件直接物理或电气接触。然而,术语“耦合”还可以意指两个或更多元件相互不直接接触,但是仍然协作或相互交互。
实施例是发明的实现或示例。说明书中提到“实施例”、“一个实施例”、“一些实施例”、或者“其它实施例”意指结合实施例所描述的特定特征、结构或特性包括在本发明的技术中的至少一些实施例中,但不一定所有实施例中。出现的各种“实施例”、“一个实施例”或者“一些实施例”非必须都是指代相同的实施例。
不是本文所描述和示出的所有组件、特征、结构、特性等都需要被包括在一个或多个特定的实施例中。如果说明书陈述了例如“可以”、“可能”、“能够”或“可”包括组件、特征、结构或特性,则不要求包括该特定组件、特征、结构或特性。如果说明书或权利要求提到“一”或“一个”元件,则这并不意指仅存在一个元件。如果说明书或权利要求提到“额外的”元件,则不排除存在多于一个额外的元件。
如在上文中所讨论的,可以由对应的软件和/或固件组件和应用来促进本文中的实施例的各种方面,例如在计算节点或设备处理器上运行的软件、或者由嵌入式处理器等所执行的软件和/或固件例如可以在交换机上使用。因此,该发明的实施例可以用作或用于支持在一些形式的处理核心(例如,计算机的CPU、多核处理器的一个或多个核心)上执行的软件程序、软件模块、固件、和/或分布式软件、在处理器或核心上运行或者以其他方式在计算机可读或机器可读非瞬时性存储介质上实施或实现的虚拟机。计算机可读或机器可读非瞬时性存储介质包括用于以由机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,计算机可读或机器可读非瞬时性存储介质包括以由计算机或计算机器(例如,计算设备、电子系统等)可访问的形式提供(即,存储和/或传输)信息的任何机制,例如,可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储器设备等)。内容可以是直接可执行文件(“对象”或“可执行”形式)、源代码、或者差分码(“增量”或“补丁”码)。计算机可读或机器可读非瞬时性存储介质还可以包括可以从其下载内容的存储或数据库。计算机可读或机器可读非瞬时性存储介质还可以包括在销售或交递时具有存储在其上的内容的设备或产品。因此,通过通信介质交递具有所存储的内容的设备、或者提供供下载的内容可以被理解为提供包括具有在本文中所描述的内容的机器可读或者机器可读非瞬时性存储介质的制品。
在本文中所描述的、在上文中被称为框、进程、或代理的各种组件可以是用于执行所描述的功能的单元。可以由在处理元件上运行的软件、经由嵌入式硬件等、或者硬件和软件的任何组合来实现由在本文中所描述的各种组件所执行的操作和功能。这样的组件可以被实现为软件模块、硬件模块、专用硬件(例如,应用专用硬件、ASIC、DSP等)、嵌入式控制器、硬线电路、硬件逻辑等。可以经由包括计算机可读或机器可读非瞬时性存储介质的制品来提供软件内容(例如,数据、指令、配置信息等),其提供表示可以被执行的指令。内容可以引起计算机执行在本文中所描述的各种功能/操作。
如在本文中所使用的,由术语“中的至少一个”所连接的一系列项目可以意指所列出的项目的任何组合。例如,短语“A、B、或C中的至少一个”可以指A;B;C;A和B;A和C;B和C;或者A、B、和C。
以上对本发明的所示出的实施例的描述,包括在摘要中所描述的内容,不旨在是详尽的或者将本发明限制于所公开的精确的形式。尽管出于说明性的目的在本文中描述了本发明的实施例和示例,但在本发明的范围内,如相关领域技术人员能理解的各种等效的修改是可能的。
可以根据以上的详细描述来对本发明进行修改。在以下的权利要求中所使用的术语不应该被理解为将本发明限制于在说明书和附图中所公开的具体的实施例。相反,本发明的范围是由以下权利要求整体地确定的,所述权利要求将根据权利要求解释的所建立的原则来理解。
Claims (25)
1.一种在包括经由多个交换机和链路而互连的多个计算节点的高性能计算(HPC)环境中所实现的方法,所述方法包括:
从所述多个计算节点标识一组计算节点以参与集体分组从而执行集体操作;
配置包括多个节点的生成树,所述多个节点包括所述一组计算节点和由多个链路互连的一组交换机,所述一组交换机包括连接至计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径而与其他节点中的每个节点进行通信;
将所述生成树中的每个交换机配置为感知到涉及所述交换机的指定的路径,并且将一个或多个消息标识符配置为被包括在用于执行所述集体操作的集体操作消息中;以及
在每个交换机处,识别集体操作消息及它们的目的地,并且沿着连接至所述交换机的所述指定的路径的链路分段来转发所述集体操作消息。
2.根据权利要求1所述的方法,还包括采用所述生成树中的所述交换机来监视集体操作的进行并且确保所述集体操作保持同步。
3.根据权利要求1或2所述的方法,还包括:
在所述生成树中的每个节点处实现状态机;
在所述生成树中的所述节点之间交换状态机状态消息;以及
采用所述状态机状态消息和状态机来同步由所述集体分组所执行的集体操作。
4.根据权利要求3所述的方法,其中,每个节点处的所述状态机被实现为其中一次只前进一个状态的周期性齿轮,所述状态包括第一状态、一个或多个中间状态、以及最后状态,并且其中,所述状态从所述最后状态前进回到所述第一状态。
5.根据权利要求4所述的方法,其中,所述状态机状态包括空闲状态、填充状态、填满状态、和退出状态。
6.根据前述任何权利要求所述的方法,还包括:
在所述集体分组中的每个节点处实现业务标识(ID)机制;以及
采用业务ID来检测乱序或丢失的消息。
7.根据前述任何权利要求所述的方法,其中,所述集体操作包括壁垒操作。
8.根据前述任何权利要求所述的方法,还包括:
在所述集体分组中的每个计算节点处发起至少一个应用;
识别每个计算节点处的主进程;以及
通知子网络管理器(SM)关于所述计算节点将加入集体分组。
9.根据前述任何权利要求所述的方法,还包括:
经由参与所述集体分组的所述计算节点处的个体的进程来发起集体操作;
经由所述生成树中的所述交换机来在所述计算节点上运行的进程之间转发消息;
检测所述集体操作已经被完成;以及
通知参与的计算节点关于操作已经被完成。
10.一种系统,包括:
多个计算节点,每个计算节点包括处理器、至少一个网络端口、和存储器,其中,指令存储在所述存储器中以用于实现促进集体操作的一个或多个进程;
多个交换机,每个交换机包括多个网络端口,每个交换机经由相应的链路与至少一个其他交换机通信地链接;所述交换机的至少一部分与计算节点通信地链接,每个交换机包括用于实现转发表的逻辑;
子网络管理器(SM),其具有处理器、其中存储有被配置为在所述处理器上执行的子网络管理应用的存储器、以及与交换机通信地链接的网络端口;
其中,由所述SM对所述计算节点中的所述指令和所述子网管理应用的执行对以下操作进行执行,包括,
将信息从计算节点发送至所述SM以通知所述SM关于所述计算节点将加入集体分组;
经由所述SM来配置包括多个节点的生成树,所述多个节点包括所述集体分组中的所述计算节点以及一组交换机,所述一组交换机包括连接至计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径来与其他节点中的每个节点进行通信;
将所述生成树中的每个交换机配置为感知到涉及所述交换机的指定的路径,并且将一个或多个消息标识符配置为被包括在用于执行所述集体操作的集体操作消息中;以及
在每个交换机处,识别集体操作消息及它们的目的地,并且沿着连接至所述交换机的所述指定的路径的链路分段来转发所述集体操作消息。
11.根据权利要求10所述的系统,其中,所述交换机被配置为监视集体操作的进行并且确保所述集体操作保持同步。
12.根据权利要求10或11所述的系统,其中,所述生成树中的每个节点被配置为:
实现状态机;
与相邻的节点交换状态机状态消息;并且
其中,所述节点被配置为集体地采用所述状态机状态消息和状态机来同步由所述集体分组所执行的集体操作。
13.根据权利要求12所述的系统,其中,每个节点处的所述状态机被实现为其中一次只前进一个状态的周期性齿轮,所述状态包括第一状态、一个或多个中间状态、以及最后状态,并且其中,所述状态从所述最后状态前进回到所述第一状态。
14.根据权利要求13所述的系统,其中,所述状态机状态包括空闲状态、填充状态、填满状态、和退出状态。
15.根据权利要求10-14的任何一个所述的系统,其中,所述生成树中的每个节点被配置为实现业务标识(ID)机制,并且其中,所述节点集体地被配置为采用业务ID来检测乱序或丢失的消息。
16.根据权利要求10-15的任何一个所述的系统,其中,所述生成树中的每个计算节点配置为:
发起包括一个或多个进程的应用;
识别主进程;以及
通知所述(SM)关于所述计算节点将加入集体分组。
17.根据权利要求10-16的任何一个所述的系统,其中,所述生成树中的所述计算节点被配置为经由在所述计算节点上执行的个体的进程来发起集体操作,并且将消息发送至在其他计算节点上运行的进程,并且其中,所述交换机被配置为;
在所述计算节点上执行的进程之间转发消息;
检测所述集体操作已经被完成;以及
通知参与的计算节点关于所述集体操作已经被完成。
18.一种被配置为被实现为网络环境中的子网络管理器的装置,所述网络环境包括经由多个交换机和链路互连的多个计算节点,所述装置包括:
处理器;
网络适配器,其操作性地耦合至具有至少一个端口的所述处理器;以及
其中存储了包括管理应用的指令的存储器,其中,所述指令被配置为:当所述装置与所述网络环境中的交换机通信地链接时,使得所述装置执行以下操作:
从计算节点接收指示它们将加入集体分组的通知;
确定将用于所述集体分组的生成树包括多个节点以及一组交换机,所述多个节点包括提供指示它们将加入所述集体分组的通知的所述计算节点,所述一组交换机包括连接至所述计算节点的边缘交换机以及包括在所述生成树的根处的核心交换机的一个或多个等级的核心交换机,其中,所述生成树被配置以使得所述生成树中的每个节点能够经由包括至少一个链路分段的单个相应的指定的路径来与其他节点中的每个节点进行通信;以及
向所述生成树中的所述交换机中的每个交换机提供配置信息以用于实现针对包括耦合至所述交换机的链路的所述生成树的一部分的消息转发操作。
19.根据权利要求18所述的装置,其中,所述指令的执行还使得所述装置能够执行以下操作:
从所述网络环境中的所述计算节点和所述交换机的至少一部分接收网络拓扑信息;以及
确定包括所述生成树中的所有节点在内的所述网络环境的至少一部分的网络拓扑。
20.根据权利要求18或19所述的装置,其中,所述生成树中除了作为所述生成树的所述根的节点之外的每个节点包括父节点和至少一个子节点,并且提供给每个交换机的所述配置信息包括描述所述交换机的父节点和子节点的集体转发表。
21.根据权利要求18-20的任何一个所述的装置,其中,所述指令的执行还使得所述装置能够执行以下操作:
从计算节点接收关于它们将离开集体分组的通知;以及
通知所述生成树中的交换机关于所述集体分组已经被销毁。
22.一种被配置为被实现为网络环境中的交换机的交换机装置,所述网络环境包括经由多个交换机和链路互连的多个计算节点,所述交换机装置包括:
多个端口;
处理器;以及
操作性地耦合至所述处理器的存储器;以及
被配置为实现状态机的嵌入式逻辑;
其中,所述交换机装置被配置为被实现为生成树中的交换机节点,所述生成树包括作为集体分组的成员并且运行进程以实现集体操作的多个计算节点,并且其中,所述交换机装置还被配置为,
接收包括描述所述生成树中所述交换机的父节点和子节点的集体转发表的配置信息;
根据所述集体转发表来转发源自发送计算节点并且去往目的地计算节点的消息;以及
与相邻的节点交换消息以确保所述集体操作的同步。
23.根据权利要求22所述的交换机装置,还包括用于实现齿轮周期状态机的嵌入式逻辑,并且其中,所述交换机装置还被配置为:
响应于可应用事件而更新其状态机状态;以及
与所述生成树中的相邻的节点交换状态机状态消息。
24.根据权利要求22或23所述的交换机装置,其中,所述交换机装置被配置为被实现为所述生成树的边缘交换机,其中,多个端口链接至相应的计算节点。
25.根据权利要求22-24的任何一个所述的交换机装置,其中,所述交换机装置被配置为被实现为包括所述生成树的根的核心交换机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/495,190 US9391845B2 (en) | 2014-09-24 | 2014-09-24 | System, method and apparatus for improving the performance of collective operations in high performance computing |
US14/495,190 | 2014-09-24 | ||
PCT/US2015/045176 WO2016048476A1 (en) | 2014-09-24 | 2015-08-14 | System, method and apparatus for improving the performance of collective operations in high performance computing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106576055A true CN106576055A (zh) | 2017-04-19 |
CN106576055B CN106576055B (zh) | 2019-11-12 |
Family
ID=55526820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580045185.0A Active CN106576055B (zh) | 2014-09-24 | 2015-08-14 | 用于改进高性能计算中的集体操作的性能的系统、方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9391845B2 (zh) |
EP (1) | EP3198467B1 (zh) |
CN (1) | CN106576055B (zh) |
WO (1) | WO2016048476A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112188325A (zh) * | 2019-07-01 | 2021-01-05 | 谷歌有限责任公司 | 使用具有一对多光交换机的光网络的可重新配置的计算平台 |
CN112437070A (zh) * | 2020-11-16 | 2021-03-02 | 深圳市永达电子信息股份有限公司 | 一种基于操作生成树状态机完整性验证计算方法及系统 |
US11048528B2 (en) | 2016-12-30 | 2021-06-29 | Intel Corporation | Method and apparatus for compute end point based collective operations |
CN116996359A (zh) * | 2023-09-26 | 2023-11-03 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种超级计算机的网络拓扑构建方法及网络拓扑结构 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2524750B (en) * | 2014-03-31 | 2021-04-21 | Metaswitch Networks Ltd | Spanning tree protocol |
US9391845B2 (en) | 2014-09-24 | 2016-07-12 | Intel Corporation | System, method and apparatus for improving the performance of collective operations in high performance computing |
US10425358B2 (en) * | 2016-09-29 | 2019-09-24 | International Business Machines Corporation | Network switch architecture supporting multiple simultaneous collective operations |
US20180183857A1 (en) * | 2016-12-23 | 2018-06-28 | Intel Corporation | Collective communication operation |
CN106850628A (zh) * | 2017-02-09 | 2017-06-13 | 南京邮电大学 | 一种基于mpi的广域高性能计算网络优化方法 |
US10317888B2 (en) | 2017-03-01 | 2019-06-11 | PLETHORA IloT, S.L. | Device and system including multiple devices for supervision and control of machines in industrial installation |
US10909651B2 (en) * | 2018-08-08 | 2021-02-02 | International Business Machines Corporation | Graphic processor unit topology-aware all-reduce operation |
CN111200848B (zh) * | 2018-11-19 | 2022-03-25 | 华为技术有限公司 | 一种通信方法及装置 |
US11328222B1 (en) | 2019-05-10 | 2022-05-10 | Innovium, Inc. | Network switch with integrated gradient aggregation for distributed machine learning |
US11099902B1 (en) | 2019-05-10 | 2021-08-24 | Innovium, Inc. | Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications |
US10931602B1 (en) | 2019-05-10 | 2021-02-23 | Innovium, Inc. | Egress-based compute architecture for network switches in distributed artificial intelligence and other applications |
US10931588B1 (en) * | 2019-05-10 | 2021-02-23 | Innovium, Inc. | Network switch with integrated compute subsystem for distributed artificial intelligence and other applications |
US11057318B1 (en) | 2019-08-27 | 2021-07-06 | Innovium, Inc. | Distributed artificial intelligence extension modules for network switches |
WO2022007587A1 (zh) * | 2020-07-08 | 2022-01-13 | 华为技术有限公司 | 交换机和数据处理的系统 |
US20200358721A1 (en) | 2020-07-30 | 2020-11-12 | Intel Corporation | Buffer allocation for parallel processing of data |
CN116171429A (zh) * | 2020-09-24 | 2023-05-26 | 华为技术有限公司 | 数据处理的装置和方法 |
US11438220B2 (en) * | 2021-01-28 | 2022-09-06 | Cisco Technology, Inc. | Identifying redundant network links using topology graphs |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1898918A (zh) * | 2003-12-22 | 2007-01-17 | 皇家飞利浦电子股份有限公司 | 自动转移路由器功能的方法 |
US20080170581A1 (en) * | 2007-01-12 | 2008-07-17 | Raytheon Company | System And Method For Networking Computing Clusters |
US20110113083A1 (en) * | 2009-11-11 | 2011-05-12 | Voltaire Ltd | Topology-Aware Fabric-Based Offloading of Collective Functions |
US20110119673A1 (en) * | 2009-11-15 | 2011-05-19 | Mellanox Technologies Ltd. | Cross-channel network operation offloading for collective operations |
CN102089741A (zh) * | 2007-09-17 | 2011-06-08 | 国际商业机器公司 | 在附接的高性能并行计算机上执行计算机密集型数据库用户定义的程序 |
US20120030370A1 (en) * | 2010-07-30 | 2012-02-02 | International Business Machines Corporation | Administering Connection Identifiers For Collective Operations In A Parallel Computer |
US20130022047A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Network apparatus and network managing apparatus |
US20130145378A1 (en) * | 2011-12-01 | 2013-06-06 | International Business Machines Corporation | Determining Collective Barrier Operation Skew In A Parallel Computer |
CN103873367A (zh) * | 2012-12-14 | 2014-06-18 | 国际商业机器公司 | 胖树网络中的无死锁路由 |
US20140192677A1 (en) * | 2012-06-29 | 2014-07-10 | Yen Hsiang Chew | Network routing protocol power saving method for network elements |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355371A (en) * | 1982-06-18 | 1994-10-11 | International Business Machines Corp. | Multicast communication tree creation and control method and apparatus |
US5394556A (en) * | 1992-12-21 | 1995-02-28 | Apple Computer, Inc. | Method and apparatus for unique address assignment, node self-identification and topology mapping for a directed acyclic graph |
US5634004A (en) * | 1994-05-16 | 1997-05-27 | Network Programs, Inc. | Directly programmable distribution element |
US6081512A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
US6865178B1 (en) * | 1999-08-20 | 2005-03-08 | International Business Machines Corporation | Method and system for establishing SNA connection through data link switching access services over networking broadband services |
US20050097300A1 (en) | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment |
US7774461B2 (en) * | 2004-02-18 | 2010-08-10 | Fortinet, Inc. | Mechanism for determining a congestion metric for a path in a network |
US7738443B2 (en) | 2007-06-26 | 2010-06-15 | International Business Machines Corporation | Asynchronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US9391845B2 (en) | 2014-09-24 | 2016-07-12 | Intel Corporation | System, method and apparatus for improving the performance of collective operations in high performance computing |
-
2014
- 2014-09-24 US US14/495,190 patent/US9391845B2/en active Active
-
2015
- 2015-08-14 EP EP15843367.2A patent/EP3198467B1/en active Active
- 2015-08-14 WO PCT/US2015/045176 patent/WO2016048476A1/en active Application Filing
- 2015-08-14 CN CN201580045185.0A patent/CN106576055B/zh active Active
-
2016
- 2016-07-12 US US15/207,706 patent/US10015056B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1898918A (zh) * | 2003-12-22 | 2007-01-17 | 皇家飞利浦电子股份有限公司 | 自动转移路由器功能的方法 |
US20080170581A1 (en) * | 2007-01-12 | 2008-07-17 | Raytheon Company | System And Method For Networking Computing Clusters |
CN102089741A (zh) * | 2007-09-17 | 2011-06-08 | 国际商业机器公司 | 在附接的高性能并行计算机上执行计算机密集型数据库用户定义的程序 |
US20110113083A1 (en) * | 2009-11-11 | 2011-05-12 | Voltaire Ltd | Topology-Aware Fabric-Based Offloading of Collective Functions |
US20110119673A1 (en) * | 2009-11-15 | 2011-05-19 | Mellanox Technologies Ltd. | Cross-channel network operation offloading for collective operations |
US20120030370A1 (en) * | 2010-07-30 | 2012-02-02 | International Business Machines Corporation | Administering Connection Identifiers For Collective Operations In A Parallel Computer |
US20130022047A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Network apparatus and network managing apparatus |
US20130145378A1 (en) * | 2011-12-01 | 2013-06-06 | International Business Machines Corporation | Determining Collective Barrier Operation Skew In A Parallel Computer |
US20140192677A1 (en) * | 2012-06-29 | 2014-07-10 | Yen Hsiang Chew | Network routing protocol power saving method for network elements |
CN103873367A (zh) * | 2012-12-14 | 2014-06-18 | 国际商业机器公司 | 胖树网络中的无死锁路由 |
Non-Patent Citations (1)
Title |
---|
STEVE SISTARE ET AL.,: "Optimization of MPI Collectives on Clusters of Large-Scale SMP’s", 《PROCEEDINGS OF THE 1999 ACM/IEEE CONFERENCE ON SUPERCOMPUTING》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048528B2 (en) | 2016-12-30 | 2021-06-29 | Intel Corporation | Method and apparatus for compute end point based collective operations |
CN112188325A (zh) * | 2019-07-01 | 2021-01-05 | 谷歌有限责任公司 | 使用具有一对多光交换机的光网络的可重新配置的计算平台 |
CN112188325B (zh) * | 2019-07-01 | 2022-07-05 | 谷歌有限责任公司 | 使用具有一对多光交换机的光网络的可重新配置的计算平台 |
CN112437070A (zh) * | 2020-11-16 | 2021-03-02 | 深圳市永达电子信息股份有限公司 | 一种基于操作生成树状态机完整性验证计算方法及系统 |
CN112437070B (zh) * | 2020-11-16 | 2022-11-15 | 深圳市永达电子信息股份有限公司 | 一种基于操作生成树状态机完整性验证计算方法及系统 |
CN116996359A (zh) * | 2023-09-26 | 2023-11-03 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种超级计算机的网络拓扑构建方法及网络拓扑结构 |
CN116996359B (zh) * | 2023-09-26 | 2023-12-12 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种超级计算机的网络拓扑构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10015056B2 (en) | 2018-07-03 |
US20160323150A1 (en) | 2016-11-03 |
US9391845B2 (en) | 2016-07-12 |
EP3198467A1 (en) | 2017-08-02 |
WO2016048476A1 (en) | 2016-03-31 |
CN106576055B (zh) | 2019-11-12 |
EP3198467B1 (en) | 2020-07-29 |
US20160087848A1 (en) | 2016-03-24 |
EP3198467A4 (en) | 2018-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106576055B (zh) | 用于改进高性能计算中的集体操作的性能的系统、方法和装置 | |
US9794370B2 (en) | Systems and methods for distributed network-aware service placement | |
Pandurangan et al. | On the distributed complexity of large-scale graph computations | |
CN104734878B (zh) | 软件定义联网灾难恢复的方法和系统 | |
EP2777229B1 (en) | System and method for providing deadlock free routing between switches in a fat-tree topology | |
JP6283361B2 (ja) | ミドルウェアマシン環境における劣化ファットツリーの発見およびルーティングをサポートするためのシステムおよび方法 | |
JP5893628B2 (ja) | ミドルウェアマシン環境における部分的なサブネット初期化の実行 | |
CN107211036B (zh) | 一种数据中心网络组网的方法以及数据中心网络 | |
US20140189094A1 (en) | Resilient duplicate link aggregation emulation | |
CN107925633A (zh) | 数据中心资源跟踪 | |
US20140189443A1 (en) | Hop-by-hop error detection in a server system | |
JP2013537740A (ja) | 分散仮想ブリッジ環境におけるレジスタ・アクセス | |
ITTO20010196A1 (it) | Sistema e procedimento per gestire risorse di memorizzazione in un ambiente di elaborazione a grappolo. | |
CN108351824A (zh) | 用于在计算节点之间执行切换操作的方法、设备和介质 | |
CN104243536B (zh) | 一种高速列车控制网络半实物仿真系统 | |
TW201517576A (zh) | 乙太網路保護交換系統、網路之交換保護系統及在網路中保護交換功能之方法 | |
Bogdanski | Optimized routing for fat-tree topologies | |
US8717909B1 (en) | Methods and apparatus for route installation acknowledgement and acknowledgement aggregation in BGP | |
Dong et al. | ACCL: Architecting highly scalable distributed training systems with highly efficient collective communication library | |
CN108718287B (zh) | 数据交换系统及其建立方法和装置以及通信系统 | |
US20190173759A1 (en) | Network traffic management for virtualized graphics devices | |
US10659348B2 (en) | Holding of a link in an optical interface by a lower level processor until authorization is received from an upper level processor | |
WO2013166978A1 (zh) | 多处理器系统的节点路由方法、控制器及多处理器系统 | |
US10305987B2 (en) | Method to syncrhonize VSAN node status in VSAN cluster | |
CN112751755B (zh) | 一种设备虚拟化方法、装置、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |