JP2008097528A - 計算機クラスタ - Google Patents

計算機クラスタ Download PDF

Info

Publication number
JP2008097528A
JP2008097528A JP2006281703A JP2006281703A JP2008097528A JP 2008097528 A JP2008097528 A JP 2008097528A JP 2006281703 A JP2006281703 A JP 2006281703A JP 2006281703 A JP2006281703 A JP 2006281703A JP 2008097528 A JP2008097528 A JP 2008097528A
Authority
JP
Japan
Prior art keywords
node
packet
communication
communication unit
cluster
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
JP2006281703A
Other languages
English (en)
Other versions
JP5055942B2 (ja
Inventor
Yuichiro Yasujima
雄一郎 安島
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006281703A priority Critical patent/JP5055942B2/ja
Priority to US11/728,645 priority patent/US7889725B2/en
Publication of JP2008097528A publication Critical patent/JP2008097528A/ja
Application granted granted Critical
Publication of JP5055942B2 publication Critical patent/JP5055942B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

【課題】格子状に構成した相互結合網において、ノード間のパケットの中継回数を削減すると共に、ノードの回路構成を均一かつ簡潔にする。
【解決手段】第1のノード11および第3のノード13は、X軸方向に隣接する計算機クラスタへパケットを送信できる。第2のノード12および第4のノード14は、Y軸方向に隣接する計算機クラスタへパケットを送信できる。個々のノードは、パケットの転送先の計算機クラスタが自身が送信可能な方向である場合、パケットを直接送信する。一方、パケットの転送先の計算機クラスタが自身が送信可能な方向でない場合、内部通信網15を介して他のノードへ送信して転送を依頼する。
【選択図】図1

Description

本発明は複数のノードを備える計算機クラスタに関し、特に格子状に構成された相互結合網の各格子点に配置される計算機クラスタに関する。
近年、ハードウェア技術の進歩に伴い、演算装置の計算能力が飛躍的に向上している。一方で、大規模な科学技術計算や大量のマルチメディアデータの処理など、1つの演算装置の計算能力を大きく超える計算能力を必要とする処理も依然として存在する。これに対し、複数の演算装置を並列に動作させる並列処理の技術が知られている。並列処理を行う場合、演算装置と通信装置とから成るノードを相互にリンク接続した相互結合網を構築する。相互結合網では、ノード間でパケットを送受信することでデータ処理が進行する。相互結合網の結合形態としては、完全結合型、ツリー型、スター型、リング型、メッシュ型、トーラス型、ハイパーキューブ型などが存在する。
ここで、多数のノードを含む相互結合網の場合、リンク数の増大を抑止するため、格子状の結合形態であるメッシュ型やトーラス型が採用されることが多い。格子状の相互結合網では、パケットは幾つかのノードによってリレー方式で中継されて宛先のノードに届けられる。一方、格子状の相互結合網では、膨大な数のノードを相互結合すると、格子の1辺に並ぶノードの数が大きくなり、パケットが宛先のノードへ到達するまでの中継回数が増大するという問題がある。
この問題に対し、相互結合網を階層化する技術が知られている。すなわち、相互結合網の各格子点に、1つのノードに代えて、複数のノードを備える計算機クラスタを配置する。計算機クラスタの内部では、複数のノードを、リング型、トーラス型、ハイパーキューブ型などで相互接続する(例えば、特許文献1,2参照)。このように相互結合網を階層化することで、パケットの平均中継回数を抑止することができ、システム全体の計算能力を向上させることができる。
特開平6−35873号公報 特開平7−191947号公報
しかし、上記特許文献1,2記載の技術では、演算装置の動作速度が向上するに伴い、計算機クラスタの内部でのパケット転送がシステム全体の計算能力のボトルネックになるという問題がある。すなわち、計算機クラスタの内部でもパケットはリレー方式で中継されるため、中継によるオーバーヘッドやノード間を結合するリンクの伝送能力が、計算能力の向上を妨げる原因となる。
一方、計算機クラスタの内部での中継回数を減らすために、補助的なリンクやスイッチ装置を設けると、計算機クラスタの内部の構成が非対称になるという問題がある。単純な格子状の相互結合網では全てのノードの中継規則は同一であるが、補助的なリンクやスイッチ装置を設けると、中継規則がノードによって異なってしまうためである。この場合、相互結合網を実現する回路構成が複雑になってしまう。
本発明はこのような点に鑑みてなされたものであり、格子状に構成された相互結合網の各格子点に配置される計算機クラスタであって、内部におけるパケットの中継回数を削減しつつ、内部構成を対称化できる計算機クラスタを提供することを目的とする。
本発明では、上記課題を解決するために、図1に示すような計算機クラスタが提供される。本発明に係る計算機クラスタは、格子状に構成された相互結合網の各格子点に配置される。
計算機クラスタ10は、第1のノード11、第2のノード12、第3のノード13、第4のノード14、内部通信網15、第1の外部通信網16、第2の外部通信網17、第3の外部通信網18および第4の外部通信網19を有する。第1のノード11は、格子点の位置を示す外部アドレスと計算機クラスタ内における相対位置を示す内部アドレスとから成る宛先アドレスを含むパケットの処理を行う演算部11aと、計算機クラスタ10の外部の通信相手とパケットを送受信する第1の通信部11bと、計算機クラスタ10の内部の通信相手とパケットを送受信する第2の通信部11cと、演算部11a、第1の通信部11bおよび第2の通信部11cと接続されており、取得したパケットを、宛先アドレスが自己のアドレスと一致する場合は演算部11aへ出力し、外部アドレスが自己のアドレスと異なりパケットを転送すべき方向が第1の通信部11bが送信可能な方向である場合は第1の通信部11bに転送させ、内部アドレスのみが自己のアドレスと異なる場合および外部アドレスが自己のアドレスと異なりパケットを転送すべき方向が第1の通信部11bが送信可能な方向でない場合は第2の通信部11cに転送させるスイッチ部11dと、を有する。第2のノード12、第3のノード13および第4のノード14も、第1のノード11と同様に、演算部、第1の通信部、第2の通信部およびスイッチ部を有する。内部通信網15は、第1のノード11、第2のノード12、第3のノード13および第4のノード14の第2の通信部を相互に接続する。第1の外部通信網16は、第1のノード11の第1の通信部11bと格子のX軸方向に隣接する2つの計算機クラスタとを接続する。第2の外部通信網17は、第2のノード12の第1の通信部と格子のY軸方向に隣接する2つの計算機クラスタとを接続する。第3の外部通信網18は、第3のノード13の第1の通信部と格子のX軸方向に隣接する2つの計算機クラスタとを接続する。第4の外部通信網19は、第4のノード14の第1の通信部と格子のY軸方向に隣接する2つの計算機クラスタとを接続する。
このような計算機クラスタ10によれば、第1のノード11により、第1の外部通信網16を介して、相互結合網のX軸方向へ向かうパケットが中継される。第2のノード12により、第2の外部通信網17を介して、相互結合網のY軸方向へ向かうパケットが中継される。第3のノード13により、第3の外部通信網18を介して、相互結合網のX軸方向へ向かうパケットが中継される。第4のノード14により、第4の外部通信網19を介して、相互結合網のY軸方向へ向かうパケットが中継される。また、第1のノード11、第2のノード12、第3のノード13および第4のノード14により、内部通信網15を介して、計算機クラスタ10内でパケットが転送される。そして、パケットが宛先アドレスで示されるノードに到達すると、ノードの演算部によって、パケット処理が行われる。
本発明によれば、複数のノードをクラスタ化して、第1のノードおよび第3のノードがX軸方向へ向かうパケットを中継し、第2のノードおよび第4のノードがY軸方向へ向かうパケットを中継することとした。これにより、格子状に構成された相互結合網におけるパケットの平均中継回数を削減することができる。また、パケットの中継処理を複数のノードに均等に分散させることができ、特定のノードやリンクにパケットが集中することによる計算能力の低下を防止できる。また、各ノードの構成を均一にすることができ、計算機クラスタを実現する回路を単純化できる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本実施の形態の概要を説明し、その後、本実施の形態の具体的な内容を説明する。
図1は、本実施の形態の概要を示す図である。本実施の形態に係る並列計算機システムは、2次元のトーラス型相互結合網の各格子点に、複数のノードを備える計算機クラスタを配置したものである。すなわち、階層的な相互結合網で構成した並列計算機システムである。なお、トーラス型相互結合網とは、メッシュ型相互結合網の各座標軸の端点同士を結合してループ状にしたものである。
図1は、本実施の形態に係る並列計算機システムの一部を示している。図1に示す並列計算機システムは、計算機クラスタ10,20,30,40を有している。計算機クラスタ10は、格子点(0,0)に配置されている。計算機クラスタ20は、格子点(1,0)に配置されている。計算機クラスタ30は、格子点(0,1)に配置されている。計算機クラスタ40は、格子点(1,1)に配置されている。隣接する格子点に配置された計算機クラスタ同士がリンクで結合されている。
計算機クラスタ10は、第1のノード11、第2のノード12、第3のノード13、第4のノード14、内部通信網15、第1の外部通信網16、第2の外部通信網17、第3の外部通信網18および第4の外部通信網19を有している。計算機クラスタ20,30,40も、計算機クラスタ10と同様の構成で実現される。
第1のノード11、第2のノード12、第3のノード13および第4のノード14は、それぞれ、データ処理の機能とパケットを送受信する機能とを備えている。内部通信網15は、第1のノード11、第2のノード12、第3のノード13および第4のノード14が送受信するパケットを、計算機クラスタ10の内部で相互に伝送する。
第1の外部通信網16は、X軸の負方向に隣接する計算機クラスタから到来するパケットを第1のノード11へ伝送すると共に、第1のノード11が送信するパケットをX軸の正方向に隣接する計算機クラスタ20に向かって伝送する。第2の外部通信網17は、Y軸の負方向に隣接する計算機クラスタから到来するパケットを第2のノード12へ伝送すると共に、第2のノード12が送信するパケットをY軸の正方向に隣接する計算機クラスタ30に向かって伝送する。
第3の外部通信網18は、X軸の正方向に隣接する計算機クラスタ20から到来するパケットを第3のノード13へ伝送すると共に、第3のノード13が送信するパケットをX軸の負方向に隣接する計算機クラスタに向かって伝送する。第4の外部通信網19は、Y軸の正方向に隣接する計算機クラスタ30から到来するパケットを第4のノード14へ伝送すると共に、第4のノード14が送信するパケットをY軸の負方向に隣接する計算機クラスタに向かって伝送する。
第1のノード11は、内部に、演算部11a、第1の通信部11b、第2の通信部11cおよびスイッチ部11dを有している。第2のノード12、第3のノード13および第4のノード14も、第1のノード11と同様の構成で実現される。
演算部11aは、指定されたプログラムを実行する。また、演算部11aは、必要に応じてパケットの入出力を行う。演算部11aが出力するパケットには、格子点の座標(外部アドレス)と計算機クラスタ内におけるノードの位置を示す番号(内部アドレス)とから成る宛先アドレスが含まれる。
第1の通信部11bは、第1の外部通信網16を介して、計算機クラスタ10の外部の通信相手とパケットを送受信する。具体的には、第1の通信部11bは、計算機クラスタ10の外部からパケットを受信すると、受信したパケットをスイッチ部11dへ出力する。また、第1の通信部11bは、スイッチ部11dからパケットを取得すると、取得したパケットを計算機クラスタ10の外部へ送信する。
第2の通信部11cは、内部通信網15を介して、計算機クラスタ10の内部の通信相手とパケットを送受信する。具体的には、第2の通信部11cは、第2のノード12、第3のノード13および第4のノード14のいずれかのノードからパケットを受信すると、受信したパケットをスイッチ部11dへ出力する。また、第2の通信部11cは、スイッチ部11dからパケットを取得すると、パケットの宛先アドレスに応じて、取得したパケットを第2のノード12、第3のノード13および第4のノード14のいずれかのノードへ送信する。
スイッチ部11dは、演算部11a、第1の通信部11bおよび第2の通信部11cが出力するパケットを取得する。スイッチ部11dは、取得したパケットから宛先アドレスを抽出し、宛先アドレスに応じてパケットの出力先を決定する。そして、スイッチ部11dは、決定した出力先へパケットを出力する。
具体的には、スイッチ部11dは、宛先アドレスが第1のノード11のアドレスと一致する場合は、出力先を演算部11aに決定する。宛先アドレスが第2のノード12、第3のノード13もしくは第4のノード14の場合は、出力先を第2の通信部11cに決定する。外部アドレスが第1のノード11のアドレスと異なり、かつ、パケットを転送すべき方向が第1の通信部11bが送信可能な方向である場合は、出力先を第1の通信部11bに決定する。外部アドレスが第1のノード11のアドレスと異なり、かつ、パケットを転送すべき方向が第1の通信部11bが送信可能な方向でない場合は、出力先を第2の通信部11cに決定する。
このような計算機クラスタ10によれば、第1のノード11により、第1の外部通信網16を介して、X軸の正方向へ向かうパケットが中継される。第2のノード12により、第2の外部通信網17を介して、Y軸の正方向へ向かうパケットが中継される。第3のノード13により、第3の外部通信網18を介して、X軸の負方向へ向かうパケットが中継される。第4のノード14により、第4の外部通信網19を介して、Y軸の負方向へ向かうパケットが中継される。また、第1のノード11、第2のノード12、第3のノード13および第4のノード14により、内部通信網15を介して、計算機クラスタ10内でパケットが転送される。そして、パケットが宛先アドレスで示されるノードに到達すると、ノードの演算部によって、パケット処理が行われる。
これにより、格子状に構成された相互結合網におけるパケットの平均中継回数を削減することができる。また、パケットの中継処理を複数のノードに均等に分散させることができ、特定のノードやリンクにパケットが集中することによる計算能力の低下を防止できる。また、各ノードの構成を均一にすることができ、計算機クラスタを実現する回路を単純化できる。
例えば、図1に示した16個のノード、すなわち、第1のノード11,21,31,41、第2のノード12,22,32,42、第3のノード13,23,33,43および第4のノード14,24,34,44を、単層の格子状に配置すると、1辺の長さが4の2次元の格子が構成される。この場合、第1のノード11から第3のノード43へパケットを送信するには、6回の中継処理を行う必要がある。一方、図1に示した構成の相互結合網では、第1のノード11、第1のノード21、第2のノード22、第2のノード42、第3のノード43の順に、4回の中継処理を行えばよい。
[第1の実施の形態]
最初に、第1の実施の形態を、図面を参照して詳細に説明する。
図2は、第1の実施の形態のシステム構成を示す図である。第1の実施の形態に係る並列計算機システムは、2次元のトーラス型相互結合網の各格子点に、複数の計算ユニットを備えるクラスタサーバを配置したものである。図2に示す並列計算機システムは、9個のクラスタサーバ100,100a,100b,100c,100d,100e,100f,100g,100hを有している。
クラスタサーバ100は、格子点(0,0)に配置されている。クラスタサーバ100aは、格子点(1,0)に配置されている。クラスタサーバ100bは、格子点(2,0)に配置されている。クラスタサーバ100cは、格子点(0,1)に配置されている。クラスタサーバ100dは、格子点(1,1)に配置されている。クラスタサーバ100eは、格子点(2,1)に配置されている。クラスタサーバ100fは、格子点(0,2)に配置されている。クラスタサーバ100gは、格子点(1,2)に配置されている。クラスタサーバ100hは、格子点(2,2)に配置されている。
隣接する格子点に配置されたクラスタサーバ同士が、双方向通信が可能な通信ケーブルで接続されている。また、各座標軸の端点にあるクラスタサーバ同士も、双方向通信が可能な通信ケーブルで接続されている。これにより、任意のクラスタサーバ間でパケットを送受信することができる。
例えば、クラスタサーバ100dからクラスタサーバ100hへ向かうパケットは、クラスタサーバ100d、クラスタサーバ100e、クラスタサーバ100hの順に中継される。また、クラスタサーバ100hからクラスタサーバ100へ向かうパケットは、クラスタサーバ100h、クラスタサーバ100f、クラスタサーバ100の順に中継される。
図3は、第1の実施の形態のクラスタサーバの構成を示す図である。なお、図3にはクラスタサーバ100の構成を示したが、クラスタサーバ100a,100b,100c,100d,100e,100f,100g,100hも同様の構成で実現できる。クラスタサーバ100は、計算ユニット110,120,130,140および通信パネル150を有している。
計算ユニット110,120,130,140は、演算機能とパケットのスイッチ機能とを備える装置である。個々の計算ユニットには、クラスタサーバ100の内部における相対位置を示すクラスタ内番号が割り当てられている。具体的には、計算ユニット110に番号0、計算ユニット120に番号1、計算ユニット130に番号2、計算ユニット140に番号3が割り当てられている。
個々の計算ユニットを一意に識別するアドレスは、クラスタサーバ100が配置された格子点の座標とクラスタ内番号とで構成される。すなわち、計算ユニット110のアドレスは(0,0,0)、計算ユニット120のアドレスは(0,0,1)、計算ユニット130のアドレスは(0,0,2)、計算ユニット140のアドレスは(0,0,3)である。
計算ユニット110,120,130,140は、双方向通信が可能な6本の通信ケーブルによって、相互に接続されている。すなわち、個々の計算ユニットは、他の3つの計算ユニットと3本の通信ケーブルによって直接接続されている。これにより、クラスタサーバ100内の任意の2つの計算ユニット間で、パケットを送受信することができる。
通信パネル150は、通信ポート151,152,153,154を有している。通信ポート151,152,153,154は、他のクラスタサーバと通信を行うための通信ケーブルを接続するインタフェースである。
具体的には、通信ポート151には、X軸の負方向に隣接するクラスタサーバ100bと通信を行うための通信ケーブルが接続される。通信ポート152には、X軸の正方向に隣接するクラスタサーバ100aと通信を行うための通信ケーブルが接続される。通信ポート153には、Y軸の負方向に隣接するクラスタサーバ100fと通信を行うための通信ケーブルが接続される。通信ポート154には、Y軸の正方向に隣接するクラスタサーバ100cと通信を行うための通信ケーブルが接続される。
通信ポート151,152,153,154は、通信ケーブルを介して受信したパケットを、各計算ユニットへ出力する。また、計算ユニットから取得したパケットを、通信ケーブルを介して送信する。ここで、パケットの出力先となる計算ユニットと、パケットの取得元となる計算ユニットとは、別の計算ユニットである。
図4は、第1の実施の形態の通信ケーブルの接続関係を示す図である。通信ポート151,152,153,154に接続される通信ケーブルは、より詳細には、上り方向(クラスタサーバ100へ入力される方向)のパケットを伝送するケーブルと、下り方向(クラスタサーバ100から出力する方向)のパケットを伝送するケーブルとで構成される。
ここで、通信ポート151は、上り方向のケーブルで受信したパケットを計算ユニット110へ出力すると共に、計算ユニット130から取得したパケットを下り方向のケーブルで送信する。通信ポート153は、上り方向のケーブルで受信したパケットを計算ユニット130へ出力すると共に、計算ユニット110から取得したパケットを下り方向のケーブルで送信する。
同様に、通信ポート152は、上り方向のケーブルで受信したパケットを計算ユニット120へ出力すると共に、計算ユニット140から取得したパケットを下り方向のケーブルで送信する。通信ポート154は、上り方向のケーブルで受信したパケットを計算ユニット140へ出力すると共に、計算ユニット120から取得したパケットを下り方向のケーブルで送信する。
このように、上り方向の通信経路と下り方向の通信経路とを分離し交差させることで、個々の計算ユニットは、特定の一方向のパケットの中継のみを担当することができる。すなわち、計算ユニット110は、X軸の正方向の中継のみを担当する。計算ユニット120は、Y軸の正方向の中継のみを担当する。計算ユニット130は、X軸の負方向の中継のみを担当する。計算ユニット140は、Y軸の負方向の中継のみを担当する。
図5は、第1の実施の形態の計算ユニットの構成を示す図である。なお、図5には計算ユニット110の構成を示したが、計算ユニット120,130,140も同様の構成で実現できる。計算ユニット110は、演算回路111、入力回路112、出力回路113、受信回路114,116a,116b,116c、送信回路115,117a,117b,117cおよびスイッチ回路118を有している。
演算回路111は、入力回路112が保持するパケットを順次取得し、データ処理を行う。また、演算回路111は、他の計算ユニットへデータを送信する必要がある場合、宛先アドレスを含むパケットを生成して、出力回路113へ出力する。
入力回路112は、内部にFIFO(First In First Out)型のバッファメモリを有している。入力回路112は、スイッチ回路118からパケットを取得すると、取得したパケットをバッファメモリの最後尾に格納する。また、入力回路112は、演算回路111からの要求に応答して、バッファメモリの先頭からパケットを取り出し、演算回路111へ出力する。
出力回路113は、内部にFIFO型のバッファメモリを有している。出力回路113は、演算回路111からパケットを取得すると、取得したパケットをバッファメモリの最後尾に格納する。また、出力回路113は、スイッチ回路118からの要求に応答して、バッファメモリの先頭からパケットを取り出し、スイッチ回路118へ出力する。
受信回路114は、内部に複数のFIFO型のバッファメモリを仮想チャネルバッファとして有している。受信回路114は、通信ポート151からのパケット、すなわち、クラスタサーバ100bが送信したパケットを取得する。受信回路114は、パケットを取得すると、パケットの宛先アドレスに基づいて仮想チャネルバッファを1つ選択し、選択した仮想チャネルバッファの最後尾に取得したパケットを格納する。また、受信回路114は、スイッチ回路118からの要求に応答して、仮想チャネルバッファの先頭からパケットを取り出し、スイッチ回路118へ出力する。これにより、1つの通信経路の上に複数の仮想チャネルを構成できる。
このように、受信回路114が複数の仮想チャネルを構成できることで、デッドロックの発生を回避することができる。例えば、クラスタサーバ100(座標(0,0))がクラスタサーバ100a(座標(1,0))へ、クラスタサーバ100aがクラスタサーバ100d(座標(1,1))へ、クラスタサーバ100dがクラスタサーバ100c(座標(1,0))へ、クラスタサーバ100cがクラスタサーバ100へ、それぞれパケットを送信する場合を考える。ここで、受信回路にバッファメモリが1つしかなく、経路上の全てのバッファメモリが満杯の場合、デッドロックが発生する。これに対し、複数の仮想チャネルを構成できるようにすることで、デッドロックの発生を回避できる。
送信回路115は、スイッチ回路118からパケットを取得すると、取得したパケットを通信ポート153へ出力する。これにより、パケットがクラスタサーバ100aへ送信される。
受信回路116a,116b,116cは、それぞれ内部にFIFO型のバッファメモリを有している。受信回路116aは、計算ユニット120からのパケットを取得する。受信回路116bは、計算ユニット130からのパケットを取得する。受信回路116cは、計算ユニット140からパケットを取得する。受信回路116a,116b,116cは、取得したパケットをバッファメモリの先頭に格納する。また、受信回路116a,116b,116cは、スイッチ回路118からの要求に応答して、バッファメモリの先頭からパケットを取り出し、スイッチ回路118へ出力する。
送信回路117a,117b,117cは、スイッチ回路118からパケットを取得する。送信回路117aは、取得したパケットを計算ユニット120へ出力する。送信回路117bは、取得したパケットを計算ユニット130へ出力する。送信回路117cは、取得したパケットを計算ユニット140へ出力する。
スイッチ回路118は、出力回路113および受信回路114,116a,116b,116cのバッファメモリを監視する。バッファメモリにパケットが格納されている場合、スイッチ回路118は、出力回路113および受信回路114,116a,116b,116cからパケットを順次取得する。そして、スイッチ回路118は、パケットの宛先アドレスに基づいて、パケットの出力先を決定する。パケットの出力先は、入力回路112および送信回路115,117a,117b,117cのいずれかである。
図6は、第1の実施の形態のパケット出力先の決定方法を示す図である。なお、図6にはスイッチ回路118によるパケット出力先の決定方法を示したが、他の計算ユニットのスイッチ回路も同様の方法でパケット出力先を決定することができる。その場合、図6に示した宛先アドレスを適宜読み替えればよい。
スイッチ回路118は、パケットの宛先アドレスが計算ユニット110のアドレスと一致する場合、更に、パケットの取得元が出力回路113か否かを判断する。パケットの取得元が出力回路113の場合、パケットを破棄する。これは、自分自身へパケットを送信することは、エラーと判断できるからである。一方、パケットの取得元が出力回路113でない場合、パケットを入力回路112へ出力する。
宛先アドレスが計算ユニット120の場合、スイッチ回路118は、パケットを送信回路117aへ出力する。宛先アドレスが計算ユニット130の場合、パケットを送信回路117bへ出力する。宛先アドレスが計算ユニット140の場合、パケットを送信回路117cへ出力する。
宛先アドレスと計算ユニット110のアドレスとでX座標が異なり、X軸の正方向へ転送することで距離が縮まる場合、スイッチ回路118は、パケットを送信回路115へ出力する。宛先アドレスと計算ユニット110のアドレスとでX座標が異なり、X軸の負方向へ転送することで距離が縮まる場合、パケットを送信回路117bへ出力する。
宛先アドレスと計算ユニット110のアドレスとでX座標が同一でY座標が異なり、Y座標の正方向へ転送することで距離が縮まる場合、スイッチ回路118は、パケットを送信回路117aへ出力する。宛先アドレスと計算ユニット110のアドレスとでX座標が同一でY座標が異なり、Y座標の負方向へ転送することで距離が縮まる場合、パケットを送信回路117cへ出力する。
なお、図6に示した方法で、X軸方向への転送をY軸方向への転送よりも優先するように統一しているのは、デッドロックの発生を抑制するためである。なお、Y軸方向への転送をX軸方向への転送よりも優先するように統一しても、同様の効果を得られる。
このように、第1の実施の形態に係る並列計算機システムによれば、宛先アドレスで示される計算ユニットに到達するまでのパケットの中継回数を削減することができる。また、2次元座標空間における4方向へのパケットの送信を4つの計算ユニットで均等に分担するため、特定の回路や通信ケーブルにパケットが集中することを防止できる。
また、クラスタサーバの内部では完全結合網によりパケットを直接転送するため、内部の転送に関してデッドロック防止のための仮想チャネルバッファを設ける必要がなく、回路規模の増大を抑止できる。また、各計算ユニットの構成を均一にすることができ、クラスタサーバを実現する構成を単純化できる。
[第2の実施の形態]
次に、第2の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
図7は、第2の実施の形態のシステム構成を示す図である。第2の実施の形態に係る並列計算機システムは、2次元のトーラス型相互結合網の各格子点に、複数のPCサーバを備えるPCクラスタを配置したものである。PCサーバとは、通常は個人で使用するパーソナルコンピュータをサーバコンピュータとして使用したものである。図7に示す並列計算機システムは、9個のPCクラスタ200,200a,200b,200c,200d,200e,200f,200g,200hを有している。
PCクラスタ200は、格子点(0,0)に配置されている。PCクラスタ200aは、格子点(1,0)に配置されている。PCクラスタ200bは、格子点(2,0)に配置されている。PCクラスタ200cは、格子点(0,1)に配置されている。PCクラスタ200dは、格子点(1,1)に配置されている。PCクラスタ200eは、格子点(2,1)に配置されている。PCクラスタ200fは、格子点(0,2)に配置されている。PCクラスタ200gは、格子点(1,2)に配置されている。PCクラスタ200hは、格子点(2,2)に配置されている。
隣接する格子点に配置されたPCクラスタ同士が、双方向通信が可能な3本の通信ケーブルで接続されている。また、各座標軸の端点にあるPCクラスタ同士も、双方向通信が可能な3本の通信ケーブルで接続されている。
図8は、第2の実施の形態のPCクラスタの構成を示す図である。なお、図8にはPCクラスタ200の構成を示したが、PCクラスタ200a,200b,200c,200d,200e,200f,200g,200hも同様の構成で実現できる。PCクラスタ200は、PCサーバ210,220,230,240,250,260およびスイッチ270を有している。
PCサーバ210,220,230,240,250,260は、演算機能とパケットのスイッチ機能とを備えるコンピュータである。個々のPCサーバには、PCクラスタ200の内部における相対位置を示すクラスタ内番号が割り当てられている。具体的には、PCサーバ210に番号0、PCサーバ220に番号1、PCサーバ230に番号2、PCサーバ240に番号3、PCサーバ250に番号4、PCサーバ260に番号5が割り当てられている。
個々のPCサーバを一意に識別するアドレスは、PCクラスタ200が配置された格子点の座標とクラスタ内番号とで構成される。すなわち、PCサーバ210のアドレスは(0,0,0)、PCサーバ220のアドレスは(0,0,1)、PCサーバ230のアドレスは(0,0,2)、PCサーバ240のアドレスは(0,0,3)、PCサーバ250のアドレスは(0,0,4)、PCサーバ260のアドレスは(0,0,5)である。
PCサーバ210,220,230,240,250,260は、それぞれ3つの通信ポートを有している。すなわち、PCサーバ210は、通信ポート219a,219b,219cを有している。PCサーバ220は、通信ポート229a,229b,229cを有している。PCサーバ230は、通信ポート239a,239b,239cを有している。PCサーバ240は、通信ポート249a,249b,249cを有している。PCサーバ250は、通信ポート259a,259b,259cを有している。PCサーバ260は、通信ポート269a,269b,269cを有している。
通信ポート219c,229c,239c,249c,259c,269cには、スイッチ270と通信を行うための通信ケーブルが接続されている。PCサーバ210,220,230,240,250,260は、転送先のPCサーバを指定してスイッチ270へパケットを出力する。スイッチ270は、取得したパケットを指定されたPCサーバへ転送する。
通信ポート219a,219b,229a,229b,239a,239b,249a,249b,259a,259b,269a,269bには、それぞれ、PCクラスタ200の外のPCクラスタと通信を行うための通信ケーブルが接続される。
具体的には、通信ポート219a,239a,259aには、X軸の負方向に隣接するPCクラスタ200b内のPCサーバと通信を行うための通信ケーブルが接続される。通信ポート219b,239b,259bには、X軸の正方向に隣接するPCクラスタ200a内のPCサーバと通信を行うための通信ケーブルが接続される。通信ポート229a,249a,269aには、Y軸の負方向に隣接するPCクラスタ200f内のPCサーバと通信を行うための通信ケーブルが接続される。通信ポート229b,249b,269bには、Y軸の正方向に隣接するPCクラスタ200c内のPCサーバと通信を行うための通信ケーブルが接続される。
なお、第2の実施の形態では、構成要素間を接続する場合は、全て双方向通信が可能な通信ケーブルを用いる。したがって、第1の実施の形態の構成と異なり、通信ポートにおいて上り方向の通信経路と下り方向の通信経路とを分離し交差させることは行わない。
図9は、第2の実施の形態のPCサーバの構成を示す図である。なお、図9にはPCサーバ210の構成を示したが、PCサーバ220,230,240,250,260も同様の構成で実現できる。PCサーバ210は、演算回路211、入力回路212、出力回路213、受信回路214a,214b,216、送信回路215a,215b,217およびスイッチ回路218を有している。
演算回路211、入力回路212および出力回路213は、図5に示した第1の実施の形態の演算回路111、入力回路112および出力回路113とそれぞれ同様の機能を備えている。
受信回路214a,214bは、それぞれ内部に複数のFIFO型のバッファメモリを仮想チャネルバッファとして有している。受信回路214aは、通信ポート219aからのパケット、すなわち、PCクラスタ200bからのパケットを取得する。受信回路214bは、通信ポート219bからのパケット、すなわち、PCクラスタ200aからのパケットを取得する。複数の仮想チャネルバッファを用いて仮想チャネルを実現する方法は、第1の実施の形態の方法と同様である。
送信回路215aは、スイッチ回路218からパケットを取得すると、取得したパケットを通信ポート219bへ出力する。これにより、パケットがPCクラスタ200aへ送信される。送信回路215bは、スイッチ回路218からパケットを取得すると、取得したパケットを通信ポート219aへ出力する。これにより、パケットがPCクラスタ200bへ送信される。
受信回路216は、内部にFIFO型のバッファメモリを有している。受信回路216は、通信ポート219cからのパケット、すなわち、スイッチ270が転送したパケットを取得する。そして、受信回路216は、取得したパケットをバッファメモリの先頭に格納する。
送信回路217は、スイッチ回路218から、転送先のPCサーバが指定されたパケットを取得する。そして、送信回路217は、取得したパケットを通信ポート219cへ出力する。これにより、パケットがスイッチ270を介して指定されたPCサーバへ転送される。
スイッチ回路218は、出力回路213および受信回路214a,214b,216のバッファメモリを監視する。バッファメモリにパケットが格納されている場合、スイッチ回路218は、出力回路213および受信回路214a,214b,216からパケットを順次取得する。そして、スイッチ回路218は、パケットの宛先アドレスに基づいて、パケットの出力先を決定する。パケットの出力先は、入力回路212および送信回路215a,215b,217のいずれかである。
図10は、第2の実施の形態のパケット出力先の決定方法を示す図である。なお、図10にはスイッチ回路218によるパケット出力先の決定方法を示したが、他のPCサーバのスイッチ回路も同様の方法でパケット出力先を決定することができる。その場合、図10に示した宛先アドレスを適宜読み替えればよい。
スイッチ回路218は、パケットの宛先アドレスがPCサーバ210のアドレスと一致する場合、更に、パケットの取得元が出力回路213か否かを判断する。パケットの取得元が出力回路213の場合、パケットを破棄する。一方、パケットの取得元が出力回路213でない場合、パケットを入力回路212へ出力する。宛先アドレスがPCサーバ220,230,240,250,260の場合、宛先アドレスのPCサーバを転送先に指定してパケットを送信回路217へ出力する。
宛先アドレスとPCサーバ210のアドレスとでX座標が異なり、X軸の正方向へ転送することで距離が縮まる場合、スイッチ回路218は、パケットを送信回路215aへ出力する。宛先アドレスとPCサーバ210のアドレスとでX座標が異なり、X軸の負方向へ転送することで距離が縮まる場合、パケットを送信回路215bへ出力する。宛先アドレスとPCサーバ210のアドレスとでX座標が同一でY座標が異なる場合、スイッチ回路218は、PCサーバ220を転送先に指定してパケットを送信回路217へ出力する。
なお、図10に示した方法では、X軸方向への転送をY軸方向への転送よりも優先するように統一しているが、Y軸方向への転送をX軸方向への転送よりも優先するように統一してもよい。
このように、第2の実施の形態に係る並列計算機システムによれば、宛先アドレスで示されるPCサーバに到達するまでのパケットの中継回数を削減することができる。また、2次元座標空間における4方向へのパケットの送信を6つのPCサーバで分担するため、特定の回路や通信ケーブルにパケットが集中することを防止できる。特に、1つの座標軸に対して複数のPCサーバを割り当てたため、PCクラスタ間のパケット転送能力を向上させることができる。
また、各PCサーバの構成を均一にすることができ、PCクラスタを実現する構成を単純化できる。また、PCクラスタ内でのパケットの転送にスイッチを用いたため、各PCサーバが有する受信回路および送信回路の個数を少なくでき、回路規模の増大を抑制できる。
[第3の実施の形態]
次に、第3の実施の形態を、図面を参照して詳細に説明する。前述の第1の実施の形態および第2の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
図11は、第3の実施の形態のシステム構成を示す図である。第3の実施の形態に係る並列計算機システムは、3次元のトーラス型相互結合網の各格子点に、複数の計算ユニットを備えるクラスタサーバを配置したものである。図11は、1辺が16個のクラスタサーバで構成される3次元の並列計算機システムの一部を示している。第3の実施の形態に係る並列計算機システムは、クラスタサーバ300,300a,300b,300c,300d,300e,300fを有している。
クラスタサーバ300は、格子点(0,0,0)に配置されている。クラスタサーバ300aは、格子点(1,0,0)に配置されている。クラスタサーバ300bは、格子点(15,0,0)に配置されている。クラスタサーバ300cは、格子点(0,1,0)に配置されている。クラスタサーバ300dは、格子点(0,15,0)に配置されている。クラスタサーバ300eは、格子点(0,0,1)に配置されている。クラスタサーバ300fは、格子点(0,0,15)に配置されている。
隣接する格子点に配置されたクラスタサーバ同士が、双方向通信が可能な3本の通信ケーブルで接続されている。また、各座標軸の端点にあるクラスタサーバ同士も、3本の双方向通信が可能な通信ケーブルで接続されている。
図12は、第3の実施の形態のクラスタサーバの構成を示す図である。なお、図12にはクラスタサーバ300の構成を示したが、クラスタサーバ300a,300b,300c,300d,300e,300fも同様の構成で実現できる。クラスタサーバ300は、計算ユニット310,310a,310b,320,320a,320b,330,330a,330bおよび通信パネル340を有している。
計算ユニット310,310a,310b,320,320a,320b,330,330a,330bは、演算機能とパケットのスイッチ機能とを備える装置である。個々の計算ユニットには、クラスタサーバ300の内部における相対位置を示すクラスタ内番号が割り当てられている。具体的には、計算ユニット310に番号0、計算ユニット310aに番号1、計算ユニット310bに番号2、計算ユニット320に番号3、計算ユニット320aに番号4、計算ユニット320bに番号5、計算ユニット330に番号6、計算ユニット330aに番号7、計算ユニット330bに番号8が割り当てられている。
個々の計算ユニットを一意に識別するアドレスは、クラスタサーバ300が配置された格子点の座標とクラスタ内番号とで構成される。すなわち、計算ユニット310のアドレスは(0,0,0,0)、計算ユニット310aのアドレスは(0,0,0,1)、計算ユニット310bのアドレスは(0,0,0,2)、計算ユニット320のアドレスは(0,0,0,3)、計算ユニット320aのアドレスは(0,0,0,4)、計算ユニット320bのアドレスは(0,0,0,5)、計算ユニット330のアドレスは(0,0,0,6)、計算ユニット330aのアドレスは(0,0,0,7)、計算ユニット330bのアドレスは(0,0,0,8)である。
計算ユニット310,310a,310b,320,320a,320b,330,330a,330bは、双方向通信が可能な通信ケーブルによって、相互に直接接続されている。すなわち、個々の計算ユニットは、他の8個の計算ユニットと8本の通信ケーブルによって接続されている(完全結合網)。
通信パネル340は、通信ポート341a,341b,341c,342a,342b,342c,343a,343b,343c,344a,344b,344c,345a,345b,345c,346a,346b,346cを有している。
具体的には、通信ポート341a,341b,341cには、X軸の負方向に隣接するクラスタサーバ300bと通信を行うための通信ケーブルがそれぞれ接続されている。通信ポート341a,341b,341cは、それぞれ、計算ユニット310,310a,310bとの間でパケットの入出力を行う。
通信ポート342a,342b,342cには、X軸の正方向に隣接するクラスタサーバ300aと通信を行うための通信ケーブルがそれぞれ接続される。通信ポート342a,342b,342cは、それぞれ、計算ユニット310,310a,310bとの間でパケットの入出力を行う。
通信ポート343a,343b,343cには、Y軸の負方向に隣接するクラスタサーバ300dと通信を行うための通信ケーブルが接続される。通信ポート343a,343b,343cは、それぞれ、計算ユニット320,320a,320bとの間でパケットの入出力を行う。
通信ポート344a,344b,344cには、Y軸の正方向に隣接するクラスタサーバ300cと通信を行うための通信ケーブルが接続される。通信ポート344a,344b,344cは、それぞれ、計算ユニット320,320a,320bとの間でパケットの入出力を行う。
通信ポート345a,345b,345cには、Z軸の負方向に隣接するクラスタサーバ300fと通信を行うための通信ケーブルが接続される。通信ポート345a,345b,345cは、それぞれ、計算ユニット330,330a,330bとの間でパケットの入出力を行う。
通信ポート346a,346b,346cには、Z軸の正方向に隣接するクラスタサーバ300eと通信を行うための通信ケーブルが接続される。通信ポート346a,346b,346cは、それぞれ、計算ユニット330,330a,330bとの間でパケットの入出力を行う。
図13は、第3の実施の形態の計算ユニットの構成を示す図である。なお、図13には計算ユニット310の構成を示したが、計算ユニット310a,310b,320,320a,320b,330,330a,330bも同様の構成で実現できる。計算ユニット310は、演算回路311、入力回路312、出力回路313、受信回路314a,314b,316a〜316h、送信回路315a,315b,317a〜317hおよびスイッチ回路318を有している。
演算回路311、入力回路312および出力回路313は、図5に示した第1の実施の形態の演算回路111、入力回路112および出力回路113とそれぞれ同様の機能を備えている。
受信回路314a,314bは、それぞれ内部に複数のFIFO型のバッファメモリを仮想チャネルバッファとして有している。受信回路314aは、通信ポート341aからのパケット、すなわち、クラスタサーバ300bからのパケットを取得する。受信回路314bは、通信ポート342aからのパケット、すなわち、クラスタサーバ300aからのパケットを取得する。複数の仮想チャネルバッファを用いて仮想チャネルを実現する方法は、第1の実施の形態の方法と同様である。
送信回路315aは、スイッチ回路318からパケットを取得すると、取得したパケットを通信ポート342aへ出力する。これにより、パケットがクラスタサーバ300aへ送信される。送信回路315bは、スイッチ回路318からパケットを取得すると、取得したパケットを通信ポート341aへ出力する。これにより、パケットがクラスタサーバ300bへ送信される。
受信回路316a〜316hは、それぞれ内部にFIFO型のバッファメモリを有している。受信回路316aは、計算ユニット310aからのパケットを取得する。受信回路316bは、計算ユニット310bからのパケットを取得する。受信回路316cは、計算ユニット320からのパケットを取得する。受信回路316dは、計算ユニット320aからのパケットを取得する。受信回路316eは、計算ユニット320bからのパケットを取得する。受信回路316fは、計算ユニット330からのパケットを取得する。受信回路316gは、計算ユニット330aからのパケットを取得する。受信回路316hは、計算ユニット330bからのパケットを取得する。
送信回路317a〜317hは、スイッチ回路318からパケットを取得する。送信回路317aは、取得したパケットを計算ユニット310aへ出力する。送信回路317bは、取得したパケットを計算ユニット310bへ出力する。送信回路317cは、取得したパケットを計算ユニット320へ出力する。送信回路317dは、取得したパケットを計算ユニット320aへ出力する。送信回路317eは、取得したパケットを計算ユニット320bへ出力する。送信回路317fは、取得したパケットを計算ユニット330へ出力する。送信回路317gは、取得したパケットを計算ユニット330aへ出力する。
送信回路317hは、取得したパケットを計算ユニット330bへ出力する。
スイッチ回路318は、出力回路313および受信回路314a,314b,316a〜316hのバッファメモリを監視する。バッファメモリにパケットが格納されている場合、スイッチ回路318は、出力回路313および受信回路314a,314b,316a〜316hからパケットを順次取得する。そして、スイッチ回路318は、パケットの宛先アドレスに基づいて、パケットの出力先を決定する。パケットの出力先は、入力回路312および送信回路315a,315b,317a〜317hのいずれかである。
図14は、第3の実施の形態のパケット出力先の決定方法を示す図である。なお、図14にはスイッチ回路318によるパケット出力先の決定方法を示したが、他の計算ユニットのスイッチ回路も同様の方法でパケット出力先を決定することができる。その場合、図14に示した宛先アドレスを適宜読み替えればよい。
スイッチ回路318は、パケットの宛先アドレスが計算ユニット310のアドレスと一致する場合、更に、パケットの取得元が出力回路313か否かを判断する。パケットの取得元が出力回路313の場合、パケットを破棄する。一方、パケットの取得元が出力回路313でない場合、パケットを入力回路312へ出力する。宛先アドレスが計算ユニット310a,310b,320,320a,320b,330,330a,330bの場合、それぞれ、パケットを送信回路317a〜317hへ出力する。
宛先アドレスと計算ユニット310のアドレスとでX座標が異なり、X軸の正方向へ転送することで距離が縮まる場合、スイッチ回路318は、パケットを送信回路315aへ出力する。宛先アドレスと計算ユニット310のアドレスとでX座標が異なり、X軸の負方向へ転送することで距離が縮まる場合、パケットを送信回路315bへ出力する。
宛先アドレスと計算ユニット310のアドレスとでX座標が同一でY座標が異なる場合、スイッチ回路318は、パケットを送信回路317cへ出力する。これにより、パケットが計算ユニット320へ転送される。宛先アドレスと計算ユニット310のアドレスとでX座標およびY座標が同一でZ座標が異なる場合、スイッチ回路318は、パケットを送信回路317fへ出力する。これにより、パケットが計算ユニット330へ転送される。
なお、図14に示した方法では、X軸方向への転送をY軸方向への転送よりも優先し、Y軸方向への転送をZ軸方向の転送よりも優先するように統一しているが、優先する座標軸を変更してもよい。
このように、第3の実施の形態に係る並列計算機システムによれば、宛先アドレスで示される計算ユニットに到達するまでのパケットの中継回数を削減することができる。また、3次元座標空間における6方向へのパケットの送信を9つの計算ユニットで分担するため、特定の回路や通信ケーブルにパケットが集中することを防止できる。特に、1つの座標軸に対して複数の計算ユニットを割り当てたため、クラスタサーバ間のパケット転送能力を向上させることができる。
また、クラスタサーバの内部では完全結合網によりパケットを直接転送するため、内部の転送に関してデッドロック防止のための仮想チャネルバッファを設ける必要がなく、回路規模の増大を抑止できる。また、各計算ユニットの構成を均一にすることができ、クラスタサーバを実現する構成を単純化できる。
なお、第1の実施の形態および第3の実施の形態では、クラスタサーバ内でパケットを転送する通信網として完全結合網を採用し、第2の実施の形態では、PCクラスタ内でパケットを転送する通信網としてスター型結合網を採用した。これに対し、他の形状の通信網を考えられる。
図15は、クラスタ内でパケットを転送する他の通信網の例を示す模式図である。図15に示すクラスタは、3次元のトーラス型相互結合網の各格子点に配置されるものである。このクラスタは、6個の計算ユニット410,420,430,440,450,460で構成される。
計算ユニット410は、X軸の正方向へのパケットの中継を担当する。計算ユニット420は、Y軸の正方向へのパケットの中継を担当する。計算ユニット430は、Z軸の正方向へのパケットの中継を担当する。計算ユニット440は、X軸の負方向へのパケットの中継を担当する。計算ユニット450は、Y軸の負方向へのパケットの中継を担当する。計算ユニット460は、Z軸の負方向へのパケットの中継を担当する。
ここで、計算ユニット410,420,430が3本の通信ケーブルで相互に接続されている。また、計算ユニット440,450,460が3本の通信ケーブルで相互に接続されている。また、計算ユニット410と計算ユニット440、計算ユニット420と計算ユニット450、計算ユニット430と計算ユニット460がそれぞれ通信ケーブルで接続されている。
このように、正方向同士および負方向同士を相互に接続したのは、パケットの中継において、正方向もしくは負方向への中継が連続して行われる可能性が高いと考えられるためである。これにより、クラスタ内でのパケットの平均中継回数を抑えつつ、通信ケーブルの本数および計算ユニット毎の通信ポートの個数を小さくすることができる。
例えば、6個の計算ユニットを全て相互に接続した場合、15本の通信ケーブルと、計算ユニット毎に5個の通信ポートとを設ける必要がある。これに対し、図15に示した構成では、9本の通信ケーブルと、計算ユニット毎に3個の通信ポートとを設ければよい。
以上、本発明の計算機クラスタを図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 格子状に構成された相互結合網の各格子点に配置される計算機クラスタにおいて、
格子点の位置を示す外部アドレスと前記計算機クラスタ内における相対位置を示す内部アドレスとから成る宛先アドレスを含むパケットの処理を行う演算部と、
前記計算機クラスタの外部の通信相手と前記パケットを送受信する第1の通信部と、
前記計算機クラスタの内部の通信相手と前記パケットを送受信する第2の通信部と、
前記演算部、前記第1の通信部および前記第2の通信部と接続されており、取得した前記パケットを、前記宛先アドレスが自己のアドレスと一致する場合は前記演算部へ出力し、前記外部アドレスが前記自己のアドレスと異なり前記パケットを転送すべき方向が前記第1の通信部が送信可能な方向である場合は前記第1の通信部に転送させ、前記内部アドレスのみが前記自己のアドレスと異なる場合および前記外部アドレスが前記自己のアドレスと異なり前記パケットを転送すべき方向が前記第1の通信部が送信可能な方向でない場合は前記第2の通信部に転送させるスイッチ部と、
を有する第1のノード、第2のノード、第3のノードおよび第4のノードと、
前記第1のノード、前記第2のノード、前記第3のノードおよび前記第4のノードの前記第2の通信部を相互に接続する内部通信網と、
前記第1のノードの前記第1の通信部と格子のX軸方向に隣接する2つの前記計算機クラスタとを接続する第1の外部通信網と、
前記第2のノードの前記第1の通信部と格子のY軸方向に隣接する2つの前記計算機クラスタとを接続する第2の外部通信網と、
前記第3のノードの前記第1の通信部と格子のX軸方向に隣接する2つの前記計算機クラスタとを接続する第3の外部通信網と、
前記第4のノードの前記第1の通信部と格子のY軸方向に隣接する2つの前記計算機クラスタとを接続する第4の外部通信網と、
を有することを特徴とする計算機クラスタ。
(付記2) 前記内部通信網は、全ての前記第2の通信部を双方向リンクによって直接接続した完全結合網であることを特徴とする付記1記載の計算機クラスタ。
(付記3) 前記内部接続網は、受信した前記パケットを振り分けるスイッチ装置と、前記スイッチ装置と前記第1のノード、前記第2のノード、前記第3のノードおよび前記第4のノードの前記第2の通信部とをそれぞれ接続する4つの双方向リンクとで構成されることを特徴とする付記1記載の計算機クラスタ。
(付記4) 前記第1の外部通信網は、X軸の負側に隣接する前記計算機クラスタから前記第1のノードの前記第1の通信部への片方向リンクと、前記第1のノードの前記第1の通信部からX軸の正側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
前記第2の外部通信網は、Y軸の負側に隣接する前記計算機クラスタから前記第2のノードの前記第1の通信部への片方向リンクと、前記第2のノードの前記第1の通信部からY軸の正側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
前記第3の外部通信網は、X軸の正側に隣接する前記計算機クラスタから前記第3のノードの前記第1の通信部への片方向リンクと、前記第3のノードの前記第1の通信部からX軸の負側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
前記第4の外部通信網は、Y軸の正側に隣接する前記計算機クラスタから前記第4のノードの前記第1の通信部への片方向リンクと、前記第4のノードの前記第1の通信部からY軸の負側に隣接する前記計算機クラスタへの片方向リンクとで構成される、
ことを特徴とする付記1記載の計算機クラスタ。
(付記5) 前記第1の外部通信網は、前記第1のノードの前記第1の通信部とX軸方向に隣接する2つの前記計算機クラスタとをそれぞれ接続する2つの双方向リンクで構成され、
前記第2の外部通信網は、前記第2のノードの前記第1の通信部とY軸方向に隣接する2つの前記計算機クラスタとをそれぞれ接続する2つの双方向リンクで構成され、
前記第3の外部通信網は、前記第3のノードの前記第1の通信部とX軸方向に隣接する2つの前記計算機クラスタとをそれぞれ接続する2つの双方向リンクで構成され、
前記第4の外部通信網は、前記第4のノードの前記第1の通信部とY軸方向に隣接する2つの前記計算機クラスタとをそれぞれ接続する2つの双方向リンクで構成される、
ことを特徴とする付記1記載の計算機クラスタ。
(付記6) 前記第1の通信部は、前記パケットを一時的に保持する複数の仮想チャネルバッファを有しており、受信した前記パケットを前記宛先アドレスに応じて前記複数の仮想チャネルバッファに振り分けて格納し、
前記スイッチ部は、前記複数の仮想チャネルバッファに格納された前記パケットを順次取得して、スイッチング処理を行う、
ことを特徴とする付記1記載の計算機クラスタ。
(付記7) 前記相互結合網は3次元の格子状に構成されており、
前記演算部、前記第1の通信部、前記第2の通信部および前記スイッチ部を有する第5のノードおよび第6のノードと、
前記第5のノードの前記第1の通信部と格子のZ軸方向に隣接する2つの前記計算機クラスタとを接続する第5の外部通信網と、
前記第6のノードの前記第1の通信部と格子のZ軸方向に隣接する2つの前記計算機クラスタとを接続する第6の外部通信網と、
を更に有し、
前記内部通信網は、前記第1のノード、前記第2のノード、前記第3のノード、前記第4のノード、前記第5のノードおよび前記第6のノードの前記第2の通信部を相互に接続する、
ことを特徴とする付記1記載の計算機クラスタ。
本実施の形態の概要を示す図である。 第1の実施の形態のシステム構成を示す図である。 第1の実施の形態のクラスタサーバの構成を示す図である。 第1の実施の形態の通信ケーブルの接続関係を示す図である。 第1の実施の形態の計算ユニットの構成を示す図である。 第1の実施の形態のパケット出力先の決定方法を示す図である。 第2の実施の形態のシステム構成を示す図である。 第2の実施の形態のPCクラスタの構成を示す図である。 第2の実施の形態のPCサーバの構成を示す図である。 第2の実施の形態のパケット出力先の決定方法を示す図である。 第3の実施の形態のシステム構成を示す図である。 第3の実施の形態のクラスタサーバの構成を示す図である。 第3の実施の形態の計算ユニットの構成を示す図である。 第3の実施の形態のパケット出力先の決定方法を示す図である。 クラスタ内でパケットを転送する他の通信網の例を示す模式図である。
符号の説明
10,20,30,40 計算機クラスタ
11,21,31,41 第1のノード
12,22,32,42 第2のノード
13,23,33,43 第3のノード
14,24,34,44 第4のノード
15 内部通信網
16 第1の外部通信網
17 第2の外部通信網
18 第3の外部通信網
19 第4の外部通信網
11a 演算部
11b 第1の通信部
11c 第2の通信部
11d スイッチ部

Claims (5)

  1. 格子状に構成された相互結合網の各格子点に配置される計算機クラスタにおいて、
    格子点の位置を示す外部アドレスと前記計算機クラスタ内における相対位置を示す内部アドレスとから成る宛先アドレスを含むパケットの処理を行う演算部と、
    前記計算機クラスタの外部の通信相手と前記パケットを送受信する第1の通信部と、
    前記計算機クラスタの内部の通信相手と前記パケットを送受信する第2の通信部と、
    前記演算部、前記第1の通信部および前記第2の通信部と接続されており、取得した前記パケットを、前記宛先アドレスが自己のアドレスと一致する場合は前記演算部へ出力し、前記外部アドレスが前記自己のアドレスと異なり前記パケットを転送すべき方向が前記第1の通信部が送信可能な方向である場合は前記第1の通信部に転送させ、前記内部アドレスのみが前記自己のアドレスと異なる場合および前記外部アドレスが前記自己のアドレスと異なり前記パケットを転送すべき方向が前記第1の通信部が送信可能な方向でない場合は前記第2の通信部に転送させるスイッチ部と、
    を有する第1のノード、第2のノード、第3のノードおよび第4のノードと、
    前記第1のノード、前記第2のノード、前記第3のノードおよび前記第4のノードの前記第2の通信部を相互に接続する内部通信網と、
    前記第1のノードの前記第1の通信部と格子のX軸方向に隣接する2つの前記計算機クラスタとを接続する第1の外部通信網と、
    前記第2のノードの前記第1の通信部と格子のY軸方向に隣接する2つの前記計算機クラスタとを接続する第2の外部通信網と、
    前記第3のノードの前記第1の通信部と格子のX軸方向に隣接する2つの前記計算機クラスタとを接続する第3の外部通信網と、
    前記第4のノードの前記第1の通信部と格子のY軸方向に隣接する2つの前記計算機クラスタとを接続する第4の外部通信網と、
    を有することを特徴とする計算機クラスタ。
  2. 前記内部通信網は、全ての前記第2の通信部を双方向リンクによって直接接続した完全結合網であることを特徴とする請求項1記載の計算機クラスタ。
  3. 前記第1の外部通信網は、X軸の負側に隣接する前記計算機クラスタから前記第1のノードの前記第1の通信部への片方向リンクと、前記第1のノードの前記第1の通信部からX軸の正側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
    前記第2の外部通信網は、Y軸の負側に隣接する前記計算機クラスタから前記第2のノードの前記第1の通信部への片方向リンクと、前記第2のノードの前記第1の通信部からY軸の正側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
    前記第3の外部通信網は、X軸の正側に隣接する前記計算機クラスタから前記第3のノードの前記第1の通信部への片方向リンクと、前記第3のノードの前記第1の通信部からX軸の負側に隣接する前記計算機クラスタへの片方向リンクとで構成され、
    前記第4の外部通信網は、Y軸の正側に隣接する前記計算機クラスタから前記第4のノードの前記第1の通信部への片方向リンクと、前記第4のノードの前記第1の通信部からY軸の負側に隣接する前記計算機クラスタへの片方向リンクとで構成される、
    ことを特徴とする請求項1記載の計算機クラスタ。
  4. 前記第1の通信部は、前記パケットを一時的に保持する複数の仮想チャネルバッファを有しており、受信した前記パケットを前記宛先アドレスに応じて前記複数の仮想チャネルバッファに振り分けて格納し、
    前記スイッチ部は、前記複数の仮想チャネルバッファに格納された前記パケットを順次取得して、スイッチング処理を行う、
    ことを特徴とする請求項1記載の計算機クラスタ。
  5. 前記相互結合網は3次元の格子状に構成されており、
    前記演算部、前記第1の通信部、前記第2の通信部および前記スイッチ部を有する第5のノードおよび第6のノードと、
    前記第5のノードの前記第1の通信部と格子のZ軸方向に隣接する2つの前記計算機クラスタとを接続する第5の外部通信網と、
    前記第6のノードの前記第1の通信部と格子のZ軸方向に隣接する2つの前記計算機クラスタとを接続する第6の外部通信網と、
    を更に有し、
    前記内部通信網は、前記第1のノード、前記第2のノード、前記第3のノード、前記第4のノード、前記第5のノードおよび前記第6のノードの前記第2の通信部を相互に接続する、
    ことを特徴とする請求項1記載の計算機クラスタ。
JP2006281703A 2006-10-16 2006-10-16 計算機クラスタ Active JP5055942B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006281703A JP5055942B2 (ja) 2006-10-16 2006-10-16 計算機クラスタ
US11/728,645 US7889725B2 (en) 2006-10-16 2007-03-27 Computer cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006281703A JP5055942B2 (ja) 2006-10-16 2006-10-16 計算機クラスタ

Publications (2)

Publication Number Publication Date
JP2008097528A true JP2008097528A (ja) 2008-04-24
JP5055942B2 JP5055942B2 (ja) 2012-10-24

Family

ID=39303043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006281703A Active JP5055942B2 (ja) 2006-10-16 2006-10-16 計算機クラスタ

Country Status (2)

Country Link
US (1) US7889725B2 (ja)
JP (1) JP5055942B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009139024A1 (ja) * 2008-05-15 2009-11-19 富士通株式会社 コンピュータを相互接続するネットワーク
WO2012101833A1 (ja) * 2011-01-30 2012-08-02 富士通株式会社 演算装置および演算方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581079B2 (en) * 2005-03-28 2009-08-25 Gerald George Pechanek Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
US7958184B2 (en) * 2008-03-04 2011-06-07 International Business Machines Corporation Network virtualization in a multi-node system with multiple networks
KR101495811B1 (ko) * 2008-06-09 2015-02-25 삼성전자주식회사 고속의 패킷 라우팅 시스템 장치 및 방법
JP5550261B2 (ja) * 2009-05-29 2014-07-16 キヤノン株式会社 リングバスを用いたデータ処理装置、データ処理方法およびプログラム
JP5532849B2 (ja) * 2009-11-20 2014-06-25 富士通株式会社 コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法
EP3614273A3 (en) * 2012-12-13 2020-04-15 Coherent Logix, Incorporated Multiprocessor system with improved secondary interconnection network
GB2569275B (en) 2017-10-20 2020-06-03 Graphcore Ltd Time deterministic exchange
US10963003B2 (en) 2017-10-20 2021-03-30 Graphcore Limited Synchronization in a multi-tile processing array
GB201717295D0 (en) 2017-10-20 2017-12-06 Graphcore Ltd Synchronization in a multi-tile processing array
GB2569276B (en) 2017-10-20 2020-10-14 Graphcore Ltd Compiler method
US11604752B2 (en) * 2021-01-29 2023-03-14 Arm Limited System for cross-routed communication between functional units of multiple processing units

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS644856A (en) * 1987-06-29 1989-01-10 Toshiba Corp Parallel processing system
JPH04253256A (ja) * 1991-01-29 1992-09-09 Toshiba Corp 並列計算機
JPH0635873A (ja) * 1992-05-22 1994-02-10 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH06266684A (ja) * 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
JPH0799491A (ja) * 1993-09-28 1995-04-11 Oki Electric Ind Co Ltd ネットワークシステムおよびノード
JPH07191947A (ja) * 1993-12-27 1995-07-28 Toshiba Corp 並列計算機
JPH09160893A (ja) * 1995-12-06 1997-06-20 Korea Electron Telecommun 並列処理コンピュータシステムにおけるクロスバースイッチを利用したクラスタ連結構造
US20060176888A1 (en) * 1998-09-17 2006-08-10 Mcnamara Tod W High density network topology

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842034A (en) * 1996-12-20 1998-11-24 Raytheon Company Two dimensional crossbar mesh for multi-processor interconnect
JP3575688B2 (ja) * 2001-02-16 2004-10-13 日本電気株式会社 パケットスイッチ
EP1318453A1 (en) * 2001-12-07 2003-06-11 Hewlett-Packard Company Scheduling system, method and apparatus for a cluster
WO2006020298A2 (en) * 2004-07-19 2006-02-23 Blumrich Matthias A Collective network for computer structures
US7415594B2 (en) * 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US7965732B2 (en) * 2004-03-19 2011-06-21 Fujitsu Limited Scheduling token-controlled data transmissions in communication networks
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
JP4016998B2 (ja) * 2005-06-22 2007-12-05 ヤマハ株式会社 通信装置およびプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS644856A (en) * 1987-06-29 1989-01-10 Toshiba Corp Parallel processing system
JPH04253256A (ja) * 1991-01-29 1992-09-09 Toshiba Corp 並列計算機
JPH0635873A (ja) * 1992-05-22 1994-02-10 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH06266684A (ja) * 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
JPH0799491A (ja) * 1993-09-28 1995-04-11 Oki Electric Ind Co Ltd ネットワークシステムおよびノード
JPH07191947A (ja) * 1993-12-27 1995-07-28 Toshiba Corp 並列計算機
JPH09160893A (ja) * 1995-12-06 1997-06-20 Korea Electron Telecommun 並列処理コンピュータシステムにおけるクロスバースイッチを利用したクラスタ連結構造
US20060176888A1 (en) * 1998-09-17 2006-08-10 Mcnamara Tod W High density network topology

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009139024A1 (ja) * 2008-05-15 2009-11-19 富士通株式会社 コンピュータを相互接続するネットワーク
JP5212469B2 (ja) * 2008-05-15 2013-06-19 富士通株式会社 コンピュータシステム及びコンピュータシステムの制御方法
US8504731B2 (en) 2008-05-15 2013-08-06 Fujitsu Limited Network for interconnecting computers
WO2012101833A1 (ja) * 2011-01-30 2012-08-02 富士通株式会社 演算装置および演算方法

Also Published As

Publication number Publication date
JP5055942B2 (ja) 2012-10-24
US7889725B2 (en) 2011-02-15
US20080089329A1 (en) 2008-04-17

Similar Documents

Publication Publication Date Title
JP5055942B2 (ja) 計算機クラスタ
US5175733A (en) Adaptive message routing for multi-dimensional networks
KR100277167B1 (ko) 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법
CN109189720B (zh) 层次化片上网络拓扑结构及其路由方法
Chen et al. Fault-tolerant routing algorithm for meshes without using virtual channels
CN107959643B (zh) 一种通过交换芯片构建的交换系统及其路由算法
Paul et al. MG-Join: A scalable join for massively parallel multi-GPU architectures
CN101335704A (zh) 三维torus网中的无死锁自适应路由方法
WO2024159988A1 (zh) 数据流驱动的可重构处理器芯片及可重构处理器集群
CN103677760A (zh) 一种基于Openflow的事件并行控制器及其事件并行处理方法
CN114026551A (zh) 具有两个嵌入式环的网络计算机
CN108287729B (zh) 一种数据流指令映射方法
CN111245730B (zh) 一种片上网络的路由系统及通信方法
CN105530206A (zh) 一种基于Torus网络的双接入结构及其工作方式
US9258358B2 (en) Parallel computing system and control method of parallel computing system
CN101267394A (zh) 三维mesh网中无死锁的平面自适应路由方法
CN117395746B (zh) 双路径无线网格网络的路由方法、装置、设备和存储介质
CN112468162B (zh) 双发万兆网中频信号处理机和双路径系统及数据传输方法
US20070230347A1 (en) Communication interface device and communication method
CN107370652B (zh) 一种计算机节点动态互联平台及平台组网方法
WO2020087248A1 (zh) 多核芯片数据总线布线结构和数据发送的方法
US9948543B2 (en) Mechanism to extend the remote get to do async rectangle broadcast on a rectangle with wild cards in the packet header
Mishra et al. Custom Network on Chip architecture for map generation in autonomous navigating robots
US20230269200A1 (en) On-chip network design method for distributed parallel operation algorithm
Ding et al. A parallel processing method for border gateway protocol UPDATE messages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

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: 20120716

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5055942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150