JP4652666B2 - 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施 - Google Patents

分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施 Download PDF

Info

Publication number
JP4652666B2
JP4652666B2 JP2002568153A JP2002568153A JP4652666B2 JP 4652666 B2 JP4652666 B2 JP 4652666B2 JP 2002568153 A JP2002568153 A JP 2002568153A JP 2002568153 A JP2002568153 A JP 2002568153A JP 4652666 B2 JP4652666 B2 JP 4652666B2
Authority
JP
Japan
Prior art keywords
node
nodes
elements
fft
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002568153A
Other languages
English (en)
Other versions
JP2004536371A (ja
Inventor
バーノット、ギャン、ヴィー
チェン、トン
ガラ、アラン、ジー
ジャンパパ、マーク、イー
ハイデルベルガー、フィリップ
スタインマクサー−バロー、バークハード、ディー
ヴラナス、パヴロス、エム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004536371A publication Critical patent/JP2004536371A/ja
Application granted granted Critical
Publication of JP4652666B2 publication Critical patent/JP4652666B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Thermal Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Discrete Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Description

本発明は、全般的には、たとえば科学、数学、工学、および類似する分野での計算に適用される、分散メモリ・メッセージ受渡並列マルチノード・コンピュータおよび関連システム・ソフトウェアに関する。具体的には、本発明は、分散メモリ並列スーパーコンピュータでの多次元高速フーリエ変換(すなわち「FFT」)を効率的に実施するシステムおよび方法に関する。
フーリエ変換(すなわち「FT」)などの線形変換は、科学、数学、工学、および類似する分野でのある範囲の問題を解くのに広く使用されてきた。FTでは、所与の問題が、より簡単に解ける問題に変えられ、FTは、多くの異なる応用分野で使用される。たとえば、N変数の系について、FTは、本質的に、座標空間から運動量空間へのN個の変数の変更を表し、各変数の新しい値は、古い変数のすべての値に依存する。そのようなN空間の系は、通常は、コンピュータではN要素の配列として保管される。FTは、一般に、高速フーリエ変換(すなわち「FFT」)を使用して計算される。FFTは、Press他によるNumerical Recipes(W. H. Press、S. A. Teukolsky、W. A.Vetterling、Brian P Flannery、「Numerical Recipes in Fortran」、Cambridge UniversityPress, 1986, 1992, ISBN: 0-521-43064-X、490〜529頁)などの多数の標準テキストに記載されている。ほとんどのコンピュータ製造業者が、その業者の特定のプロセッサのためにFFTを最適化するライブラリ関数呼出しを提供する。たとえば、FFTは、IBM社のRS/6000プロセッサ上で、Engineeringand Scientific Subroutine Libraryで完全に最適化される。これらのライブラリ・ルーチンは、FFTの実行に必要なデータ(すなわち、前述の要素)が、ノードにローカルなメモリに常駐することを必要とする。
多次元FFTでは、多次元配列のN個の要素が、分散メモリ並列マルチノード・コンピュータのノードにまたがる複数の次元に分配される。分散メモリ並列マルチノード・コンピュータで実行される多くのアプリケーションは、実行時間の大きい部分を多次元FFTの計算に費やす。分散メモリ並列マルチノード・コンピュータの動機づけが、より高速の実行なので、分配された配列の多次元FFTの高速計算が、非常に重要である。配列のN個の要素は、当初は、アプリケーションに固有のある任意の形でノードに分配される。多次元FFTを計算するために、要素の配列を再分配して、アレイの各ノード上の部分が、x次元の要素の完全な行からなるようにする。その後、各ノードのx次元の各行に対する1次元FFTを実行する。この行は、ノードにローカルであり、各行の各1次元FFTが、互いに独立なので、各ノードで実行される1次元FFTは、他のノードとの通信を必要とせず、上で述べたライブラリ・ルーチンを使用して実行することができる。1次元FFTの後に、配列要素を再分配し、配列の各ノード上の部分を、y次元の完全な行からなるようにする。その後、各ノードでy次元の各行に対するFFTを実行する。配列に3つ以上の次元がある場合には、x次元およびy次元を超える配列の連続する次元ごとに、再分配および1次元FFTを繰り返す。結果の配列を、アプリケーションに固有のある任意の形で再分配することができる。
順番でのx次元およびy次元の扱いは、多次元FFTにとって重要ではない。そうではなく、配列の次元は、どの順序でも扱うことができる。あるアプリケーションまたはあるコンピュータについて、ある順序によってある効率を利用することができ、したがって、他の順序より高速の実行を有することができる。たとえば、ノードにまたがる配列の初期分配は、アプリケーションに固有の任意の形であるが、y次元での1次元FFTに必要な分配と一致する場合がある。この場合には、多次元FFTで、x次元および残りの他の次元を扱う前に、まずy次元を扱うことが最も高速になる可能性がある。
上で説明した多次元FFTの実施形態では、1次元FFTの間の配列の再分配のそれぞれが、「すべて対すべて」通信または再分配の例である。すべて対すべての再分配では、分散メモリ並列マルチノード・コンピュータの各ノードが、複数のパケットを使用して他のすべてのノードに一意のデータ(すなわち配列の要素)を送る。上で述べたように、分散メモリ並列マルチノード・コンピュータでの多次元FFTの高速計算は、非常に重要である。上で説明した実施形態では、通常は、実行時間の大きい部分が、分散メモリ並列マルチノード・コンピュータのノードにまたがる配列の再分配に費やされる。具体的に言うと、実行時間の大きい部分が、分散メモリ並列マルチノード・コンピュータのノードにまたがる配列の要素の「すべて対すべて」再分配に費やされる。
したがって、当技術分野には、分散メモリ並列スーパーコンピュータで多次元FFTを効率的に実施するシステムおよび方法を提供する必要がある。具体的に言うと、当技術分野には、多次元FFTを効率的に実施する、分散メモリ並列スーパーコンピュータで「すべて対すべて」再分配を効率的に実施するシステムおよび方法を提供する必要がある。
W. H. Press、S. A. Teukolsky、W. A.Vetterling、Brian P Flannery、「Numerical Recipes in Fortran」、Cambridge UniversityPress, 1986, 1992, ISBN: 0-521-43064-X、490〜529頁
したがって、本発明の目的は、分散メモリ並列スーパーコンピュータで分配される配列に対する多次元FFTを効率的に実施するシステムおよび方法を提供することである。
本発明のもう1つの目的は、分散メモリ並列スーパーコンピュータでの「すべて対すべて」再分配を効率的に実施することによって、配列に対する多次元FFTを効率的に実施するシステムおよび方法を提供することである。
本発明のもう1つの目的は、分散メモリ並列スーパーコンピュータでの多次元FFT以外のアプリケーションで「すべて対すべて」再分配を効率的に実施するシステムおよび方法を提供することである。
本発明の1実施形態によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列の多次元高速フーリエ変換(FFT)を効率的に実施する方法であって、第1の1次元FFTを容易にするために、前記配列の前記複数の要素を第1次元で前記コンピュータ・システムの前記複数のノードにまたがって前記ネットワークを介して分配することと、各ノードの分配された前記配列の前記要素に対して前記第1次元で前記第1の1次元FFTを実行することと、各ノードの1次元FFT変換された要素を第2次元で前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな「すべて対すべて」分配を介して再分配することと、各ノードの再分配された前記配列の要素に対する第2の1次元FFTを前記第2次元で実行することであって、前記ランダムな順序が、前記ネットワークの効率的な利用を容易にし、これによって前記多次元FFTが効率的に実施される、実行することとを含む、多次元FFTを効率的に実施する方法が提供される。
本発明のもう1つの態様によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列の多次元高速フーリエ変換(FFT)を効率的に実施するシステムであって、第1の1次元FFTを容易にするために、前記配列の前記複数の要素を第1次元で前記コンピュータ・システムの前記複数のノードにまたがって前記ネットワークを介して分配する手段と、各ノードの分配された前記配列の前記要素に対して前記第1次元で前記第1の1次元FFTを実行する手段と、各ノードの1次元FFT変換された要素を第2次元で前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな「すべて対すべて」分配を介して再分配する手段と、各ノードの再分配された前記配列の要素に対する第2の1次元FFTを前記第2次元で実行する手段であって、前記ランダムな順序が、前記ネットワークの効率的な利用を容易にし、これによって前記多次元FFTが効率的に実施される、実行する手段とを含む、多次元FFTを効率的に実施するシステムが提供される。
本発明のもう1つの実施形態によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列の多次元高速フーリエ変換(FFT)を効率的に実施する方法を実行するために計算機によって実行可能な命令のプログラムを有形に実施するプログラム記憶装置であって、前記方法が、第1の1次元FFTを容易にするために、前記配列の前記複数の要素を第1次元で前記コンピュータ・システムの前記複数のノードにまたがって前記ネットワークを介して分配することと、各ノードの分配された前記配列の前記要素に対して前記第1次元で前記第1の1次元FFTを実行することと、各ノードの1次元FFT変換された要素を第2次元で前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな「すべて対すべて」分配を介して再分配することと、各ノードの再分配された前記配列の要素に対する第2の1次元FFTを前記第2次元で実行することであって、前記ランダムな順序が、前記ネットワークの効率的な利用を容易にし、これによって前記多次元FFTが効率的に実施される、実行することとを含む、多次元FFTを効率的に実施するプログラム記憶装置が提供される。
本発明のもう1つの実施形態によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列を効率的に再分配する方法であって、前記方法が、前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな順序での「すべて対すべて」分配を介して各ノードの前記要素を再分配することを含み、前記ランダムな順序が、前記ネットワークの効率的利用を容易にする、多次元配列を効率的に再分配する方法が提供される。
本発明のもう1つの実施形態によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列を効率的に再分配するシステムであって、前記システムが、前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな順序での「すべて対すべて」分配を介して各ノードの前記要素を再分配する手段を含み、前記ランダムな順序が、前記ネットワークの効率的利用を容易にする、多次元配列を効率的に再分配するシステムが提供される。
本発明のもう1つの実施形態によれば、ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列を効率的に再分配する方法を実行するために計算機によって実行可能な命令のプログラムを有形に実施するプログラム記憶装置であって、前記方法が、前記ネットワークを介する前記コンピュータ・システムの他のノードにまたがるランダムな順序での「すべて対すべて」分配を介して各ノードの前記要素を再分配することを含み、前記ランダムな順序が、前記ネットワークの効率的利用を容易にする、多次元配列を効率的に再分配する記憶装置が提供される。
本発明の目的、特徴、および利点は、添付図面と組み合わせて解釈される以下の詳細な説明に鑑みて、当業者に明白になる。
本発明は、分散メモリ並列スーパーコンピュータで多次元高速フーリエ変換(すなわち「FFT」)を効率的に実施するシステムおよび方法を対象とする。具体的には、本発明によって、多次元FFTの効率的な実施を達成するために、分散メモリ並列スーパーコンピュータのノードに分配された要素の効率的な「すべて対すべて」再分配が実施される。
本発明によれば、FFTは、一連の1次元変換として、分散メモリ並列スーパーコンピュータで実施され、この1次元変換は、分散メモリ並列スーパーコンピュータのノードにまたがる多次元配列の1つまたは複数の「すべて対すべて」再分配を必要とする。この分散メモリ並列スーパーコンピュータでは、スーパーコンピュータのノードの相互接続およびノード間の通信に、トーラスベースのネットワークが使用される。下で説明するように、各ノードによって、トーラスベースのネットワークを介して相互接続されるスーパーコンピュータのノードにまたがる配列の要素を含むパケットを効率的に経路指定するハードウェア・ルータが実施される。したがって、本発明では、多次元配列の一連の1次元変換としての多次元FFTの実施形態を、前述のハードウェア経路指定と結合して、本発明による効率的なFFT実施形態を得る。
さらに、本発明によれば、分散メモリ並列スーパーコンピュータに、複数のノードが含まれ、このノードのそれぞれに、ローカル・メモリを操作する少なくとも1つのプロセッサが含まれる。ノードは、多次元グリッドとして相互接続され、グリッド・リンクを介して通信する。一般性を失わずに、当業者が本発明の説明を簡単に理解できるようにするために、スーパーコンピュータの多次元ノード・グリッドを、例示的な2次元グリッドとして説明する。2次元ノード・グリッドだけが以下の説明で説明されるという事実にかかわらず、本発明の範囲内で、他の次元のノード・グリッドを、本発明の教示に基づいて簡単に提供できることが企図されている。分散メモリ並列スーパーコンピュータで、3次元以上のトーラスベース・アーキテクチャを使用できることに留意されたい。さらに、一般性を失わずに、当業者が本発明の説明を簡単に理解できるようにするために、多次元FFTによって使用される多次元配列を、例示的な2次元配列として説明する。2次元配列だけが以下の説明で説明されるという事実にかかわらず、本発明の範囲内で、追加の次元の配列を、本発明の教示に基づいて簡単に提供できることが企図されている。さらに、トーラスベース・アーキテクチャの次元の数と配列の次元の数の間に対応がないことに留意されたい。配列は、本発明による多次元FFTを実施するスーパーコンピュータのノードまたはノードのサブセットにまたがって分配できるのに十分なサイズでなければならない。
図1は、本発明による、2次元3×3トーラス・ネットワーク100を使用する多次元グリッドを介して相互接続された9つのノードを含む分散メモリ並列スーパーコンピュータの例示的な図である。図を簡単にし、わかりやすくするために、ノードの数が、例示的な形で9個のノードに制限されていることと、ノードの数を、分散メモリ並列スーパーコンピュータの特定のアーキテクチャ的要件に応じて大幅に変更できることに留意されたい。図1には、Q11からQ33としてラベルを付けられた9つのノードが示され、これらのノードの対が、グリッド・リンクによって相互接続される。合計で、9ノードのトーラス・ネットワーク100が、18個のグリッド・リンクによって相互接続され、各ノードは、めいめいのグリッド・リンクを介してトーラス・ネットワーク100内の4つの他のノードに直接に相互接続される。メッシュと異なって、例示的な2次元トーラス・ネットワーク100に、エッジ・ノードが含まれないことに留意されたい。たとえば、ノードQ11は、グリッド・リンク102を介してノードQ31に相互接続され、グリッド・リンク104を介してノードQ13に相互接続され、グリッド・リンク106を介してノードQ21に相互接続され、最後に、グリッド・リンク108を介してノードQ12に相互接続される。もう1つの例では、ノードQ22は、グリッド・リンク110を介してノードQ12に相互接続され、グリッド・リンク112を介してノードQ21に相互接続され、グリッド・リンク114を介してノードQ32に相互接続され、最後に、グリッド・リンク116を介してノードQ23に相互接続される。他のノードは、類似する形で相互接続される。
さらに図1に関して、ノードの間で通信されるデータ(すなわち、配列の要素)は、ネットワーク上で1つまたは複数のパケットで搬送される。ノードの対の間の所与の通信について、通信されるデータの量が、トーラス・ネットワーク100によってサポートされるパケットサイズを超える場合には、複数のパケットが必要である。パケットには、パケット・ヘッダと、パケットによって担持されるデータが含まれる。パケット・ヘッダには、パケットをソース・ノードから宛先ノードに搬送するためにトーラス・ネットワーク100が必要とする情報が含まれる。本発明の応用例の分散メモリ並列スーパーコンピュータでは、ネットワーク上の各ノードが、論理アドレスによって識別され、パケット・ヘッダに、宛先アドレスが含まれ、その結果、パケットが、宛先によって識別されるネットワーク上のノードに自動的に経路指定される。
図2は、本発明による、図1の分散メモリ並列スーパーコンピュータからの例示的ノード、たとえばノードQ11の詳細な表現200を示す図である。ノードQ11には、ローカル・メモリ204を操作する少なくとも1つのプロセッサ202が含まれる。ノードには、さらに、グリッド・リンク102、104、106、および108でパケットを経路指定するすなわち送出し、受け取る、ルータ206が含まれ、これらのグリッド・リンクは、図1に特に示されているように、ノードQ11を、それぞれ隣接するノードQ31、Q13、Q21、およびQ12に接続する。さらに、ノードには、ルータ206によって受け取られた、ローカル・プロセッサ202宛のパケットをバッファリングする受取バッファ208が含まれる。ローカル・プロセッサ202は、受け取りバッファ内にパケットがあるかどうかを判定するために、簡単に周期的に受取バッファ208をポーリングし、受取バッファ208でバッファリングされるパケットを取り出す。特定のアプリケーションおよびパケットに応じて、ローカル・プロセッサ202は、パケットの内容をローカル・メモリ204に書き込むことができる。
さらに図2に関して、ノードQ11に、4つの注入先入れ先出し(すなわち「FIFO」)バッファ210があり、これらのそれぞれに、X+、X−、Y+、およびY−というラベルが付けられている。プロセッサは、アウトバウンド・パケットを、ローカル・メモリ204の1つまたは複数の出力キュー212に置き、出力キュー212は、他のノード宛のパケットを、注入FIFO210に置くことができるようになるまで保管する。注入FIFOが満杯でない間は、プロセッサは、アウトバウンド・パケットを注入FIFO210に置く。特定のパケットが、注入FIFO210の頭部に達する時に、そのパケットは、ルータ206によって注入FIFO210から除去され、ルータ206は、そのパケットを、特定のパケットの宛先ノードに向けてグリッド・リンク102、104、106、および108に挿入する。4つの注入FIFO210は、ルータ206によって、およびローカル・プロセッサ202のハードウェアによって、同等に扱われる。
さらに図2に関して、ルータ206に、複数同時経路指定特性が含まれる。経路指定は、まず、バーチャル・カットスルー経路指定を表す。たとえば、グリッド・リンクの1つの着信パケットが、ノードQ11のローカル・プロセッサ202宛でない場合に、ルータ206は、発信グリッド・リンク102、104、106、および108の1つにそのパケットを転送する。ルータ206は、ローカル・プロセッサ202を伴わずにこの転送を実行する。経路指定は、さらに、最短パス経路指定を表す。たとえば、グリッド・リンク104を介して移動する、ノードQ11によってノードQ13(図1および8参照)に送られるパケットは、最短パス経路を表す。他のすべてのパスが、これより長いはずである。もう1つの例として、ノードQ11によってノードQ22に送られたパケットは、グリッド・リンク106および112またはその代わりにグリッド・リンク108および110を介して移動することができる。このタイプの経路指定は、適応タイプの経路指定を表す。したがって、パケットが、トーラスベース・ネットワーク100を介して別のノードへの移動でノードを出ることができるグリッド・リンクの選択肢がある場合がある。前の例では、パケットは、グリッド・リンク106または108を介してノードQ11から出ることができる。適応経路指定を用いると、ルータ206が、パケットのためにより忙しくない発信グリッド・リンク選択するか、なんらかの他の判断基準に基づいて発信グリッド・リンクを選択できるようになる。適応経路指定は、パケットのソース・ノード、たとえばノードQ11で実行されるだけではなく、図1のトーラスベース・ネットワーク100を介するパケットの宛先ノードへの途中でパケットが通り抜ける中間ノードのそれぞれでも実行されることに留意されたい。図9および10に関する下の説明で、本発明がトーラスベース・ネットワーク100上でスーパーコンピュータのノードにまたがってパケットの前述の経路指定をどのように実行するかを特に説明する。
図3は、本発明による、多次元FFTについて効率的に実施することができる、81個の要素を含む例示的な2次元の9行×9列配列300である。例示的な2次元配列300が、異なる行数および列数を含む他の2次元配列(たとえば10行×11列の2次元配列)に簡単に拡張され、この配列を使用して、本発明に従って分散メモリ並列スーパーコンピュータでFFTを実施できることに留意されたい。配列200では、配列の最初の行に、要素A11、A12、…、A19が含まれ、配列の最初の列に、要素A11、A21、…、A91が含まれる。
図4は、本発明による、図3の2次元配列300が図1のノードQ11からQ33にまたがってどのように分配されるかの例示的な分配の図400である。配列を、当初は、アプリケーションに固有の任意の形でノードにまたがって分配できることに留意されたい。本発明によれば、配列が、再分配され、配列の、各ノードQ11、…、133上の部分に、図4に示された分配が含まれるようになる。この再分配は、図5および6に関して下で説明するものに類似する。分配の図400に特に示されているように、図1の各ノードに、図3の2次元配列300の一部が含まれる。たとえば、ノードQ11に、配列300の最初の行すなわち、要素A11、A12、…、A19が含まれる。もう1つの例として、ノードQ12に、配列300の第2の行すなわち、要素A21、A22、…、A29が含まれる。図4の分配の図400に特に示されているように、図1の他のノードQ13からQ33に、それぞれ配列300の行3から9が含まれることに留意されたい。図4の例示的な分配では、配列要素の特定の行への特定のノードの割当は、重要ではない。そうではなく、割当が実行可能であることに留意されたい。さまざまなアプリケーションおよび/またはコンピュータについて、ある割当で、そのアプリケーションおよび/またはコンピュータによって提供される効率を利用でき、したがって、他の割当より高速の実行が生ずる可能性がある。たとえば、多次元FFTを実行する最も高速の方法が、ノードQ11およびQ12の割当を、図4に示された割当の逆にすることである場合がある。
図5は、図1の2次元トーラスベース・ネットワーク100のノードQ11からQ33にまたがって分配された図4の2次元配列に対する最初の1次元FFTを示す例示的な図500である。上で特に注記したように、本発明による多次元FFTは、一連の1次元FFTを実行することによって達成される。したがって、本発明によれば、2次元配列300の多次元FFTを、一連の1次元FFTとして実施することができる。したがって、1次元FFTが、各ノードに分配された要素の各行に対して実行される。たとえば、1次元FFTは、ノードQ11に分配された要素すなわち、ノードQ11に分配された配列300の最初の行の要素について実行される。1次元FFTは、各ノードQ12からQ33の要素(すなわち要素の行)について実行される。結果は、最初の1次元FFTによって変換された要素の配列である。具体的に言うと、各ノードの各行に対する1次元FFTの結果は、図5に特に示されたものと同一の長さの行である。たとえば、図4のノードQ11の最初の行(要素A11、A12、…、A19を含む)に対して実行される1次元FFTは、図5のノードQ11の最初の行をもたらし、これには、要素B11、B12、…、B19が含まれる。さらに、各ノードで各行に対して実行される1次元FFTは、別のノードの他の行に対して実行される1次元FFTと独立である。図4に示されたデータの特定の分配によって、各ノードが、図1のトーラス・ネットワーク100の他のノードと通信せずに、そのノードに分配された要素の行に対して1次元FFTを実行できるようになる。したがって、ノードの間の通信が必要ではないので、これらの1次元FFTが、すばやく実行される。各ノードで、図5の結果の行のほかに、図4の元の行が、存在し続け、特定のアプリケーションには重要であるが、図6および7に特に示されているように、元の行が、本発明による多次元FFTに必要な一連のFFTの第2の1次元FFTにはもはや不要であることに留意されたい。
図6は、本発明による、第2次元FFTを実行するために、図5の第1次元FFTを介して変換された要素の結果の行のそれぞれが、ノードQ11からQ33にどのように再分配されるかを示す、例示的な「すべて対すべて」再分配の図600である。具体的に言うと、図5の各ノードQ11、…、Q33で分配される要素の結果の行のそれぞれは、トーラス・ネットワーク100上で再分配され、その結果、各連続するノードが、図6に特に示されているように、要素の連続する列を受け取るようになる。この効率的な再分配は、「すべて対すべて」再分配であり、これによって、本発明による、分散メモリ並列スーパーコンピュータでの多次元FFTの効率的な実施が可能になる。たとえば、最初のノードQ11は、要素の最初の列すなわち、ノードQ11、…、Q33のそれぞれから最初の要素を受け取る。もう1つの例として、ノードQ12は、要素の第2の列すなわち、ノードQ11、…、Q33のそれぞれから第2の要素を受け取る。この再分配は、図5の列ごとに行われる。図6の例示的な再分配では、配列要素の特定の行への特定のノードの割当が、重要ではない。そうではなく、割当が実行可能であることに留意されたい。さまざまなアプリケーションおよび/またはコンピュータについて、ある割当で、そのアプリケーションまたはコンピュータあるいはその両方によって提供される効率を利用でき、したがって、他の割当より高速の実行が生ずる可能性がある。たとえば、多次元FFTを実行する最も高速の方法が、ノードQ11およびQ12の割当を、図6に示された割当の逆にすることである場合がある。図9および10に関する下の説明で、特に、本発明で、トーラス・ネットワーク100上のスーパーコンピュータのノードにまたがる配列要素の「すべて対すべて」再分配がどのように実行されるかを特に説明する。各ノードQ11、…、Q33での要素の「すべて対すべて」再分配は、トーラス・ネットワーク100の通信特性を利用するので高速である。図6に示された再分配では、Q11、…、Q33ノードからの各ノードが、すべての他のノードに単一の配列要素を送る。以下の説明では、配列の各要素が、単一のパケットによって担持されるデータの量より多い量のデータであると仮定する。したがって、トーラス・ネットワーク100を介して配列の各要素を宛先ノードに送信するのに、複数のパケットが必要である。これは、はるかに大きい配列サイズに起因して、各ノードが多数の配列要素を他のすべてのノードに送り、通常は多数のパケットが必要になる、通常の実世界の再分配によく似ている。
図7は、本発明による、図1の2次元トーラス・ネットワーク100のノードQ11からQ33にまたがって分配された、図6の2次元配列に対する第2の1次元FFTを示す例示的な図700である。上で特に注記したように、本発明による多次元FFTは、一連の1次元FFTを実行することによって達成され、図7は、本発明による一連のFFTの第2の1次元FFTを示す図である。したがって、1次元FFTは、図5に示された各ノードに分配された要素の列に対して実行される。たとえば、1次元FFTは、ノードQ11に分配された要素すなわち、図6の、図5の第1列からノードQ11に行として分配された要素B11、B21、…、B91について実行される。さらに、1次元FFTは、各ノードQ12からQ33の要素の行(すなわち、図5の要素の連続する列から分配された)に対して実行される。各行に対する1次元FFTの結果は、特に図7に示されたものと同一の長さの行である。たとえば、要素B11、B21、…、B91を含む図6のノードQ11の最初の行に対して実行される1次元FFTは、要素C11、C21、…、C91を含む図7のノードQ11の最初の行をもたらす。第1のFFTに関して上で説明したように、各ノードで各行に対して実行される1次元FFTは、別のノードで他の行に対して実行される1次元FFTと独立である。図6に示されたデータの特定の分配によって、各ノードが、図1のトーラス・ネットワーク100で他のノードと通信せずに、そのノードに分配された要素の行に対して1次元FFTを実行できるようになる。したがって、ノードの間の通信が不要なので、これらの1次元FFTは、すばやく実行される。
図8は、スーパーコンピュータのノードQ11、…、Q33の間の通信に2次元トーラス・ネットワーク100を使用する、図1の分散メモリ並列スーパーコンピュータの配列の2次元FFTの実施形態を示す例示的な方法の流れ図である。以下の説明では、図8を、2次元FFTを効率的に実行するために、図1から7を基礎として説明する。ステップ802で、図1の分散メモリ並列スーパーコンピュータ内で、図3に示された2次元配列の多次元FFTが開始される。ステップ802で、図3に示された配列が、アプリケーションに固有とすることができる任意の形でノードにまたがって分配されることに留意されたい。ステップ804で、配列300の要素(すなわちデータ)が、特に図4に示されているように、ノードQ11、…、Q33にまたがって効率的に再分配される。ステップ806で、各ノードが、図4に示されているように、そのノードに保管された配列の要素の行に対して最初の1次元FFT(一連の1次元FFTのうちの)を実行し、その結果は、特に図5に示されている。図5および6に関して説明したように、ステップ808で、1次元FFTによって変換された要素の列が、図1のトーラスベース・アーキテクチャを使用して、スーパーコンピュータのノードQ11、…、Q33にまたがって再分配される。ステップ810で、各ノードが、図6の要素の行として分配された、図6に示された第1の1次元FFT変換された要素の連続する列に対して第2の1次元FFTを実行する。第2の1次元FFTの結果は、図7に示されている。ステップ812で、図1のスーパーコンピュータの図3に示された2次元配列の多次元FFTが終了する。上で特に説明したように、2つの1次元FFTの間に、ノードQ11、…、Q33にまたがる要素の高速再分配がある。
ノードにまたがる要素の再分配と結合される、分散メモリ並列スーパーコンピュータのノードにまたがって分配された要素の配列に対する上で説明した多次元FFTが、本発明の実例である。具体的に言うと、本発明は、一連の1次元FFTと結合された、トーラスベース・アーキテクチャの効率的なハードウェア経路指定を使用して、分散メモリ並列スーパーコンピュータでの多次元FFTの効率的な実施形態を達成する。上で注記したように、本発明による教示を使用して、他の数の配列次元、他の配列サイズ、および他の数のトーラス・ネットワーク次元、たとえば3次元トーラスで、効率的な多次元FFTを実行することができる。さらに、本発明による教示を使用して、任意の次元のトーラス・ネットワーク上の分散メモリ並列スーパーコンピュータのノードの間で「すべて対すべて」通信を実行することができる。
図9は、本発明による、図2の例示的ノードQ11上の1つまたは複数の出力キュー212への、分散メモリ並列スーパーコンピュータ上の他のノード、たとえばノードQ22およびQ33宛のパケットの充てんを示す、例示的な方法流れ図900である。上の図6に示された「すべて対すべて」再分配は、本発明に従って、下記のように実施される。Qxyが、x座標値xおよびy座標値y(たとえば、x=1;y=1)を有する包括的なノード(たとえばノードQ11)を表すと仮定する。したがって、「すべて対すべて」再分配に従って、ノードQxy(たとえばノードQ11)は、複数のすべてのパケット(たとえばk個のパケット)を、aおよびbの可能なすべての値について、すべてのノードQabに送る必要がある(たとえば、Qabは、図1に示された、Q12、Q13;Q21、Q22、Q23;およびQ31、Q32、Q33である;Q11がそれ自体にパケットを送る必要がないことに留意されたい)。この再分配をできる限り高速に実行するために、トーラス・ネットワーク100のグリッド・リンクを、効率的に使用しなければならない。パケットが、効率的な順序でスケジューリングされない場合には、グリッド・リンク使用状況も、非常に非効率的になる可能性がある。たとえば、すべてのノードが、まず、正X+方向だけにパケットを送る場合に、負X−方向のすべてのグリッド・リンクが、遊休状態になり、したがって、再分配が、できる限り高速には実行されず、多次元FFTが、できる限り効率的には実施されなくなる。本発明によれば、高速再分配で、トーラスベース・ネットワーク100の適応経路指定機能が利用され、パケット・スケジューリングが、特に下で示すように、効率的に実施される。
したがって、図9を参照すると、パケットを交換する必要があり、2次元配列の要素を含む、トーラス・ネットワーク100によって相互接続されたNx×Ny個のノードがある(すなわち、図1の3×3=9個のノード)。ステップ902で、例示的方法が開始される。ステップ904で、各ノードQ11、…、Q33で、トーラス・ネットワーク100の各ノードに、0、…、Nx×Ny−2の間の一意の番号を割り当てる配列(すなわち、random_map[]配列)が作成される。ノードは、それ自体にパケットを送らないので、パケットを交換するノードの総数は、0からNx×Ny−2までである。ステップ904の割当が、ランダムに生成されることに留意されたい。この時点で、ノードが別のノードに配列の要素を送る必要があるパケットの総数が、kパケット(たとえば6パケット)であると仮定する。その後、合計k個のパケット=d回の繰返し×b個のパケットと仮定し、ここで、合計k個のパケットについて、dは、必要な繰返しの回数であり、繰返しごとにb個のパケットが送信される。bを、効率の必要に応じて選択でき、同様に、1と等しくすることができることに留意されたい。たとえば、合計6個のパケットを送るために、合計6個のパケットについて3回の繰返しのそれぞれで繰返しごとに2パケットを送るように、bを選択することができる。したがって、ステップ906で、1からdまでのidの繰返しについて、ループを初期化する。ステップ908で、キュー・カウンタを0に初期化する。パケット(または、実際のパケットをコピーする必要がなくなるように、パケットの短い記述子)を保管するL個の出力キュー212(Lは、1以上である)があり、所与の宛先に関するすべてのパケット(またはパケットの記述子)が、同一の出力キューに置かれると仮定する。特定の出力キューiLは、図9の入れ子になったループ内のステップ912で、ラウンドロビン順序で選択される。ステップ910で、ステップ904で作成された配列(すなわちrandom_array[])のインデックスとして、ノード0からノードNx×Ny−2までのiN値について、ループを初期化する。ステップ904で作成された配列が、特定のiN値についてインデクシングされる時に、ランダムなノード値が、random_arrayから得られる。ステップ912で、ラウンドロビン順序で最初のキューを選択する。ステップ914で、d回の繰返しごとに、1からb個までのパケットのibについてループを初期化する。その後、ステップ914および916として、所与のランダム・ノードiN宛の複数のb個のパケット(たとえば、上の例からのb=2パケット)が、packet[ノード、id、ib]として同一の出力キューiLに追加される。ステップ918で、d回のすべての繰返しが完了したならば、この方法が終了する。要するに、流れ図900に関して、あるdの反復中に、特定のノード「i」(たとえば、図2のノードQ11のプロセッサ202)が、まず、第1の出力キューにノードModulus(i+1、Nx×Ny−1)宛の配列の要素のデータを含むb個のパケットを置き、次に、特定のノード「i」が、次の出力キューにノードModulus(i+2、Nx×Ny−1)宛の配列の要素のデータを含むb個のパケットを置き、ノードModulus(i+(Nx×Ny−1)、Nx×Ny−1)に達するまでこれを繰り返す。bパケットが、所与の繰り返しで出力キューに置かれた時に、この処理が、d回の繰り返しのすべてが完了するまで繰り返される。前述の再分配によって、図1のトーラス・ネットワーク100上で極端に高いグリッド・リンク使用率が達成され、これによって、本発明による多次元FFTが効率的に実施される。
図10は、図2の例示的ノードQ11の1つまたは複数の出力キュー212内のパケットが、本発明に従って、トーラス・ネットワーク100での後続の挿入のために注入FIFO210にどのようにドレーンされるかを示す、例示的な方法の流れ図1000である。図10を詳細に説明する前に、図9の充てんおよび図10のドレーンを、互いに並行に実行できることに留意されたい。ステップ1002で、例示的な方法が開始される。ステップ1004で、L個の出力キュー212のすべてが空であるかどうかを判定する。ステップ1006で、L個の出力キューのすべてについて反復するために、1からLまでのiLについてループを初期化する。ステップ1008で、特定の出力キューiLが空であるかどうかを判定する。出力キューiLが空である場合には、この方法は、ステップ1006で次のiL出力キューに継続する。そうでない場合には、ステップ1010で、出力キューiLの頭部にあるパケットについて、そのパケットをトーラス・ネットワーク100を介して経路指定することが可能な方向を得る。たとえば、図1に関して、ノードQ11が、出力キューiLにノードQ22宛のパケットを置いたと仮定する。パケットは、ノードQ11からX+方向で(グリッド・リンク108を介して)およびその後にY−方向で(グリッド・リンク110を介して)移動して、ノードQ22に達することができ、あるいは、Y−方向で(グリッド・リンク106を介して)およびその後にX+方向で(グリッド・リンク112を介して)移動して、ノードQ22に達することができる。図10に戻って、ステップ1012で、さらに、パケットの可能な方向の図2のすべてのFIFO210が満杯であるかどうかを判定する。上で説明したように、各注入FIFO210は、それに関連する論理方向(たとえばX+)を有し、これによって、その注入FIFO210に置かれたパケットが、関連する論理方向(たとえばX+方向)に移動できることが表される。パケット方向の注入FIFO210が満杯である場合には、この方法は、現在の出力キューをスキップし、ステップ1006で次の週力キューに反復することによって継続する。そうでない場合には、ステップ1014で、パケットを、出力キューから、そのパケットの可能な方向の1つの最も満杯でないFIFO210に移動する。パケットは、図2に示された注入FIFO210への挿入に関して、ラウンドロビン順序で出力キューから除去されることに留意されたい。パケットが移動された後に、この方法は、その出力キューの次に使用可能なパケットについて、ステップ1008で継続する。すべての出力キューが空になったならば、この方法はステップ1016で終了する。
「すべて対すべて」経路指定を説明する、図9および10をより完全に示すために、図5のノードQ11の要素の行すなわち要素B11、B12、…、B19が、トーラス・ネットワーク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のFIFO210に、{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のFIFO210は、下の表1に示されているように充てんされる。
Figure 0004652666
注入FIFOの数が、上ではノードへのグリッド・リンクの数と等しいと説明されたが(たとえば、4つのFIFOと4つのグリッド・リンク)、少なくとも特定のグリッド・リンクに制限される注入FIFOの使用も、注入FIFOの数がグリッド・リンクの数と等しくない時に、十分に適する。たとえば、グリッドより少数の注入FIFOがある場合に、バッファの使用を、複数の特定のグリッド・リンクの少なくとも1つに制限することができる。もう1つの例として、グリッド・リンクより多数の注入FIFOがある場合に、その使用が少なくとも同一の特定のグリッド・リンクに制限される複数のFIFOを設けることができる。
配列再分配の実施形態を、上で多次元FFTの効率的な実施形態に関して説明したが、「すべて対すべて」再分配は、図1のトーラス・ネットワーク100での任意のタイプの配列再分配にも十分に適する。
本発明の好ましい実施形態に関して本発明を具体的に図示し、説明してきたが、形態および詳細における前述の変更および他の変更を、本発明の趣旨および範囲から逸脱せずに行えることを、当業者は理解するであろう。
本発明による、2次元3×3トーラス・ネットワークを使用する多次元グリッドを介して相互接続された9つのノードを含む例示的な分散メモリ並列スーパーコンピュータを示す図である。 本発明による、図1の分散メモリ並列スーパーコンピュータからの例示的ノードの詳細な表現を示す図である。 本発明による、多次元FFTについて効率的に実施することができる、例示的な2次元の9行×9列配列を示す図である。 本発明による、図1のスーパーコンピュータのノードにまたがる図3の2次元配列の例示的分配を示す図である。 本発明による、図1のスーパーコンピュータのノードにまたがって分配された2次元配列の例示的な第1の1次元FFTを示す図である。 本発明による、図5の第1の2次元FFTの後の結果の2次元配列の例示的な再分配を示す図である。 本発明による、図6の再分配された配列の例示的な第2の1次元FFTを示す図である。 本発明による、図4から7に示された2次元FFTの実施形態を示す例示的な方法の流れ図である。 本発明による、分散メモリ並列スーパーコンピュータの他のノード宛のパケットによる例示的なノードの出力キューの充てんを示す例示的な方法の流れ図である。 本発明による、トーラス・ネットワーク100での後続の挿入のために例示的なノードの出力キューのパケットが注入FIFOにどのようにドレーンされるかを示す例示的な方法の流れ図である。

Claims (13)

  1. ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列の多次元高速フーリエ変換(FFT)を実施する方法であって、
    (a)前記マルチノード・コンピュータ・システムが、前記多次元FFTの第1の次元の1次元FFTを実施するために、前記配列の前記複数の要素を第1次元で前記コンピュータ・システムの前記複数のノードにまたがって前記ネットワークを介して分配することと、
    (b)前記複数のノードの各ノードが、分配された前記配列の前記要素に対して前記第1次元で前記第1の1次元FFTを実行することと、
    (c)前記各ノードが、各ノードの1次元FFT変換された要素の単一の配列要素を第2次元で前記ネットワークを介する前記コンピュータ・システムの自ノードを除くすべての他のノードのそれぞれに分配することであって、当該分配の実行順序が前記すべての他のノードがランダムに配列された実行順序であるように分配することである「すべて対すべて」分配を介して再分配することと、
    (d)各ノードが再分配された前記配列の要素に対する前記多次元FFTの第2の次元の1次元FFTを前記第2次元で実行することと
    を含む、多次元FFTを実施する方法。
  2. 前記方法が、さらに、
    各ノードが前記配列の前記要素の単一の配列要素を、前記ネットワークを介する前記コンピュータ・システムのすべての他のノード分配するランダムな順序での「すべて対すべて」分配を介して第3次元で再分配するステップと、
    各ノードが再分配された前記配列の要素に対して前記第3次元で1次元FFTを実行するステップと、
    前記マルチノード・コンピュータ・システムが、ノードにまたがるランダムな順序で前記配列の前記要素を再分配する前記ステップおよび各ノードで後続の次元について前記再分配された要素に対して前記1次元FFTを実行する前記ステップとを繰り返すステップと
    を含む、請求項1に記載の多次元FFTを実施する方法。
  3. 前記方法が、前記マルチノード・コンピュータ・システムが、各ノードの前記1次元FFT変換された要素を再分配するために他のノードのランダムな順序を生成するステップを含む、請求項1に記載の多次元FFTを実施する方法。
  4. 前記複数の要素のそれぞれが、複数の総パケットを介して前記コンピュータ・システムのノードの間で再分配される、請求項3に記載の多次元FFTを実施する方法。
  5. 前記方法が、さらに、
    各ノードが複数の出力キューを設けるステップと、
    前記各ノードが、他のノードごとに、各繰返し中に前記複数の総パケットの少なくとも1つのパケットを出力キューに出力するステップと
    を含む、請求項4に記載の多次元FFTを実施する方法。
  6. 前記方法が、さらに、
    前記各ノードが、複数の注入先入れ先出し(FIFO)バッファを設けるステップであって、各FIFOバッファが、前記ネットワーク上の少なくとも特定の方向でパケットを送出する、ステップと、
    前記各ノードが、前記複数の出力キューを通して各キューの頭部にあるパケットの識別を繰り返すステップと、
    前記各ノードが、各キューの頭部にある前記パケットに関連する可能な経路指定方向を得るステップと、
    前記各ノードが、前記パケットを、各キューの頭部から、前記パケットに関連する前記可能な経路指定方向の1つの最も満杯でないFIFOバッファに移動するステップと
    を含む、請求項5に記載の多次元FFTを実施する方法。
  7. ネットワークを介して通信する複数のノードを含むマルチノード・コンピュータ・システムで当初に分配される複数の要素を含む多次元配列の多次元高速フーリエ変換(FFT)を実施するシステムであって、
    (a)前記多次元FFTの第1の次元の1次元FFTを実施するために、前記配列の前記複数の要素を第1次元で前記コンピュータ・システムの前記複数のノードにまたがって前記ネットワークを介して分配する手段と、
    (b)各ノードで、分配された前記配列の前記要素に対して前記第1次元で前記第1の1次元FFTを実行する手段と、
    (c)各ノードで、1次元FFT変換された要素の単一の配列要素を第2次元で前記ネットワークを介する前記コンピュータ・システムの自ノードを除くすべての他のノードのそれぞれに分配することであって、当該分配の実行順序が前記すべての他のノードがランダムに配列された実行順序であるように分配することである「すべて対すべて」分配を介して再分配する手段と、
    (d)各ノードで、再分配された前記配列の要素に対する前記多次元FFTの第2の次元の1次元FFTを前記第2次元で実行する手段と
    を含む、多次元FFTを実施するシステム。
  8. 前記システムが、さらに、
    各ノードで、前記配列の前記要素の単一の配列要素を、前記ネットワークを介する前記コンピュータ・システムのすべての他のノードに分配することであって、当該分配の実行順序が前記すべての他のノードがランダムに配列された実行順序であるように分配することである「すべて対すべて」分配を介して第3次元で再分配する手段と、
    各ノードで、再分配された前記配列の要素に対して前記第3次元で1次元FFTを実行する手段と、
    ノードにまたがるランダムな順序で前記配列の前記要素を再分配する前記ステップおよび各ノードで後続の次元について前記再分配された要素に対して前記1次元FFTを実行する前記ステップとを繰り返す手段と
    を含む、請求項7に記載の多次元FFTを実施するシステム。
  9. 前記システムが、各ノードの前記1次元FFT変換された要素を再分配するために他のノードのランダムな順序を生成する手段を含む、請求項7に記載の多次元FFTを実施するシステム。
  10. 前記複数の要素のそれぞれが、複数の総パケットを介して前記コンピュータ・システムのノードの間で再分配される、請求項9に記載の多次元FFTを実施するシステム。
  11. 前記システムが、さらに、
    各ノードで複数の出力キューを設ける手段と、
    各ノードで、他のノードごとに、各繰返し中に前記複数の総パケットの少なくとも1つのパケットを出力キューに出力する手段と
    を含む、請求項10に記載の多次元FFTを実施するシステム。
  12. 前記システムが、さらに、
    前記各ノードで、複数の注入先入れ先出し(FIFO)バッファを設ける手段であって、各FIFOバッファが、前記ネットワーク上の少なくとも特定の方向でパケットを送出する、手段と、
    ノードで前記複数の出力キューを通して各キューの頭部にあるパケットの識別を繰り返す手段と、
    前記各ノードで、各キューの頭部にある前記パケットに関連する可能な経路指定方向を得る手段と、
    前記各ノードで、前記パケットを、各キューの頭部から、前記パケットに関連する前記可能な経路指定方向の1つの最も満杯でないFIFOバッファに移動する手段と
    を含む、請求項11に記載の多次元FFTを実施するシステム。
  13. 請求項1乃至6のいずれか1項に記載の方法の各ステップを前記マルチノード・コンピュータに実行させるためのコンピュータプログラム。
JP2002568153A 2001-02-24 2002-02-25 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施 Expired - Fee Related JP4652666B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 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
JP2004536371A JP2004536371A (ja) 2004-12-02
JP4652666B2 true JP4652666B2 (ja) 2011-03-16

Family

ID=68499830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002568153A Expired - Fee Related JP4652666B2 (ja) 2001-02-24 2002-02-25 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施

Country Status (9)

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

Families Citing this family (39)

* 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次元高速フーリエ変換演算装置
CA2437036A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
US20060095485A1 (en) * 2004-10-30 2006-05-04 Moore George S System and method for permuting a vector
CN100422975C (zh) * 2005-04-22 2008-10-01 中国科学院过程工程研究所 一种面向粒子方法的并行计算系统
US20060241928A1 (en) * 2005-04-25 2006-10-26 International Business Machines Corporation Load balancing by spatial partitioning of interaction centers
GB2425860A (en) * 2005-05-05 2006-11-08 Advanced Risc Mach Ltd Multi-dimensional fast fourier transform
EP2013772B1 (en) * 2006-04-28 2018-07-11 Qualcomm Incorporated Multi-port mixed-radix fft
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
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
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
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 データ処理装置及びプログラム
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9009350B2 (en) * 2008-04-01 2015-04-14 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
DE112010003810B4 (de) * 2009-11-16 2019-02-21 International Business Machines Corporation Verfahren, Programm und paralleles Computersystem für die Planung einer Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen
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
US10048991B2 (en) * 2013-07-01 2018-08-14 Hitachi, Ltd. System and method for parallel processing data blocks containing sequential label ranges of series data
US20160105494A1 (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
CN104820581B (zh) * 2015-04-14 2017-10-10 广东工业大学 一种fft和ifft逆序数表的并行处理方法
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
CN107451097B (zh) * 2017-08-04 2020-02-11 中国科学院软件研究所 国产申威26010众核处理器上多维fft的高性能实现方法

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 株式会社日立製作所 フーリエ変換方法およびプログラム記録媒体
CA2437036A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
US7788310B2 (en) * 2004-07-08 2010-08-31 International Business Machines Corporation Multi-dimensional transform for distributed memory network

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4652666B2 (ja) 分散メモリ並列マルチノード・コンピュータでの多次元高速フーリエ変換の効率的な実施
Nesson et al. ROMM routing on mesh and torus networks
Lim et al. Efficient algorithms for block-cyclic redistribution of arrays
Nicol Rectilinear partitioning of irregular data parallel computations
US7620736B2 (en) Network topology having nodes interconnected by extended diagonal links
Kumar et al. Optimization of all-to-all communication on the blue gene/l supercomputer
US8819272B2 (en) Multiprocessor communication networks
US20160105494A1 (en) Fast Fourier Transform Using a Distributed Computing System
Bhagavathi et al. A fast selection algorithm for meshes with multiple broadcasting
JP7180424B2 (ja) 並列処理装置、データ転送先決定方法およびデータ転送先決定プログラム
Leung et al. On multidimensional packet routing for meshes with buses
Bhat et al. Block‐cyclic redistribution over heterogeneous networks
Shankar et al. Random data accesses on a coarse-grained parallel machine II. one-to-many and many-to-one mappings
Shankar et al. Random data accesses on a coarse-grained parallel machine I. one-to-one mappings
Dobravec et al. Permutation routing in double-loop networks: design and empirical evaluation
Ranade et al. Nearly tight bounds for wormhole routing
Chang et al. Multimedia file allocation on VC networks using multipath routing
Aronson Networks and Routing: A Survey
Al-Lami et al. Communication impact on non-contiguous allocation strategies for 2-D mesh multicomputer systems
Nesson Randomized, oblivious, minimal routing algorithms for multicomputers
Herault et al. Determining the optimal redistribution for a given data partition
Stunkel et al. Adaptive Source Routing in Multistage Interconnection Networks
Son et al. Adaptive Deadlock-free Packet Routeing in Transputer-based Multiprocessor Interconnection Networks
Hérault et al. Determining the optimal redistribution
Aydoğan Adaptive source routing and route generation for multicomputers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20030926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070326

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080331

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101216

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees