CN1493042A - 在一个分布式存储器的并行多节点计算机上的多维快速傅里叶变换的高效实现 - Google Patents

在一个分布式存储器的并行多节点计算机上的多维快速傅里叶变换的高效实现 Download PDF

Info

Publication number
CN1493042A
CN1493042A CNA02805377XA CN02805377A CN1493042A CN 1493042 A CN1493042 A CN 1493042A CN A02805377X A CNA02805377X A CN A02805377XA CN 02805377 A CN02805377 A CN 02805377A CN 1493042 A CN1493042 A CN 1493042A
Authority
CN
China
Prior art keywords
node
fft
dimension
multidimensional
grouping
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
Application number
CNA02805377XA
Other languages
English (en)
Other versions
CN1244878C (zh
Inventor
V������ŵ��
盖恩V·班诺特
陈东
��������ķ������
艾伦G·加拉
2
马克E·贾姆帕帕
��D��˹̹��-����
菲利普·海德伯格
M
伯克哈德D·斯坦马彻-伯罗
帕夫罗斯M·弗拉纳斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1493042A publication Critical patent/CN1493042A/zh
Application granted granted Critical
Publication of CN1244878C publication Critical patent/CN1244878C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed 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/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting 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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control 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/77Control 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Abstract

本发明的目的在于一种用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的方法、系统和程序存储设备,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,其包含:经由该网络跨越该计算机系统的多个节点分布在一个第一维度中的、该数组的多个元素以便于一个第一一维FFT;在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT;通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换了的元素;以及在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT,其中随机次序便于网络的高效利用由此高效地实现多维FFT。该“所有-到-所有”重新分布或者数组元素在除了在分布存储器、并行巨型计算机上的多维FFT之外的应用中被进一步更高效地实现。

Description

在一个分布式存储器的并行多节点计算机上 的多维快速傅里叶变换的高效实现
交叉引用
本发明要求享受于2001年2月24号提出的、标题为MASSIVELYPARALLEL SUPERCOMPUTER的共同拥有的、待决美国临时专利申请60/271,124的利益,其全部内容和公开就好像在此被充分阐述的那样通过引用被明确地包含在此。这个专利申请另外涉及以下在同一日期提出的、共同拥有的待决美国专利申请,其中这些申请中每一个的全部内容和公开就好像在此充分阐述的那样通过引用被明确地包含在此。美国专利申请(YOR920020027US1、YOR920020044US1(15270)),“Class Networking Routing”;美国专利申请(YOR920020028US1(15271)),“AGlobal Tree Network for Computing Structures”;美国专利申请(YOR920020029US1(15272)),“Global Interruptand Barrier Networks”;美国专利申请(YOR920020030US1(15273)),′Optimized Scalable Network Switch";美国专利申请(YOR920020031US1、YOR920020032US1(15258)),“ArithmeticFunctions in Torus and Tree Networks”;美国专利申请(YOR920020033US1、YOR920020034US1(15259))、“Data CaptureTechnique for High Speed Signaling”;美国专利申请(YOR920020035US1(15260))、“Managing Coherence Via Put/Get Windows”;美国专利申请(YOR920020036US1、YOR920020037US1(15261))、“Low Latency Memory Access And Synchronization”;美国专利申请(YOR920020038US1(15276))、“Twin-Tailed Fail-Over for Fileservers Maintaining Full Performance in thePresence of Failure”;美国专利申请(YOR920020039US1(15277))、“Fault Isolation Through No-Overhead Link LevelChecksums”;美国专利申请(YOR920020040US1(15278)),“EthernetAddressing Via Physical Location for Massively ParallelSystems”;美国专利申请(YOR920020041US1(15274))、“FaultTolerance in a Supercomputer Through DynamicRepartitioning”;美国专利申请(YOR920020042US1(15279))、“Checkpointing Filesystem”;美国专利申请(YOR920020043US1(15262))、“Efficient Implementation of MultidimensionalFast Fourier Transform on a Distributed-Memory ParallelMulti Node Computer”;美国专利申请(YOR920010211US2(15275))、“A Novel Massively Parallel Supercomputer”;以及美国专利申请(YOR920020045US1(15263))、“Smart Fan Modules andSystem”。
发明背景技术
发明技术领域
本发明因为例如应用于在科学、数学、工程等等领域中的计算,所以通常涉及一个分布式存储器、信息传递并行多节点计算机和相关的系统软件的领域。尤其是,本发明的目的在于一个用于在分布式存储器、并行巨型计算机上高效地实现一个多维快速傅里叶变换(即,“FFT”)的系统和方法。
现有技术的描述
线性转换,诸如傅里叶变换(即,“FT”)已经被广泛地用于解决在科学、数学、工程等等领域问题的范围。FT把一个给定问题改变成为一个可以被更容易地解决的问题,而且FT在许多不同的应用中使用。例如对于一个N个变量的系统,FT实质上表示该N个变量从坐标空间到动量空间的变化,其中每个变量的新值取决于所有老的变量的值。这样一个N个变量的系统通常作为一个N个元素的数组存储在一台计算机上。FT通常使用快速傅里叶变换(即,“FFT”)进行计算。该FFT在许多标准课本中进行了描述,诸如出版社出版的数值方法等(剑桥大学出版社在1986,1992年出版,ISBN:0-521-43064-X,由W.H.Press、S.A.Teukolsky、W.A.Vetterling和BrianP Flannery所著的“Fortran数值方法”中的第490-529页)。大部分计算机生产商提供了库函数调用来为它们的特定的处理器优化FFT。例如,在工程和科学子程序库中,在IBM的RS/6000处理器上对FFT进行了充分的优化。这些库例行程序需要执行该FFT所必须的数据(即,上述元素)被驻留在一个节点的本地存储器中。
在一个多维FFT中,一个多维数组的N个元素被分布在跨越一个分布式存储器、并行多节点计算机的节点的多个维度中。在分布存储器、并行多节点计算机上执行的许多应用把它们执行时间的一大部分花费在计算该多维FFT上。因为该分布存储器、并行多节点计算机的一个动机就是更快的执行,所以对该分布数组多维FFT的快速计算具有关键的重要性。该数组的N个元素最初以某种对于一个应用所特有的任意方式跨越节点分布。为了计算该多维FFT,则重新分布该元素数组以便在每个节点上的数组的一部分都包含在该x维度中元素的一个完整行。然后执行在每个节点上、在该X维度中每个行上的一个一维FFT。因为该行对于一个节点来说是本地的,以及因为在每个行上的每个一维FFT与其它无关,在每个节点上执行的一维FFT不须要和任何其它节点进行通信并且可以使用上述的库例行程序执行。在一维FFT之后,重新分布数组元素以便在每个节点上的、该数组的一部分包含在y维度中的一个完整行。此后,执行在每个节点上、在该y维度中每个行上的一个一维FFT。如果该数组有超过两个的维度,则为每个超过该x维度和y维度的连续数组维度重复该重新分布和一维FFT。该产生的数组可以重新分布成为为该应用所特有的某个任意方式。
依次处理x维度和y维度对于多维FFT来说不是很重要的。代之以,该数组的维度可以以任何次序进行处理。对于某些应用或者某些计算机来说,某种次序可以利用某些性能的优点而且因此具有一个比其它次序更快的执行速度。例如,数组以某种为该应用所特有的任意方式跨越该节点的初始分布,可以符合在y维度中为一维FFT所必须的分布。在这种情况下,让多维FFT在处理x维度和任何其它的剩余维度之前首先处理y维度可能是更快的。
在如上所述的多维FFT的实现中,在该一维FFT之间的数组的每次重新分布都是一个“所有-到-所有”通信或者重新分布的一个示例。在所有-到-所有重新分布中,该分布存储器、并行多节点计算机中的每个节点使用多个分组把唯一的数据(即,数组中的元素)发送到所有其它的节点。  如上所述,在分布存储器、并行多节点计算机上多维FFT的快速计算具有关键性的意义。在如上所述的实现中通常执行时间的一大部分被花费在跨越该分布存储器、并行多节点计算机的节点的数组重新分布上。尤其是,执行时间的一大部分被花费在跨越该分布存储器、并行多节点计算机中的节点的“所有-到-所有”数组元素的重新分布上。
因此在本技术领域有一个提供一个用于在该分布式存储器、并行巨型计算机上高效地实现多维FFT的系统和方法的需要。  特别地,在本技术领域有一个用于提供一个用于在该分布存储器、并行巨型计算机上高效地实现“所有-到-所有”重新分配来高效地实现多维FFT的系统和方法的需要。
发明概述
因此本发明的一个目的是提供一个用于在一个分布存储器、并行巨型计算机上分布的一个数组上高效地实现多维FFT的系统和方法。
本发明的另一个目的是提供一个用于通过在该分布存储器、并行巨型计算机上高效地实现“所有-到-所有”重新分布,来在该数组上高效地实现多维FFT的系统和方法。
本发明的还有另一个目的是提供一个用于在不同于在分布存储器、并行巨型计算机上的多维FFT的应用中高效地实现“所有-到-所有”重新分布的系统和方法。
依据本发明的一个实施例,提供了一种用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:经由该网络,跨越该计算机系统的多个节点分布在一个第一维度中、该数组的多个元素,以便于一个第一一维FFT;在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT;通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换了的元素;以及在第二维度中、在每个节点处重新分布的数组的元素上执行一个第二一维FFT,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
依据本发明的另一个实施例,提供了一个用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的系统,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该系统包含:用于经由该网络,跨越该计算机系统的多个节点分布在一个第一维度中的、该数组的多个元素以便于一个第一一维FFT的装置;用于在在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT的装置;用于通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换了的元素的装置;以及用于在在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT的装置,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
依据本发明的还有另一个实施例,提供了一个可触知地包含指令程序的程序存储设备,其中的指令程序可由一个机器执行来执行一种用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:经由该网络,跨越该计算机系统的多个节点在一个第一维度中分布该数组的多个元素,以便于一个第一一维FFT;在在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT;通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换了的元素;以及在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
依据本发明的一个进一步实施例,提供了一种用于高效地重新分布一个多维数组的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在每个节点处重新分布这些元素,其中该随机次序便于网络的高效利用。
依据本发明的还有一个进一步实施例,提供了一个用于高效地重新分布一个多维数组的系统,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该系统包含:一个用于通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在每个节点处重新分布这些元素的装置,其中该随机次序便于网络的高效利用。
依据本发明的还有一个进一步实施例,提供了一个可触知地包含一个指令程序的程序存储设备,该指令程序可由一个机器执行来执行一种用于高效地重新分布一个多维数组的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在每个节点处重新分布这些元素,其中该随机次序便于网络的高效利用。
附图简要说明
鉴于以下结合附图进行的详细说明,本发明的目的,特征以及优点对于本领域技术人员将变得明显,其中附图包含:
图1说明了依据本发明的一个示例分布存储器、并行巨型计算机,该并行巨型计算机包含9个经由一个使用一个2维3x3Torus网络的多维网格互连的节点;
图2说明了依据本发明,一个来自图1中的分布存储器、并行巨型计算机的示例节点的更详细表示;
图3说明了依据本发明的一个示例二维9行9列数组,其可以被高效地实现用于多维FFT;
图4说明了依据本发明,一个跨越在图1中的巨型计算机的节点的、图3中的二维数组的示例分布;
图5说明了依据本发明,一个跨越在图1中的巨型计算机的节点分布的二维数组的一个示例第一一维FFT;
图6说明了依据本发明,一个在图5中的第一一维FFT之后产生的二维数组的一个示例重新分布;
图7说明了一个依据本发明,图6中的重新分布数组的示例第二一维FFT;
图8说明了一个依据本发明,描述在图4-7中说明的二维FFT的实现的示例方法流程图;
图9说明了一个依据本发明,描述用为在该分布存储器、并行巨型计算机上的其它节点指定的分组填充在该示例节点上的输出队列的示例方法流程图;以及
图10说明了一个依据本发明,描述在该示例节点的输出队列中的分组为了在该Torus网络100上的后续插入,如何被流入FIFO中的示例方法流程图。
本发明最佳实施例的详细说明
本发明的目的是一个用于在分布存储器、并行巨型计算机上高效地实现多维快速傅里叶变换(即,“FFT”)的系统和方法。尤其是,本发明实现了分布在该分布存储器、并行巨型计算机的节点处的元素的一个高效“所有-到-所有”重新分布以得到多维FFT的一个高效实现。
依据本发明,FFT作为一系列一维转换在该分布存储器、并行巨型计算机上实现,其需要一个或多个跨越该分布存储器、并行巨型计算机中的节点的一个多维数组的“所有-到-所有”重新分布。该分布式存储器、并行巨型计算机利用一个基于Torus的网络用于互连该巨型计算机以及在该巨型计算机的节点之间进行通信。如将在下面描述的那样,每个节点实现了一个硬件路由器,用于跨越经由基于Torus的网络互连的该巨型计算机节点,高效地路由包含该数组元素的分组。因此依据本发明,本发明把作为该多维数组的一系列一维转换的多维FFT的实现和上述硬件路由连接起来,以获得高效的FFT实现。
进一步依据本发明,该分布存储器、并行巨型计算机包含多个节点,每个节点都包含至少一个在一个本地存储器上进行操作的处理器。该节点作为一个多维网格进行互连而且它们经由网格链接进行通信。不用损失普遍性以及为了让这个发明描述可为本领域的一个技术人员容易地理解,巨型计算机的多维节点网格将被描述为一个示例2维网格。  尽管在下面描述中仅仅描述了2维节点网格的事实,但是可以考虑到在本发明的范围之内,基于本发明的示教可以容易地提供其它维度的节点网格。要注意到:该分布存储器、并行巨型计算机可能使用一个3维或者更大的基于Torus的体系结构。另外,不用损失普遍性以及为了让这个发明描述可为本领域的一个技术人员容易地理解,由该多维FFT使用的多维数组将被描述为一个示例2维数组。尽管有在下面描述中仅仅描述了2维数组的事实,但是可以考虑到在本发明的范围之内,基于本发明的示教可以容易地提供附加维度的数组。要进一步注意到:在基于Torus的体系结构的维度数目和在数组中的维度数目之间没有对应关系。该数组必须具有足够的大小以便它能够跨越该巨型计算机的节点或者一个节点子集分布,用于依据本发明实现多维FFT。
图1是依据本发明的一个分布存储器、并行巨型计算机的示例说明,该并行巨型计算机包含9个经由一个使用一个2维3x3Torus网络100的多维网格互连的节点。要注意到为了简单和清楚起见,在示例方式中的节点数目局限于9个节点,以及取决于该分布存储器、并行巨型计算机的特定体系结构需求,节点的数目可以显著地变化。图1描述了标记为Q11-Q33的9个节点,其中的一对通过一个网格链接互连。总计,9个节点Torus网络100由18个网格链接互连,其中每个节点经由一个相应的网格链接直接互连到在该Torus网络100中的四个其它节点。要注意到不同于一个网格,示例2维Torus网络100不包含边沿节点。例如,节点Q11经由网格链接102互连到节点Q31;经由网格链接104互连到节点Q13;经由网格链接106互连到节点Q21;以及经由网格链接108最后互连到节点Q12。作为另一个示例,节点Q22经由网格链接110互连到节点Q12;经由网格链接112互连到节点Q21;经由网格链接114互连到节点Q32以及经由网格链接116最后互连到节点Q23。其它的节点以类似的方式进行互连。
进一步参考图1,在节点之间通信的数据(即,数组中的元素)在一个或多个分组中在该网络上进行传输。对于在一对节点之间的任何给定通信,如果要被通信的数据数量超过了由该Torus网络100支持的分组大小,则需要多个分组。一个分组包含一个分组标题和由该分组携带的数据。该分组标题包含由Torus网络100所需要的从一个源节点传输分组到一个目的节点的信息。在当前专利申请的分布存储器、并行巨型计算机中,在该网络上的每个节点由一个逻辑地址标识而且该分组标题包含一个目的地址,以便该分组被自动地路由到在该网络上由一个目标标识的节点。
图2是依据本发明,来自图1中的分布存储器、并行巨型计算机的一个示例节点,例如节点Q11的一个更详细表示200。节点Q11包含至少一个在本地存储器204上进行操作的处理器202。该节点进一步包含一个路由器206,其路由,即发送和接收,在网格链接102、104、106和108上的分组,这些网格链接分别把节点Q11连接到它的邻居节点Q31、Q13、Q21和Q12,如同在图1中特别地说明的那样。还有进一步,该节点包含一个接收缓存器208用于缓存由路由器206接收的分组,这些分组的目的地为本地处理器202。本地处理器202可以容易地定期轮询接收缓存器208以便确定在该接收缓存器中是否有分组,并且然后检索在该接收缓存器208中缓存的分组。取决于一个特定的应用和分组,本地处理器202可以写入分组的内容到存储器204中。
进一步参考图2,节点Q11包含四个特别被标记为X+、X-、Y+和Y-的注入先进先出(即,“FIFO”)缓存器810。
处理器把输出分组放置到本地存储器2104的一个或多个输出队列212中,这些输出队列212存储目的地为其它节点的分组直到它们能够被放置到注入FIFO 210中为止。当注入FIFO不是充满时,处理器把输出分组放置到该注入FIFO 210中。  依据到达一个注入FIFO 210标题的一个特定分组,由路由器206把该分组从注入FIFO 210中删除,并且该路由器206把该分组插入到一个朝向一个用于该特定分组的目的节点的网格链接102、104、106和108上。该四个注入FIFO 210由路由器206以及本地处理器202的硬件相等地处理。
还进一步参考图2,路由器206包含几个同时路由的特点。该路由首先表示虚拟的开通式路径选择。例如,如果一个在一个网格链接上的进来分组的目的地不是节点Q11的本地处理机202,则路由器206把该分组转发到外出网格链接102、104、106和108中的一个上。路由器206执行该转发而不涉及本地处理器202。该路由进一步表示最短路径路由选择。例如,一个由节点Q11发送到节点Q13的分组(参见图1和8)经由表示一个最短路径路由的网格链接104进行传播。任何其它通路将是相对比较长的。作为另一个示例,由节点Q11发送到节点Q22的分组可以经由网格链接106和112进行传播,或者作为替换经由网格链接108和110进行传播。这类路由表示一个自适应类型的路由选择。因此,在这里可以有一个网格链接的选择,通过这个网格链接选择,经由基于Torus的网络100,一个分组可以在传输中离开一个节点前往另一个节点。在先前的示例中,分组可以经由网格链接106或者108离开节点Q11。自适应路由选择允许路由器206对一个分组选择较不忙的外出网格链接或者基于某些其它的条件选择外出网格链接。要注意到:自适应路由选择不仅仅在一个分组的源节点,例如节点Q11处执行,而是在一个分组经由图1中基于Torus的网络100去往该分组的目的节点的路上所通过的每个中间节点处执行。在下面参考图9和10的描述特别地描述了本发明如何执行分组经由Torus网络100,跨越巨型计算机的节点的上述路由。
图3是一个依据本发明的包含81个元素的示例二维9行乘9列数组300,其可以被高效地实现用于该多维FFT。要注意到:示例二维数组300被容易地扩展到其它包含一个不同的行和列数的二维数组(例如,10行乘11列的二维数组),其可以依据本发明被使用用于在分布存储器、并行巨型计算机上实现FFT。在数组200中,数组的第一行包含元素A11、A12...A19,而数组的第一列包含元素A11、A21...A91。
图4是一个依据本发明,图3中的二维数组300如何跨越在图1中的节点Q11-Q33分布的示例分布说明400。要注意到:该数组最初以某种对于一个应用所特有的任意方式跨越节点分布。依据本发明,该数组被重新分布以便在每个节点Q11...Q33上的一部分数组都包含在图4中说明的分布。这个重新分布类似于如下参考图5和6描述的那样。如在该分布说明400中特别描述的那样,图1中的每个节点都包含图3中的二维数组300的一部分。例如,节点Q11包含数组300的第一行,即,元素A11、A12...A19。作为另一个示例,节点Q12包含数组300的第二行,即元素A21、A22...A23。要注意到,如在图4的分布说明400中特别描述的那样,图1中的其它节点Q13-Q33包含数组300的相应行3到9。在图4的示例分布中,一个特定节点到一个数组元素特定行的分配不是重要的。相反,要注意到任何分配都是可行的。对于各种应用和/或计算机,某些分配可以利用由应用和/或计算机提供的性能的优点并且因此产生比其它分配更快的执行。例如,执行多维FFT最快速的方法可能是把节点Q1和Q12的分配由在图4中说明的那些颠倒过来。
图5是一个描述了在图4的二维数组上的一个第一一维FFT的示例说明500,这些二维数组经由图1中的二维Torus网络100跨越节点Q11-Q33进行分布。如上面特别提及的那样,依据本发明的多维FFT通过执行一系列的一维FFT来完成。因此依据本发明,二维数组300的多维FFT可以被实现为一系列的一维FFT。因此,在分布在每个节点处的每个元素行上执行一个一维的FFT。例如,为分布在节点Q11处的元素,即在被分给节点Q11的第一行数组300中的元素执行一个一维FFT。为在每个节点Q12-Q33处的元素(即,元素行)执行一维的FFT。该结果是一个由第一一维FFT转换的元素数组。更详细地,在每个节点处在每一行上的一维FFT的结果是一行和在图5中特别说明的具有同样长度的一行。例如,在图4中的节点Q11处第一行,其包含元素A11、A12...A19,上执行的一个一维FFT产生在图5的节点Q11处的一个第一行,其包含元素B11、B12...B19。此外,在每一节点处在每一行上执行的一维FFT与在另一个节点处在任何其它行上执行的一维FFT无关。在图4中说明的数据特定分布允许每一节点执行分布在那个节点处的元素行上的一维FFT,而不和在图1的Torus网络100上的任何其它节点进行通信。因此,因为不需要在节点之间的通信,这些一维FFT被快速地执行。要注意到:在每个节点除了产生在图5中的行之外,在图4中的原有行可以继续存在以及为一个特定的应用所感兴趣,但是如在图6和7中详细说明的那样,原有的行不再为在一系列为依据本发明的多维FFT所需要的FFT中的第二一维FFT所需要。
图6是一个依据本发明的示例“所有-到-所有”重新分布说明600,其描述了每一个经由图5中的第一维度FFT转换产生的元素行为执行第二维度FFT如何跨越节点Q11-Q33重新分布。更详细地,如图6中详细地描述的那样,每一个分布在图5的每一节点Q11...Q33处产生的元素行经由该Torus网络100重新分布以便每一个连续的节点接收一个连续的元素列。这个高效的重新分布是“所有-到-所有”重新分布,其允许依据本发明的、在分布存储器、并行巨型计算机上的多维FFT的一个高效实现。例如,第一节点Q11接收第一元素列,即来自每一节点Q11...Q33的第一元素。作为另一个示例,节点Q12接收第二元素列,即来自每一节点Q11...Q33的第二元素。为在图5中的每一列执行这个重新分布。在图6的示例重新分布中,一个特定节点到一个数组元素特定行的分配不是重要的。相反,要注意到任何分配都是可行的。对于各种应用和/或计算机,某些分配可以利用由应用和/或计算机提供的性能的优点并且因此产生比其它分配更快的执行。例如,执行多维FFT最快速的方法可能是把节点Q11和Q12的分配由在图6中说明的那些颠倒过来。在下面参考图9和10的描述特别地描述了本发明如何执行数组元素经由Torus网络100,跨越巨型计算机的节点的“所有-到-所有”重新分布。在每一节点Q11...Q33处的元素的“所有-到-所有”重新分布是快速的,这是因为它利用了Torus网络100的通信特征的优点。在图6中说明的重新分布中,每一个来自Q11...Q33的节点发送单个数组元素到所有其他节点。以下描述假定该数组的每一个元素是一些比由单个分组携带的数据数量要大的数据量。因此,需要多个分组来经由Torus网络100把数组的每一元素传送到一个目的节点。这非常类似于典型的现实的重新分布,其中由于非常大的数组尺寸,每一节点通常需要许多分组来发送许多数组元素到所有其他节点。
图7是一个依据本发明描述了在图6的二维数组上的一个第二一维FFT的示例说明700,这些二维数组经由图1中的二维Torus网络100跨越节点Q11-Q33进行重新分布。如上面详细地指出的那样,依据本发明的多维FFT通过执行一系列一维的FFT来完成,其中图7描述了依据本发明在那个系列中的第二一维FFT。因此,在被分配给如图5中说明的每一节点的元素列上执行一个一维的FFT。例如,为分布在节点Q11处的元素,即作为一行分配给节点Q11以形成图5的第一列的、在图6中的元素B11、B21...B91执行一个一维FFT。另外,在每一节点Q12-Q33处的元素行上执行一维的FFT(即,从图5的连续元素行中分配)。在每一行上的一维FFT的结果是和在图7中特别说明的具有同样长度的行。例如,在图6中节点Q11处的第一行上执行的一个一维FFT产生在图7的在节点Q11处的一个第一行,其中图6中节点Q11处的第一行包含元素B11、B21...A91,图7中在节点Q11的第一行包含元素C11、C21...C91。  如上参考第一FFT所述的那样,在每一节点处在每一行上执行的一维FFT与在另一个节点处在任何其它行上执行的一维FFT无关。在图6中说明的数据特定分布允许每一节点执行分布在那个节点处的元素行上的一维FFT,而不用和在图1的Torus网络100上的任何其它节点进行通信。因此,因为不需要在节点之间的通信,这些一维FFT被快速地执行。
图8是一个示例方法流程图,其说明了在图1中的、利用一个2维Torus网络100用于在该巨型计算机的节点Q11...Q33之间的通信的、分布的分布存储器、并行巨型计算机上的一个数组的二维FFT实现。在下面的描述中,将基于图1-7为了高效地执行二维FFT对图8进行描述。在步骤802处,开始在图3中说明的一个二维数组在图1的分布的分布存储器、并行巨型计算机中的多维FFT。要注意到在步骤702处,在图3中说明的数组以某种可能是一个应用所特有的任意方式跨越这些节点分布。在步骤804处,如在图4中详细说明的那样,数组300的元素(即,数据)被高效地跨越节点Q11...Q33重新分布。在步骤806处,如在图4说明的那样,每一个节点在存储在那个节点处的一行数组元素上执行一个第一一维FFT(从一系列的一维FFT当中),并且结果在图5中进行了详细的说明。如参考图5和6进行描述的那样,在步骤808处,一维FFT转换的元素列跨越使用图1中基于Torus的体系结构的巨型计算机中的节点Q11...Q33进行重新分布。在步骤810处,每一个节点在一个在图6中说明的一个第一一维FFT转换了的元素的连续列上执行一个第二一维FFT,这些元素作为在图6中分布为一个元素行。第二一维FFT的结果在图7中进行了说明。在步骤812处,结束在图3中说明的二维数组在图1的巨型计算机中的多维FFT。如上详细所述的那样,在两个一维的FFT之间有一个跨越节点Q11...Q33的快速元素重新分布。
以上描述的、在一个跨越一个分布存储器、并行巨型计算机的节点分布的元素数组上的多维FFT和跨越这些节点重新分配元素一起来说明本发明。更详细地,本发明利用基于Torus的体系结构的高效硬件路由和一系列一维FFT一起来实现在分布式存储器、并行巨型计算机上的多维FFT的一个高效实现。如上所述,依据本发明的示教可以被使用用于执行在其它数组维数数量中、在其它数组尺寸中、以及在Torus网络维度的其它数量,例如3维Torus中的高效多维FFT。另外,依据本发明的示教可以被使用用于在一个任意维度的Torus网络上,在分布存储器、并行巨型计算机的节点之间执行“所有-到-所有”通信。
图9是一个示例方法流程图900,其描述了依据本发明在该分布存储器、并行巨型计算机上用目的地为其它节点,例如节点Q22和Q33的分组填充在图2的一个示例节点Q11的一个或多个输出队列212。在图6中说明的“所有-到-所有”重新分配依据本发明如下所述实现。假定Qxy表示一个具有一个X坐标值x和一个Y坐标值y(例如,x=1;y=1)的通用节点(例如,节点Q11)。因此,依据“所有-到-所有”重新分布,对于所有可能的值a和b,节点Qxy(例如,节点Q11)需要发送多个总分组(例如,k个分组)到每个节点Qab(例如,在图1中说明的Q12、Q13;Q21、Q22、Q23;以及Q31、Q32、Q33;要注意到Q11不把分组发送到它本身)。为了尽快地执行该重新分布,必须高效地使用Torus网络100的网格链接。如果分组没有以一个高效的次序进行调度,则网格链接的使用可能是非常低效率的。例如,如果每个节点首先仅仅在正X+方向发送分组,则所有在负X方向的网格链接将是空闲的,因此该重新分布不会被尽快地执行而且该多域FFT不会被最高效地实现。依据本发明,该快速重新分布利用基于Torus网络100的自适应路径选择能力,以便分组调度被高效地实现,如下面详细说明的那样。
因此参考图9,有通过Torus网络100互连的Nx*Ny节点(即,在图1中的3×3=9节点)需要交换分组,这些分组包含二维数组中的元素。在步骤902处,开始该示例方法。在步骤904处,在每一节点Q11...Q33处创建一个为在Torus网络100上的每一节点分配一个在0,...,Nx*Ny-2之间的唯一编号的数组(即,random_map[]数组)。因为一个节点不把分组发送给它本身,所以交换分组的节点总数是0到Nx*Ny-2。要注意到在步骤904处的分配是随机地产生的。在这一点上假定一个节点发送该数组的一个元素到另一个节点所需要的分组总数是k个分组(例如,6个分组)。此后,假定总共k个分组=d个循环*b个分组,其中d是必要的循环数目以及每次循环为k个分组总量传送b个分组。要注意到b可以为性能所必需进行选择而且可以同样地等于1。例如,为了传送总共6个分组,能够为总数6个分组选择在3个循环中的每一个上让每个循环传送2个分组。因此,在步骤906处,为id从1到d的循环启动一次循环。在步骤908处,一个队列计数器被初始化为零。假定有L个输出队列212(L大于或等于1)用于存储分组(或者分组的简短描述符以便不需要复制实际的分组),以及所有用于一个给定目的地的分组(或者分组的描述符)将被放置到相同的输出队列中。在图9的嵌套循环内在步骤912处以循环的次序选择一个特定输出队列iL。在步骤910处,为从节点0到节点Nx*Ny-2的iN值初始化一个循环,该iN值作为一个到在步骤904处创建的数组(即,random_array[])的索引。因为在步骤904中创建的数组为一个特定iN值进行索引,所以可从该随机数组中获得一个随机节点值。在步骤912处,以循环次序选择一个第一队列。在步骤914处,为每个d循环、从1到b分组的ib初始化一个循环。随后,如步骤914和916,多个目的为一个给定随机节点iN的b个分组(例如,从上面的示例中b=2个分组)被添加到同分组[node,id,ib]相同的一个输出队列iL中。在步骤918处,一旦已经完成了所有d循环,则结束该方法。总而言之参考流程图900,在一个d循环期间一个特定节点“i”(例如,在图2的节点Q11上的处理器202)将首先把包含用于目的地为一个节点模数(i+1,Nx*Ny-1)的数组中的一个元素的数据的b个数量的分组放置在一个第一输出队列中,然后特定节点“i”将把包含用于目的地为一个节点模数(i+2,Nx*Ny-1)的数组中的一个元素的数据的b个分组放置到下一个输出队列中,诸如此类直到到达节点模数(i+(Nx*Ny-1),Nx*Ny-1)为止。当为一个给定循环已经把b个分组插入到该输出队列中时,重复这个处理过程直到d循环已经全部都完成了为止。上述重新分布实现了在图1的Torus网络100上非常高的网格链接使用,由此高效地实现了依据本发明的多维FFT。
图10是一个示例方法流程图1000,其描述了依据本发明,在一个或多个在图2中的示例节点Q11上的输出队列212中的分组如何被流入到一个注入FIFO210中用于在该Torus网络100上的后续插入。在详细地描述图10之前,要注意到图9中的填充和图10中的流出可以彼此同时执行。在步骤1002处,开始该示例方法。在步骤1004处确定是否全部L输出队列212都为空。在步骤1006处,为iL从1到L启动一个循环,以在所有L输出队列上从1至L进行迭代。在步骤1008处确定一个特定输出队列iL是否是空的。如果输出队列iL是空的,步骤1006处该方法继续到下一个iL输出队列。否则,在步骤1010处,为在该输出队列iL标题的一个分组,获得用于经由Torus网络100路由该分组的可能方向。例如参考图1,假定节点Q11把一个目的地为节点Q22的分组放置到一个输出队列iL中。该分组可以以X+方向(经由网格链接108)从节点Q11传播继之以Y方向(经由网格链接110)以到达节点Q22,或者它可以在Y方向(经由网格链接106)传播继之以X+方向(经由网格链接112)以到达节点Q22。现在回到图10,在步骤1012处,进一步确定是否在用于分组的可能方向中的、在图2中的全部FIFO 210是满的。如上所述,每一注入FIFO 210具有一个与它相关联的逻辑方向(例如,X+),其表示任何被放置到该注入FIFO 210中的分组能够在相关的逻辑方向(例如,X+方向)中进行移动。如果用于分组方向的注入FIFO 210是满的,则该方法跳过当前输出队列并且通过在步骤1006处迭代到下一个输出队列继续。否则,在步骤1014处,该分组在一个用于那个分组的可能方向中,从该输出队列移动到一个最不充满的FIFO 212。要注意到分组以一个循环次序从输出队列中除去,用于插入到在图2中说明的注入FIFO 210中。在该分组被移动了之后,在步骤1008处为一个在那个输出队列中的下一个可用分组继续该方法。一旦全部的输出队列都是空的,则该方法在步骤1016处结束。
为了更充分地说明描述“全部-到-全部”路由的图9和10,假定在图5中的节点Q11处的元素行,即元素B11、B12...B19,将经由Torus网络100跨越在图6中说明的节点Q12...Q33进行重新分布。假定节点的随机映射具有以下在random_map数组={Q32;Q22;Q13;Q21;Q23;Q33;Q12;和Q31}中的值。因此,来自节点Q11的数组元素次序和它们的目的节点如下:{B12到Q12;B13到Q13;B14到Q21;B15到Q22;B16到Q23;B17到Q31;B18到Q32以及B19到Q33}。这些数组元素被放置到节点Q11的FIFO 210中,其如下所示:{B18经由X+或者Y-到Q32;B15经由X+或者Y+到Q22;B13经由X-到Q13;B14经由Y+到Q21;B16经由Y+或者X-到Q23;B19经由X-或者Y-到Q33;B12经由X+到Q12;以及B17经由Y-到Q31}。因此例如,在节点Q11上FIFO 210可以如在下面在表格1中说明的那样进行填充。
                           表格1
    X+     X-     Y+     Y-
  B18到Q32   B13到Q13   B15到Q22   B14到Q21
  B12到Q12   B19到Q33   B16到Q23   B17到Q31
尽管注入FIFO的数目在上面被描述为等于网格链接到一个节点的数目(例如,4个FIFO和4个网格链接)的事实,一个被局限于至少一个特定网格链接的注入FIFO的使用在当注入FIFO的数量不等于网格链接数目时也是非常适合的。例如,如果有比网格链接更少的注入FIFO,则一个缓存器的使用可以被限制到几个特定网格链接中的至少一个。对于另一个示例,如果有比网格链接更多的注入FIFO,则那里可以有几个使用被限于至少同一个特定网格链接的注入FIFO。
虽然上面参考多维FFT的高效实现描述了数组重新分布的实现,该“所有-到-所有”重新分布也非常适合于经由图1中的Torus网络100的、任何类型的数组重新分布。
虽然已经通过参考它的最佳实施例详细地显示和描述了本发明,但是本领域的那些技术人员必须理解:在其中可以进行上述及其它形式和细节中的变化而不背离本发明的精神和范围。

Claims (33)

1.一种用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:
(a)经由该网络跨越该计算机系统的多个节点分布在一个第一维度中的、该数组的多个元素以便于一个第一一维FFT;
(b)在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT;
(c)通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换的元素;以及
(d)在在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
2.如权利要求1所述用于高效地实现一个多维FFT的方法,其特征在于:该方法进一步包含步骤:
经由通过网络跨越计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第三维度中、在每一节点处重新分布该数组中的元素;
在第三维度中、在每个节点处重新分布的数组中的元素上执行一个一维FFT;以及
重复跨越节点以随机次序重新分布数组元素的步骤和为后续维度在每一节点处在重新分布的元素上执行一维FFT的步骤。
3.如权利要求1所述用于高效地实现一个多维FFT的方法,其特征在于:该方法包含一个产生其它节点的一个随机次序用于在每一节点处重新分布该一维FFT转换了的元素的步骤。
4.如权利要求3所述用于高效地实现一个多维FFT的方法,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
5.如权利要求4所述用于高效地实现一个多维FFT的方法,其特征在于:该方法进一步包含步骤:
在每一节点处提供多个输出队列;
以产生的随机次序经过其它节点迭代多次;以及
在每一次迭代期间,向一个用于每一其它节点的一个输出队列输出这多个总计分组中的至少一个分组。
6.如权利要求5所述用于高效地实现一个多维FFT的方法,其特征在于:该方法进一步包含步骤:
提供多个注入先进先出(FIFO)缓存器,每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
经由一个节点处的多个输出队列进行迭代以标识在每个队列标题的一个分组;
获得与在每个队列标题的分组相关联的可能路由方向;以及
以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中。
7.一个用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的系统,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该系统包含:
(a)用于经过该网络跨越该计算机系统的多个节点分布在一个第一维度中的、该数组的多个元素以便于一个第一一维FFT的装置;
(b)用于在在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT的装置;
(c)用于通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换的元素的装置;以及
(d)用于在在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT的装置,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
8.如权利要求7所述用于高效地实现一个多维FFT的系统,其特征在于该方法进一步包含步骤:
用于经由通过网络跨越计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第三维度中、在每一节点处重新分布该数组中的元素的装置;
用于在在第三维度中、在每个节点处重新分布的数组中的元素上执行一个一维FFT的装置;以及
用于重复以随机次序跨越节点重新分布数组元素的步骤,和为后续维度在每个节点处、在重新分布的元素上执行一维FFT的步骤的装置。
9.如权利要求7所述用于高效地实现一个多维FFT的系统,其特征在于:该系统包含一个用于产生其它节点的一个随机次序用于在每一节点处重新分布该一维FFT转换了的元素的装置。
10.如权利要求9所述用于高效地实现一个多维FFT的系统,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
11.如权利要求10所述用于高效地实现一个多维FFT的系统,其特征在于该方法进一步包含步骤:
用于在每一节点处提供多个输出队列的装置;
用于以产生的随机次序经过其它节点迭代多次的装置;以及
用于在每一次迭代期间,向一个用于每一其它节点的一个输出队列输出这多个总计分组中的至少一个分组的装置。
12.如权利要求11所述用于高效地实现一个多维FFT的系统,其特征在于该方法进一步包含步骤:
用于提供多个注入先进先出(FIFO)缓存器的装置,其中每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
用于在一个节点处的多个输出队列上进行迭代以标识在每个队列标题的一个分组的装置;
用于获得与在每个队列标题的分组相关联的可能路由方向的装置;以及
用于以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中的装置。
13.一个程序存储设备,可触知地包含一个指令程序,该指令程序可由一个机器执行来执行一种用于高效地实现一个多维数组的多维快速傅里叶变换(FFT)的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含:
(a)经过该网络跨越该计算机系统的多个节点,分布在一个第一维度中的、该数组的多个元素以便于一个第一一维FFT;
(b)在在第一维度中、分布在每个节点处的数组元素上执行第一一维FFT;
(c)通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第二维度中在每个节点处重新分布一维FFT-转换了的元素;以及
(d)在在第二维度中、在每个节点处重新分布的数组中的元素上执行一个第二一维FFT,其中随机次序便于网络的高效利用由此高效地实现多维FFT。
14.如权利要求13所述用于高效地实现一个多维FFT的程序存储设备,其特征在于:该方法进一步包含步骤:
经由通过网络跨越计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在一个第三维度中、在每一节点处重新分布该数组中的元素;
在第三维度中、在每个节点处重新分布的数组中的元素上执行一个一维FFT;以及
重复跨越节点以随机次序重新分布数组元素的步骤和为后续维度在在每一节点处重新分布的元素上执行一维FFT的步骤。
15.如权利要求13所述用于高效地实现一个多维FFT的程序存储设备,其特征在于:该方法包含一个产生其它节点的一个随机次序用于在每一节点处重新分布该一维FFT转换了的元素的步骤。
16.如权利要求15所述用于高效地实现一个多维FFT的程序存储设备,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
17.如权利要求16所述用于高效地实现一个多维FFT的程序存储设备,其特征在于该方法进一步包含步骤:
在每一节点处提供多个输出队列;
以产生的随机次序经由其它节点进行迭代多次;以及
在每一次迭代期间,向一个用于每一其它节点的一个输出队列输出这多个总计分组中的至少一个分组。
18.如权利要求17所述用于高效地实现一个多维FFT的程序存储设备,其特征在于该方法进一步包含步骤:
提供多个注入先进先出(FIFO)缓存器,每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
通过在一个节点处的多个输出队列进行迭代以标识在每个队列标题的一个分组;
获得与在每个队列标题的分组相关联的可能路由方向;以及
以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中。
19.一种用于高效地重新分布一个多维数组的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含通过网络、经由以随机次序跨越该计算机系统的其它节点的“所有-到-所有”分布在每个节点处重新分布这些元素,其中该随机次序便于网络的高效利用。
20.如权利要求19所述用于高效地重新分布一个多维数组的方法,其特征在于:该方法包含一个产生其它节点的一个随机次序用于在每一节点处重新分布这些元素的步骤。
21.如权利要求20所述用于高效地重新分布一个多维数组的方法,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
22.如权利要求21所述用于高效地重新分布一个多维数组的方法,其特征在于该方法进一步包含步骤:
在每一节点处提供多个输出队列;
以产生的随机次序经由其它节点进行迭代多次;以及
在每一次迭代期间,向一个用于每一个其它节点的一个输出队列输出这多个总计分组中的至少一个分组。
23.如权利要求22所述用于高效地重新分布一个多维数组的方法,其特征在于该方法进一步包含步骤:
提供多个注入先进先出(FIFO)缓存器,每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
通过在一个节点处的多个输出队列上进行迭代以标识在每个队列标题的一个分组;
获得与在每个队列标题的分组相关联的可能路由方向;以及
以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中。
24.一个用于高效地重新分布一个多维数组的系统,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该系统包含:一个用于通过网络,经由跨越该计算机系统的其它节点、以随机次序的“所有-到-所有”分布,在每个节点处重新分布这些元素的装置,其中该随机次序便于网络的高效利用。
25.如权利要求24所述用于高效地重新分布一个多维数组的系统,其特征在于:该方法包含一个用于产生其它节点的一个随机次序用于在每一节点处重新分布这些元素的装置。
26.如权利要求25所述用于高效地重新分布一个多维数组的系统,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
27.如权利要求26所述用于高效地重新分布一个多维数组的系统,其特征在于该系统进一步包含:
用于在每一节点处提供多个输出队列的装置;
用于以产生的随机次序经由其它节点迭代多次的装置;以及
用于在每一次迭代期间,向一个用于每一个其它节点的一个输出队列输出这多个总计分组中的至少一个分组的装置。
28.如权利要求27所述用于高效地重新分布一个多维数组的系统,其特征在于该系统进一步包含:
用于提供多个注入先进先出(FIFO)缓存器的装置,其中每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
用于通过在一个节点处的多个输出队列进行迭代以标识在每个队列标题的一个分组的装置;
用于获得与在每个队列标题的分组相关联的可能路由方向的装置;以及
以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中。
29.一个程序存储设备,可触知地包含一个指令程序,该指令程序可由一个机器执行来执行一种用于高效地重新分布一个多维数组的方法,其中该多维数组包含多个最初分布在一个包含多个经由一个网络进行通信的节点的多节点计算机系统中的元素,该方法包含通过网络、经由以随机次序跨越该计算机系统的其它节点的“所有-到-所有”分布,在每个节点处重新分布这些元素,其中该随机次序便于网络的高效利用。
30.如权利要求29所述用于高效地重新分布一个多维数组的程序存储设备,其特征在于:  该方法包含一个产生其它节点的一个随机次序用于在每一节点处重新分布这些元素的步骤。
31.如权利要求29所述用于高效地重新分布一个多维数组的程序存储设备,其特征在于:多个元素中的每一个经由多个总计分组在计算机系统的节点之间重新分布。
32.如权利要求31所述用于高效地重新分布一个多维数组的程序存储设备,其特征在于该方法进一步包含步骤:
在每一节点处提供多个输出队列;
以产生的随机次序经由其它节点进行迭代多次;以及
在每一次迭代期间,向一个用于每一个其它节点的一个输出队列输出这多个总计分组中的至少一个分组。
33.如权利要求32所述用于高效地重新分布一个多维数组的程序存储设备,其特征在于该方法进一步包含步骤:
提供多个注入先进先出(FIFO)缓存器,每个FIFO缓存器用于在网络上在至少一个特定方向中传输分组;
通过在一个节点处的多个输出队列进行迭代以标识在每个队列标题的一个分组;
获得与在每个队列标题的分组相关联的可能路由方向;以及
以一个与该分组相关联的可能路由方向,把分组从每个队列的标题移动到一个最不充满的FIFO缓存器中。
CNB02805377XA 2001-02-24 2002-02-25 在分布式存储器上实现多维快速傅里叶变换的方法和系统 Expired - Lifetime CN1244878C (zh)

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/005574 WO2002069097A2 (en) 2001-02-24 2002-02-25 Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer

Publications (2)

Publication Number Publication Date
CN1493042A true CN1493042A (zh) 2004-04-28
CN1244878C CN1244878C (zh) 2006-03-08

Family

ID=68499830

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB02805377XA Expired - Lifetime CN1244878C (zh) 2001-02-24 2002-02-25 在分布式存储器上实现多维快速傅里叶变换的方法和系统

Country Status (9)

Country Link
US (2) US7315877B2 (zh)
EP (1) EP1497750A4 (zh)
JP (1) JP4652666B2 (zh)
KR (1) KR100592753B1 (zh)
CN (1) CN1244878C (zh)
AU (1) AU2002252086A1 (zh)
CA (1) CA2437036A1 (zh)
IL (1) IL157518A0 (zh)
WO (1) WO2002069097A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100422975C (zh) * 2005-04-22 2008-10-01 中国科学院过程工程研究所 一种面向粒子方法的并行计算系统
CN101529425B (zh) * 2005-04-25 2011-06-08 国际商业机器公司 通过交互中心的空间分区进行的负荷平衡
CN102541812A (zh) * 2006-04-28 2012-07-04 高通股份有限公司 多端口混合基fft
CN104820581A (zh) * 2015-04-14 2015-08-05 广东工业大学 一种fft和ifft逆序数表的并行处理方法
CN107451097A (zh) * 2017-08-04 2017-12-08 中国科学院软件研究所 国产申威26010众核处理器上多维fft的高性能实现方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008117044A (ja) * 2006-11-01 2008-05-22 Oki Electric Ind Co Ltd 2次元高速フーリエ変換演算方法及び2次元高速フーリエ変換演算装置
JP4652666B2 (ja) * 2001-02-24 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施
US20060095485A1 (en) * 2004-10-30 2006-05-04 Moore George S System and method for permuting a vector
GB2425860A (en) * 2005-05-05 2006-11-08 Advanced Risc Mach Ltd Multi-dimensional fast fourier transform
US8082289B2 (en) 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7948999B2 (en) * 2007-05-04 2011-05-24 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7889657B2 (en) * 2007-05-04 2011-02-15 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7890670B2 (en) * 2007-05-09 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US7779173B2 (en) * 2007-05-29 2010-08-17 International Business Machines Corporation Direct memory access transfer completion notification
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7765337B2 (en) * 2007-06-05 2010-07-27 International Business Machines Corporation Direct memory access transfer completion notification
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
US7890597B2 (en) * 2007-07-27 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8694570B2 (en) * 2009-01-28 2014-04-08 Arun Mohanlal Patel Method and apparatus for evaluation of multi-dimensional discrete fourier transforms
CN102597959B (zh) * 2009-11-16 2015-04-15 国际商业机器公司 对包含多对多通信的多个计算处理进行调度的方法和系统
US8544026B2 (en) * 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
JP5238791B2 (ja) * 2010-11-10 2013-07-17 株式会社東芝 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
WO2015001596A1 (ja) * 2013-07-01 2015-01-08 株式会社日立製作所 系列データ並列分析基盤およびその並列分散処理方法
WO2016057783A1 (en) * 2014-10-08 2016-04-14 Interactic Holdings, Llc Fast fourier transform using a distributed computing system
US10084860B2 (en) * 2015-04-09 2018-09-25 Electronics And Telecommunications Research Institute Distributed file system using torus network and method for configuring and operating distributed file system using torus network
US10116557B2 (en) 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
KR102452945B1 (ko) * 2015-08-27 2022-10-11 삼성전자주식회사 푸리에 변환을 수행하는 방법 및 장치
KR102526750B1 (ko) * 2015-12-17 2023-04-27 삼성전자주식회사 푸리에 변환을 수행하는 방법 및 장치
US10587534B2 (en) 2017-04-04 2020-03-10 Gray Research LLC Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JP3675537B2 (ja) * 1995-11-29 2005-07-27 富士通株式会社 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法
JP3129398B2 (ja) * 1997-01-08 2001-01-29 日本電気株式会社 8点×8点2次元逆離散コサイン変換回路およびそれを実現するマイクロプロセッサ
JPH11143860A (ja) * 1997-11-07 1999-05-28 Matsushita Electric Ind Co Ltd 直交変換装置
US6073154A (en) * 1998-06-26 2000-06-06 Xilinx, Inc. Computing multidimensional DFTs in FPGA
JP4057729B2 (ja) 1998-12-29 2008-03-05 株式会社日立製作所 フーリエ変換方法およびプログラム記録媒体
JP4652666B2 (ja) * 2001-02-24 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施
US7788310B2 (en) * 2004-07-08 2010-08-31 International Business Machines Corporation Multi-dimensional transform for distributed memory network

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100422975C (zh) * 2005-04-22 2008-10-01 中国科学院过程工程研究所 一种面向粒子方法的并行计算系统
CN101529425B (zh) * 2005-04-25 2011-06-08 国际商业机器公司 通过交互中心的空间分区进行的负荷平衡
CN102541812A (zh) * 2006-04-28 2012-07-04 高通股份有限公司 多端口混合基fft
CN102541812B (zh) * 2006-04-28 2016-03-30 高通股份有限公司 多端口混合基fft
CN104820581A (zh) * 2015-04-14 2015-08-05 广东工业大学 一种fft和ifft逆序数表的并行处理方法
CN104820581B (zh) * 2015-04-14 2017-10-10 广东工业大学 一种fft和ifft逆序数表的并行处理方法
CN107451097A (zh) * 2017-08-04 2017-12-08 中国科学院软件研究所 国产申威26010众核处理器上多维fft的高性能实现方法
CN107451097B (zh) * 2017-08-04 2020-02-11 中国科学院软件研究所 国产申威26010众核处理器上多维fft的高性能实现方法

Also Published As

Publication number Publication date
KR100592753B1 (ko) 2006-06-26
KR20040004542A (ko) 2004-01-13
US20040078405A1 (en) 2004-04-22
WO2002069097A3 (en) 2002-10-24
WO2002069097A2 (en) 2002-09-06
EP1497750A4 (en) 2011-03-09
US20080133633A1 (en) 2008-06-05
US8095585B2 (en) 2012-01-10
IL157518A0 (en) 2004-03-28
CN1244878C (zh) 2006-03-08
CA2437036A1 (en) 2002-09-06
JP4652666B2 (ja) 2011-03-16
AU2002252086A1 (en) 2002-09-12
US7315877B2 (en) 2008-01-01
EP1497750A2 (en) 2005-01-19
JP2004536371A (ja) 2004-12-02

Similar Documents

Publication Publication Date Title
CN1244878C (zh) 在分布式存储器上实现多维快速傅里叶变换的方法和系统
Johnsson et al. Optimum broadcasting and personalized communication in hypercubes
Saad et al. Data communication in parallel architectures
Husbands et al. MPI-StarT: Delivering network performance to numerical applications
Bonorden et al. The paderborn university BSP (PUB) library
Siegel et al. Using the multistage cube network topology in parallel supercomputers
Lim et al. Efficient algorithms for block-cyclic redistribution of arrays
US20050044195A1 (en) Network topology having nodes interconnected by extended diagonal links
Juurlink et al. A quantitative comparison of parallel computation models
Almási et al. Design and implementation of message-passing services for the Blue Gene/L supercomputer
US20160105494A1 (en) Fast Fourier Transform Using a Distributed Computing System
CN102449961A (zh) 用于分组路由的方法和装置
Culler et al. Fast parallel sorting under LogP: from theory to practice
JaJa et al. The block distributed memory model
Reddy et al. Design, analysis, and simulation of I/O architectures for hypercube multiprocessors
Li et al. Models and resource metrics for parallel and distributed computation
Kobus et al. Gossip: Efficient communication primitives for multi-gpu systems
Nesson et al. ROMM routing: A class of efficient minimal routing algorithms
Leung et al. On multidimensional packet routing for meshes with buses
Lin et al. A distributed resource management mechanism for a partitionable multiprocessor system
Johnsson et al. On the conversion between binary code and binary-reflected Gray code on binary cubes
Souravlas et al. A pipeline technique for dynamic data transfer on a multiprocessor grid
Li Computational models and program synthesis for parallel out-of-core computation
Swarztrauber MPP: What went wrong? Can it be made right?
Lay High-performance communication in parallel computers

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
CX01 Expiry of patent term

Granted publication date: 20060308

CX01 Expiry of patent term