JP2005506596A - トーラス・ネットワークおよびツリー・ネットワークでの算術機能 - Google Patents

トーラス・ネットワークおよびツリー・ネットワークでの算術機能 Download PDF

Info

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
Application number
JP2002568231A
Other languages
English (en)
Other versions
JP4629307B2 (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 JP2005506596A publication Critical patent/JP2005506596A/ja
Application granted granted Critical
Publication of JP4629307B2 publication Critical patent/JP4629307B2/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
    • 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
    • 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
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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)
  • 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)

  1. 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行する方法であって、
    前記ノードのグループのそれぞれにデータ値の同一の組を与えるステップと、
    グローバル算術演算を実行するステップであって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、ステップと、
    2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証するステップと
    を含む方法。
  2. 前記保証するステップが、各ノードが、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行するステップを含む、請求項1に記載の方法。
  3. 前記与えるステップが、前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取るステップを含む、請求項2に記載の方法。
  4. 前記ノードが、両方向リンクによって一緒に接続され、前記与えるステップが、前記リンクを介して2方向で前記ノードに前記データ値を送るステップを含む、請求項1に記載の方法。
  5. 前記与えるステップが、前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入するステップを含む、請求項1に記載の方法。
  6. 前記注入するステップが、前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送するステップを含む、請求項5に記載の方法。
  7. 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行するシステムであって、
    データ値の同一の組を与えられる前記ノードのグループと、
    グローバル算術演算を実行する手段であって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、手段と、
    2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証する手段と
    を含むシステム。
  8. 前記保証する手段が、各ノードで、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行する手段を含む、請求項7に記載のシステム。
  9. 前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取る、請求項7に記載のシステム。
  10. 前記ノードが、両方向リンクによって一緒に接続され、前記与える手段が、前記リンクを介して2方向で前記ノードに前記データ値を送る手段を含む、請求項7に記載のシステム。
  11. 前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入する、請求項7に記載のシステム。
  12. 前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送する、請求項7に記載のシステム。
  13. 複数の相互接続されたノードを有する分散並列トーラス・アーキテクチャを有するコンピュータ・システムで、シフト・アンド・オペレート手順を使用して算術機能を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
    前記ノードのグループのそれぞれにデータ値の同一の組を与えるステップと、
    グローバル算術演算を実行するステップであって、前記ノードのそれぞれが、最終的な値を得るために前記データ値のすべてに対して前記算術演算を実行する、ステップと、
    2進再現可能結果を保証するために、前記グループの前記ノードのすべてが、同一の順序で前記データ値に対する前記グローバル演算を実行することを保証するステップと
    を含むプログラム記憶装置。
  14. 前記保証するステップが、各ノードが、前記ノードが前記データ値のすべてを与えられた後に、前記グローバル算術演算を実行するステップを含む、請求項13に記載のプログラム記憶装置。
  15. 前記与えるステップが、前記グループの各ノードが、前記グループの他のノードから前記データ値を受け取るステップを含む、請求項14に記載のプログラム記憶装置。
  16. 前記ノードが、両方向リンクによって一緒に接続され、前記与えるステップが、前記リンクを介して2方向で前記ノードに前記データ値を送るステップを含む、請求項13に記載のプログラム記憶装置。
  17. 前記与えるステップが、前記ノードのそれぞれが前記ネットワークに1回だけ前記データ値を注入するステップを含む、請求項13に記載のプログラム記憶装置。
  18. 前記注入するステップが、前記ノードの前記それぞれ以外のノードの前記グループのノードが、前記グローバル演算の待ち時間を減らすために、前記グループの他のノードに前記データ値の前記1つを転送するステップを含む、請求項17に記載のプログラム記憶装置。
  19. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行する方法であって、
    ノードのグループのそれぞれに第1値を与えるステップと、
    前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するステップであって、前記第2値のすべてが、整数値である、ステップと、
    前記第2値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するステップと
    を含む方法。
  20. 前記実行するステップが、前記ネットワークにまたがるグローバル符号なし整数合計を実行するステップを含む、請求項19に記載の方法。
  21. 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項19に記載の方法。
  22. 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項19に記載の方法。
  23. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行するシステムであって、前記方法が、
    ノードのグループであって、前記グループの前記ノードのそれぞれに第1値が与えられる、ノードのグループと、
    前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するプロセッサであって、前記第2値のすべてが、整数値である、プロセッサと、
    前記第2値を使用して、前記ネットワークにまたがるグローバル整数組合せ動作を実行する手段と
    のステップを含むシステム。
  24. 前記実行する手段が、前記ネットワークにまたがるグローバル符号なし整数合計を実行する手段を含む、請求項23に記載のシステム。
  25. 前記実行する手段が、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用する手段を含む、請求項23に記載のシステム。
  26. 前記実行する手段が、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用する手段を含む、請求項23に記載のシステム。
  27. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
    ノードのグループのそれぞれに第1値を与えるステップと、
    前記第1値のそれぞれからめいめいの第2値を得るために、第1定義済み処理に従って前記第1値のそれぞれを処理するステップであって、前記第2値のすべてが、整数値である、ステップと、
    前記第2値を使用して、前記ネットワークにまたがるグローバル整数コンバイン・オペレーティングを実行するステップと
    を含むプログラム記憶装置。
  28. 前記実行するステップが、前記ネットワークにまたがるグローバル符号なし整数合計を実行するステップを含む、請求項27に記載のプログラム記憶装置。
  29. 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最大値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項27に記載のプログラム記憶装置。
  30. 前記実行するステップが、前記ネットワークにまたがるグローバル最大値演算を実行し、前記第1値の最小値を識別するために前記グローバル最大値演算の結果を使用するステップを含む、請求項27に記載のプログラム記憶装置。
  31. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行する方法であって、
    各ノードに任意のタイプの1つまたは複数の数を与えるステップと、
    前記ノードの前記数をアレイに組み立てるステップであって、前記アレイが、所与の数の位置を有し、前記組み立てるステップが、
    i)各ノードが前記ノードの前記数の1つまたは複数を前記アレイの前記位置の1つまたは複数に置き、前記アレイの他の位置のすべてにゼロ値を置くステップと、
    i)前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用するステップと
    を含む、ステップと
    を含む方法。
  32. 前記アレイの位置の前記所与の数が、定義済みシーケンスで配置され、
    前記組み立てるステップが、さらに、各ノードが、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する関連するアレイを確立し、前記ノードの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の位置に置き、前記関連するアレイの他の位置のすべてに0値を置くステップを含む
    請求項31に記載の方法。
  33. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行するシステムであって、
    ノードのグループであって、ノードの前記グループのそれぞれが、1つまたは複数の数を与えられる、ノードのグループと、
    前記ノードの前記数をアレイに組み立てる手段であって、前記アレイが、所与の数の位置を有し、前記組み立てる手段が、
    i)前記グループの前記ノードの1つまたは複数の前記数を前記アレイの1つまたは複数の前記位置に置き、前記アレイの他の位置のすべてにゼロ値を置く手段と、
    i)前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用する手段と
    を含む、組み立てる手段と
    を含むシステム。
  34. 前記アレイの前記所与の数の位置が、定義済みシーケンスで配置され、
    前記組み立てる手段が、さらに、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する、前記グループの前記ノードのそれぞれに関連するめいめいの1つのアレイを確立し、前記ノードのそれぞれの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の前記位置に置き、前記関連するアレイの他の位置のすべてに0値を置く手段を含む
    請求項33に記載のシステム。
  35. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムでグローバル動作を実行する方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
    各ノードに1つまたは複数の数を与えるステップと、
    前記ノードの前記数をアレイに組み立てるステップであって、前記アレイが、所与の数の位置を有し、前記組み立てるステップが、
    a.各ノードが前記ノードの1つまたは複数の前記数を前記アレイの1つまたは複数の前記位置に置き、前記アレイの他の位置のすべてにゼロ値を置くステップと、
    a.前記アレイの各位置に置かれた前記数のすべてを合計するために前記グローバル・ツリー・ネットワークを使用するステップと
    を含む、ステップと
    を含むプログラム記憶装置。
  36. 前記アレイの前記所与の数の位置が、定義済みシーケンスで配置され、
    前記組み立てるステップが、さらに、各ノードが、やはり前記定義済みシーケンスで配置された前記所与の数の位置を有する関連するアレイを確立し、前記ノードの前記1つまたは複数の数を前記関連するアレイの1つまたは複数の前記位置に置き、前記関連するアレイの他の位置のすべてに0値を置くステップを含む
    請求項35に記載の方法。
  37. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数を有するコンピュータ・システムで算術機能を実行する方法であって、
    前記ノードのそれぞれが第1値の組を与えるステップと、
    前記第1値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するステップと
    を含む方法。
  38. 前記実行するステップが、前記第1値の特性を識別するために、前記グローバル整数コンバイン動作の結果を使用するステップを含む、請求項37に記載の方法。
  39. 整数コンバイニング演算をサポートするグローバル・ツリー・ネットワークによって相互接続された複数のノードを有するコンピュータ・システムで算術機能を実行するシステムであって、
    ノードのグループであって、前記グループの前記ノードのそれぞれが、第1値の組からなる、ノードのグループと、
    前記第1値を使用して、前記ネットワークにまたがるグローバル整数コンバイン動作を実行するプロセッサと
    を含むシステム。
  40. 前記プロセッサが、前記第1値の特性を識別するために、前記グローバル整数コンバイン動作の結果を使用する手段を含む、請求項39に記載のシステム。
  41. グローバル・ツリー・ネットワークおよびトーラス・ネットワークの両方によって相互接続された複数のノードを有する並列処理コンピュータ・システムを動作させる方法であって、
    定義された動作を実行するために前記コンピュータ・システムを使用することと、
    リダクション動作で協力するために前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用することと
    を含む方法。
  42. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、1つのプロセッサにトーラス動作を処理させ、別のプロセッサにツリー動作を処理させることによってそれを行うステップを含む、請求項41に記載の方法。
  43. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置することによってそれを行うステップを含む、請求項41に記載の方法。
  44. グローバル・ツリー・ネットワークおよびトーラス・ネットワークの両方によって相互接続された複数のノードを有する並列処理コンピュータ・システムを動作させる方法ステップを実行するために計算機によって実行可能な命令のプログラムを有形に実施する、前記計算機によって可読のプログラム記憶装置であって、前記方法ステップが、
    定義された動作を実行するために前記コンピュータ・システムを使用することと、
    リダクション動作で協力するために前記トーラス・ネットワークおよび前記3ネットワークの両方を使用することと
    を含む、プログラム記憶装置。
  45. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、1つのプロセッサにトーラス動作を処理させ、別のプロセッサにツリー動作を処理させることによってそれを行うステップを含む、請求項44に記載のプログラム記憶装置。
  46. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記ステップが、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置することによってそれを行うステップを含む、請求項44に記載のプログラム記憶装置。
  47. 並列処理コンピュータ・システムであって、
    複数のノードと、
    前記ノードを相互接続もするグローバル・ツリー・ネットワークと、
    前記ノードを相互接続もするトーラス・ネットワークと、
    リダクション動作で協力するために前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する手段と
    を含む並列処理コンピュータ・システム。
  48. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記手段が、トーラス動作を処理する1つのプロセッサと、ツリー動作を処理する別のプロセッサとを含む、請求項47に記載のコンピュータ・システム。
  49. 前記トーラス・ネットワークおよび前記ツリー・ネットワークの両方を使用する前記手段が、3次元トーラスで、前記トーラス上のノードが3つ以上の組み合わせるべきパケットを受け取らないようにトーラス通信を配置する手段を含む、請求項47に記載のコンピュータ・システム。
JP2002568231A 2001-02-24 2002-02-25 トーラス・ネットワークおよびツリー・ネットワークでの算術機能 Expired - Fee Related JP4629307B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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