JP2010218364A - 情報処理システム、通信制御装置および方法 - Google Patents

情報処理システム、通信制御装置および方法 Download PDF

Info

Publication number
JP2010218364A
JP2010218364A JP2009065892A JP2009065892A JP2010218364A JP 2010218364 A JP2010218364 A JP 2010218364A JP 2009065892 A JP2009065892 A JP 2009065892A JP 2009065892 A JP2009065892 A JP 2009065892A JP 2010218364 A JP2010218364 A JP 2010218364A
Authority
JP
Japan
Prior art keywords
data
node
virtual channel
packet
received
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.)
Pending
Application number
JP2009065892A
Other languages
English (en)
Inventor
Yuichiro Yasujima
雄一郎 安島
Tomohiro Inoue
智宏 井上
Shinya Hiramoto
新哉 平本
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 JP2009065892A priority Critical patent/JP2010218364A/ja
Priority to US12/706,137 priority patent/US8204054B2/en
Priority to EP10153987A priority patent/EP2230606A3/en
Priority to KR1020100022286A priority patent/KR101082701B1/ko
Priority to CN2010101383046A priority patent/CN101841471B/zh
Publication of JP2010218364A publication Critical patent/JP2010218364A/ja
Pending 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
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Abstract

【課題】計算機ノード間で処理要求データとその応答データとが確実に送受信されるようにする。
【解決手段】計算機ノードN1〜N16は、第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状に接続される。各計算機ノードN1〜N16は、第1の仮想チャネルを通じて送受信されるデータを第1の次元オーダに従ってルーティングするとともに、第2の仮想チャネルを通じて送受信されるデータを、第1の次元オーダとは逆順の第2の次元オーダに従ってルーティングする。また、各計算機ノードN1〜N16では、自ノード宛ての処理要求データが第1の仮想チャネルを通じて受信されたとき、それに対する応答データが第2の仮想チャネルを通じて送信される。これにより、処理要求データと応答データの伝送経路が一致し、耐故障性が向上する。
【選択図】図1

Description

本発明は、複数の計算機ノードを備えた情報処理システム、この情報処理システムの各計算機ノードに設けられる通信制御装置、および、通信制御方法に関する。
近年、HPC(High-Performance Computing)分野において、プロセッサを数万ノード分だけ接続した超並列計算機が注目されている。数万ノード規模の超並列計算機は、一般的に、ノード当たりのハードウェアコストがシステム規模に関係なく一定になる設計が採用される。ノード同士がインタコネクト接続されたノード間接続ネットワークでは、一般的に、ノードとノードとを相互接続する直接網が利用される。直接網のハードウェアコストは、各ノードの接続ポート数で決まり、システム規模に関係なく一定である。超並列計算機において数万ノードを接続する直接網の接続トポロジとしては、多次元メッシュまたは多次元トーラスが一般的に利用される。
このようなシステムでは、複数のパケットが循環的に転送要求されることで通信不能となるデッドロックを回避するための手段が必要になる。デッドロックを回避するための一般的な技術としては、例えば、通信経路の次元順を固定する次元オーダルーティングが知られている。また、チャネル番号としてそれぞれ高い値、低い値を有する二重の仮想チャネルをノードに割り当て、転送先のチャネル番号が昇順または降順になるようにルーティングする技術も知られている(例えば、非特許文献1参照)。
ところで、数万ノード規模のシステムでは、ノードの故障のたびにシステム全体を停止して保守を行うようにすると、稼動時間が低下してしまう。このため、一部のノードが故障していても、他のノードを使用して通信可能となるような耐故障性が要求される。しかし、次元オーダルーティングでは、通信経路があらかじめ固定されるため、ノードに故障が発生するとそのノードを経路とする通信ができなくなるという問題がある。
図11は、メッシュネットワークにおいてノードに故障が発生した場合の様子を示す図である。
図11に示す並列コンピュータでは、計算機ノード(以下、“ノード”と略称する)N101〜N116が、4×4の2次元メッシュネットワークにより接続されている。また、このメッシュネットワークでは、次元オーダルーティングが行われる。ここでは例として、最初にx方向(図中横方向)のルーティングが行われ、次にy方向(図中縦方向)のルーティングが行われるものとする。例えば、ノードN109からノードN104に対してパケットが送信される場合には、パケットはまず、ノードN109からノードN110,N111,N112の順に転送された後、ノードN108,N104の順に転送される。
このように、次元オーダルーティングでは、送信ノードと受信モードの組み合わせによりパケットの伝送経路は1つに決まる。ところが、このようなメッシュネットワークでは、1つのノードが故障すると、そのノードを経路とするすべての通信が不可能になってしまう。
特に、各ノードで並列計算を行うためには、同じジョブを実行するノード間では通信可能である必要がある。このため、故障によって通信不可能なノードの組み合わせが発生すると、ジョブを実行可能なノードグループが小さくなるという問題がある。例えば、図11においてノードN111に故障が発生した場合、通信可能なノードグループの分割方法は、次の3通り考えられる。
第1の分割方法は、故障したノードN111を含む列に対して、図中上側に4×2ノードのグループ、図中下側に4×1ノードのグループを設定する方法である。すなわち、上側のノードグループはノードN101〜N108を含み、下側のノードグループはノードN113〜N116を含む。
第2の分割方法は、故障したノードN111を含む行に対して、図中左側に2×4ノードのグループ、図中右側に1×4ノードのグループを設定する方法である。すなわち、左側のノードグループはノードN101,N102,N105,N106,N109,N110,N113,N114を含み、右側のノードグループはノードN104,N108,N112,N116を含む。
第3の分割方法は、故障したノードN111をそれぞれ含む列および行を除いた3×3ノードを含む1つのグループを設定する方法である。すなわち、このノードグループは、ノードN101,N102,N104〜N106,N108〜N110,N112〜N114,N116を含む。
このように、ノードの故障によりノードグループが分断される問題への対策として、多次元メッシュネットワークまたは多次元トーラスネットワークを多重化する方法が考えられる。ここで、図12は、多重化されたメッシュネットワークの一例を示す図である。
図12には、4×4の2次元メッシュネットワークを2つの通信プレーン分だけ多重化した場合の例を示している。このメッシュネットワークでは、一方の通信プレーンのノードN101〜N113に対して、他方の通信プレーンのノードN121〜N136がそれぞれ組み合わされ、各組のノード同士がプレーン間接続されている。
このようなメッシュネットワークでは、通信プレーン間で接続されたノードのうちの一方を用いて4×4の2次元メッシュネットワークを構成することができる。このため、一方の通信プレーンのノードで故障が発生した場合には、そのノードに接続された他方の通信プレーンのノードを経路とすることで、通信が可能になる。
例えば、図12において、ノードN109からノードN104に対するパケットの送信時に、その経路上のノードN111が故障した場合を考える。この場合、パケットの経路に対応する他方の通信プレーンのノードを経路とすることで、通信が可能になる。例えば、パケットがノードN109,N129,N130,N131,N132,N128,N124,N104の順に転送されることで、ノードN109からノードN104へのパケット転送が可能になる。このように、一方の通信プレーンのノードが故障した場合でも、他方の通信プレーンでは全ノードが相互に通信可能であるので、ノードグループは分断されない。
なお、メッシュネットワークにおける他の障害回復方法としては、動的に現用系と予備系からなるリングネットを構成し、現用系の障害時に予備系にトラフィックを迂回させるようにしたものがあった(例えば、特許文献1参照)。
ところで、HPC分野では、ネットワーク処理のためにプロセッサを使用する時間を短縮するために、RDMA(Remote Direct Memory Access)通信が利用されている。リモートノードのメモリに対する書き込み要求のための通信はPut通信と呼ばれ、そのメモリからの読み出し要求のための通信はGet通信と呼ばれる。
RDMA通信では、リモートノードのネットワークインタフェースに対して、そのリモートノードのメモリに対する読み書きを要求することができる。要求を受けたリモートノードでは、メモリの読み書きの際に、ネットワークインタフェースとメモリとの間でDMA(Direct Memory Access)転送が行われる。これにより、各ノードが備えるプロセッサに処理負荷をかけることなく、メモリの読み書きを実行できるようになり、その結果、並列コンピュータ内の各プロセッサでの並列処理の効率が向上する。
ここで、図13は、Get通信が行われる場合のパケットの経路について説明するための図である。
Get通信では、メモリから読み出したデータを読み出し要求側に返信するために、応答通信が必要となる。次元オーダルーティングが行われる場合、Get要求パケットとその応答パケットとは、それぞれ異なる経路で転送される。例えば、図13において、ノードN109からノードN104に対してGet要求が行われる場合、Get要求パケットは、例えば、ノードN109,N110,N111,N112,N108,N104の順に転送される。一方、ノードN104からのGet応答パケットは、ノードN104,N103,N102,N101,N105,N109の順に転送される。
しかしながら、このようにGet要求パケットとGet応答パケットの各経路が異なる場合には、それらの一方の経路上のノードに故障が発生する場合がある。ここで、Get応答の経路上のノードが故障した場合には、Get要求の送信元ノードは、要求したデータを受信できない。
このような問題は、前述のように、メッシュネットワークを多重化することで回避できる。図14は、多重化されたメッシュネットワークにおいて応答経路に故障が発生した状態を示す図である。この図14に示すように、要求経路のノードと同じ通信プレーンにおいて、応答経路上のノードに故障が発生した場合には、応答経路のみ通信プレーンを切り替えることで、読み出しを要求したデータが要求元ノードに転送される。
しかし、このような方法では、Get要求を受けたノードにおいて、応答パケットの経路が故障したノードを回避するように、適切な通信プレーンを選択できるようにする必要がある。次元オーダルーティングでは、各ノードにおいて送信経路を簡単に決定できることが大きな利点であるが、上記のように最適な応答経路を選択するためには、Get要求を受けたノードに複雑な処理を実行させる必要が生じる。特に、このような最適経路選択機能をハードウェア回路によって実現する場合、その回路は複雑で大規模なものになってしまう。
特開2002−247038号公報
William J. Dally,Charles L. Seitz,"Deadlock-Free Message Routing in Multiprocessor Interconnection Networks",IEEE TRANSACTIONS ON COMPUTERS Vol. C-36,1987年5月
上記のように、次元オーダルーティングが行われる多次元メッシュネットワークまたは多次元トーラスネットワークでは、ノードに故障が発生した場合でも通信を継続できることが望まれている。特に、Get要求パケットなど、応答が必要なパケットが送信された場合に、その応答パケットの経路上のノードに故障が発生しても、要求側ノードが応答パケットを確実に受信できることが望まれている。
しかしながら、応答が必要なパケットに対して確実に応答できるような耐故障性を実現するためには、前述の通り、通信プレーンを多重化して、故障したノードが回避されるように応答パケットの経路を適切に選択する必要があった。このような経路選択のためには複雑な処理が必要であり、その処理の実現のためには回路規模や製造コストが増大する。
本発明はこのような点に鑑みてなされたものであり、計算機ノード間で処理要求データとその応答データとが確実に送受信されるようにした情報処理システム、通信制御装置および方法を提供することを目的とする。
上記目的を達成するために、情報処理システムが提供される。この情報処理システムは、少なくとも第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状または多次元トーラス状に接続された複数の計算機ノードを有する。また、前記各計算機ノードは、前記第1の仮想チャネルを通じて送受信されるデータを第1の次元オーダに従ってルーティングするとともに、前記第2の仮想チャネルを通じて送受信されるデータを前記第1の次元オーダとは逆順の第2の次元オーダに従ってルーティングするルーティング制御部を有する。
このような情報処理システムでは、各計算機ノードのルーティング制御部の制御により、第1の仮想チャネルでは、第1の次元オーダに従ってルーティングされ、第2の仮想チャネルでは、第1の次元オーダとは逆順の第2の次元オーダに従ってルーティングされる。ここで、例えば、2つの計算機ノード間で通信する際に、データの送信方向に応じて異なる仮想チャネルが使用された場合には、いずれの方向でも、データが伝送される計算機ノードの経路が一致する。
また、上記目的を達成するために、少なくとも第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状または多次元トーラス状に接続された複数の計算機ノードのそれぞれに設けられ、他の計算機ノードとの間のデータ送受信動作を制御する通信制御装置が提供される。この通信制御装置は、当該通信制御装置が設けられた計算機ノード宛てのデータが前記第1の仮想チャネルを通じて受信されたとき、当該データが、要求元の計算機ノードに対する応答が必要な処理要求データであるか否かを判別する受信データ判別部と、前記受信データ判別部により受信データが前記処理要求データであると判別された場合、当該処理要求データに対する応答データを、前記第1の仮想チャネルとは逆順の次元オーダに従ってルーティングされる前記第2の仮想チャネルを通じて送信するように制御する応答制御部と、を有する。
このような通信制御装置において、受信データ判別部は、この通信制御装置が設けられた計算機ノード宛てのデータが第1の仮想チャネルを通じて受信されたとき、このデータが、要求元の計算機ノードに対する応答が必要な処理要求データであるか否かを判別する。応答制御部は、受信データ判別部により受信データが処理要求データであると判別された場合、この処理要求データに対する応答データを第2の仮想チャネルを通じて送信するように制御する。ここで、第2の仮想チャネルでは、第1の仮想チャネルとは逆順の次元オーダに従ってルーティングされる。
上記の情報処理システムによれば、要求元の計算機ノードに対する応答が必要な処理要求データと、その応答データとが、計算機ノード間で確実に送受信されるようになる。
また、上記の通信制御装置によれば、要求元の計算機ノードに対する応答が必要な処理要求データに対する応答データを、簡易な処理により確実に送信できる。
第1の実施の形態に係る並列コンピュータの全体構成を示す図である。 処理要求パケットおよび応答パケットの伝送経路の例を示す図である。 ノードの内部構成例を示す図である。 ルータの内部構成例を示す図である。 ネットワークI/Fの内部構成例を示す図である。 ルータにおけるルーティング処理手順を示すフローチャートである。 ルータから受信パケットが供給されたときのネットワークI/Fの処理手順を示すフローチャートである。 出力回路による送信可否の管理手順を示すフローチャートである。 第2の実施の形態に係る並列コンピュータの構成例を示す図である。 第3の実施の形態に係る並列コンピュータの構成例を示す図である。 メッシュネットワークにおいてノードに故障が発生した場合の様子を示す図である。 多重化されたメッシュネットワークの一例を示す図である。 Get通信が行われる場合のパケットの経路について説明するための図である。 多重化されたメッシュネットワークにおいて応答経路に故障が発生した状態を示す図である。
以下、実施の形態を図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る並列コンピュータの全体構成を示す図である。
図1に示す並列コンピュータ1は、複数の計算機ノード(以下、“ノード”と略称する)がネットワークにより接続された情報処理システムを含んでおり、各ノードが備えるプロセッサにより所望の処理を並列に処理することが可能になっている。本実施の形態の並列コンピュータ1では、例として16のノードN1〜N16が設けられている。そして、これらのノードN1〜N16は、例えば光ファイバなどにより4×4の2次元メッシュ状に接続され、これによりメッシュネットワークが構成されている。
また、このネットワークにおいて、各ノードは、x方向(図1中の横方向)およびy方向(図1中の縦方向)に隣接するノードとの間で、それぞれ少なくとも2つの仮想チャネルによって接続されている。ここでは、一方の仮想チャネルを“要求チャネル”、他方の仮想チャネルを“応答チャネル”と呼ぶ。
このネットワークにおいて、あるノードから一方の仮想チャネルを通じて送信されたパケットは、基本的に、同じ仮想チャネルを通じて宛先まで伝送される。また、要求チャネルおよび応答チャネルでは、互いに逆順の次元オーダルーティングが行われる。ここでは例として、最初にx方向のルーティングが行われ、次にy方向のルーティングが行われるものとする。
例えば、ノードN9からノードN4に対してパケットが要求チャネルを通じて送信される場合には、パケットはまず、ノードN9からノードN10,N11,N12の順に転送された後、ノードN8,N4の順に転送される。一方、ノードN9からノードN4に対してパケットが応答チャネルを通じて送信される場合には、パケットはまず、ノードN9からノードN5,N1の順に転送された後、ノードN2,N3,N4の順に転送される。
このようなネットワークでは、2つのノード間で通信する際に、データの送信方向に応じてそれぞれ別の仮想チャネルを使用することができる。例えば、一方のノードから他方のノードへのデータ送信に要求チャネルを使用し、他方のノードから一方のノードへのデータ送信に応答チャネルを使用する。このような動作を行った場合、データの送信方向がどちらの場合にも、データの伝送経路が一致する。
このような性質を利用することで、次の図2で説明するように、要求元ノードに対する応答が必要な処理要求パケットが送信された場合に、それに対する応答パケットがより確実に送信されるようになる。
図2は、処理要求パケットおよび応答パケットの伝送経路の例を示す図である。
本実施の形態では、要求元ノードに対する応答が必要な通信として、Get通信を適用する。Get通信は、RDMA技術を用いて、要求先ノードのメモリからデータを読み出すための通信である。
なお、Get通信では、要求先ノードでは、並列処理の実行主体であるCPUに負荷がかかることなく、メモリからデータがDMAによって読み出され、そのデータが要求元ノードに返信される。このGet通信のように、要求元ノードに対する応答が必要な通信としては、要求先ノードでの処理負荷が軽く、短時間で応答が返信されるようなものが適用されることが望ましい。
図2には、ノードN9からノードN4に対してGet要求パケットが送信された場合の例を示している。この場合、ノードN9は、要求チャネルを通じてGet要求パケットを送信する。これにより、Get要求パケットは、ノードN10,N11,N12,N8,N4の順に転送される。
一方、Get要求パケットを受信したノードN4は、このノードN4に接続されたメモリから要求されたデータをDMAにより読み出す。そして、そのデータを格納したGet応答パケットを、応答チャネルを通じてノードN9に対して送信する。これにより、Get応答パケットは、ノードN8,N12,N11,N10,N9の順に転送される。すなわち、Get応答パケットは、Get要求パケットと同じ経路上を逆方向に転送される。
ここで、例えばノードN2が故障したものとする。仮に、Get要求パケットをGet応答パケットと同じ仮想チャネルを通じて送信するものとした場合、ノードN4からノードN9へのGet応答パケットは、ノードN3,N2,N1,N5,N9の順に転送される。このため、ノードN2が故障していると、ノードN4での応答処理が正常に実行されたにもかかわらず、Get応答パケットはノードN9まで到達しない。
このような事態を避けるためには、図14で説明したように、通信プレーンを多重化する方法が考えられる。しかし、この方法では、Get要求パケットを受信したノードは、通信プレーンも含めた最適な応答経路を決定するために、複雑な処理が実行されることになる。
これに対して、図2のようにGet応答パケットを応答チャネルを通じて送信するものとした場合、Get要求パケットの伝送経路とGet応答パケットの伝送経路とは同じになる。このため、Get要求パケットが要求先ノードまで転送されれば、それに対するGet応答パケットも必ず要求元ノードまで転送される。従って、Get通信における耐故障性が高められる。
また、要求先ノードでは、Get応答パケットをGet要求パケットと同じ通信プレーン上に送信すればよくなる。例えば、要求先ノードは、Get要求パケットを自ノードに接続された他のノードから受信したとき、同じノードをGet応答パケットの送信先として決定するとともに、送信する仮想チャネルのみを変更する。従って、応答経路を決定するための処理が簡易になり、その処理回路の規模や製造コストが抑制される。
次に、各ノードの構成およびその処理手順について、より具体的に説明する。
図3は、ノードの内部構成例を示す図である。
図3では、例として、ノードN10の内部構成を示している。なお、ノードN6,N7,N11も、このノードN10と同じ構成を有している。また、ノードN1〜N5,N8,N9,N12〜N16については、接続される他のノードに対応する通信ポート数が異なる以外、基本的な構成はノードN10と同じである。
図3に示すように、ノードN10は、ルータ100、ネットワークI/F(インタフェース)200、CPU310およびメモリ320を備えている。また、ネットワークI/F200、CPU310およびメモリ320は、バス330を介して互いに接続されている。ネットワークI/F200、CPU310およびメモリ320は、例えば、PE(Processor Element)を構成するものである。
ルータ100は、メッシュネットワークを伝送されるパケットのルーティングを行う。例えば、ルータ100は、このノードN10に接続された他のノード(以下、“隣接ノード”と呼ぶ)から、パケットを受信すると、そのパケットの宛先を判別する。宛先が他のノードである場合には、受信した仮想チャネルに応じた次元オーダに従って、送信先の隣接ノードを判定し、その隣接ノードに対してパケットを送信する。一方、宛先がこのノードN10であった場合には、受信したパケットをネットワークI/F200に出力する。なお、実際のノード間通信では、例えば、パケットはより小さいデータ単位であるフリットに分割されて送信される。
また、ルータ100は、CPU310あるいはネットワークI/F200によって生成されたメッセージを含むパケットを、ネットワークI/Fから受信することも可能である。この場合、ルータ100は、指定された仮想チャネルに応じた次元オーダに従い、宛先を基にパケットの送信先の隣接ノードを判定し、その隣接ノードに対して、指定された仮想チャネルを通じてパケットを送信する。
ネットワークI/F200は、CPU310とメッシュネットワークとの間のデータ送受信を制御するためのI/F部である。また、ネットワークI/F200は、RDMA通信の制御機能や、メモリ320との間のDMA転送制御機能を備えている。
なお、以上のルータ100およびネットワークI/F200は、例えば、同一基板上に搭載される場合もある。
CPU310は、ネットワークI/F200を通じて入力されたメッセージやデータに従って、演算処理を実行する。また、他のノードに送信すべきメッセージやデータを生成し、それらをその宛先とともにネットワークI/F200に出力する。このような処理は、メモリ320に記憶されたプログラムがCPU310で実行されることにより実現される。
メモリ320には、CPU310に実行されるプログラムや、各種のデータが記憶される。メモリ320は、CPU310からの要求に応じてデータの読み書きを行うが、ネットワークI/F200からの要求に応じてDMA転送によりデータの読み書きを行うことも可能になっている。
図4は、ルータの内部構成例を示す図である。
ルータ100は、入力回路110および出力回路120と、スイッチ回路130と、ルーティング制御部140とを備えている。
入力回路110および出力回路120は、ともに隣接ノードの数だけ設けられている。ノードN10では、図4に示すように、入力回路110および出力回路120はそれぞれ4つずつ設けられている。そして、1つの入力回路110および出力回路120の組が、1つの隣接ノードに接続されている。
また、各入力回路110には、対応する隣接ノードから入力されたパケットを格納するバッファが設けられており、これらのバッファは、論理バッファ111,112の2つの領域に論理的に区分けされている。論理バッファ111は、要求チャネルに対応する受信キューを実現し、論理バッファ112は、応答チャネルに対応する受信キューを実現する。
各出力回路120にも同様に、対応する隣接ノードに対して出力するパケットを格納するバッファが設けられている。そして、各バッファは、論理バッファ121,122の2つの領域に論理的に区分けされている。論理バッファ121は、要求チャネルに対応する送信キューを実現し、論理バッファ122は、応答チャネルに対応する受信キューを実現する。
スイッチ回路130は、ルーティング制御部140による制御の下で、入力回路110のいずれかから、またはネットワークI/F200から入力されたパケットを、出力回路120のいずれか、またはネットワークI/F200に対して出力する。
ルーティング制御部140は、スイッチ回路130での入出力切り替え処理を制御する。ルーティング制御部140は、要求チャネルを利用したパケットの送受信処理と、応答チャネルを利用したパケットの送受信処理とでは、逆順の次元オーダに従ってルーティングを行う。
図5は、ネットワークI/Fの内部構成例を示す図である。
ネットワークI/F200は、ルータ100からのパケットの入力を受け付ける入力回路210と、他のノード宛てのパケットをルータ100に対して出力する出力回路220とを備えている。
入力回路210には、ルータ100から入力されたパケットのうち、RDMA通信用のパケット、すなわち、Get要求パケットおよびPutパケットに対する処理を実行するための機能が設けられている。入力回路210は、このような機能として、受信データ判別部211、DMA制御部212および送信制御部213を備えている。
受信データ判別部211は、ルータ100から入力されたパケットに格納されたメッセージを判別する。そして、受信パケットがGet要求パケットまたはPutパケットのいずれかであった場合、DMA制御部212に対して、メモリ320との間のDMA転送動作を要求する。また、受信パケットがGet要求パケットであった場合には、送信制御部213に対してGet応答パケットの送信を要求する。また、受信パケットがRDMA通信用以外のパケットであった場合、そのパケットをCPU310に出力する。
DMA制御部212は、受信データ判別部211からの要求に応じてメモリ320との間でDMA転送を行い、メモリ320へのデータの書き込み、またはメモリ320からのデータの読み出しを行う。また、メモリ320からデータを読み出した場合、そのデータを送信制御部213に出力する。
送信制御部213は、DMA制御部212からのデータを格納したGet応答パケットを生成し、そのパケットを出力回路220を介してルータ100に出力する。このとき、ルータ100に対して、出力先の隣接ノードや使用する仮想チャネルを指定する。
出力回路220は、CPU310または送信制御部213から出力されたパケットの入力を受け付け、そのパケットをルータ100に出力する。このとき、出力回路220は、パケットの送信先とする隣接ノードと、送信に利用する仮想チャネルとを、ルータ100に指定できるようになっている。
図6は、ルータにおけるルーティング処理手順を示すフローチャートである。なお、この図6の処理は、ルータ100内のいずれかの入力回路110に入力されたパケットが、スイッチ回路130に供給されるたびに実行されるものである。
[ステップS11]ルーティング制御部140は、パケットの受信チャネルを判定する。そのパケットが要求チャネルを通じて受信された場合には、ステップS12の処理が実行され、応答チャネルを通じて受信された場合には、ステップS16の処理が実行される。
[ステップS12]ルーティング制御部140は、受信パケットの宛先アドレスを参照し、x方向の宛先アドレスが、自ノードについてのx方向のアドレスと一致するか否かを判定する。アドレスが一致した場合、ステップS14の処理が実行され、一致しなかった場合、ステップS13の処理が実行される。
[ステップS13]ルーティング制御部140は、受信パケットを、要求チャネルを通じてx方向にルーティングする。具体的には、ルーティング制御部140は、x方向に接続した隣接ノードのうち、自ノードよりx方向の宛先アドレスに近い側の隣接ノードを、パケットの送信先として決定する。そして、その隣接ノードに対応する出力回路120内の論理バッファ121に対してパケットを転送するように、スイッチ回路130を制御する。
[ステップS14]ルーティング制御部140は、受信パケットの宛先アドレスを参照し、y方向の宛先アドレスが、自ノードについてのy方向のアドレスと一致するか否かを判定する。アドレスが一致した場合、ステップS20の処理が実行され、一致しなかった場合、ステップS15の処理が実行される。
[ステップS15]ルーティング制御部140は、受信パケットを、要求チャネルを通じてy方向にルーティングする。具体的には、ルーティング制御部140は、y方向に接続した隣接ノードのうち、自ノードよりy方向の宛先アドレスに近い側の隣接ノードを、パケットの送信先として決定する。そして、その隣接ノードに対応する出力回路120内の論理バッファ121に対してパケットを転送するように、スイッチ回路130を制御する。
[ステップS16]ルーティング制御部140は、受信パケットの宛先アドレスを参照し、y方向の宛先アドレスが、自ノードについてのy方向のアドレスと一致するか否かを判定する。アドレスが一致した場合、ステップS18の処理が実行され、一致しなかった場合、ステップS17の処理が実行される。
[ステップS17]ルーティング制御部140は、受信パケットを、応答チャネルを通じてy方向にルーティングする。具体的には、ルーティング制御部140は、y方向に接続した隣接ノードのうち、自ノードよりy方向の宛先アドレスに近い側の隣接ノードを、パケットの送信先として決定する。そして、その隣接ノードに対応する出力回路120内の論理バッファ122に対してパケットを転送するように、スイッチ回路130を制御する。
[ステップS18]ルーティング制御部140は、受信パケットの宛先アドレスを参照し、x方向の宛先アドレスが、自ノードについてのx方向のアドレスと一致するか否かを判定する。アドレスが一致した場合、ステップS20の処理が実行され、一致しなかった場合、ステップS19の処理が実行される。
[ステップS19]ルーティング制御部140は、受信パケットを、応答チャネルを通じてx方向にルーティングする。具体的には、ルーティング制御部140は、x方向に接続した隣接ノードのうち、自ノードよりx方向の宛先アドレスに近い側の隣接ノードを、パケットの送信先として決定する。そして、その隣接ノードに対応する出力回路120内の論理バッファ122に対してパケットを転送するように、スイッチ回路130を制御する。
[ステップS20]ルーティング制御部140は、受信パケットをネットワークI/F200に出力するように、スイッチ回路130を制御する。これにより、受信パケットは、ネットワークI/F200の入力回路210に入力される。このとき、受信パケットの送信元の隣接ノードを示す情報と、利用された仮想チャネルを示す情報とが、ネットワークI/F200に対して通知される。
以上の処理によれば、要求チャネルを通じて受信されたパケットについては、x方向への転送が優先され、応答チャネルを通じて受信されたパケットについては、y方向への転送が優先される。すなわち、応答チャネルでのルーティングでは、要求チャネルとは逆順の次元オーダが適用される。また、自ノード宛てのパケットが受信された場合には、そのパケットはネットワークI/F200に供給される。
次に、図7は、ルータから受信パケットが供給されたときのネットワークI/Fの処理手順を示すフローチャートである。
[ステップS31]ネットワークI/F200の入力回路210に、ルータ100から受信パケットが入力されると、受信データ判別部211は、ルータ100から通知された情報に基づき、受信パケットが要求チャネルから受信されたものか否かを判定する。要求チャネルから受信されたものである場合には、ステップS32の処理が実行され、応答チャネルから受信されたものである場合には、ステップS38の処理が実行される。
[ステップS32]受信データ判別部211は、受信パケットがGet要求パケットであるか否かを判定する。受信パケットがGet要求パケットである場合、受信データ判別部211は、受信パケットに格納されていた読み出しアドレスをDMA制御部212に対して通知し、メモリ320からのデータ読み出しを要求する。これとともに、受信データ判別部211は、受信パケットから送信元ノードのアドレスを抽出して、送信制御部213に通知する。さらに、受信データ判別部211は、受信データの送信元の隣接ノードを示す情報を、送信制御部213に通知する。そして、送信制御部213に対して、Get応答パケットの送信を要求する。この後、ステップS33の処理が実行される。一方、受信パケットがGet要求パケットでなかった場合には、ステップS36の処理が実行される。
[ステップS33]DMA制御部212は、メモリ320にアクセスして、受信データ判別部211から通知された読み出しアドレスに格納されたデータをDMA転送により読み出し、送信制御部213に出力する。
[ステップS34]送信制御部213は、DMA制御部212により読み出されたデータを格納したGet応答パケットを生成する。このとき、受信データ判別部211から通知された、Get要求パケットの送信元ノードのアドレスを、Get応答パケットの宛先アドレスに設定する。
[ステップS35]送信制御部213は、生成したGet応答パケットを出力回路220に供給して、ルータ100に出力させる。このとき、送信制御部213は、Get応答パケットの送信先の仮想チャネルを、受信パケットの送信元の隣接ノードに接続された応答チャネルとするように、出力回路220を通じてルータ100に要求する。これにより、ルータ100は、ネットワークI/F200から受信したGet応答パケットを、Get要求パケットの送信元の隣接ノードに対応する出力回路120の論理バッファ122に転送する。
[ステップS36]受信データ判別部211は、受信パケットがPutパケットであるか否かを判定する。受信パケットがPutパケットである場合、受信データ判別部211は、受信パケットに格納されていた書き込みアドレスおよび書き込みデータをDMA制御部212に対して通知し、メモリ320への書き込みを要求する。この後、ステップS37の処理が実行される。一方、受信パケットがPutパケットでない場合、ステップS38の処理が実行される。
[ステップS37]DMA制御部212は、メモリ320にアクセスして、受信データ判別部211から通知された書き込みアドレスに対して、書き込みデータをDMA転送により書き込む。なお、書き込み完了後には、その旨が入力回路210からCPU310に対して通知されてもよい。
[ステップS38]受信データ判別部211は、受信パケットをCPU310に出力する。
以上の処理によれば、応答チャネルを通じてGet要求パケットが受信されると、ネットワークI/F200の処理により、メモリ320から指定されたデータが読み出され、Get応答パケットが返信される。従って、CPU310での他の演算処理に影響を与えることなく、Get要求に対する応答処理を自動的に実行することができる。また、Get応答パケットは応答チャネルを通じて送信されるので、前述したように、Get要求パケットの伝送経路とGet応答パケットの伝送経路とが一致する。このため、Get応答パケットをより確実に要求元ノードに返信できるようになる。
さらに、Get応答パケットの送信の際には、送信チャネルとして応答チャネルが指定されるとともに、その送信先とする隣接ノードとして送信元と同じノードが指定されればよい。このため、例えば、最適な通信プレーンを決定するなどの複雑な処理が必要とならない。従って、ネットワークI/F200の回路規模や製造コストを抑制できる。
そして、このようなネットワークI/F200をすべてのノードN1〜N16に搭載することにより、RDMA通信時における耐故障性が向上した並列コンピュータを、回路規模や製造コストを増大させることなく実現することができる。
ところで、ネットワークI/F200の出力回路220は、送信制御部213またはCPU310から入力されたパケットをルータ100を介して送信できるか否かを管理する機能を備えている。そして、パケットの送信が不可能な場合には、ルータ100に対して、ネットワークI/F200の入力回路210へのパケットの入力を停止させることができる。
ここで、図8は、出力回路による送信可否の管理手順を示すフローチャートである。
[ステップS41]出力回路220は、現在パケットの送信が可能であるか否かを判定する。送信が可能である場合には、ステップS42の処理が実行され、送信が不可能である場合には、ステップS43の処理が実行される。
[ステップS42]出力回路220は、ルータ100に対して、ネットワークI/F200の入力回路210に対する新たなパケットの入力が可能であることを通知する。この状態では、隣接ノードから自ノード宛てのパケットが受信されたとき、そのパケットはルータ100によってネットワークI/F200の入力回路210に入力される。この後、ステップS41の処理が再度実行される。
[ステップS43]出力回路220は、ルータ100に対して、ネットワークI/F200の入力回路210に対する新たなパケットの入力が不可能であることを通知する。この状態では、隣接ノードから自ノード宛てのパケットが受信されたとき、ルータ100はそのパケットをネットワークI/F200の入力回路210に供給できなくなり、そのパケットが受信された仮想チャネルでの新たなパケットの受信動作が停止される。
なお、ステップS41の処理は、例えば、出力回路220に入力されたパケットを、送信先として指定された仮想チャネルに出力するようにルータ100に要求する際に実行される。この場合、送信先の仮想チャネルに対応する論理バッファに空きがないときに、パケットの送信が不可能であると判定される。
あるいは、ステップS41の処理は、出力回路220に搭載された送信用パケットの出力キューにおいて、空きがあるか否かによって判定されてもよい。この場合、出力キューに空きがないときに、パケットの送信が不可能であると判定される。そして、出力キューの先頭データが、その送信先の仮想チャネルに対応する論理バッファに出力されると、出力キューに空きが生じ、パケットの送信が可能な状態に移行する。
ところで、図8に示した処理は、Get要求パケットに対する応答時にも適用可能である。すなわち、Get応答パケット送信が不可能な場合には、新たなGet要求パケットを含む後続パケットの受信を停止させることができる。そして、このように後続パケットの受信を停止させても、デッドロックは発生しない。
例えば、Get要求パケットとGet応答パケットとが同じ仮想チャネルで送信されるネットワークでは、あるノードでGet応答パケットの送信が不可能になったとき、そのノードで新たなGet要求パケットの受信が停止されると、デッドロックが発生する。これは、同一の仮想チャネルにおいて、Get応答パケットと後続のGet要求パケットとを含むループが形成されてしまうからである。
このような事態を回避するためには、例えば、送信不可能になったGet応答パケットを削除してしまう方法や、送信不可能になったGet応答パケットもしくは後続のGet要求パケットをメモリに蓄積する方法が考えられる。前者の方法では、Get要求パケットの送信元ノードではその応答を受信できないので、送信元ノードでGet要求パケットを再送信するための機能が必要になる。後者の方法では、ネットワークI/F200にパケット蓄積のための大容量のメモリを搭載するか、あるいは、割り込みによりGet応答パケットをCPU310に引き渡して、その後の送信処理を依頼する必要がある。
これに対して、本実施の形態では、Get応答パケットはGet要求パケットとは別の仮想チャネルを通じて送信されるので、後続パケットの受信停止に起因するデッドロックは発生しない。例えば、Get応答パケットの送信先の応答チャネルにおいて送信が可能になれば、ネットワークI/F200に対する後続パケットの受信が再開され、以後、Get通信が正常に実行されることになる。従って、本実施の形態では、送信可否の管理処理が単純化され、ネットワークI/F200の回路規模や製造コストを抑制することができる。
〔第2の実施の形態〕
図9は、第2の実施の形態に係る並列コンピュータの構成例を示す図である。
図9に示した並列コンピュータ1aは、図1に示した並列コンピュータ1において、ノードN13〜N16を、データの入出力を担うI/O(In/Out)専用ノードとした構成を有している。図9において、ノードN13a〜N16aには、例として、それぞれHDD(Hard Disk Drive)340が接続されている。なお、ノードN13a〜N16aは、例えば、図3に示したノードN10の構成において、バス330に対してさらにHDD340が接続された構成を有している。一方、図9において、ノードN1〜N12は、計算ノードとなっている。そして、この並列コンピュータ1aの各ノードN1〜N12,N13a〜N16aは、図1に示した並列コンピュータ1の各ノードN1〜N16が備えるルーティング機能およびRDMA通信の処理機能を備えている。
ところで、並列コンピュータ1aの各ノードN1〜N12,N13a〜N16aでは、CPU310により生成されたパケットを他のノードに送信する際には、その送信に用いる仮想チャネルを任意に選択できるようになっている。なお、この点は、上記の第1の実施の形態でも同様である。
そこで、本実施の形態では、I/O専用ノードと計算ノードとの間のパケット送受信(ただし、RDMA通信用パケットを除く)では、送信と受信とで、次元オーダが異なる別の仮想チャネルを用いるようにする。例えば、計算ノードからI/O専用ノード宛てのパケット送信を要求チャネルを通じて行い、I/O専用ノードから計算ノード宛てのパケット送信を応答チャネルを通じて行うようにする。このような送信チャネルの選択は、各ノードのCPU310が、そのノードのメモリ320またはHDD340に記憶された個々のプログラムを実行することにより実現される。
このような送信チャネルの選択処理により、パケットが通過する計算ノードの数を減らすことができる。例えば、図9において、ノードN5とノードN15aとの間の通信を考える。なお、ここでは例として、要求チャネルではy方向(図9中の縦方向)のルーティングが、応答チャネルではx方向(図9中の横方向)のルーティングが、それぞれ優先されるものとする。
ノードN5からノードN15aに対してパケットを送信する場合には、例えば、要求チャネルを通じて、ノードN9,N13a,N14a,N15aの順にパケットが転送される。ここで、ノードN15aからノードN5に対するパケットの送信も、要求チャネルを通じて行われるものとすると、パケットはノードN11,N7,N6,N5の順に転送される。この場合、パケットは3つの計算ノードを通過することになる。
これに対して、I/O専用ノードから計算ノードへのパケット送信には応答チャネルを利用するものとすると、ノードN15aからのノードN5宛てのパケットは、ノードN14a,N13a,N9,N5の順に転送される。この場合、パケットが通過する計算ノードは、ノードN9の1つのみとなる。
このように、パケットが通過する計算ノードの数を少なくすることで、計算ノードでの転送処理負荷が小さくなる。このため、計算ノードを起点としたパケット送信や、計算ノード宛てのパケットの受信、計算ノード間の通信などの処理負荷が軽減し、その結果、パケットの転送処理が計算ノードでの演算処理自体に与える影響も小さくなる。従って、並列コンピュータ1a全体での処理効率が高められる。
〔第3の実施の形態〕
図10は、第3の実施の形態に係る並列コンピュータの構成例を示す図である。
図10に示す並列コンピュータ1bでは、例として16のノードN21〜N36が、4×4の2次元トーラス状に接続され、これによりトーラスネットワークが構成されている。また、各ノードN21〜N36は、x方向(図13中の横方向)およびy方向(図13中の縦方向)に隣接するノードとの間で、それぞれ少なくとも2種類の仮想チャネルによって接続されている。これらの仮想チャネルのうち、一方は要求チャネル、他方は応答チャネルである。各ノードN21〜N36では、前述の第1の実施の形態と同様、要求チャネルと応答チャネルとでは互いに逆順の次元オーダに従ってルーティングが行われる。
ここで、トーラスネットワークでは、デッドロックを防止するために、同じ次元オーダに従ってルーティングされる仮想チャネルが少なくとも2つ設けられていることが望ましい。そこで、図10に示す並列コンピュータ1bでは、隣接ノード間が2つの要求チャネルと2つの応答チャネルとによって接続されている。
同じ種類の仮想チャネル間では、公知の処理手順によりパケットの送信チャネルが適宜切り替えられ、これによりデッドロックが回避される。すなわち、要求チャネルでは、パケットが一方の要求チャネルにおけるノード接続ループを超えてさらに転送される際に、パケットの送信先が他方の要求チャネルに切り替えらえる。応答チャネルでも同様に、パケットが一方の応答チャネルにおけるノード接続ループを超えてさらに転送される際に、パケットの送信先が他方の応答チャネルに切り替えられる。
このような同一種類の仮想チャネル間の切り替えが行われること以外、各ノードN21〜N36でのルーティング機能は、前述の第1の実施の形態のノードN1〜N16が備える機能と同じである。そして、各ノードN21〜N36は、第1の実施の形態のノードN1〜N16と同様のRDMA通信処理機能を備え、要求チャネルを通じて受信したGet要求パケットに対して、応答チャネルを通じて自動的に応答できるようになっている。従って、各ノードN21〜N36の回路規模や製造コストを増大させることなく、Get通信の際の耐故障性が向上する。
さらに、各ノードN21〜N36では、図8に示したような処理手順により、パケット送信可否を管理することが可能である。また、図9の例のように、ノードの一部をI/O専用ノードとし、計算ノードからI/O専用ノードへのパケット送信と、I/O専用ノードから計算ノードへのパケット送信とを、別の種類の仮想チャネルを通じて行うようにすることも可能である。
なお、以上の各実施の形態では、例として、2次元メッシュネットワークおよび2次元トーラスネットワークでの各ノードの処理について説明した。しかし、これに限らず、3次元以上のメッシュネットワークおよびトーラスネットワークでの各ノードにおいても、上記と同様なルーティング機能およびRDMA通信の処理機能を搭載させることができる。
また、上記の各ノードが有する機能の少なくとも一部は、コンピュータによって実現することができる。その場合には、その機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
1 並列コンピュータ
100 ルータ
110 入力回路
111,112,121,122 論理バッファ
120 出力回路
130 スイッチ回路
140 ルーティング制御部
200 ネットワークI/F
210 入力回路
211 受信データ判別部
212 DMA制御部
213 送信制御部
220 出力回路
310 CPU
320 メモリ
330 バス
N1〜N16 計算機ノード

Claims (9)

  1. 少なくとも第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状または多次元トーラス状に接続された複数の計算機ノードを有し、
    前記各計算機ノードは、前記第1の仮想チャネルを通じて送受信されるデータを第1の次元オーダに従ってルーティングするとともに、前記第2の仮想チャネルを通じて送受信されるデータを前記第1の次元オーダとは逆順の第2の次元オーダに従ってルーティングするルーティング制御部を有することを特徴とする情報処理システム。
  2. 前記各計算機ノードは、
    自ノード宛てのデータが前記第1の仮想チャネルを通じて受信されたとき、当該データが、要求元の計算機ノードに対する応答が必要な処理要求データであるか否かを判別する受信データ判別部と、
    前記受信データ判別部により受信データが前記処理要求データであると判別された場合、当該処理要求データに対する応答データを前記第2の仮想チャネルを通じて送信するように制御する応答制御部と、
    をさらに有することを特徴とする請求項1記載の情報処理システム。
  3. 前記応答制御部は、自ノードに接続された他の計算機ノードである隣接計算機ノードのうち、一の隣接計算機ノードから前記第1の仮想チャネルを通じて前記処理要求データが受信されたとき、当該処理要求データに対する前記応答データを、前記一の隣接計算機ノードに対して前記第2の仮想チャネルを通じて送信するように制御することを特徴とする請求項2記載の情報処理システム。
  4. 前記処理要求データは、要求先の計算機ノードが備える記憶部からデータを読み出して要求元の計算機ノードに送信させるためのデータであることを特徴とする請求項2または3記載の情報処理システム。
  5. 前記各計算機ノードは、前記記憶部との間のデータ転送制御を含む各種の演算処理を実行する演算部をさらに有し、
    前記応答制御部は、前記処理要求データが受信されたとき、前記記憶部から前記演算部を介さずにデータを読み出し、前記応答データとして送信させることを特徴とする請求項4記載の情報処理システム。
  6. 前記各計算機ノードは、他の計算機ノードに対して送信する送信データを生成する送信データ生成部をさらに有し、
    前記計算機ノードのうち、データの入出力を担う入出力ノードが備える前記送信データ生成部は、前記入出力ノード以外の計算機ノードからの、少なくとも前記応答データを除く受信データが、前記第1の仮想チャネルおよび前記第2の仮想チャネルのうち一方の仮想チャネルを通じて受信される場合に、前記入出力ノード以外の計算機ノードに対する前記送信パケットを生成したとき、当該送信パケットの送信に利用する仮想チャネルとして、前記第1の仮想チャネルおよび前記第2の仮想チャネルのうち他方の仮想チャネルを指定することを特徴とする請求項1〜5のいずれか1項に記載の情報処理システム。
  7. 前記各計算機ノードが多次元トーラス状に接続されている場合、前記計算機ノード同士は、前記第1の次元オーダに従ってルーティングされる複数の前記第1の仮想チャネルと、前記第2の次元オーダに従ってルーティングされる複数の前記第2の仮想チャネルとによって接続されることを特徴とする請求項1〜6のいずれか1項に記載の情報処理システム。
  8. 少なくとも第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状または多次元トーラス状に接続された複数の計算機ノードのそれぞれに設けられ、他の計算機ノードとの間のデータ送受信動作を制御する通信制御装置において、
    当該通信制御装置が設けられた計算機ノード宛てのデータが前記第1の仮想チャネルを通じて受信されたとき、当該データが、要求元の計算機ノードに対する応答が必要な処理要求データであるか否かを判別する受信データ判別部と、
    前記受信データ判別部により受信データが前記処理要求データであると判別された場合、当該処理要求データに対する応答データを、前記第1の仮想チャネルとは逆順の次元オーダに従ってルーティングされる前記第2の仮想チャネルを通じて送信するように制御する応答制御部と、
    を有することを特徴とする通信制御装置。
  9. 少なくとも第1の仮想チャネルと第2の仮想チャネルとによって多次元メッシュ状または多次元トーラス状に接続された複数の計算機ノードを備えた情報処理システムにおける通信制御方法であって、
    前記各計算機ノードは、
    前記第1の仮想チャネルを通じて送受信されるデータを第1の次元オーダに従ってルーティングし、
    前記第2の仮想チャネルを通じて送受信されるデータを前記第1の次元オーダとは逆順の第2の次元オーダに従ってルーティングする、
    ことを特徴とする通信制御方法。
JP2009065892A 2009-03-18 2009-03-18 情報処理システム、通信制御装置および方法 Pending JP2010218364A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009065892A JP2010218364A (ja) 2009-03-18 2009-03-18 情報処理システム、通信制御装置および方法
US12/706,137 US8204054B2 (en) 2009-03-18 2010-02-16 System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
EP10153987A EP2230606A3 (en) 2009-03-18 2010-02-18 System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
KR1020100022286A KR101082701B1 (ko) 2009-03-18 2010-03-12 정보 처리 시스템, 통신 제어 장치 및 방법
CN2010101383046A CN101841471B (zh) 2009-03-18 2010-03-18 具有连接成多维矩阵的节点的系统及其控制方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009065892A JP2010218364A (ja) 2009-03-18 2009-03-18 情報処理システム、通信制御装置および方法

Publications (1)

Publication Number Publication Date
JP2010218364A true JP2010218364A (ja) 2010-09-30

Family

ID=42357647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009065892A Pending JP2010218364A (ja) 2009-03-18 2009-03-18 情報処理システム、通信制御装置および方法

Country Status (5)

Country Link
US (1) US8204054B2 (ja)
EP (1) EP2230606A3 (ja)
JP (1) JP2010218364A (ja)
KR (1) KR101082701B1 (ja)
CN (1) CN101841471B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110035530A1 (en) * 2009-08-10 2011-02-10 Fujitsu Limited Network system, information processing apparatus, and control method for network system
JP2012103926A (ja) * 2010-11-10 2012-05-31 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
WO2012127619A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
WO2012160641A1 (ja) 2011-05-23 2012-11-29 富士通株式会社 管理装置、情報処理装置、情報処理システム、データ転送方法、経路選択プログラム及び転送要求プログラム
JP2013145592A (ja) * 2013-03-26 2013-07-25 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
WO2014045444A1 (ja) * 2012-09-24 2014-03-27 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
JP2015015049A (ja) * 2014-09-19 2015-01-22 株式会社東芝 ストレージ装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130282654A1 (en) * 2012-04-24 2013-10-24 Qiming Chen Query engine communication
CN103491023B (zh) * 2013-09-13 2016-08-17 中国人民解放军国防科学技术大学 用于三维torus光电混合网络的路由方法
US9806908B2 (en) * 2015-02-12 2017-10-31 Advanced Micro Devices, Inc. Route mapping at individual nodes of a cluster server
JP6740683B2 (ja) * 2016-04-07 2020-08-19 富士通株式会社 並列処理装置及び通信制御方法
JPWO2018097015A1 (ja) * 2016-11-28 2019-10-17 株式会社エスペラントシステム 分散システム
KR20180071514A (ko) * 2016-12-20 2018-06-28 에스케이하이닉스 주식회사 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법
CN112822300B (zh) * 2021-04-19 2021-07-13 北京易捷思达科技发展有限公司 基于rdma的数据传输方法、装置及电子设备
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02228762A (ja) * 1989-01-18 1990-09-11 Intel Corp 並列処理コンピュータシステム
JPH07262155A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd 並列計算機およびメッセージ放送方法
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH1021208A (ja) * 1996-06-28 1998-01-23 Fujitsu Ltd チャネルの決定方法
JPH10124472A (ja) * 1996-09-27 1998-05-15 Hewlett Packard Co <Hp> 多ノードsciコンピュータシステムの経路指定方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US5898826A (en) * 1995-11-22 1999-04-27 Intel Corporation Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
JP3744362B2 (ja) 2001-02-21 2006-02-08 日本電気株式会社 ネットワークにおけるリング形成方法及び障害回復方法並びにリング形成時のノードアドレス付与方法
US20030016677A1 (en) * 2001-07-17 2003-01-23 Karl Mauritz Fabric bus architeture
JP3821377B2 (ja) 2002-03-27 2006-09-13 日本電気株式会社 双方向リングネットワーク、ノード装置、および双方向リングネットワークのルーティング情報構成方法
JP2004140539A (ja) * 2002-10-17 2004-05-13 Hitachi Ltd 情報ルーティング方式および情報中継装置
US8223778B2 (en) * 2003-11-19 2012-07-17 Intel Corporation Routing table architecture
US7486619B2 (en) * 2004-03-04 2009-02-03 International Business Machines Corporation Multidimensional switch network
US7765385B2 (en) 2007-04-18 2010-07-27 International Business Machines Corporation Fault recovery on a parallel computer system with a torus network
US20090274157A1 (en) * 2008-05-01 2009-11-05 Vaidya Aniruddha S Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
KR101250666B1 (ko) * 2009-01-30 2013-04-03 후지쯔 가부시끼가이샤 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02228762A (ja) * 1989-01-18 1990-09-11 Intel Corp 並列処理コンピュータシステム
JPH07262155A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd 並列計算機およびメッセージ放送方法
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH1021208A (ja) * 1996-06-28 1998-01-23 Fujitsu Ltd チャネルの決定方法
JPH10124472A (ja) * 1996-09-27 1998-05-15 Hewlett Packard Co <Hp> 多ノードsciコンピュータシステムの経路指定方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013023690; Ivan MIRO PANADES et al.: '"A Low Cost Network-on-Chip with Guaranteed Service Well Suited to the GALS Approach"' Nano-Networks and Workshops, 2006. NanoNet '06. 1st International Conference on , 200609, pages: 1-5, IEEE *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110035530A1 (en) * 2009-08-10 2011-02-10 Fujitsu Limited Network system, information processing apparatus, and control method for network system
US8589614B2 (en) * 2009-08-10 2013-11-19 Fujitsu Limited Network system with crossbar switch and bypass route directly coupling crossbar interfaces
JP2012103926A (ja) * 2010-11-10 2012-05-31 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
US10397139B2 (en) 2010-11-10 2019-08-27 Toshiba Memory Corporation Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method
US10044642B2 (en) 2010-11-10 2018-08-07 Toshiba Memory Corporation Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method
KR101298367B1 (ko) * 2010-11-10 2013-09-16 가부시끼가이샤 도시바 전송 기능을 갖는 메모리 노드를 서로 접속한 스토리지 장치 및 데이터 처리 방법
US9246709B2 (en) 2010-11-10 2016-01-26 Kabushiki Kaisha Toshiba Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method
WO2012127619A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
US9258358B2 (en) 2011-03-22 2016-02-09 Fujitsu Limited Parallel computing system and control method of parallel computing system
JPWO2012127619A1 (ja) * 2011-03-22 2014-07-24 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
JP5696779B2 (ja) * 2011-03-22 2015-04-08 富士通株式会社 並列計算機システム及び並列計算機システムの制御方法
JP5754504B2 (ja) * 2011-05-23 2015-07-29 富士通株式会社 管理装置、情報処理装置、情報処理システム及びデータ転送方法
US9032118B2 (en) 2011-05-23 2015-05-12 Fujitsu Limited Administration device, information processing device, and data transfer method
WO2012160641A1 (ja) 2011-05-23 2012-11-29 富士通株式会社 管理装置、情報処理装置、情報処理システム、データ転送方法、経路選択プログラム及び転送要求プログラム
WO2014045444A1 (ja) * 2012-09-24 2014-03-27 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
JPWO2014045444A1 (ja) * 2012-09-24 2016-08-18 富士通株式会社 並列計算機、ノード装置、及び並列計算機の制御方法
US9749222B2 (en) 2012-09-24 2017-08-29 Fujitsu Limited Parallel computer, node apparatus, and control method for the parallel computer
JP2013145592A (ja) * 2013-03-26 2013-07-25 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
JP2015015049A (ja) * 2014-09-19 2015-01-22 株式会社東芝 ストレージ装置

Also Published As

Publication number Publication date
CN101841471A (zh) 2010-09-22
KR101082701B1 (ko) 2011-11-15
KR20100105414A (ko) 2010-09-29
CN101841471B (zh) 2012-07-25
US8204054B2 (en) 2012-06-19
US20100238944A1 (en) 2010-09-23
EP2230606A2 (en) 2010-09-22
EP2230606A3 (en) 2012-07-18

Similar Documents

Publication Publication Date Title
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
US10282338B1 (en) Configuring routing in mesh networks
JP3532574B2 (ja) トーラス相互結合網のための適応ルーティング機構
US7921316B2 (en) Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US8601423B1 (en) Asymmetric mesh NoC topologies
US7793158B2 (en) Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US8014387B2 (en) Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8185896B2 (en) Method for data processing using a multi-tiered full-graph interconnect architecture
US8108545B2 (en) Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7809970B2 (en) System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US7840703B2 (en) System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
US7958183B2 (en) Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US7779148B2 (en) Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US7827428B2 (en) System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US8140731B2 (en) System for data processing using a multi-tiered full-graph interconnect architecture
US7958182B2 (en) Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US7904590B2 (en) Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US7769892B2 (en) System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US7769891B2 (en) System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US20140177473A1 (en) Hierarchical asymmetric mesh with virtual routers
WO2014113646A1 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification
WO2021114768A1 (zh) 数据处理装置、方法、芯片、处理器、设备及存储介质
US9542317B2 (en) System and a method for data processing with management of a cache consistency in a network of processors with cache memories
JPH06266684A (ja) プロセッサ間ルーティング方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131119