JP2005506596A - トーラス・ネットワークおよびツリー・ネットワークでの算術機能 - Google Patents
トーラス・ネットワークおよびツリー・ネットワークでの算術機能 Download PDFInfo
- Publication number
- JP2005506596A JP2005506596A JP2002568231A JP2002568231A JP2005506596A JP 2005506596 A JP2005506596 A JP 2005506596A JP 2002568231 A JP2002568231 A JP 2002568231A JP 2002568231 A JP2002568231 A JP 2002568231A JP 2005506596 A JP2005506596 A JP 2005506596A
- Authority
- JP
- Japan
- Prior art keywords
- global
- nodes
- network
- node
- value
- 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 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000009467 reduction Effects 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 5
- 238000007620 mathematical function Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 abstract description 7
- 235000008694 Humulus lupulus Nutrition 0.000 abstract description 4
- 230000002457 bidirectional effect Effects 0.000 abstract description 4
- 238000007792 addition Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- 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
-
- 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
-
- 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/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mechanical Engineering (AREA)
- Thermal Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】本発明の第1の態様によれば、クラス・ネットワーク経路指定のソフトウェア・アルゴリズムおよびハードウェア実施形態とあいまって働く、トーラスでグローバル算術演算に必要な時間の非常に大幅な削減を達成する方法および装置が提供される。したがって、これは、大型並列計算機で稼動するアプリケーションのより高いスケーラビリティにつながる。本発明は、グローバル演算の効率および正確さを改善する、下記の3つのステップすなわち、(1)すべてのノードが、同一の順序でデータに対するグローバル演算を行い、したがって、丸め誤差と独立に、一意の答えを得ることを、必要な時に保証するステップ、(2)データ転送動作の時間ステップ数を絶対最小限まで減らすために、ホップ数およびネットワークの両方向能力を最小にするのにトーラスのトポロジを使用するステップ、および(3)データ転送の待ち時間を減らすためにクラス機能経路指定を使用するステップが含まれる。本発明の方法を用いて、すべての単一の要素が、1回だけネットワークに注入され、それ以上のソフトウェア・オーバーヘッドなしで保管され、転送される。本発明の第2の態様によれば、グローバル・コンバイニング演算をサポートするネットワークでグローバル算術演算を効率的に実施する方法およびシステムが提供される。そのようなグローバル演算を行う際の待ち時間が、この方法を使用することによって大幅に減らされる。
Description
【0001】
米国仮出願番号60/271,124、表題「A Novel MassivelyParallel SuperComputer」に、多数のコンピューティング・ノードおよびより少数の入出力ノードからなるコンピュータが記載されている。これらのノードは、複数のネットワークによって接続される。具体的に言うと、これらのノードは、トーラス・ネットワークと二重機能ツリー・ネットワークの両方によって相互接続される。このトーラス・ネットワークは、コンピュータの効率を改善するために複数の形で使用することができる。
【背景技術】
【0002】
詳しく述べると、十分に多数のノードを有し、M次元トーラスの接続性を有するネットワークを有する計算機で、グローバル動作を行う通常の方法は、シフト・アンド・オペレート(shift and operate)によるものである。たとえば、すべてのノードに対するグローバル合計(MPI_SUM)を行うために、各計算ノードがそれ自体のローカル部分合計を行った後に、各ノードが、まず、ローカル合計を1つの次元に沿った+方向の隣に送り、そのノードが隣から受け取った数にそれ自体の合計を加算する。第2に、ノードは、−方向の隣から受け取った数を、+方向の隣に渡し、受け取った数をそれ自体の合計に加算する。第2ステップを(N−1)回(Nは、この1つの次元に沿ったノードの数である)繰り返した後に、1時に1次元ずつすべての次元についてこのシーケンス全体を繰り返すことによって、すべてのノードに対する所望の結果が得られる。しかし、浮動小数点数について、各ノードで実行される浮動小数点合計の次数が異なるので、各ノードは、各ノードで実行される浮動小数点合計の次数が異なるという事実に起因する丸め効果のゆえに、わずかに異なる結果でおわる。これは、グローバル合計の値に依存するグローバル判断が行われる場合に、問題を引き起こす。多くの場合に、この問題は、最初に他のすべてのノードからデータを集め、この計算全体を行い、次いですべてのノードに合計をブロードキャストする特別なノードを選択することによって回避される。しかし、ノードの数が十分に多い時に、この方法は、シフト・アンド・オペレート方法より低速である。
【0003】
さらに、上で示したように、米国仮出願番号60/271,124で開示されたコンピュータでは、ノードが、整数合計、整数最大値(max)、および整数最小値(min)などの整数コンバイニング演算をサポートする二重機能ツリー・ネットワークによっても接続される。グローバル・コンバイニング・ネットワークの存在によって、このネットワークにまたがるグローバル算術演算を効率的に実施する可能性が開かれる。たとえば、コンピューティング・ノードのそれぞれからの浮動小数点数の加算、およびすべての参加するノードへの合計のブロードキャストである。通常の並列スーパーコンピュータでは、この種の演算が、通常は、普通のメッセージ受渡トラフィックを搬送するネットワークを介して行われる。通常は、その種のグローバル動作に関連する長い待ち時間がある。
【特許文献1】
米国仮出願番号60/271,124
【特許文献2】
米国仮出願番号______(YOR920020044US1(15270))
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、分散並列コンピュータでグローバル動作に関するグローバル値を計算する改良された手順を提供することである。
【0005】
本発明のもう1つの目的は、多数のノードを有する分散並列M−トーラス・アーキテクチャで非常に効率的な形でシフト・アンド・オペレート方法を使用してグローバル動作に関する一意のグローバル値を計算することである。
【0006】
本発明のもう1つの目的は、クラス・ネットワーク経路指定のソフトウェア・アルゴリズムおよびハードウェア実施形態とあいまって働く、トーラス・アーキテクチャでグローバル算術演算に必要な時間の非常に大幅な削減を達成する方法および装置を提供することである。
【0007】
本発明のもう1つの目的は、グローバル・コンバイニング演算をサポートするネットワークでのグローバル算術演算を効率的に実施することである。
【0008】
本発明のもう1つの目的は、2進再現可能結果を生成するグローバル算術演算を実施することである。
【0009】
本発明の1つの目的は、グローバル合計演算を行う改良された手順を提供することである。
【0010】
本発明のもう1つの目的は、グローバル・オール・ギャザー(all gather)演算を行う改良された手順を提供することである。
【課題を解決するための手段】
【0011】
上記および他の目的は、下で説明する、算術機能を実行する方法およびシステムによって達成される。本発明の第1の態様によれば、クラス・ネットワーク経路指定のソフトウェア・アルゴリズムおよびハードウェア実施形態とあいまって働く、トーラスでグローバル算術演算に必要な時間の非常に大幅な削減を達成する方法および装置が提供される。これは、大型並列計算機で稼動するアプリケーションのより高いスケーラビリティにつながる。本発明は、グローバル演算の効率、正確さ、および正確な再現可能性を改善する、下記の3つのステップが含まれる。
1.すべてのノードが、同一の順序でデータに対するグローバル演算を行い、したがって、丸め誤差と独立に、一意の答えを得ることを、必要な時に保証するステップ。
2.データ転送動作の時間ステップ数を絶対最小限まで減らすために、ホップ数およびネットワークの両方向能力を最小にするのにトーラスのトポロジを使用するステップ。
3.データ転送の待ち時間を減らすためにクラス機能経路指定(米国仮出願番号______(YOR920020044US1(15270)))を使用するステップ。本発明の方法を用いて、すべての単一の要素が、1回だけネットワークに注入され、それ以上のソフトウェア・オーバーヘッドなしで保管され、転送される。
【0012】
本発明の第2の態様によれば、グローバル・コンバイニング演算をサポートするネットワークでグローバル算術演算を効率的に実施する方法およびシステムが提供される。そのようなグローバル演算を行う際の待ち時間が、これらの方法を使用することによって大幅に減らされる。具体的に言うと、整数最大値MAX、加算SUM、ビット単位AND、ビット単位OR、およびビット単位XORをサポートするコンバイニング・ツリー・ネットワークを用いて、MPI(Message-Passing Interface Standard)で事前定義されたグローバル・リダクション動作の事実上すべてすなわち、MPI_SUM、MPI_MAX、MPI_MIN、MPI_LAND、MPI_BAND、MPI_LOR、MPI_BOR、MPI_LXOR、MPI_BXOR、MPI_MAXLOC、およびMPI_MINLOCと、このネットワークでのMPI_ALLGATHERを実施することができる。実施形態は、簡単かつ効率的であり、コンバイニング・ツリー・ネットワークが大規模並列スーパーコンピュータにもたらす高い柔軟性および効率が実証される。
【0013】
本発明のさらなる利益および長所は、本発明の好ましい実施形態を指定し、示す、添付図面と共に以下の詳細な説明を検討することから明白になる。
【発明を実施するための最良の形態】
【0014】
本発明は、コンピュータでの算術演算の実行に関し、適するコンピュータの1つが、米国仮出願番号60/271,124で開示されている。このコンピュータは、多数の計算ノードとより少数の入出力ノードからなり、このコンピュータのノードは、図1の10に概略的に示されたトーラス・ネットワークと、図2の20に概略的に示された二重機能ツリー・ネットワークの両方によって相互接続される。
【0015】
具体的に言うと、本発明の1態様では、クラス・ネットワーク経路指定のソフトウェア・アルゴリズムおよびハードウェア実施形態とあいまって働く、トーラス・アーキテクチャでグローバル算術演算に必要な時間の非常に大幅な削減を達成する方法および装置が提供される。したがって、これは、大型並列計算機で稼動するアプリケーションのより高いスケーラビリティにつながる。図3からわかるように、本発明には、グローバル演算の効率および正確さを改善する、下記の3つのステップが含まれる。
1.すべてのノードが、同一の順序でデータに対するグローバル演算を行い、したがって、丸め誤差と独立に、一意の答えを得ることを、必要な時に保証するステップ。
2.データ転送動作の時間ステップ数を絶対最小限まで減らすために、ホップ数およびネットワークの両方向能力を最小にするのにトーラスのトポロジを使用するステップ。
3.データ転送の待ち時間を減らすためにクラス機能経路指定を使用するステップ。本発明の好ましい方法を用いて、すべての単一の要素が、1回だけネットワークに注入され、それ以上のソフトウェア・オーバーヘッドなしで保管され、転送される。
【0016】
これらのステップのそれぞれを、下で詳細に説明する。
【0017】
1.同一の順序でグローバル動作(たとえばMPI_SUM)に対するすべてのノードの保証:
ローカル部分合計の1次元シフトおよび加算を行う時に、入ってきた時に数を加算するのではなく、各ノードが、各方向で受信されるN−1個の数を保持する。グローバル動作は、数がすべて受け取られた後にそれらの数に対して実行され、その結果、動作が、固定された順序で実行され、すべてのノードで一意の結果がもたらされる。
【0018】
たとえば、図4からわかるように、各ノードで、受信した時に数を加算する場合に、計算される合計は、ノード0ではS0+S3+S2+S1、ノード1ではS1+S0+S3+S2、ノード3ではS2+S1+S0+S3、ノード4ではS3+S2+S1+S0になる。これらの合計の間に、丸めの差があることになる。しかし、すべてのノードが受信する数が、メモリに保持される場合に、すべてのノードが同一の順序で合計を行って、S0+S1+S2+S3を得ることができ、丸めの差がなくなる。
【0019】
これを、他のすべての次元について繰り返す。最後に、すべてのノードが、同一の数を有し、最終的なブロードキャストは不要である。
【0020】
1.M−トーラス・アーキテクチャでデータ転送のステップ数を最小にする:
2つの隣接するノードの間のネットワーク・リンクが双方向であるすべての計算機で、ステップのそれぞれで両方向でデータを送ることができる。これは、各データ要素がネットワーク上で移動しなければならない総距離が、2分の1に減ることを意味する。これによって、トーラスでのグローバル算術を実行する時間も、およそ2分の1に減る。
【0021】
1.クラス機能経路指定を使用する待ち時間の削減:
ネットワーク・ハードウェアにストア・アンド・フォワード・クラス・ネットワーク経路指定動作を含め、これによって、同一のデータ要素をネットワークから複数回抽出し、挿入するというソフトウェア・オーバーヘッドをなくすことによって、追加の性能利益を達成することができる。クラス経路指定が可能なネットワークでグローバル算術演算を実施する時に、図4に示されたステップ1から3が、単純に、単一のネットワーク・ステップになる、すなわち、各ノードが、数を1回だけ注入する必要があり、他のすべてのノードが、この数を、それを必要とするすべての他のノードに自動的に転送すると同時に、それ自体の使用のためにコピーを保持する。これによって、グローバル動作の待ち時間が大幅に減る。トーラスのすべてのホップでソフトウェア・オーバーヘッドをこうむるのではなく、計算機の次元ごとに単一のオーバーヘッド・コストだけをこうむる。たとえば、米国仮出願番号60/271,124で開示されるコンピュータ・システムで、CPUが単一ユーザ・モードで稼動している時に少なくとも5倍、マルチユーザ・モードで10倍を超える改善があると推定される。
【0022】
上で述べた3つの改善ステップを用いて、分散並列アーキテクチャでのグローバル算術演算について少なくとも10倍の改善を達成することができ、大型並列計算機でのアプリケーションのスケーラビリティも大幅に改善することができる。
【0023】
さらに、前に述べたように、上で識別された米国仮出願に開示されたコンピュータ・システムでは、ノードが、整数合計、整数最大値、整数最小値、ビット単位AND、ビット単位OR、およびビット単位XORなどのデータ・コンバイニング演算をサポートするツリー・ネットワークによっても接続される。さらに、このツリー・ネットワークでは、最終的に組み合わされた結果が、すべての参加ノードに自動的にブロードキャストされる。グローバル・コンバイニング演算をサポートするコンピューティング・ネットワークを用いると、多数のグローバル通信パターンを、このネットワークによって効率的にサポートすることができる。コンバイニング・ネットワーク・ハードウェアに関する最も単純な要件は、ある精度までの符号なし整数加算および符号なし整数最大値をサポートすることである。たとえば、上で識別された米国仮出願書に開示されたスーパーコンピュータは、少なくとも32ビット、64ビット、および128ビットの符号なし整数の加算または最大値をサポートし、2048ビット・パケット・サイズまでの非常に長い精度の合計または最大値をサポートする。このネットワーク・ハードウェアのコンバイニング機能は、高性能グローバル算術機能を実施する際の高い柔軟性をもたらす。これらの実施形態の複数の例を、下で提示する。
【0024】
1.符号付き整数のグローバル合計
図5に、グローバル合計の動作を示す。各参加ノードは、同数のアレイ要素を有する等しいサイズの数のアレイを有する。グローバル合計演算の結果は、各ノードが、すべてのノードからのアレイの対応する要素の合計を有することである。これは、MPI(Message Passing Interface)標準規格のMPI_SUM機能に関連する。
【0025】
通常は、最終結果の精度を維持するために、各ローカル数と比較して、ネットワーク内でより高い精度を使用する必要がある。Nが、合計に参加するノードの個数であり、Mが、合計される整数の最大の絶対値であり、2^Pが、Mを超える大きい正の整数であるものとする。符号なし演算をサポートするネットワークで符号付き整数合計を実施するためには、下記のことのみが必要である。
(1)大きい正の整数2^Pを、合計されるすべての数に加算し、その結果、これらが、非負になるようにする。
(1)ネットワークにまたがる符号なし整数合計を行う。
(1)結果から(N×2^P)を引く。
Pは、2^P>Mになるように選択され、(N×2^(P+1))は、コンバイニング・ネットワークでオーバーフローしない。
【0026】
2.符号付き整数のグローバルmaxおよびグローバルmin
これらの演算は、上で述べたグローバル合計に非常に似ているが、最終結果が、対応する要素の合計ではなく、最大の要素または最小の要素であることが異なる。これらは、整数入力を有する、MPIのMPI_MAX機能およびMPI_MIN機能に関連する。グローバルmaxの実施形態は、上で述べたグローバル合計の実施形態に非常に似ている。
(1)すべての数に大きい正の整数2^Pを加算して、非負にする。
(1)ネットワークにまたがる符号なしグローバルmaxを行う。
(1)結果から2^Pを引く。
グローバルminを行うには、すべての数の符号を反転し、グローバルmaxを行う。
【0027】
3.浮動小数点数のグローバル合計:
浮動小数点数のグローバル合計の動作は、入力が浮動小数点数であることを除いて、前に説明した整数合計に非常に似ている。説明を簡単にするために、各ノードからの1つの数の合計を示す。アレイ合計を行うには、このステップを繰り返すだけである。
【0028】
基本的な発想は、コンバイニング・ネットワークで2つのラウンド・トリップを行うことである。
(1)グローバルmaxの説明で概要を示したステップを使用して、すべての数の指数の整数の最大値Emaxを見つける。
(1)各ノードで、ローカルな数を正規化し、整数に変換する。ノード「i」のローカルな数が、X_iであり、その指数がE_iであるものとする。グローバル合計の説明で定義した表記を使用すると、この変換は次の計算に対応する。
A_i=2^P+2^[P-(Emax-E)-1]×X_i (式1)
ここで、A_iは、符号なし整数である。グローバル符号なし整数合計を、コンバイニング・ハードウェアを使用してネットワークで実行することができる。各ノードで最終的な合計Aに達した時に、真の合計Sは、ローカルに下記を計算することによって各ノードで得ることができる。
S=(A-N×2^P)/2^(P-1)
やはり、Pは、N×2^(P+1)がコンバイニング・ネットワークでオーバーフローしないように選択される。
【0029】
マイクロプロセッサの浮動小数点ユニットを使用して、負の数を正に変換し、その後、整数ユニットを使用して正しいシフトを行うことによって、上の式(1)で行われるステップが、可能な最高の精度で達成されることに留意されたい。
【0030】
この浮動小数点合計アルゴリズムの重要な特徴の1つは、実際の合計が整数合計を介して行われるので、合計が実行される順序に対する依存性がないことである。各参加ノードは、グローバル合計の後に、正確に同一の数を得る。通常は、浮動小数点グローバル合計が通常のメッセージ受渡ネットワークを介して実施される場合に必要な、特殊なノードからの追加のブロードキャストは不要である。
【0031】
当業者は、ネットワーク・ハードウェアが符号なし整数合計だけをサポートする場合であっても、整数が2の補数フォーマットで表される時に、オーバーフローが最後の結果および中間結果で発生せず、2つの数に対する合計のキャリー・ビットがハードウェアによって捨てられる限り、正確な合計が得られることを諒解するであろう。グローバル整数合計およびグローバル浮動小数点合計に対する動作ステップの単純化は、ネットワーク・ハードウェアが正しいオーバーフロー処理を用いて符号付き整数合計をサポートする時と同様に、本発明の範囲に含まれる。
【0032】
たとえば、米国仮出願番号60/271,124に開示されたスーパーコンピュータで実施されるように、ハードウェアが、符号なし整数合計だけをサポートし、符号なし整数オーバーフローからのキャリー・ビットのすべてを捨てる時に、単純化された符号付き整数合計ステップを、次のようにすることができる。
(1)各整数をより高い精度に符号拡張して、結果のオーバーフローが全く発生しないようにする。すなわち、正の整数および0について、拡張された上位ビットのすべてに0を埋め込み、負の整数の拡張されたビットのすべてに1を埋め込む。
(2)ネットワークにまたがって合計を行う。最終的な結果は、正しい符号を有する。
上記を、浮動小数点合計の合計ステップにも適用することができる。
【0033】
整数のグローバル合計の説明からグローバルmaxの説明への修正に類似する修正を用いて、浮動小数点のmaxおよびminも、簡単に得ることができる。
【0034】
非負数の浮動小数点maxにも特別な場合があり、その動作は、2つではなく1つのラウンド・トリップで達成することができる。浮動小数点2進算術(Floating Point Binary Arithmetic)フォーマットに関するIEEE 754標準規格を使用する数について、近代マイクロプロセッサのほとんどで、追加のローカル動作は不要である。正しいバイト順序付けを用いて、各ノードが、数をコンバイニング・ネットワークに置くことができる。一部のディジタル信号プロセッサで使用されるものなどの他の浮動小数点フォーマットについて、指数フィールドのあるローカル操作が必要になる場合がある。負の数のminについても、その絶対値に対するグローバルmaxを行うことによって、同一の単一のラウンド・トリップを達成することができる。
【0035】
4.整数グローバル合計を使用するグローバル・オール・ギャザー動作
グローバル・オール・ギャザー動作を、図6に示す。各ノードが、1つまたは複数の数を与える。最終結果は、その位置が数が来た元の位置に対応するアレイに置かれた数である。たとえば、ノード1からの数は、最終的なアレイで最初に現れ、その後にノード2、…などからの数が続く。この演算は、MPI標準規格のMPI_ALLGATHER機能に対応する。
【0036】
この機能は、整数合計をサポートするコンバイニング・ネットワークでの1パス動作で簡単に実施することができる。ある数に0を加算すると同一の数が得られるという事実を使用して、各ノードは、単に、サイズが最終的なアレイと等しいアレイを組み立て、対応する位置に数を置き、他のすべてのノードからの数に対応する他のすべての位置に0を置く必要がある。コンバイニング・ネットワークを介するすべてのノードからのアレイの整数合計の後に、各ノードは、すべての数をその数の位置に分類された最終的なアレイを有する。
【0037】
5.整数グローバルmaxを使用するグローバルmin_locおよびグローバルmax_loc
これらの機能は、MPI標準規格のMPI_MINLOCおよびMPI_MAXLOCに対応する。グローバル最小値またはグローバル最大値を見つける他に、数のそれぞれにインデックスが付加され、その結果、たとえば、どのノードがグローバル最小値またはグローバル最大値を有するかを見つけることができる。
【0038】
整数グローバルmaxをサポートするコンバイニング・ネットワークでは、これらの機能は、実施が単純である。例として、グローバルmax_locを示す。ノード「j」、j=1、…、Nが、数X_jおよびインデックスK_jを有するものとする。Mが、M>max(K_j)の大きい整数であるものとすると、ノード「j」は、下記の2つの数を、グローバル整数maxに関して単一の単位としてコンバイニング・ネットワークに置くことだけが必要である:
X_j
M-K_j
動作の終りに、各ノードは、
X
M-K
を受け取る。ここでX=max(X_j)は、すべてのX_jの最大値であり、Kは、最大値Xに対応するインデックス番号である。最大値Xと等しい複数の数がある場合には、Kは、最小のインデックス番号になる。
【0039】
グローバルmin_locは、上のX_jをP-X_jに変更することによって達成することができ、ここで、Pは、大きい正の整数であり、P>max(X_j)である。
【0040】
グローバルmax動作またはグローバルmix動作で数の後ろにインデックス番号を付加するという発想は、浮動小数点数にも適用される。上で浮動小数点数のグローバル合計の実行の手順の説明で述べた物に類似するステップを用いて。
【0041】
6.他の動作:
米国仮出願番号60/271,124に記載のスーパーコンピュータ・システムでは、追加のグローバル・ビット単位AND動作、グローバル・ビット単位OR動作、およびグローバル・ビット単位XOR動作も、コンバイニング・ネットワークでサポートされる。これによって、MPI標準規格のMPI_BAND、MPI_BOR、およびMPI_BXORなどのグローバル・ビット単位リダクション動作の非常に簡単な実施が可能になる。基本的に、各ノードは、グローバル動作のオペランドをネットワークに置くことだけが必要であり、グローバル動作は、ハードウェアによって自動的に処理される。
【0042】
さらに、論理動作MPI_LAND、MPI_LOR、およびMPI_LXORも、ビット単位動作で1ビットだけを使用することによって、実施することができる。
【0043】
最後に、グローバル動作のそれぞれに、グローバル・バリア動作も含まれる。これは、すべてのオペランドがネットワークに注入されるまで、ネットワークが進行しないからである。したがって、効率的なMPI_BARRIER動作を、グローバル・ビット単位ANDなどのグローバル算術演算のいずれかを使用して実施することができる。
【0044】
7.トーラス・ネットワークとツリー・ネットワークの両方を使用する動作:
トーラス・ネットワークとツリー・ネットワークの相対帯域幅に依存し、浮動小数点表現と固定小数点表現の間の変換に必要なオーバーヘッドに依存して、トーラス・ネットワークとツリー・ネットワークの両方を同時に使用して、グローバル浮動小数点リダクション動作を行うことがより効率的になる場合がある。そのような場合には、トーラスが、リダクション動作を行うのに使用され、ツリーが、結果をすべてのノードにブロードキャストするのに使用される。トーラスでリダクションを行う従来技術は、既知である。しかし、従来技術では、ブロードキャスト相も、トーラスで行われる。たとえば、図7の30に示された3×4トーラス(またはメッシュ)で、リダクションが、行に沿って行われ、その後、行の終りでノードによって列に沿って行われる。具体的に言うと、合計リダクションでは、図7に、パケットを挿入し、ノードQ21に送るノードQ20が示されている。Q21は、対応する要素を着信パケットの要素に加算し、合計を含むパケットをQ22に送ることによって、このパケットを処理する。Q22は、対応する要素を着信パケットの要素に加算し、合計を含むパケットをQ23に送ることによって、このパケットを処理する。これらの動作が、行ごとに繰り返される。ノードQ23は、Q22からのパケットの対応する値とそのローカル値を合計し、結果のパケットをQ13に送る。ノードQ13は、Q12およびQ23からのパケットの値とそのローカル値を合計し、結果の合計をQ03に送る。Q03は、Q13からのパケットの対応する値とそのローカル値を合計する。Q03は、グローバル合計を有する。従来技術では、このグローバル合計が、トーラス・ネットワークを介して(図示のツリー上ではなく)すべての他のノードに送られる。より多数のノードへおよびより高次元のトーラスへの拡張は、当業者の能力の範囲内であり、本発明の範囲内である。多数の値にまたがるリダクションについて、複数のパケットが、パイプライン化された形で使用される。
【0045】
しかし、最終的なブロードキャスト動作は、トーラス・ネットワークではなくツリー・ネットワークを使用することによって、より高速かつより効率的に行うことができる。これを、図8に示す。あるプロセッサにトーラスでのリダクション動作を処理させ、第2のプロセッサにツリーでブロードキャストされるパケットの受取を処理させることによって、性能を最適化することができる。リダクション・ステップでのホップ数を減らすことによって、さらに性能を最適化することができる。たとえば、パケットを、行の端ではなく、行の中央に送る(かつ合計する)ことができる。
【0046】
3次元トーラスでは、上記の単純な拡張が、各z平面内の単一のノードでのz次元での値の合計をもたらす。これは、これらのノードが3つの着信パケットを処理することを必要とするという不利益がある。たとえば、ノードQ03zは、Q02z、Q13z、およびQ03(z+1)からのパケットを受け取らなければならない。プロセッサが十分に高速でない場合には、これが、この動作のボトルネックになる。性能を最適化するために、通信パターンを変更し、その結果、トーラスで2つを超える着信パケットを処理する必要があるノードをなくす。これを、図8に示す。この図では、ノードQ03zが、そのパケットを、z次元での合計のためにノードQ00zに転送する。さらに、ノードQ00zは、そのパケットをノードQ01zに送るのではなく、ノードQ00(z+1)からパケットを受け取り、そのローカル値と2つの着信パケット内の対応する値を合計する。最後に、ノードQ000が、最終的な合計をツリー・ネットワークを介してブロードキャストする。
【0047】
本明細書で開示された発明が、上で述べた目的を満たすように十分に考慮されていることは明白であるが、多数の修正形態および実施形態を当業者が考案できることを諒解されたい。添付の請求項が、そのような修正形態および実施形態のすべてを、本発明の真の趣旨および範囲に含まれるものとして包含することが意図されている。
【図面の簡単な説明】
【0048】
【図1】コンピュータのノードを接続するトーラス・ネットワークを表す概略図である。ラップされたネットワーク接続は図示されていない。
【図2】コンピュータのノードを接続するツリー・ネットワークを概略的に示す図である。
【図3】1次元トーラスでグローバル合計を実行する手順を示す図である。
【図4】トーラス・アーキテクチャでグローバル算術演算の効率を改善するのに使用することができるテーブル識別ステップを示す図である。
【図5】二重機能ツリー・ネットワークでのグローバル合計の動作を示す図である。
【図6】二重機能ツリー・ネットワークでのグローバル・オール・ギャザーの動作を示す図である。
【図7】3×4トーラス・ネットワークを示す図である。
【図8】最終的なブロードキャスト動作を行うツリー・ネットワークを示す図である。
Claims (49)
- 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行する方法であって、
前記ノードのグループのそれぞれにデータ値の同一の組を与えるステップと、
グローバル算術演算を実行するステップであって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、ステップと、
2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証するステップと
を含む方法。 - 前記保証するステップが、各ノードが、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行するステップを含む、請求項1に記載の方法。
- 前記与えるステップが、前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取るステップを含む、請求項2に記載の方法。
- 前記ノードが、両方向リンクによって一緒に接続され、前記与えるステップが、前記リンクを介して2方向で前記ノードに前記データ値を送るステップを含む、請求項1に記載の方法。
- 前記与えるステップが、前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入するステップを含む、請求項1に記載の方法。
- 前記注入するステップが、前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送するステップを含む、請求項5に記載の方法。
- 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行するシステムであって、
データ値の同一の組を与えられる前記ノードのグループと、
グローバル算術演算を実行する手段であって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、手段と、
2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証する手段と
を含むシステム。 - 前記保証する手段が、各ノードで、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行する手段を含む、請求項7に記載のシステム。
- 前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取る、請求項7に記載のシステム。
- 前記ノードが、両方向リンクによって一緒に接続され、前記与える手段が、前記リンクを介して2方向で前記ノードに前記データ値を送る手段を含む、請求項7に記載のシステム。
- 前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入する、請求項7に記載のシステム。
- 前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送する、請求項7に記載のシステム。
- 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
前記ノードのグループのそれぞれにデータ値の同一の組を与えるステップと、
グローバル算術演算を実行するステップであって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、ステップと、
2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証するステップと
を含むプログラム記憶装置。 - 前記保証するステップが、各ノードが、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行するステップを含む、請求項13に記載のプログラム記憶装置。
- 前記与えるステップが、前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取るステップを含む、請求項14に記載のプログラム記憶装置。
- 前記ノードが、両方向リンクによって一緒に接続され、前記与えるステップが、前記リンクを介して2方向で前記ノードに前記データ値を送るステップを含む、請求項13に記載のプログラム記憶装置。
- 前記与えるステップが、前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入するステップを含む、請求項13に記載のプログラム記憶装置。
- 前記注入するステップが、前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送するステップを含む、請求項17に記載のプログラム記憶装置。
- 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行する方法であって、
ノードのグループのそれぞれに第1値を与えるステップと、
前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するステップであって、前記第2値のすべてが、整数値である、ステップと、
前記第2値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するステップと
を含む方法。 - 前記実行するステップが、前記ネットワークにまたがるグローバル符号なし整数合計を実行するステップを含む、請求項19に記載の方法。
- 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項19に記載の方法。
- 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項19に記載の方法。
- 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行するシステムであって、前記方法が、
ノードのグループであって、前記グループの前記ノードのそれぞれに第1値が与えられる、ノードのグループと、
前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するプロセッサであって、前記第2値のすべてが、整数値である、プロセッサと、
前記第2値を使用して、前記ネットワークにまたがるグローバル整数組合せ動作を実行する手段と
のステップを含むシステム。 - 前記実行する手段が、前記ネットワークにまたがるグローバル符号なし整数合計を実行する手段を含む、請求項23に記載のシステム。
- 前記実行する手段が、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用する手段を含む、請求項23に記載のシステム。
- 前記実行する手段が、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用する手段を含む、請求項23に記載のシステム。
- 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
ノードのグループのそれぞれに第1値を与えるステップと、
前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するステップであって、前記第2値のすべてが、整数値である、ステップと、
前記第2値を使用して、前記ネットワークにまたがるグローバル整数コンバイン・オペレーティングを実行するステップと
を含むプログラム記憶装置。 - 前記実行するステップが、前記ネットワークにまたがるグローバル符号なし整数合計を実行するステップを含む、請求項27に記載のプログラム記憶装置。
- 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項27に記載のプログラム記憶装置。
- 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項27に記載のプログラム記憶装置。
- 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行する方法であって、
各ノードに任意のタイプの1つまたは複数の数を与えるステップと、
前記ノードの前記数をアレイに組み立てるステップであって、前記アレイが、所与の数の位置を有し、前記組み立てるステップが、
i)各ノードが前記ノードの前記数の1つまたは複数を前記アレイの前記位置の1つまたは複数に置き、前記アレイの他の位置のすべてにゼロ値を置くステップと、
i)前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用するステップと
を含む、ステップと
を含む方法。 - 前記アレイの位置の前記所与の数が、定義済みシーケンスで配置され、
前記組み立てるステップが、さらに、各ノードが、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する関連するアレイを確立し、前記ノードの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の位置に置き、前記関連するアレイの他の位置のすべてに0値を置くステップを含む
請求項31に記載の方法。 - 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行するシステムであって、
ノードのグループであって、ノードの前記グループのそれぞれが、1つまたは複数の数を与えられる、ノードのグループと、
前記ノードの前記数をアレイに組み立てる手段であって、前記アレイが、所与の数の位置を有し、前記組み立てる手段が、
i)前記グループの前記ノードの1つまたは複数の前記数を前記アレイの1つまたは複数の前記位置に置き、前記アレイの他の位置のすべてにゼロ値を置く手段と、
i)前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用する手段と
を含む、組み立てる手段と
を含むシステム。 - 前記アレイの前記所与の数の位置が、定義済みシーケンスで配置され、
前記組み立てる手段が、さらに、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する、前記グループの前記ノードのそれぞれに関連するめいめいの1つのアレイを確立し、前記ノードのそれぞれの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の前記位置に置き、前記関連するアレイの他の位置のすべてに0値を置く手段を含む
請求項33に記載のシステム。 - 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
各ノードに1つまたは複数の数を与えるステップと、
前記ノードの前記数をアレイに組み立てるステップであって、前記アレイが、所与の数の位置を有し、前記組み立てるステップが、
a.各ノードが前記ノードの1つまたは複数の前記数を前記アレイの1つまたは複数の前記位置に置き、前記アレイの他の位置のすべてにゼロ値を置くステップと、
a.前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用するステップと
を含む、ステップと
を含むプログラム記憶装置。 - 前記アレイの前記所与の数の位置が、定義済みシーケンスで配置され、
前記組み立てるステップが、さらに、各ノードが、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する関連するアレイを確立し、前記ノードの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の前記位置に置き、前記関連するアレイの他の位置のすべてに0値を置くステップを含む
請求項35に記載の方法。 - 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数を有するコンピュータ・システムで算術機能を実行する方法であって、
前記ノードのそれぞれが第1値の組を与えるステップと、
前記第1値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するステップと
を含む方法。 - 前記実行するステップが、前記第1値の特性を識別するために、前記グローバル整数コンバイン動作の結果を使用するステップを含む、請求項37に記載の方法。
- 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行するシステムであって、
ノードのグループであって、前記グループの前記ノードのそれぞれが、第1値の組からなる、ノードのグループと、
前記第1値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するプロセッサと
を含むシステム。 - 前記プロセッサが、前記第1値の特性を識別するために、前記グローバル整数コンバイン動作の結果を使用する手段を含む、請求項39に記載のシステム。
- グローバル・ツリー・ネットワークおよびトーラス・ネットワークの両方によって相互接続された複数のノードを有する並列処理コンピュータ・システムを動作させる方法であって、
定義された動作を実行するために前記コンピュータ・システムを使用することと、
リダクション動作で協力するために前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用することと
を含む方法。 - 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、1つのプロセッサにトーラス動作を処理させ、別のプロセッサにツリー動作を処理させることによってそれを行うステップを含む、請求項41に記載の方法。
- 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置することによってそれを行うステップを含む、請求項41に記載の方法。
- グローバル・ツリー・ネットワークおよびトーラス・ネットワークの両方によって相互接続された複数のノードを有する並列処理コンピュータ・システムを動作させる方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
定義された動作を実行するために前記コンピュータ・システムを使用することと、
リダクション動作で協力するために前記トーラス・ネットワークおよび前記3ネットワークの両方を使用することと
を含む、プログラム記憶装置。 - 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、1つのプロセッサにトーラス動作を処理させ、別のプロセッサにツリー動作を処理させることによってそれを行うステップを含む、請求項44に記載のプログラム記憶装置。
- 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置することによってそれを行うステップを含む、請求項44に記載のプログラム記憶装置。
- 並列処理コンピュータ・システムであって、
複数のノードと、
前記ノードを相互接続もするグローバル・ツリー・ネットワークと、
前記ノードを相互接続もするトーラス・ネットワークと、
リダクション動作で協力するために前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する手段と
を含む並列処理コンピュータ・システム。 - 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記手段が、トーラス動作を処理する1つのプロセッサと、ツリー動作を処理する別のプロセッサとを含む、請求項47に記載のコンピュータ・システム。
- 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記手段が、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置する手段を含む、請求項47に記載のコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27112401P | 2001-02-24 | 2001-02-24 | |
PCT/US2002/005618 WO2002069177A1 (en) | 2001-02-24 | 2002-02-25 | Arithmetic functions in torus and tree networks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005506596A true JP2005506596A (ja) | 2005-03-03 |
JP4629307B2 JP4629307B2 (ja) | 2011-02-09 |
Family
ID=68499833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002568231A Expired - Fee Related JP4629307B2 (ja) | 2001-02-24 | 2002-02-25 | トーラス・ネットワークおよびツリー・ネットワークでの算術機能 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7313582B2 (ja) |
EP (1) | EP1381963A4 (ja) |
JP (1) | JP4629307B2 (ja) |
KR (1) | KR100592752B1 (ja) |
CN (1) | CN1322452C (ja) |
CA (1) | CA2437629A1 (ja) |
IL (1) | IL157510A0 (ja) |
WO (1) | WO2002069177A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010211553A (ja) * | 2009-03-11 | 2010-09-24 | Fujitsu Ltd | n次元トーラス型分散処理システム、集団通信方法及び集団通信プログラム |
US7873688B2 (en) | 2006-03-23 | 2011-01-18 | Fujitsu Limited | Processing method and computer system for summation of floating point data |
JPWO2011087076A1 (ja) * | 2010-01-14 | 2013-05-20 | 日本電気株式会社 | 計算機、並列計算機システム、同期方法、及びコンピュータプログラム |
Families Citing this family (54)
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 |
US8326909B2 (en) * | 2004-12-17 | 2012-12-04 | Nxp B.V. | Arithmetic or logical operation tree computation |
US20070245122A1 (en) * | 2006-04-13 | 2007-10-18 | Archer Charles J | Executing an Allgather Operation on a Parallel Computer |
US20080022079A1 (en) * | 2006-07-24 | 2008-01-24 | Archer Charles J | Executing an allgather operation with an alltoallv operation in a parallel computer |
DE102006037020A1 (de) * | 2006-08-08 | 2008-02-14 | Wacker Chemie Ag | Verfahren und Vorrichtung zur Herstellung von hochreinem polykristallinem Silicium mit reduziertem Dotierstoffgehalt |
CN100451972C (zh) * | 2006-09-26 | 2009-01-14 | 杭州华三通信技术有限公司 | 提高多核系统访问临界资源速度的方法和装置 |
US7953684B2 (en) * | 2007-01-31 | 2011-05-31 | International Business Machines Corporation | Method and system for optimal parallel computing performance |
US7752421B2 (en) * | 2007-04-19 | 2010-07-06 | International Business Machines Corporation | Parallel-prefix broadcast for a parallel-prefix operation on a parallel computer |
US8140826B2 (en) * | 2007-05-29 | 2012-03-20 | International Business Machines Corporation | Executing a gather operation on a parallel computer |
US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
US8090704B2 (en) * | 2007-07-30 | 2012-01-03 | International Business Machines Corporation | Database retrieval with a non-unique key on a parallel computer system |
US7827385B2 (en) * | 2007-08-02 | 2010-11-02 | International Business Machines Corporation | Effecting a broadcast with an allreduce operation on a parallel computer |
US7734706B2 (en) * | 2007-08-22 | 2010-06-08 | International Business Machines Corporation | Line-plane broadcasting in a data communications network of a parallel computer |
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 | データ処理装置及びプログラム |
US7991857B2 (en) * | 2008-03-24 | 2011-08-02 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8161268B2 (en) * | 2008-05-21 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8375197B2 (en) * | 2008-05-21 | 2013-02-12 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US9501448B2 (en) * | 2008-05-27 | 2016-11-22 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
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 |
CN101587562B (zh) * | 2009-07-02 | 2011-11-09 | 浙江大学 | 一种具有星形拓扑结构膜计算的复杂化工过程建模方法 |
US8447954B2 (en) * | 2009-09-04 | 2013-05-21 | International Business Machines Corporation | Parallel pipelined vector reduction in a data processing system |
US8977669B2 (en) * | 2010-01-08 | 2015-03-10 | International Business Machines Corporation | Multi-input and binary reproducible, high bandwidth floating point adder in a collective network |
US8565089B2 (en) * | 2010-03-29 | 2013-10-22 | International Business Machines Corporation | Performing a scatterv operation on a hierarchical tree network optimized for collective operations |
US8332460B2 (en) | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
US8250164B2 (en) * | 2010-04-15 | 2012-08-21 | International Business Machines Corporation | Query performance data on parallel computer system having compute nodes |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8346883B2 (en) | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US8489859B2 (en) | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
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 |
US8667501B2 (en) | 2011-08-10 | 2014-03-04 | International Business Machines Corporation | Performing a local barrier operation |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
CN105573717B (zh) * | 2014-10-08 | 2018-02-06 | 华为技术有限公司 | 一种面向多核处理器的程序划分方法及装置 |
US10055692B1 (en) | 2017-02-21 | 2018-08-21 | Google Llc | Parallel processing of reduction and broadcast operations on large datasets of non-scalar data |
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
CN112039678B (zh) * | 2019-06-04 | 2021-11-19 | 清华大学 | 基于Torus网络的组播方法 |
US11715010B2 (en) | 2019-08-16 | 2023-08-01 | Google Llc | Cross replica reduction on networks having degraded nodes |
CN110865951B (zh) * | 2019-11-05 | 2021-03-23 | 中国人民解放军国防科技大学 | 一种支持单根双处理器中断通信的方法和装置 |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5611070A (en) * | 1990-05-10 | 1997-03-11 | Heidelberger; Philip | Methods and apparatus for performing a write/load cache protocol |
US5752067A (en) * | 1990-11-13 | 1998-05-12 | International Business Machines Corporation | Fully scalable parallel processing system having asynchronous SIMD processing |
DE69131272T2 (de) * | 1990-11-13 | 1999-12-09 | International Business Machines Corp., Armonk | Paralleles Assoziativprozessor-System |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5794059A (en) * | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5471580A (en) * | 1991-10-01 | 1995-11-28 | Hitachi, Ltd. | Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer |
US5634096A (en) * | 1994-10-31 | 1997-05-27 | International Business Machines Corporation | Using virtual disks for disk system checkpointing |
JP3590203B2 (ja) * | 1996-07-16 | 2004-11-17 | 株式会社東芝 | 記憶手段の制御方法及びその装置 |
GB9617907D0 (en) * | 1996-08-28 | 1996-10-09 | British Telecomm | Communications network |
US7024512B1 (en) * | 1998-02-10 | 2006-04-04 | International Business Machines Corporation | Compression store free-space management |
US6205532B1 (en) * | 1998-05-22 | 2001-03-20 | Avici Systems, Inc. | Apparatus and methods for connecting modules using remote switching |
US6279092B1 (en) * | 1999-01-06 | 2001-08-21 | International Business Machines Corporation | Kernel identification for space management in compressed memory systems |
US6622233B1 (en) * | 1999-03-31 | 2003-09-16 | Star Bridge Systems, Inc. | Hypercomputer |
US6539460B2 (en) * | 2001-01-19 | 2003-03-25 | International Business Machines Corporation | System and method for storing data sectors with header and trailer information in a disk cache supporting memory compression |
US7185226B2 (en) * | 2001-02-24 | 2007-02-27 | International Business Machines Corporation | Fault tolerance in a supercomputer through dynamic repartitioning |
JP3798750B2 (ja) * | 2001-02-24 | 2006-07-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 一連のデータ・パケットを検査する方法およびシステム |
WO2002069200A1 (en) * | 2001-02-24 | 2002-09-06 | Gara Alan G | Checkpointing filesystem |
CA2436474A1 (en) * | 2001-02-24 | 2002-09-06 | International Business Machines Corporation | Low latency memoray system access |
US6810495B2 (en) * | 2001-03-30 | 2004-10-26 | International Business Machines Corporation | Method and system for software rejuvenation via flexible resource exhaustion prediction |
US7149920B2 (en) * | 2003-09-30 | 2006-12-12 | International Business Machines Corporation | Deterministic error recovery protocol |
US7039769B2 (en) * | 2002-05-30 | 2006-05-02 | International Business Machines Corporation | Direct addressed shared compressed memory system |
-
2002
- 2002-02-25 KR KR1020037010832A patent/KR100592752B1/ko not_active IP Right Cessation
- 2002-02-25 IL IL15751002A patent/IL157510A0/xx unknown
- 2002-02-25 JP JP2002568231A patent/JP4629307B2/ja not_active Expired - Fee Related
- 2002-02-25 EP EP02707876A patent/EP1381963A4/en not_active Withdrawn
- 2002-02-25 WO PCT/US2002/005618 patent/WO2002069177A1/en active IP Right Grant
- 2002-02-25 CA CA002437629A patent/CA2437629A1/en not_active Abandoned
- 2002-02-25 CN CNB028054237A patent/CN1322452C/zh not_active Expired - Fee Related
- 2002-02-25 US US10/468,991 patent/US7313582B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873688B2 (en) | 2006-03-23 | 2011-01-18 | Fujitsu Limited | Processing method and computer system for summation of floating point data |
JP2010211553A (ja) * | 2009-03-11 | 2010-09-24 | Fujitsu Ltd | n次元トーラス型分散処理システム、集団通信方法及び集団通信プログラム |
JPWO2011087076A1 (ja) * | 2010-01-14 | 2013-05-20 | 日本電気株式会社 | 計算機、並列計算機システム、同期方法、及びコンピュータプログラム |
JP5780157B2 (ja) * | 2010-01-14 | 2015-09-16 | 日本電気株式会社 | 計算機、並列計算機システム、同期方法、及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN1493041A (zh) | 2004-04-28 |
US20040073590A1 (en) | 2004-04-15 |
CN1322452C (zh) | 2007-06-20 |
EP1381963A4 (en) | 2008-02-13 |
KR100592752B1 (ko) | 2006-06-26 |
KR20040063790A (ko) | 2004-07-14 |
EP1381963A1 (en) | 2004-01-21 |
IL157510A0 (en) | 2004-03-28 |
JP4629307B2 (ja) | 2011-02-09 |
US7313582B2 (en) | 2007-12-25 |
WO2002069177A1 (en) | 2002-09-06 |
CA2437629A1 (en) | 2002-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4629307B2 (ja) | トーラス・ネットワークおよびツリー・ネットワークでの算術機能 | |
Mert et al. | Design and implementation of encryption/decryption architectures for BFV homomorphic encryption scheme | |
Patel et al. | Fast parallel-prefix architectures for modulo 2n-1 addition with a single representation of zero | |
US9495131B2 (en) | Multi-input and binary reproducible, high bandwidth floating point adder in a collective network | |
Penchalaiah et al. | Design and Implementation of Low Power and Area Efficient Architecture for High Performance ALU | |
Touzene | On all-to-all broadcast in dense Gaussian network on-chip | |
US6848072B1 (en) | Network processor having cyclic redundancy check implemented in hardware | |
US8244790B2 (en) | Multiplier and cipher circuit | |
Bittner et al. | Computing kernels implemented with a wormhole RTR CCM | |
Mazonka et al. | Fast and compact interleaved modular multiplication based on carry save addition | |
Huang et al. | A low-complexity heterogeneous multi-core platform for security SoC | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
Kieu-Do-Nguyen et al. | A power-efficient implementation of sha-256 hash function for embedded applications | |
Ni et al. | A VLSI router design for hypercube multiprocessors | |
Topkis | All-to-all broadcast by flooding in communications networks | |
Shukla | Asynchronous hardware implementations for crypto primitives | |
Touzene | All-to-all broadcast in hexagonal torus networks on-chip | |
Liu et al. | Low-Cost and Programmable CRC Implementation based on FPGA (Extended Version) | |
Roy et al. | Accelerating OpenSSL's ECC with low cost reconfigurable hardware | |
JP3532102B2 (ja) | 間接ローテータグラフネットワーク及び間接ローテータグラフネットワークにおける伝送経路の設定方法 | |
WO2023173912A1 (zh) | 一种处理单元pe阵列的配置方法和相关设备 | |
US8150949B2 (en) | Computing apparatus | |
JP2008204356A (ja) | リコンフィギャラブル回路 | |
Lin et al. | Constant time inner product and matrix computations on permutation network processors | |
Hu et al. | An effective routing algorithm in incomplete hypercubes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061017 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20061031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061031 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070115 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070409 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070918 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080623 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080730 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101018 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20101109 |
|
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: 20101111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |