CN1493128A - 类网络路由 - Google Patents
类网络路由 Download PDFInfo
- Publication number
- CN1493128A CN1493128A CNA028053788A CN02805378A CN1493128A CN 1493128 A CN1493128 A CN 1493128A CN A028053788 A CNA028053788 A CN A028053788A CN 02805378 A CN02805378 A CN 02805378A CN 1493128 A CN1493128 A CN 1493128A
- Authority
- CN
- China
- Prior art keywords
- node
- network
- class
- message
- interchanger
- 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
- 230000006870 function Effects 0.000 claims abstract description 40
- 239000011159 matrix material Substances 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims 2
- 238000007599 discharging Methods 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000000151 deposition Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005253 cladding Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- 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/06—Deflection routing, e.g. hot-potato routing
-
- 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/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
- F24F11/77—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating
Abstract
在诸如在其节点(Q00-Q22)上包括多个并行计算处理器的计算机网络的网络中实现类网络路由。类网络路由允许计算处理器将消息广播至计算机网络中一范围(一个或多个)的其他计算处理器,诸如列或行中的处理器。通常这类操作要求将单独的消息发送至每个处理器。采用根据本发明的类网络路由,一条消息就已足够,这通常减少了网络中的消息总数以及进行广播的延迟。类网络路由还适用于带有硬件类函数(多点广播)功能的分布式存储器并行超级计算机(图1)上的密集矩阵变换算法。这通过利用密集矩阵变换的通信模式可以通过硬件类函数提供这一事实来实现,这导致了更快的执行时间。
Description
交叉引用
本发明要求了共有的、一并待决的2001年2月24日提出申请的美国临时专利申请序列号60/271,124,标题为“大规模并行超级计算机(MASSIVELY PARALLEL SUPERCOMPUTER)”的优先权,其全部内容和公开在这里一并作为参考,如这里阐明的一样。此外,本专利申请还涉及下列共同拥有的、一并未决的于同一日期提出申请的美国专利申请,其全部内容和每一个公开在这里一并作为参考,如这里阐明的一样。美国专利申请序列号No.(YOR920020027US1,YOR920020044US1(15270)),为“类网络路由(Class NetworkingRouting)”;美国专利申请序列号No.(YOR920020028US1(15271)),为“用于计算结构的全局树网络(A Global Tree Network for ComputingStructures)”;美国专利申请序列号No.(YOR920020029US1(15272)),为“全局中断和屏障网络(Global Interrupt and Barrier Networks)”;美国专利申请序列号No.(YOR920020030US1(15273)),为“优化的可扩展网络交换器(Optimized Scalable Network Switch)”;美国专利申请序列号No.(YOR920020031US1,YOR920020032US1(15258)),为“环网络和树网络中的算术函数(Arithmetic Functions in Torus and TreeNetworks)”;美国专利申请序列号No.(YOR920020033US1,YOR920020034US1(15259)),为“用于高速信号传输的数据捕获技术(Data Capture Technique for High Speed Signaling)”;美国专利申请序列号No.(YOR920020035US1(15260)),为“通过传送/获取窗口控制相干性(Managing Coherence Via Put/Get Windows)”;美国专利申请序列号No.(YOR920020036US1,YOR920020037US1(15261)),为“低延迟存储器存取和同步(Low LatencyMemory Access And Synchronization)”;美国专利申请序列号No.(YOR920020038US1(15276)),为“存在故障时用于文件服务器维护全部性能的双尾部故障转移(Twin-Tailed Fail-Over for FileserversMaintaining Full Performance in the Presence of Failure)”;美国专利申请序列号No.(YOR920020039US1(15277)),为“通过无开销链接级校验和的故障隔离(Fault Isolation Through No-OverheadLink Level Checksums)”;美国专利申请序列号No.(YOR920020040US1(15278)),为“通过物理位置用于大规模并行系统的以太网寻址(Ethernet Addressing Via Physical Location forMassively Parallel Systems)”;美国专利申请序列号No.(YOR920020041US1(15274)),为“通过动态划分的超级计算机中的容错(Fault Tolerance in a Supercomputer Through DynamicRepartitioning)”;美国专利申请序列号No.(YOR920020042US1(15279)),为“检验点文件系统(CheckpointingFilesystem)”;美国专利申请序列号No.(YOR920020043US1(15262)),为“分布式存储器并行多节点计算机上的多维快速傅立叶变换的有效实现(Efficient Implementation of Multidimensional Fast FourierTransform on a Distributed-Memory Parallel Multi-NodeComputer)”;美国专利申请序列号No.(YOR9-20010211US2(15275)),为“一种新型大规模并行超级计算机(A Novel Massively ParallelSupercomputer)”;以及美国专利申请序列号No.(YOR920020045US1(15263)),为“智能风扇模块和系统(Smart FanModules and System)”。
发明背景
1、
发明领域
本发明通常涉及一种类网络路由,以及更具体地关于在诸如在其节点上包括多个并行计算处理器的计算机网络的网络中实现类路由的类网络路由,并且它允许计算处理器将消息广播至计算机网络中的一个或多个其他计算处理器,诸如列或行中的处理器。通常这种类型的操作要求将单独的消息发送至每个处理器。采用根据本发明的类网络路由,一条消息就已足够,这通常减少了网络中的消息总数以及进行多点播送的延迟。
本发明涉及消息传送数据网络领域,例如,用于分布式存储器消息传送、并行计算机的网络,例如应用于生命科学领域内的计算。
本发明还使用环计算机网络(torus computer nerwork)上的类函数来进行密集矩阵计算。通过使用硬件实现的环计算机网络上的类函数,可以实现高性能密集矩阵计算。
本发明还涉及分布式存储器、消息传送并行计算机设计和系统软件领域,例如应用于生命科学领域内的计算。更特别的,它涉及用于分布式存储器并行超级计算机的高性能线性代数软件。
2、
现有技术论述
可以通过大规模并行计算机系统来执行一大类重要计算。这类系统包括许多计算节点,每个节点通常包括一个或多个CPU,存储器和一个或多个网络接口以将该节点与其他节点相连接。
在相关的2001年2月24日提出申请的美国临时专利申请序列号No.60/271,124中描述的计算机,用于大规模并行超级计算机,支持片上系统(SOC)技术以创造具有高吞吐量且可扩展的有成本效益的计算系统。SOC技术使采用嵌入式元件库在单一芯片上创建整体多处理器节点成为可能,包括具有集成的一级高速缓存的CPU内核。这种封装大大减少了节点的元件数目,允许创建一种可靠的大型机。
消息传送数据网络用于在网络的节点直接传送消息,每个节点可以执行独立于其他节点的本地操作。节点可以通过网络在节点中传送消息来共同作用。这种网络的一个示例是分布式存储器并行计算机,其中其每个节点具有一个或多个在本地存储器上运行的处理器。一种采用这种计算机的多节点的应用通过在它们之间传送消息来协调多个节点的操作。在本说明书中替换地使用交换器(switch)和路由器(router)这两个词。
消息传送数据网络包括交换器和链接,其中链接仅仅在两个交换器之间传送数据。交换器将来自一节点或链接的输入数据路由到另一个节点或链接。交换器可以连接任意数目的节点和链接。依赖于它们在网络中的位置,在两个节点之间的消息需要穿越几个交换器和链接。
现有技术的网络有效地支持某些类型的消息传送,但是不是所有类型。例如,某些网络有效地支持单点广播消息传送至单一接收节点,但是不支持多点广播消息传送至任意数目的接收节点。在多种情况下需要多点广播消息传送的有效支持,例如在分布式存储器并行计算机上执行的数值算法,其被这里公开的用于使用类函数的密集矩阵变换的应用程序所要求。
许多用户应用程序需要变换非常大的N乘N(N×N)密集矩阵,这里N大于几千。密集矩阵为具有其绝大多数项为非零的矩阵。通常,这类矩阵的变换只可以使用大型分布式存储器并行超级计算机来完成。执行密集矩阵变换的算法已公知,并可以普遍用于分布式存储器并行超级计算机。在这种情况下,要求大量的处理器间的通信。这会相当地减慢应用程序。
发明概述
因此,本发明的主要目的是提供在网络中实现类路由的类网络路由,它允许计算处理器将消息广播至一定范围内的处理器,诸如列或行的处理器。通常这类操作要求将单独的消息发送至每个处理器。通过根据本发明的类路由,一条消息就已足够,这通常减少了网络中的消息总数以及进行广播的延迟。类网络路由改进了网络使得它可以更有效地支持一些额外类型地消息传送。
类路由改进了网络以便更有效地支持额外类型地消息传送。通常消息被分成一个或多个包(packet),这些包通过网络原子地(atomically)传送。类路由将类值加入到每个包中。在每个交换器上,类值用于作为一个或多个表的索引,其存储的值确定由包上的交换器执行的操作。一个基于索引的查找表是快捷而有效的,如同要求经过交换器的最大吞吐量和最小延迟的那样。
类路由可以概括为在包上操作的交换器所需的有效的信息编码和解码,使得网络提供特定类型的消息传送。信息在包的类值和交换器的表中被编码。信息通过使用包的类值作为表的索引进行解码。
将没有类路由的网络称为基础网络。采用类路由的网络是改进的网络。所有交换器在类表中具有适当的条目,一类或多类改进的网络可以提供基础网络的消息传送类型。此外,由于使用包的类值作为表的索引非常快捷,因而当和基础网络相比较时,基础网络的消息传送类型不会由改进而相当大程度的减慢。
类表中的其他条目可以提供超过基础网络的消息传送类型之外的消息传送类型。例如,基础网络的单点广播消息传送可以通过类路由到用于多相多点播送的基于路径的多节点(Multidrop)消息传送来改进。
在上述类中,改进的网络提供基础网络的消息传送类型,或是未改动的或是改进的。此外,一些类的改进网络可以超越基础网络。例如超越类可以提供用于单相多点播送的多终点消息传送。如果类路由提供唯一的消息传送类型,则不需要底层的基础网络。
本发明在分布式存储器并行超级计算机上用硬件类函数功能使密集矩阵变换执行的更快。硬件类函数是类路由的一种特殊使用。这可以通过利用由硬件类函数提供密集矩阵变换的通信模式这一事实来实现。这导致了更快的执行时间。
如果并行超级计算机在硬件级别处理类函数功能,则密集矩阵变换的特定通信模式可以通过使用类函数来利用,以为了最小化通信延时。例如,临时申请序列号No.60/271,124描述了在硬件级别上具有函数功能的计算机。
附图简述
通过参考下列本发明的几个实施例的详细描述,结合附图,本发明用于类网络路由的前述目的和优点可以被本领域的技术人员更好的理解,在全部几个附图中同样的元件通过相同的参考数字指定,其中:
图1示出了根据本发明的示例性的分布式存储器并行超级计算机,其包括通过多维栅格相互连接的9个节点,采用二维3×3环网络;
图2更详细地示出了图1的分布式存储器并行超级计算机的九个节点的示例节点Q00;
图3示出了图1所示的分布式存储器并行超级计算机中从节点Q00到其他8个节点的示例性的单相多点广播;
图4示出了4×4栅格处理器,其中每个处理器由其行、列数字进行标记。
本发明详细描述
美国临时专利申请序列号No.60/271,124中描述的分布式存储器并行超级计算机包括多个节点。每个节点包括至少一个运行在本地存储器上的处理器。这些节点相互连接作为多维栅格,并且它们通过栅格链接进行通信。不失一般性,并为了使本发明容易被本领域技术人员理解,多维节点栅格将以示例性的2维栅格或示例性的3维栅格进行描述。3维栅格通过基于环的结构实现。尽管事实上在下列描述中只介绍了2维节点栅格或3维节点栅格,但是在本发明的范围内,可以基于本发明的技术容易地给出其它维的栅格。3维的示例是在临时专利申请序列号No.60/271,124中描述的基于环结构上实现的3维栅格。
图1为分布式并行超级计算机的示例描述,其包括通过多维栅格相互连接的9个节点,采用二维3×3环网络100。应注意,为了简化和清楚,节点的数目是以示例方式限于9个节点,且节点的数目可以依赖于分布式存储器并行超级计算机的特定结构的要求而显著改变。图1描绘了9个节点,标记为Q00-Q22,其中一对节点通过栅格链接相互连接。总共,9-节点环网络100通过18个栅格链接相互连接,这里每个节点通过各自的栅格链接与环网络中其他四个节点直接相互连接。注意不像网格,示例性的2维环网100不包括边节点。例如,节点Q00通过栅格链接102与节点Q20相互连接;通过栅格链接104与节点Q02相互连接;通过栅格链接106与节点Q10相互连接;并最终通过栅格链接108与节点Q01相互连接。作为另一个示例,节点Q11通过栅格链接110与节点Q01相互连接;通过栅格链接112与节点Q10相互连接;通过栅格链接114与节点Q21相互连接并最终通过栅格链接116与节点Q12相互连接。其他节点也以类似的方式相互连接。
在节点之间通信的数据在网络上以一个或多个包进行传输。对于任意给定的通信,如果数据量超过网络所支持的包大小,则需要一个以上的包。包由包头及跟随其的由包携带的数据组成。包头包含环网络所需的信息以将包从该包的源节点传输至目的节点。在分布式并行超级计算机中,其由本专利申请的受托者实现,网络上的每个节点通过逻辑地址识别,且包头包括目的地址以便该包自动路由至由目的地识别的网络上的节点。
图2为图1的分布式存储器并行超级计算机的节点Q00的示例性描述。该节点类似于在临时专利申请序列号No.60/271,124中描述的节点。该节点包括一个在本地存储器上运行的处理器。该节点包括路由器,该路由器发送并接收栅格链接102、104、106、108上的包,这四个栅格链接分别将节点Q00与其相邻节点Q20、Q02、Q10、Q01相连,如图1所示。该节点包括接收缓冲器。如果路由器接收本地处理器预定的包,那么从可以由处理器接收的包中,将该包置于接收缓冲器。依赖于应用程序和该包,处理器可以将包的内容写入存储器。节点包括以先进先出(FIFO)方式运行的注入缓冲器。如果CPU将包放入FIFO中,一旦该包到达FIFO的头,该包就由路由器从FIFO中移出,且路由器将该包放入指向该包目的地节点的栅格链接上。
由路由器实现的路由同时具有几个特征。这些特征是在临时专利申请序列号No.60/271,124中描述的一部分特征。该路由为虚拟直通(cut-through)路由。因此如果在一个栅格链接上的输入包不是指定用于处理器的,则该包由路由器转发至一个输出链接。这一转发由路由器执行,而无需处理器的参与。该路由为最短路径路由。例如,由节点Q00发送至节点Q20的包将穿越栅格链接104。任意其他路径会更长。对于另一个示例,由节点Q00发送至节点Q11的包将穿越栅格链接106和112或穿越栅格链接108和110。该路由为自适应的路由。可以通过能够离开节点的包来选择栅格链接。在前面的示例中,包可以通过栅格106或108离开节点Q00。对于离开节点的包,自适应的路由允许路由器选择包的不太繁忙的输出链接,或是基于某些其他标准来选择输出链接。自适应的路由不在包的源节点处执行;自适应的路由还在每个中间节点处执行,包可以在该包的路径上直通到该包目的地节点。
类路由可以用于实现多种类型的消息传送。这些类型中的一些类型在下述示例中进行描述,下述示例将描述类路由的很多细节。
例1.基于路径的多节点消息传送:
分布式存储器并行计算机的网络是消息传送数据网络的示例。这种计算机的每个节点具有一个或多个运行在其本地存储器上的处理器。利用这种计算机的多个节点的应用程序,通过在节点之间传送消息来协调它们的操作。这种计算机的示例在标题为大规模并行超级计算机的临时专利申请序列号No.60/271,124中有所描述。在该计算机中,每个单一节点与网络的单一交换器构成一对。在该计算机中,这些交换器彼此连接作为一三维(3D)环。因此在该计算机中,每个交换器链接六个其它的交换器。在三维的每个方向中,这些链接沿正方向到一个交换器,沿负方向到一个交换器。每个交换器通过3维环上的其(x,y,z)逻辑地址进行识别。通过对比,在使用2维环的计算机中,每个交换器通过其(x,y)逻辑地址进行识别。在图1中,正X方向指向右边,且正Y方向指向底部。在图1中,节点Q00具有逻辑地址(0,0),节点Q01具有逻辑地址(0,1)等等。由于每个节点与单一交换器构成一对,因而节点具有其交换器的地址。通过在包头中包括用于这种逻辑地址的字段,包可以有效并方便地识别其目的地节点。没有类路由,基础网络仅提供单点广播消息传送。如果交换器是输入包的目的地,则将该包提供给本地节点。否则,将该包放入到指向目的地节点的链接中。
下述为使用类路由实现多节点消息传送的示例。每个包头含有用于类值的字段。该值为0或1。每个交换器都包含有表,该表用于确定,除了通常的包的单点广播路由,是否将一副本存放在本地节点。该假设用于原始的单点广播消息传送,当路由器将包从输入链接之一转发到输出链接之一时,处理器不参与。这种假设可以满足虚拟直通路由,例如在临时专利申请序列号No.60/271,124中实现的那样。该假设用于原始的单点广播消息传送,当路由器将包从输入链接之一转发到输出链接之一时,处理器不参与。这种假设可以通过虚拟直通路由得到满足,例如在临时专利申请序列号No.60/271,124中实现的那样。对于类值[0,1],在存放表中的条目为[0,1]并分别要求存放该包或不存放该包。该表如下描述。该表仅适用于非其目的地节点的节点上的包。其目的地节点上的包在通常的单点广播路由中存放。因此具有类值0的包遵守原始的单点广播消息传送。具有类值1的包执行基于路径的多节点消息传送。
对于不指定该节点为目的地的包
类值 存放值
0 0
1 1
基于路径的多节点消息传送可以用来实现多相多点广播,如在1994年的,D.K.Panda,S.Singal和P.Prabhakaran的“符合基础蛀洞路由策略的多目的地消息传送机制(Multidestination MessagePassing Mechanism Conforming to Base Wormhole Routing Scheme)”PCRCW’94,LNCS 853,Springer-Verlag,131至145页,所描述的示例一样。这里描述的第一个示例是如图1所示的3*3环的从节点(0,0)到9个节点的双相多点广播。在第一相中,节点(0,0)发送目的地为(0,2)的多节点消息。在第二相中,第一相的3个接收者的每一个同时发送多节点消息。节点(0,0)发送到(2,0);节点(0,1)发送到(2,1)且节点(0,2)发送到(2,2)。在第二相结束时,2维环的所有9个节点都接收到了广播消息。
上面的假设在原始的单点广播消息传送中,当源节点和目的地节点在同一行时,包的路径沿该行。一行为对于环或网的除了其中一维的所有维都具有相等值的一组节点。该假设由最短路径路由保证,例如在临时专利申请序列号No.60/271,124中实现的那样。上述假设还由在临时专利申请中实现的确定性路由所保证。通过对比,上述假设不满足其他处实现的拥塞避免路由,该路由通过一些随机节点来路由包。
这里描述的第二个示例为从节点(0,0,0)到5*5*5立方体的125个节点的三相多点广播,该立方体具有顶角(0,0,0)和(4,4,4)。在第一相中,节点(0,0,0)发送目的地为(0,0,4)的多节点消息。在第二相中,第一相的5个接收者的每一个同时发送多节点消息。节点(0,0,0)发送到(0,4,0);节点(0,0,1)发送到(0,4,1)等。在第三相,第二相的25个接收者的每一个同时发送多节点消息。节点(0,0,0)发送到(4,0,0);节点(0,0,1)发送到(4,0,1)等。在第三相结束时,立方体的所有125个节点都接收到了广播消息。
上述用于三维立方体的3相多点广播的示例可以容易地归纳为如下所述。对于从起始节点发送到D维立方体的所有节点的D相多点广播中,在第一相中,起始节点发送多节点消息到发送节点所在行之一中的所有其他节点,在第二相中,第一相的每个接收者和第一相的发送者同时发送多节点消息至正交于第一相所在行的一行中的所有其他节点,在第三相中,第二相的每个接收者和第二相的发送者同时发送多节点消息至与第一和第二相所在行正交的行中的所有其他节点,更多的相也类似地进行,以便在所有相之后,使得立方体中的所有节点接受到广播消息。
使用类路由的基于路径的多节点消息传送的实现提供了超越现有实现方法的优点。例如,特殊的现有实现方法将存放值放入包中。在这种实现方法中,包的路径上的每个节点都接收到该包的副本。相反,由于每个交换器可以在其存放表中具有不同的条目,类路由允许带有存放条目[0,0]的节点不接收包的副本,即使该节点位于多节点包的路径之上。该表描述如下。例如,具有用于多点广播的多个类值,其允许用于多个多点广播包,每个具有不同的一组节点。
对于不指定该节点为目的地的包
类值 存放值
0 0
1 0
例2.发送不知道接收者的多节点消息
如例1所述,类路由允许带有类值[0,1]存放条目[0,0]的节点不接收包的副本,即使该节点位于多节点包的路径上。这一信息不需要被多节点包的源节点所知道。换句话说,类路由允许节点提供不知道接收者的多节点包。然而,在例1的网络中,有一个例外,多节点包的目的地节点总是会接收该包的副本。因此如果目的地节点不接收该包的副本,则必须让源节点知道这一信息以便它使用另一个目的地。
例如,假设节点(0,0)是最初指定到目的地为节点(0,2)的多节点包的源。由于节点(0,0)到(0,2)是一完整的行,这可以是大小为3*3的环网络中的自然目的地。如果节点(0,2)不接收副本,则必须让节点(0,0)得知。如果节点(0,0)还知道节点(0,1)接收副本,则(0,1)可以用作多节点包的目的地。
为了解决由目的地节点引起的这一例外,类路由允许每个交换器具有额外的表,该表确定包的副本是否应当被存放在目的地节点上。为了解决上述示例,对于节点(0,2),在该目的地表中对于类值[0,1]的条目为[1,0]。条目0对应于类1,导致节点(0,2)不接收多节点消息,即使该节点是目的地。条目1对应于类0,允许节点(0,2)照常接收单点广播消息。这两个表如下所示。
对于指定节点(0,2)为目的地的包
类值 存放值
0 1
1 0
对于不指定节点(0,2)为目的地的包
类值 存放值
0 0
1 0
在上述示例中,节点(0,2)不参与具有类值1的多点广播。
作为对比的例子,节点(0,1)参与具有类值1的多点广播。对应于节点(0,1)的表如下所示。
对于指定节点(0,1)为目的地的包
类值 存放值
0 1
1 1
对于不指定节点(0,1)为目的地的包
类值 存放值
0 0
1 1
例3.窥探(Snooping):
假设例1中的上述网络,包括其使用类值0用于基础网络的单点广播消息。节点可以窥探,并通过使用存放表中对于类值0的条目1获得并存储在单点广播包上通过其交换器传送的信息。
该表如下所示。在示例中,节点参与具有类值1的多点广播。该表只适用于在除了其目的地节点的节点上的包。在该示例中,在其目的地节点上的包与在通常的单点广播路由中一样被存放。
对于不指定该节点为目的地的包
类值 存放值
0 1
1 1
采用这种窥探的示例是为研究网络的性能。不进行窥探,则只有关于包何时在源节点进入网络及何时从目的地节点退出网络的信息。进行窥探,则能够存在关于包何时经过该包路径上的节点的信息。由于在一对节点之间可能有多条有效路径,因此窥探还能够提供关于使用了哪一条特定路径的信息。在一对节点之间路由多个有效路径的示例是自适应性路由,如临时专利申请序列号No.60/271,124中实现的那样。
由于每个交换器可以在其存放表中具有不同的条目,因而类路由允许任意数目的节点被窥探。如果在网络中只有一小部分节点被窥探,则测量结果为统计性的采样。
窥探是使用不特定涉及多点广播的类路由的示例。
例4.单相多点广播
在单相多点广播中,通过其中一个节点一次将消息注入到节点中。相反,在多相多点广播中,可以通过多个节点将消息几次注入到网络中。例如,在如例1所示的3*3节点环上的多相多点广播中,通过3个不同的节点将消息总共注入1+3=4次。例如,在如例1所示5*5*5节点环上的多相多点广播中,通过25个不同的节点将消息总共注入1+5+25=31次。
众所周知,为了提供单相多点广播,交换器必须能够将输入包复制给多个输出链接。事实上,在多相多点广播中的由节点执行的消息复制在单相多点广播中由交换器执行。
由类路由提供的对于单相多点广播的优点在于,输出交换器接收或不接收特定输入包的副本的有效编码和解码。在描述由类路由提供的编码和解码策略的简单示例之后,对该策略与现有策略进行比较。
这里描述的第一个示例是例1中描述的相同的多点广播,如图1中描述的从节点(0,0)到3*3环的9个节点。在例1中为两相多点广播;这里为单相多点广播。这里消息穿过网络的模式选择为类似于例1中的模式。
每个包头具有用于类值的字段。该值为0或1。每个交换器具有一个表,该表用于确定是否将执行通常的包的单点广播路由,或是否将执行单相多点广播路由的操作。表中的每个条目为UDXY格式的位字符串。如果在表中条目U为1,则将执行通常的单点广播路由,否则不执行。如果D为1,则该包的副本将存放在本地节点上,否则不存放。如果X为1,则该包的副本将离开正X链接,否则不离开。如果Y为1,则该包的副本将离开正Y链接,否则不离开。在负X和Y方向上的两个链接与该示例不相关,这里为了简化起见将其忽略。
对于类值0,表中的条目在所有节点上为1000。因此带有类值0的包遵守最初的单点广播消息传送。对于类值1,表中的条目依赖于网络中交换器的位置。每个交换器上的条目模仿在例1中的多相多点广播中相应节点的操作。
在每个节点上,对于所有进入该节点的包都遵守该表。如果包具有类值0,则UDXY=1000表示该包为单点广播包,则只检验该包的目的地。
对于类值1,交换器(0,0)具有条目0011。其假设多点广播的源节点不需要另一个副本。节点(0,0)的表如下所示。
对于节点(0,0)上的包
类值 UDXY值
0 1000
1 0011
对于3*3环中的其他交换器继续类值1,交换器(0,1)具有条目0111。四个交换器(0,2)、(1,0)、(1,1)和(1,2)具有条目0101。三个交换器(2,0)、(2,1)和(2,2)具有条目0100。上述是对于使用类1的多点广播示例所需信息的完整编码。简而言之,具有类值0的包遵守最初的单点广播消息传送。来源于节点(0,0)具有类值1的包执行单相多点广播路由。
上述每个节点上对于来自节点(0,0)的使用类1的多点广播的UDXY值如图3所示。在每个节点上,如果D=0,即如果没有包的副本存放在该节点上,则环为开路。在每个节点上,如果D=1,即如果有包的副本存放在该节点上,则环为闭路。在每个节点上,如果X=1,即如果包的副本将离开正X链接,则在正X方向上有个箭头。在每个节点上,如果Y=1,即包的副本将离开正Y链接,在正Y方向上有个箭头。
这里描述的第二个示例是例1中描述的相同的多点广播,即从节点(0,0,0)到具有顶角(0,0,0)和(4,4,4)的5*5*5立方体的125个节点。在例1中其为三相多点广播;这里其为单相多点广播。这里消息穿过网络的模式选择为类似于例1中的模式。
每个包头具有用于类值的字段。该值为0或1。每个交换器具有表,该表用于决定是否将执行通常的包的单点广播路由,或是否将执行单相多点广播路由的操作。表中的每个条目为UDXYZ格式的位字符串。如果在表中条目U为1,则执行通常的单点广播路由,否则不执行。如果D为1,则该包的副本将存放在本地节点上,否则不存放。如果X为1,则该包的副本将离开正X链接,否则不离开。类似地对于位Y和Z。在负X、Y和Z方向上的三个链接与该示例不相关,这里为了简化起见将其忽略。
对于类值0,表中的条目在所有节点上为10000。因此带有类值0的包遵守最初的单点广播消息传送。对于类值1,表中的条目依赖于网络中交换器的位置。每个交换器上的条目模仿在例1中的多相多点广播中相应节点的操作。
对于类值1,交换器(0,0,0)具有条目00111。其假设多点广播的源节点不需要另一个副本。三个交换器(0,0,1)到(0,0,3)具有条目01111。交换器(0,0,4)具有条目01110。在具有顶角(0,1,0)、(0,1,4)、(0,3,0)和(0,3,4)的x=0平面上的十五个交换器具有条目01110。五个交换器(0,4,0)到(0,4,4)具有条目01100。具有顶角(1,0,0)、(1,0,4)、(3,0,0)和(3,0,4)的立方体的75个交换器具有条目01100。在具有顶角(4,0,0)、(4,0,4)、(4,4,0)和(4,4,4)的x=4平面上的25个交换器具有条目01000。上述是采用类1的多点广播示例所需信息的完整编码。简而言之,具有类值0的包遵守最初的单点广播消息发送。来源于节点(0,0,0)的具有类值1的包执行单相多点广播路由。
在上述用于单相多点广播的类路由示例中,UDXYZ位字符串决定包将被复制到哪个输出端口。类似的位字符串用于一些现有的单相多点广播的实现方法中。在2001年5月出版的R.Sivaram,R.Kesavan,D.K.Panda,C.B.Stunkel的“用于不规则网络中的有效多点广播的构架支持(Architectural Support for Efficient Multicasting inIrregular Networks)”,IEEE Trans.On Par.And Dist.System,第12卷(Vol.12),第5期(No.5)中描述了一个示例。另一个示例在专利号为US5333279:具有数据广播的自定时网络路由芯片(Self-timedmesh routing chip with data broadcasting),D.Dunning的专利中描述了。在现有的实现方法中,对于每个交换器的类似于上述UDXYZ的位字符串位于包头中。相反,在上述类路由的实现方法中,包头仅包括用于每个交换器以在表中查找UDXYZ条目的类值。
上述单相多点广播的类路由实现方法在某些方面不如这些现有的实现方法通用,但是在某些方面类路由更加有效。例如,在包头中,用于类值的字段比用于每个交换器的位字符串的字段更小。在上述示例中,类值为0或1,因此可以存储在头中的一位字段中。相反,上述UDXYZ的位字符串在头中需要5位字段。而且由于对于UDXYZ不同的交换器有不同的值,因此将需要用于UDXYZ值的多个字段。由于在头中越小的字段消耗环网络中越少的物理带宽,并给应用程序数据留出更多的带宽,因此它更有效。由于在该包能被转发之前,通常在交换器处,整个头必须被接收并检查错误,因此更小的字段还允许更小的延迟。
例5.来自网络中任意节点的单相多点广播
例4所示的使用类路由的单相多点广播允许单一节点作为消息来源。在2维3*3环的示例中,源为节点(0,0)。在3维5*5*5环的示例中,源为节点(0,0,0)。我们将其命名为异构单相多点广播,这是由于类路由表在不同的节点上具有不同的值。该表只用于输入链接的其中之一。
类路由还可以用来实现单相多点广播,其中源可以为网络中的任意节点。我们将其命名为同构单相多点广播,这些因为在诸如环的同构网络上,类路由表在每个节点上都具有相同的值。在单一节点上,类路由表在不同输入链接上具有不同的值。
这里描述的第一个示例是如例4中描述的相同的多点广播,即图1中所示的从节点(0,0)到3*3环的9个节点。在例4中其为异构单相多点广播;这里为同构单相多点广播。这里消息穿过网络的模式选择为类似于例4中的模式。
在例4的异构单相多点广播中,通过任意一个输入链接到达一个节点的包,使用相同的表基于类值来确定由包上的交换器所执行的操作。如例4中所示,对于异构多点广播,不同的节点在表中具有不同的值。相反,在该例中的同构单相多点广播中,每个交换器上的每个输入链接具有用于确定要在输入包上执行的操作的表。如下所示,对于同构多点广播,不同的节点在表中具有相同的值。
每个包头具有用于类值的字段。该值为0或1。每个交换器上的每个输入链接具有用于确定是否执行包的通常单点广播路由或是否执行单相多点广播路由的操作的表。表中的每个条目为UDXY格式的位字符串。如果在表中条目U为1,则执行通常的单点广播路由,否则不执行。如果D为1,则该包的副本将存放在本地节点上,否则不存放。如果X为1且包的X-目的地不是节点的X-位置,则该包的副本将离开正X链接,否则不离开。如果Y为1且包的Y-目的地不是节点的Y-位置,则该包的副本将离开正Y链接,否则不离开。对于每个节点,在负X和Y方向上的两个输出链接与该示例不相关,这里为了简化起见将其忽略。对于每个节点,在负X和Y方向上的两个输入链接与该示例不相关,这里为了简化起见将其忽略。
如上所述,确定包的X-目的地和Y-目的地是为了确定包上所执行的操作。因此对于从节点(0,0)广播至3*3环的其他8个节点,该包必须具有目的地(3,3)。
通常对于该例中的广播,包的目的地是在正X和正Y方向上距离广播源最远的节点。例如,对于从节点(1,0)广播至3*3环的其他8个节点,该包必须具有目的地(0,2)。
对于类值0,表中的条目在所有表上的所有节点上为1000。因此带有类值0的包遵守最初的单点广播消息传送。对于类值1,表中的条目依赖于该包到达哪个输入链接。该表如下所示。每个输入链接的条目使得所产生的同构多点广播模仿例4中的异构多点广播。
对于输入到来自负x方向上的链接的包
类值 UDXY值
0 1000
1 0111
对于输入到来自负y方向上的链接的包
类值 UDXY值
0 1000
1 0011
上述为使用类1的多点广播示例所需的完整的信息编码。简而言之,具有类值0的包遵守最初的单点广播消息传送。具有类值1的包执行同构单相多点广播路由。
给出上述2维环的示例后,该项技术可以很容易扩展到其他网络。上述示例中的类1可以认为在网络的正X和正Y象限提供多点广播。三个附加的相似类2、3和4能够提供在其他三个象限的多点广播:负X和正Y;正X和负Y;以及负X和负Y。这四个类允许网络中的任意节点使用四个多点广播来有效地将包广播至网络中的其他节点。在环上使用相同的多点广播技术可以是上述的单类技术速度的两倍。两倍快的速度是因为在源节点和目的地节点之间的距离减半。由于环上的任意节点可以视为网络中间的节点,因此该项技术可行。
上述技术可以很容易推广为D维网络或环。在D维网络或环上,2^D类网络或环中的任意节点使用2^D个多点广播,以便有效地将包广播至网络或环中所有其他的节点。在环上,替代的至所有节点的单一广播需要的时间是完成在环上2^D个多点广播的两倍长,这是由于对于单一广播,在源节点和最远的目的地之间的距离加倍。
对类表的改进和替换
代替或除了使用交换器上的表,类值以及包的可能的其他特征可以输入到算法中。如果表条目对于所有类值都相同,则使用算法会更好。如果交换器需要在表所要求的冲突操作之间作决定,则可以用不同表的相对优先权进行编程。
使用基于类的多点广播来创建其他类
在例5中,类值0用于通常的单点广播,而类值1可以用于广播至环中的所有节点。建立了广播机制后,它可用于广播任意数据。例如,该数据可以是其他类的类表条目。例如,例5识别用于额外的类2、3和4的需要。一旦通过任何方式建立了类1上的多点广播,类1可以用来创建类2、3和4。通常,一旦建立了特定类值上的通信,或者建立了值,该通信可以用于建立在其他类值上的通信。
例7.使用类函数的密集矩阵计算
本发明还使用环计算机网络上的类函数来进行密集矩阵计算。通过使用在环计算机网络上实现类函数的硬件,可以进行高性能密集矩阵计算。
类函数是用在该示例中用于基于类网络路由的多点广播的名称。通常,多点广播是对同行的其他节点。因此,通常对于类路由足以实现单相的基于路径的多节点消息传送,其在例1中描述。当多点广播不是对行,则它可以对平面,立方体或环或网络的其他高维子集。在这里,最佳性能要求类路由实现更复杂的广播,诸如例5中描述的单相多点广播。
本发明在分布式存储器并行超级计算机上用硬件类函数功能使矩阵变换算法执行得更快。这通过利用密集矩阵变换的通信模式可以由硬件类函数提供这一事实来实现。这导致了更快的执行时间。
这里讨论的算法在本领域中是公知的,例如,FORTRAN中的数值方法,科学计算领域(NUMERICAL RECIPES IN FORTRAN,THE ART OFSCIENTIFIC COMPUTING),第二版,作者是William H.Press等,特别在27页及其之后描述的内容。
图4描述了4×4栅格的处理器,其中每个处理器由其行、列数字标注。例如在行2列3中的处理器为p(2,3)。还示出了列i和行i(阴影区域)以及通过类函数发送的列/行的方向。
可以使用标准算法,例如高斯-若当(Gauss-Jordan)消去以及其他方法来变换密集线性矩阵。通常,要求的I/O为特殊一对多变化,其很好地适用于具有硬件类函数功能的并行超级计算机的通信功能。可以利用类函数来将数据多点广播至机器的一整行或机器表面。
用于本发明描述的一些术语解释如下:
高斯-若当算法:
不选主元的高斯-若当算法的内核在下面给出。初始b为单位矩阵,而a为进行变换计算的矩阵。
do i=1,N
do j=i,N
do k=1,N;(k不等于i)
b(k,j)=b(k,j)-[a(k,i)/a(i,i)]*b(i,j)
a(k,j)=a(k,j)-[a(k,i)/a(i,i)]*a(i,j)
enddo
enddo
enddo
方程1
分布式存储器并行超级计算机:
这种计算机包括多个节点。每个节点具有一个或多个在本地存储器上操作的处理器。节点通常连接为d维栅格,且它们通过这些栅格链接通信。如果栅格为带有P×P个处理器的2维,则N×N矩阵可以被划分使得其L×L块驻留在每个节点上(L=N/P)。如果该机器不连接为2维栅格,则通过适当“折叠(folding)”该矩阵到栅格上,问题经常到映射到机器上。不失一般性并为了使本发明的表达简单,处理器栅格通常假设为2维。
硬件类函数:
类函数为多点广播的硬件实现。假设处理器p(1,1)(这里该数值表示处理器在栅格上的位置,还参见图4)想要发送相同的数据包给处理器p(1,2)、p(1,3)和p(1,4)。通常这一操作通过首先发送数据至处理器p(1,2)来完成。一旦数据到达了p(1,2),软件路由读出该数据并将其存在存储器中。接着p(1,2)从存储器中读出数据并将数据发送至p(1,3)等。其问题为,它消耗了很长时间来全部接收数据包到存储器中并再次发送。如果建立了硬件使得到达p(1,2)的数据包同时存储在p(1,2)存储器中,并立即发送到p(1,3),则延迟可以大大降低。p(1,1)的硬件函数发送数据包到p(1,4),同时该包存放在其经过的中间处理器的存储器中,这称为硬件类函数。
本发明:
本发明利用了密集矩阵变换(例如使用高斯-若当法)的通信模式可以使用类函数这一事实。这可以从描述高斯-若当算法的方程1中看出:
a(i,i)通过一些其他方法通信,例如全局广播。接着对于b(k,j)和a(k,j)的方程右手边包含只具有一个不同于(k,j)但不是(a(k,i)、a(i,j)和b(i,j))的索引的元素。类函数通信可以用来穿过相关处理器发送这种元素。
例如,为了对给定的行k计算b(k,j)(1<j<N),需要a(k,i)被包含行k的所有处理器所知。因此必须沿包含矩阵行k的处理器行发送a(k,i)。这可以使用类函数性实现。如同已经讨论的那样,这导致总通信时间的大大降低。
这完成了对本发明的意图描述。该意图为高斯-若当算法描述但不限于该算法。例如该意图适用于“带有选主元的高斯-若当(Gauss-Jordan with Pivoting)”、“带有回带的高斯消去(GaussianElimination Back Substitution)”以及“LU分解(LU Decomposition)”算法。
该意图的实现(采用高斯-若当算法)以及所有细节在下面作为示例进行描述。为了使该示例易于理解,选择最简单的实现方法。更复杂的导致涉及更大数据包通信的实现方法也可以作出。依赖于处理器栅格大小和矩阵大小,可以需要更大尺寸的包,由于它们可以通过最小化延迟进一步提高性能。然而,这并不影响该意图的前提。
示例算法:
高斯-若当算法用于发现在P×P的栅格节点上均匀分布的大小为N×N的密集矩阵的矩阵变换。因此每个节点在其存储器中具有矩阵的L×L块(L=N/P)。硬件类函数用于穿过行和列来多点广播数据。对于该算法的直观图片请参看上面的图1。
对于每个1<i<N
1)使用类函数发送到a的左和右列i(a(k,i),1<k<N)
2)用a(i,i)换算(scale)行i的元素a,b
3)用类函数向上并向下发送a和b的新行i(a(i,j)和b(i,j),1<j<N)
4)现在所有处理器已经具有必要的元素用来对列i做标准高斯-若当步骤。在列i的末尾和单位矩阵的列i相同。
重复
示例结尾:
尽管这里详细描述了用于类网络路由的本发明的几个实施例和变化,很明显本发明的公开和示教将对本领域的技术人员暗示出多种另外的设计。
Claims (19)
1、一种在网络中的类网络路由方法,允许位于网络节点上的计算处理器的网络中的计算处理器将消息多点广播至网络中多个其他计算处理器,包括:
将消息分成通过网络传送的一个或多个消息包;
在消息包上添加类值;
在网络中的每个交换器处,使用类值作为至少一个表的索引或是一算法的输入,该表所存储的值或该算法所产生的值确定由消息包上的交换器执行的操作。
2、权利要求1的方法,包括提供类值,该类值用来为通过网络进行的消息包的多相多点广播,确定基于路径的多节点消息传送的交换器操作,以确定本地节点是否将在该本地节点上保存该消息包的副本。
3、权利要求2的方法,包括:
提供类值以执行多节点消息传送;
为每个交换器提供表,以确定该消息包的副本是否存放在该本地节点上。
4、权利要求1的方法,包括提供类值,该类值确定消息包到网络中的多个目的地节点的多目的地消息传送的交换器操作。
5、权利要求1的方法,其特征在于:交换器将输入包复制到多个输出链接上。
6、权利要求5的方法,包括为类路由表提供不同输入链接的不同值。
7、权利要求4的方法,其特征在于:消息包为多点广播到网络的一整行或表面。
8、权利要求1的方法,包括:
在具有硬件类函数多点广播功能的分布式存储器并行计算机的网络上执行密集矩阵变换算法,其中硬件类函数多点广播功能同时在该消息包到达的存储器中存储消息包,并立即发送该消息包至一个或多个其他节点,同时将该消息包存储在存储器中,使得密集矩阵变换算法的通信模式由硬件类函数多点广播功能提供,以最小化通信延迟。
9、权利要求1的方法,其特征在于:该网络包括分布式存储器并行计算机网络;
为计算机网络的每个节点提供一个或多个在本地存储器上操作的处理器;
通过使用类路由来协调计算机的多个节点的操作,以便在多个节点之间传送消息。
10、权利要求9的方法,包括:
为网络的每个节点配一个交换器;
连接这些交换器以形成三维环,其中每个交换器链接到六个其他交换器,这些链接连接到三维的每一维的正方向上的交换器,并连接到三维的每一维的负方向上的交换器;
通过环上的x、y、z逻辑地址识别每个交换器,其中每个节点具有其交换器的地址;
包括用于包头中逻辑地址的字段值,以使该包能识别目的地节点。
11、权利要求1的方法,包括使用从源节点到D维立方体的所有节点的D相多点广播,其中在第一相中,源节点向发送节点的行中的一行的所有其他节点发送多节点消息,在第二相中,第一相的每个接收者和第一相的每个发送者向正交于第一相的行的行中的所有其他节点同时发送多节点消息,在第三相中,第二相的每个接收者和第二相的每个发送者向正交于第一和第二相的行的行中的所有其他节点同时发送多节点消息,后面的相也一样,使得立方体的所有节点在所有相之后接收到广播消息。
12、权利要求1的方法,包括为每个交换器提供具有相关类值的表,这些类值确定消息包的副本是否存放在目的地节点上。
13、权利要求1的方法,用于D维网络,包括提供2^D个类值用于在每个2^D方向上的多点广播,以允许网络中的每个节点使用2^D个多点广播来有效地将包广播至网络中所有其他节点。
14、权利要求1的方法,包括提供类值,该类值确定通过网络将消息包传送到单一目的地节点的单点广播的交换器操作。
15、权利要求1的方法,包括提供类值,以使得节点获得并存储通过其交换器传送的信息包,以提供在网络执行上的信息。
16、权利要求11的方法,包括提供类值以确定该信息包的副本是否离开X链接,是否离开Y链接,并是否离开Z链接等D维中的其他链接。
17、权利要求1的方法,包括提供不同的表并为不同的表提供优先权,以使得交换器在不同表指示的冲突操作之间做确定。
18、权利要求1的方法,包括使用类值作为到算法的输入,用于确定交换器的交换器操作。
19、权利要求1的方法,包括使用基于类的多点广播以创建其他类,使得用于特定类值的表的内容通过使用另一个类值来确定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27112401P | 2001-02-24 | 2001-02-24 | |
US60/271,124 | 2001-02-24 | ||
PCT/US2002/005573 WO2002069550A1 (en) | 2001-02-24 | 2002-02-25 | Class network routing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1493128A true CN1493128A (zh) | 2004-04-28 |
CN100499446C CN100499446C (zh) | 2009-06-10 |
Family
ID=68499832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028053788A Expired - Fee Related CN100499446C (zh) | 2001-02-24 | 2002-02-25 | 类网络路由方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7587516B2 (zh) |
EP (1) | EP1374468A4 (zh) |
JP (1) | JP4478390B2 (zh) |
KR (1) | KR100598667B1 (zh) |
CN (1) | CN100499446C (zh) |
CA (1) | CA2436413C (zh) |
IL (2) | IL157514A0 (zh) |
WO (1) | WO2002069550A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401858A (zh) * | 2013-07-29 | 2013-11-20 | 北京交通大学 | 片上路由器拥塞感知范围的扩大方法 |
CN108696386A (zh) * | 2017-04-12 | 2018-10-23 | 萨格姆康姆能源和电信公司 | 广播消息的配置方法 |
CN112039786A (zh) * | 2019-06-04 | 2020-12-04 | 清华大学 | 基于Torus网络的广播方法 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006020298A2 (en) * | 2004-07-19 | 2006-02-23 | Blumrich Matthias A | Collective network for computer structures |
US8626957B2 (en) | 2003-08-22 | 2014-01-07 | International Business Machines Corporation | Collective network for computer structures |
US20050041654A1 (en) | 2003-08-20 | 2005-02-24 | Lee Hee-Choul | Multi-dimensional disconnected mesh switching network |
KR100556885B1 (ko) * | 2003-09-18 | 2006-03-03 | 엘지전자 주식회사 | 동보 메시지 구조 및 전달 방법 |
KR100981549B1 (ko) * | 2003-12-31 | 2010-09-10 | 주식회사 케이티 | Ip 기반의 mpls 네트워크에서 차등화 서비스의서비스 클래스별 터널 설정 방법 |
US20060104270A1 (en) * | 2004-11-16 | 2006-05-18 | Inching Chen | Method and apparatus for communicating within a segmented network |
KR101337126B1 (ko) | 2005-05-12 | 2013-12-05 | 삼성전자주식회사 | 무선랜 매쉬 네트워크에서의 핸드오버에 따른 재결합 수행 방법 및 장치 |
KR100689752B1 (ko) * | 2006-06-22 | 2007-03-08 | (주)건축사사무소 제일건축 | 공동주택용 창문의 추락방지 구조 |
CN100451972C (zh) * | 2006-09-26 | 2009-01-14 | 杭州华三通信技术有限公司 | 提高多核系统访问临界资源速度的方法和装置 |
US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US8140826B2 (en) * | 2007-05-29 | 2012-03-20 | International Business Machines Corporation | Executing a gather operation on a parallel computer |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
US7840779B2 (en) * | 2007-08-22 | 2010-11-23 | International Business Machines Corporation | Line-plane broadcasting in a data communications network of a parallel computer |
JP2009104300A (ja) * | 2007-10-22 | 2009-05-14 | Denso Corp | データ処理装置及びプログラム |
US20090158276A1 (en) * | 2007-12-12 | 2009-06-18 | Eric Lawrence Barsness | Dynamic distribution of nodes on a multi-node computer system |
US8416702B2 (en) | 2008-02-08 | 2013-04-09 | Nec Corporation | Network switch, path setting method, and program |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in 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 |
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 |
JP5435024B2 (ja) | 2009-04-28 | 2014-03-05 | 日本電気株式会社 | ネットワークスイッチ、経路設定方法、プログラムおよび並列計算機システム |
KR101033425B1 (ko) * | 2009-09-01 | 2011-05-09 | 한국과학기술원 | 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치 |
US10698859B2 (en) * | 2009-09-18 | 2020-06-30 | The Board Of Regents Of The University Of Texas System | Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture |
US8103910B2 (en) * | 2009-11-13 | 2012-01-24 | International Business Machines Corporation | Local rollback for fault-tolerance in parallel computing systems |
FR2957176B1 (fr) * | 2010-03-02 | 2012-04-06 | Commissariat Energie Atomique | Puce electronique et circuit integre comportant une telle puce electronique |
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 |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
KR200453542Y1 (ko) * | 2010-07-16 | 2011-05-13 | 우명수 | 실내용 연동식 목문의 수동개폐구조 |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
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 |
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 |
WO2013098954A1 (ja) * | 2011-12-27 | 2013-07-04 | 富士通株式会社 | 情報処理装置、演算処理装置及び情報処理装置の制御方法 |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
US9413849B2 (en) | 2013-12-05 | 2016-08-09 | International Business Machines Corporation | Distributing an executable job load file to compute nodes in a parallel computer |
US9898441B2 (en) | 2016-02-05 | 2018-02-20 | Google Llc | Matrix processing apparatus |
US9805001B2 (en) | 2016-02-05 | 2017-10-31 | Google Inc. | Matrix processing apparatus |
US10412472B2 (en) * | 2017-07-10 | 2019-09-10 | Maged E. Beshai | Contiguous network |
US10757488B2 (en) * | 2018-08-30 | 2020-08-25 | Maged E. Beshai | Fused three-stage networks forming a global contiguous network |
JP2020091691A (ja) * | 2018-12-06 | 2020-06-11 | 日本電信電話株式会社 | 逆行列計算装置および逆行列計算処理方法 |
US11206467B2 (en) * | 2019-09-04 | 2021-12-21 | Maged E. Beshai | Global contiguous web of fused three-stage networks |
US11616735B2 (en) * | 2020-08-23 | 2023-03-28 | Maged E. Beshai | Deep fusing of clos star networks to form a global contiguous web |
CN116821044B (zh) * | 2023-08-17 | 2024-01-09 | 飞腾信息技术有限公司 | 处理系统、访存方法及计算机可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151900A (en) * | 1991-06-14 | 1992-09-29 | Washington Research Foundation | Chaos router system |
US5331637A (en) * | 1993-07-30 | 1994-07-19 | Bell Communications Research, Inc. | Multicast routing using core based trees |
US6584075B1 (en) * | 1997-06-30 | 2003-06-24 | Sun Microsystems, Inc. | Efficient caching of routing information for unicast and multicast connections |
US6370145B1 (en) * | 1997-08-22 | 2002-04-09 | Avici Systems | Internet switch router |
US6230252B1 (en) * | 1997-11-17 | 2001-05-08 | Silicon Graphics, Inc. | Hybrid hypercube/torus architecture |
US6112323A (en) * | 1998-06-29 | 2000-08-29 | Microsoft Corporation | Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems |
US6598145B1 (en) * | 1999-02-12 | 2003-07-22 | Avici Systems | Irregular network |
US6853635B1 (en) * | 2000-07-24 | 2005-02-08 | Nortel Networks Limited | Multi-dimensional lattice network |
US7099323B1 (en) * | 2000-12-20 | 2006-08-29 | Nortel Networks Limited | Method, apparatus and system for management of multicast routes for a plurality of routing protocols in a network device |
-
2002
- 2002-02-25 KR KR1020037010842A patent/KR100598667B1/ko not_active IP Right Cessation
- 2002-02-25 CN CNB028053788A patent/CN100499446C/zh not_active Expired - Fee Related
- 2002-02-25 JP JP2002568556A patent/JP4478390B2/ja not_active Expired - Fee Related
- 2002-02-25 IL IL15751402A patent/IL157514A0/xx unknown
- 2002-02-25 EP EP02709667A patent/EP1374468A4/en not_active Withdrawn
- 2002-02-25 CA CA2436413A patent/CA2436413C/en not_active Expired - Fee Related
- 2002-02-25 US US10/468,999 patent/US7587516B2/en not_active Expired - Fee Related
- 2002-02-25 WO PCT/US2002/005573 patent/WO2002069550A1/en active IP Right Grant
-
2003
- 2003-08-20 IL IL157514A patent/IL157514A/en not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401858A (zh) * | 2013-07-29 | 2013-11-20 | 北京交通大学 | 片上路由器拥塞感知范围的扩大方法 |
CN103401858B (zh) * | 2013-07-29 | 2016-01-13 | 北京交通大学 | 片上路由器拥塞感知范围的扩大方法 |
CN108696386A (zh) * | 2017-04-12 | 2018-10-23 | 萨格姆康姆能源和电信公司 | 广播消息的配置方法 |
CN108696386B (zh) * | 2017-04-12 | 2023-02-17 | 萨格姆康姆能源和电信公司 | 网状通信网络的系统、配置服务器、电子设备及其配置方法 |
CN112039786A (zh) * | 2019-06-04 | 2020-12-04 | 清华大学 | 基于Torus网络的广播方法 |
CN112039786B (zh) * | 2019-06-04 | 2021-11-19 | 清华大学 | 基于Torus网络的广播方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100598667B1 (ko) | 2006-07-13 |
CA2436413C (en) | 2011-09-27 |
CA2436413A1 (en) | 2002-09-06 |
IL157514A (en) | 2010-02-17 |
KR20030082598A (ko) | 2003-10-22 |
US7587516B2 (en) | 2009-09-08 |
EP1374468A1 (en) | 2004-01-02 |
JP2004533035A (ja) | 2004-10-28 |
JP4478390B2 (ja) | 2010-06-09 |
WO2002069550A1 (en) | 2002-09-06 |
CN100499446C (zh) | 2009-06-10 |
IL157514A0 (en) | 2004-03-28 |
EP1374468A4 (en) | 2008-12-10 |
US20040081155A1 (en) | 2004-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1493128A (zh) | 类网络路由 | |
CN1020533C (zh) | 并行计算系统中的可适应路径选择 | |
CN1229739C (zh) | 全局中断和障碍网络 | |
CN1269053C (zh) | 分组路由方法、系统及用于分组路由的可扩展网络交换机 | |
Chen et al. | Survey on routing in data centers: insights and future directions | |
CN1493041A (zh) | 环形和树形网络中的算术函数 | |
Li et al. | Efficient collective communications in dual-cube | |
CN1728688A (zh) | 交换节点堆叠中的交换节点的远程控制 | |
CN1744552A (zh) | 用于提供网络虚拟化的方法和装置 | |
CN1404264A (zh) | 统一进程间通信 | |
Tseng et al. | Bandwidth-optimal complete exchange on wormhole-routed 2D/3D torus networks: A diagonal-propagation approach | |
CN1929444A (zh) | 运营商边界节点、虚拟专用局域网服务通信方法及系统 | |
Lin et al. | Adaptive multicast wormhole routing in 2D mesh multicomputers | |
Aydogan et al. | Adaptive source routing in multistage interconnection networks | |
CN1946060A (zh) | 实现重定向报文正确转发的方法及第一部件、第二部件 | |
Tsai et al. | An extended dominating node approach to collective communication in all-port wormhole-routed 2D meshes | |
Zhang et al. | Design and analysis of pipelined broadcast algorithms for the all-port interlaced bypass torus networks | |
Moh et al. | Four-ary tree-based barrier synchronization for 2D meshes without nonmember involvement | |
Robinson et al. | Efficient collective data distribution in all-port wormhole-routed hypercubes | |
CN103999435B (zh) | 用于高效的网络地址转换和应用层网关处理的装置和方法 | |
CN1298147C (zh) | 一种在组播数据包转发时实现减少内存占用空间的方法 | |
Moadeli et al. | Quarc: A high-efficiency network on-chip architecture | |
CN1761223A (zh) | 具有通用智能网络节点的通用智能网络 | |
Tse | Switch fabric design for high performance IP routers: A survey | |
CN1608392A (zh) | 信号置换 |
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 |
Granted publication date: 20090610 Termination date: 20190225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |