JPWO2010087002A1 - 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 - Google Patents

情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JPWO2010087002A1
JPWO2010087002A1 JP2010548330A JP2010548330A JPWO2010087002A1 JP WO2010087002 A1 JPWO2010087002 A1 JP WO2010087002A1 JP 2010548330 A JP2010548330 A JP 2010548330A JP 2010548330 A JP2010548330 A JP 2010548330A JP WO2010087002 A1 JPWO2010087002 A1 JP WO2010087002A1
Authority
JP
Japan
Prior art keywords
data
virtual channel
information processing
dimension
destination
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
JP2010548330A
Other languages
English (en)
Other versions
JP5195933B2 (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.)
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
Publication of JPWO2010087002A1 publication Critical patent/JPWO2010087002A1/ja
Application granted granted Critical
Publication of JP5195933B2 publication Critical patent/JP5195933B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1523Parallel switch fabric planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

情報処理装置が相互に多次元に接続された情報処理システムにおいて、情報処理装置にデータが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する制御を行う。

Description

本発明は情報処理システムに係り、例えば複数の情報処理装置が相互に多次元に接続された情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び制御プログラムを格納したコンピュータ読み取り可能な記録媒体に関する。
多数の情報処理装置が相互に接続された情報処理システムは並列計算機システムと称されている。並列計算機システムにおいて多数の情報処理装置を接続するネットワークとして最も理想的なものの1つは、各情報処理装置がシステム上の他のすべての情報処理装置と一対一で接続されるフルコネクションという方式である。しかしながらフルコネクションでは各情報処理装置を接続する際のケーブルのコストが増加し、ケーブル配線が複雑になるという問題が想定される。したがって非常に多数の情報処理装置を含むシステムにフルコネクション方式を適用することは困難と考えられる。
その代替策として現在広く用いられているのが、多次元トーラス、多次元メッシュといったトポロジ構造を利用してネットワークを形成する方式である。当該方式では一つの情報処理装置に対して数個の情報処理装置だけを一対一で接続し、当該接続方法を連続して実施する。その結果、システムに含まれる全ての情報処理装置を相互に接続させる。当該方式によれば、情報処理装置間に他の情報処理装置を経由させることにより、任意の情報処理装置から結果的にシステムに含まれる全ての情報処理装置にアクセスすることができる。すなわち原理的にはシステム上のすべての情報処理装置に対し、どの情報処理装置からでもアクセス可能である。
しかしながら多次元トーラス、多次元メッシュといったトポロジ構造を利用した方式では、すべての情報処理装置が一対一で接続されてはいない。このため以下の問題が考えられる。すなわち、ある情報処理装置から他の情報処理装置へとデータを転送する最短経路はフルコレクション方式の場合には1通りであったが、多次元トーラス、多次元メッシュといったトポロジ構造を利用する場合、情報処理装置間の最短経路は複数通り存在する。したがって複数通りの経路のうちからどの経路を採用するかを決定するためのルーティングアルゴリズムが必要となる。
特表2004−527176号公報 特開平08−185380号公報 特開平07−191947号公報 特開平06−266684号公報 特開平10−021208号公報 米国特許第6,674,720号 "Age-based packet arbitration in large radix k-ary and n-cubes", Denis Abts and Deborah Weisser, SC07, 2007 "Routing and flow control in systems network algorism", V. Ahuja, IBM journal, 1978 "Flexible oblivious router algorism", U. Par et. al., IBM journal, 1995 「コンピュータアーキテクチャ 定量的アプローチ 第4版」、著者:John L. Hennessy and David A. Patterson、出版社:株式会社 翔泳社、付録E、E-3 P22〜 概要、E-4 P30〜 トポロジー関連、E-5 P45〜 ルーティング関連、E-6 P57〜 スイッチのマイクロアーキテクチャ関連
実施例では、情報処理装置が相互に多次元に接続された情報処理システムにおいて、データの送出待ち時間を短縮することを目的とする。
各情報処理装置は、データが送出される次元における宛先と自装置の同次元の位置とを比較し、宛先比較の結果自装置の位置がデータの前記次元における宛先となる情報処理装置1台分手前の位置であった場合、データの仮想チャネルを変更する。
開示によれば、情報処理装置が相互に多次元に接続された情報処理システムにおいて、仮想チャネルの有効利用を可能にしてデータの送出待ち時間を短縮することができる。
実施例1の情報処理システムの全体構成例を説明するためのブロック図である。 図1中、各情報処理装置の内部構成例を説明するためのブロック図である。 図2中、ルーティングコントローラで実施される次元オーダルーティング方式による次元制御方法について説明するための処理フローチャートである。 図2中、ルーティングコントローラで実施される仮想チャネル制御方法について説明するための処理フローチャートである。 図2中、ルーティングコントローラの構成例について説明するためのブロック図である。 図4に示される仮想チャネル制御方法について実例を挙げて説明するための図(その1)である。 図4に示される仮想チャネル制御方法について実例を挙げて説明するための図(その2)である。 仮想チャネル制御方法の実施によって得られる作用効果について説明するための図(その1)である。 仮想チャネル制御方法の実施によって得られる作用効果について説明するための図(その2)である。 仮想チャネル制御方法の動作の流れを具体的に説明するための処理フローチャートである。 実施例1による情報処理システムにおいて適用可能なデータパケットの構成例について説明するための図である。 図2中、ルーティングコントローラに含まれる、クロスバインタフェースの構成例について説明するための図(その1)である。 図2中、ルーティングコントローラに含まれる、クロスバインタフェースの構成例について説明するための図(その2)である。 図2中、ルーティングコントローラの構成例について説明するための図である。 図2中、情報処理部の構成例について説明するためのブロック図である。 実施例1を適用した場合の効果を検証するためのシミュレーション結果について説明するための図である。
符号の説明
4 ルーティングコントローラ
5 情報処理部
41 クロスバスイッチ
42,43,44,45 各方向のクロスバインタフェース
48 CPUクロスバインタフェース
402 ヘッダ解析部
404,405 バッファ
408 ヘッダ送信部
VC0,VC1 仮想チャネル
11、P12、P21、P12 データ送受信ポート
図1は、実施例1による情報処理システムの全体構成図である。図1において、情報処理システムは各ノードNが二次元トーラス状に接続されたトポロジを有する。すなわち図1中、左右端部に位置するノードはそれぞれ(0)、(1)、...、(5)の同じ数字同士で接続される。同様に上下端部に位置するノードはそれぞれ(10)、(11)、...、(15)の同じ数字同士で接続される。その結果各ノードが2次元トーラス状に接続される。
ここでノードNは、その各々が情報処理装置である。図1の構成例の場合、ノードNは+/−x方向(図中横方向)に沿って6個,+/−y方向(図中縦方向)に沿って6個配列され、計36個のノードNが含まれる。なお図1中、右方向が+x方向、下方向が+y方向とする。各ノードNは+/−x方向、+/−y方向に相互に隣接するノードNとの間が物理チャネルによってそれぞれ接続されている。各物理チャネルは双方向のものとなっている。ここで図1に示される如く、36個のノードNのうち、−xおよび−y方向の隅に位置するノードN00(図1中、左上隅のノードN00)の座標が原点(0,0)とされている。同様に+xおよび+y方向の隅に位置するノードN55(図1中、右下隅のノードN55)の座標が(5,5)とされている。同様に+xおよび−y方向の隅に位置するノードN50(図1中、右上隅のノードN50)の座標が(5,0)とされている。同様に−xおよび+y方向の隅に位置するノードN05(図1中、左下隅のノードN05)の座標が(0,5)とされている。すなわち原点に位置するノードNに対し、+x方向にn番目、+y方向にm番目に位置するノードNの座標は(n,m)とされる。例えば図1中、原点に位置するノードN00に対し、+x方向に3番目、+y方向に2番目に位置するノードN32の座標は図示の如く(3,2)とされる。なお図1中、各ノードの座標は当該ノードを示す正方形の右上隅の外側部分に示されている。
図2は各ノードNの内部構成例を説明するためのブロック図である。図2に示される如く、ノードNは、ルーティングコントローラ4および情報処理部5を備えている。ルーティングコントローラ4は、情報処理部5によって生成されたデータパケット,あるいは隣接ノードから転送されてきたデータパケットの次元制御及び仮想チャネル制御を行う。次元制御及び仮想チャネル制御については後述する。ここでノード間を接続する物理チャネルが、ノードN内部においてルーティングコントローラ4に接続されている。また、情報処理部5はCPU(Central Processing Unit)を有し、図15とともに後述する。
ルーティングコントローラ4は、いわゆる次元オーダルーティングと称されるルーティング方式を実施する。次元オーダルーティングについて以下に説明する。図1のように、複数の情報処理装置、すなわちノードNが多次元、実施例1の場合2次元に接続された情報処理システムを想定する。次元オーダルーティングとは、ノードが多次元に接続された情報処理システムにおいて、各次元の座標を規則に沿った順番で順次宛先の座標に一致させていくというアルゴリズムである。上記規則に沿った順番は、たとえば上記2次元トーラス状に接続された情報処理システムの場合x、yの順となる。ここで複数の情報処理装置が実施例の如く2次元トーラス状に接続された情報処理システムの場合であって、出発点すなわち情報の送信元の座標が(0,0)で、終着点すなわち情報の宛先の座標が(2,1)であった場合を想定する。この場合においては(0,0)→(1,0)→(2,0)→(2,1)の順番でデータパケットを転送する。
すなわちまず、x座標上に配置されたノードに沿ってデータパケットを転送する。ここではデータパケットを保持するノードのx座標値がデータパケットの宛先のx座標と一致するまで、ノード間で順次データパケットを転送する。データパケットを保持するノードのx座標値がデータパケットの宛先のx座標と一致した場合、そのノードはデータパケットをy軸方向に転送する。その後、y軸方向に配置されたノードに沿ってデータパケットを転送する。ここではデータパケットを保持するノードのy座標値がデータパケットの宛先のy座標と一致するまで、ノード間で順次データパケットを転送する。すなわちある次元において、データパケットを保持するノードの位置が宛先位置に一致するまで、同次元上のノード間でデータパケットを順次転送する。次に、次元を変更し、変更後の次元において、データパケットを保持するノードの位置が同次元の宛先位置に一致するまで、同次元上でデータパケットを順次転送する。この手順によって順次各次元においてデータパケットを保持するノードの位置が宛先位置に一致する。最終的に全ての次元において当該データパケットを保持するノードの位置が宛先位置に一致する。すなわちデータパケットが宛先のノードに到達する。
このルーティングアルゴリズムの利点は、後述する日付変更線に係る制御を含めることにより、データの転送経路がループ構造となることにより生じるデッドロックを論理的に引き起こさない、すなわちデッドロックフリーとなる点である。
なお図2中、P11、P12、P21、P22はそれぞれ、後述する送受信ポートを示す。
図3は実施例1による、次元オーダルーティングを行うための次元制御方法を説明するフローチャートである。
図3中、ステップS1で、データパケットをi次元で送出する場合において、隣接するノードからデータパケットを受信したノードは、データパケットがi次元の宛先に到達したか否かを判定する。i次元の宛先に位置するノード以外のノードがデータパケットを受信した場合には、そのノードは、データパケットを受信した次元と同一次元に沿ってデータパケットを送出する。すなわちこの場合、データパケットがx軸に沿って転送されてきた場合には、そのデータパケットを受信したノードがデータパケットを送出する次元は、引き続きx軸である。
ステップS1で、各ノードはデータパケットのx軸の宛先座標を受信したデータパケットのヘッダから読み出す。なおデータパケットの構成例については図11とともに後述する。そして読み出されたデータパケットのx軸の宛先座標を自装置のx座標と比較する。比較の結果、データパケットの宛先x座標が自装置のx座標に一致した場合(ステップS1のYES)、データパケットは現時点でx軸の宛先に到達している。このため、次の次元,(i+1)次元、例えばy軸の宛先に到達するため、データパケットの転送を行う次元を(i+1)次元、すなわちy軸に変更する(ステップS2)。他方、ステップS1の判定結果がNOの場合、データパケットは未だx軸の宛先に到達していないため、x軸の宛先に到達すべく、データパケットを受信したノードはそのデータパケットの転送を行う次元として引き続きx軸を維持する(ステップS3)。
ここで次元オーダルーティングのアルゴリズムは上記の如くデッドロックフリーとなるという利点を有する一方、通信効率という観点においては検討の余地があると考えられる。すなわち次元オーダルーティングを適用した場合、実際の運用上、上述の例のようにx軸、y軸など軸を直進する態様の通信が、x軸からy軸へと次元を乗り変える態様の転送に比べて相当多いと考えられる。その結果、受信したデータパケットを一時的に格納するバッファの使用率にノード間で偏りが生じたり、発生数の少ない、軸を乗り換える態様の転送が、直進する態様の転送を阻害する事態が想定される。実施例1ではデッドロックフリーであるという特徴を有する次元オーダルーティングを採用しつつ、システム全体の通信効率を向上させる。
図4は実施例1の仮想チャネル制御方法について説明するためのフローチャートである。
図4中、ノードはデータパケットを送出する際、送出するデータパケットが日付変更線を超えるか否か判定する(ステップS11)。ここで日付変更線とは次元ごとに決められており、各次元の所定のノード間に設けられる。各次元の所定のノード間とは、例えば図1に示される情報処理システムの場合、(0)、(1),(2),...,(5)で左右端のノードがそれぞれ相互に接続される部分である。更に同様に、(10)、(11),(12),...,(15)で上下端のノードがそれぞれ相互に接続される部分である。日付変更線とは、図1に示される情報処理システムの如く、トーラス状に接続された情報処理システムにおいて、前記次元オーダルーティングを実施するにあたり、デッドロックフリーを実現するために設けられる。すなわちデータパケットを転送する経路が、次元が変更される機会が少ない経路であったとすると、同一次元をデータパケットが転送される間にデッドロックが生ずる可能性がある。日付変更線は、このようにデータパケットが転送される経路が、次元が変更される機会が少ない経路であった場合、同一次元をデータパケットが転送される間に仮想チャネルの変更を生じさせるために設けられる。その結果、次元オーダルーティングを実施する上でデッドロックフリーを実現し得る。
ここで仮想チャネルについて説明する。例えば図1に示される情報処理システムの如くノードがトーラス状に接続された構造において、ノード間は物理的には1チャネルで接続される。実施例1では各ノードに複数のバッファを設け、複数のバッファのそれぞれに仮想チャネルを割り当てる。その結果、ノード間が、前記複数のバッファと同数の複数の仮想チャネルで接続されている如くの効果が得られる。
上記デッドロックについて説明する。図1に示される情報処理システムの如くトーラス状に接続された構造においてデータパケットを転送する際、特定の複数のノードがループ構造となる場合がある。特定の複数のノードがループ構造となる場合、各ノードが有する一の仮想チャネルの全てのバッファにデータパケットが格納され、空きがない状態となることがある。各ノードが有する一の仮想チャネルの全てのバッファにデータパケットが格納され、空きがない状態では、各ノードがデータパケットを送出する相手側のノードが有する前記一の仮想チャネルのバッファに空きがない。このため、各ノードは前記一の仮想チャネルのバッファに格納しているデータパケットを送出することができない。このような状態をデッドロックと称する。上記日付変更線の機能により同一次元をデータパケットが転送される間、日付変更線を超えると仮想チャネルの変更が生ずる。仮想チャネルの変更により上記ループ構造に含まれる各ノードが有するバッファのうち、上記空きがないバッファとは別の仮想チャネルのバッファが使用される。このようにして、空きがないバッファとは別の仮想チャネルのバッファが使用されると、当該別の仮想チャネルのバッファは空きを有し、ノードは相手ノードの当該バッファの空きに対しデータパケットを送出することができる。したがって上記デッドロックは生じない。
図4の説明に戻り、S11では、ノードがデータパケットを受信した際、当該ノードが日付変更線に隣接するノードであり且つデータパケットを送出する方向が日付変更線を超える方向か否かを判断する。判断の結果当該ノードが日付変更線に隣接するノードであり且つデータパケットを送出する方向が日付変更線を超える方向であった場合、ステップS11の判定結果はYESとなる。ステップS11の判定結果がYESの場合、データパケットの仮想チャネルを現在の仮想チャネルから他の仮想チャネルに変更する(ステップS12)。例えば一の仮想チャネルから他の仮想チャネルに変更する。ここで仮想チャネルの変更は、データパケットが有するヘッダが有する仮想チャネル情報VC(図11とともに後述する)を書き換えることにより行われる。データパケットのヘッダの仮想チャネル情報VCが書き換えられると当該データパケットを受信した相手側のノードでは次の動作がなされる。すなわち相手側のノードでは、受信したデータパケットが有するヘッダの仮想チャネル情報VCが示す仮想チャネルのバッファに、受信したデータパケットを格納する。
ステップS11の判定結果がNOの場合、ステップS13に移行する。ステップS13では、データパケットを送出する次元の宛先座標に対し、自ノードの同次元の座標がノード1台分手前の座標か否かを判定する。判定の結果、自ノードの座標が宛先座標からノード1台分手前の座標であった場合(YES),データパケットの仮想チャネルを現在の仮想チャネルから他の仮想チャネルに変更する(ステップS14)。例えば一の仮想チャネルから他の仮想チャネルに変更する。
ステップS13の判定結果がNOの場合、ステップS15に移行する。ステップS15では、データパケットを送出する次元の宛先座標が、自ノードの同次元の座標と一致するか否かを判定する。判定の結果座標が一致した場合(YES),自ノードが当該データパケットの最終的な宛先か否かを判定する(ステップS16)。判定の結果、自ノードが当該データパケットの最終的な宛先であった場合(YES),図4の処理を終了する。他方、ステップS16の判定の結果がNOであった場合、データパケットの仮想チャネルが既に上記ステップS11又はステップS13にて変更されていた場合には、データパケットの仮想チャネルを変更前の仮想チャネルに戻す(ステップS17)。例えば上記他の仮想チャネルから一の仮想チャネルに戻す。データパケットの仮想チャネルが上記ステップS11又はステップS13にて変更されていなかった場合にはステップS17では何ら仮想チャネルの変更は行わない。
以下に図5〜7とともに、図4とともに上記した仮想チャネル制御方法につき、更に具体的に説明する。
仮想チャネル制御方法では上記の如く、各ノードが複数のバッファを持つ。そしてこのような構造をもつ送受信ポートを複数個設ける。仮想チャネル制御方法を適用したノードNの構成につき、図5とともに以下に説明する。
図5は図2とともに上記した各ノードNの構成を示す。但し図5の場合説明の便宜上、ルーティングコントローラ4の機能に係る構成のみ示している。図5に示される如く、ルーティングコントローラ4はクロスバスイッチ41を有する。このクロスバスイッチ41は、クロスバスイッチ41を有するノードNが送出するデータパケットが競合した場合に、調停を行う調停部としての機能を有する。
ここで図1,2とともに上記した各ノードNはデータを送受信するポートとして、各方向につき1セットのデータ送受信ポートを有する。ここで1セットのデータ送受信ポートとは、送信ポート1個および受信ポート1個のセットを意味する。送受信ポートとしてノードNには、+x方向用の送受信ポートP11、−x方向用の送受信ポートP12、+y方向用の送受信ポートP21、および−y方向用の送受信ポートP22の計4セットの送受信ポートが設けられている。また各送受信ポートにつき、送出するデータパケットを一時的に格納するバッファが、仮想チャネルの個数分設けられている。実施例1の場合仮想チャネルはVC0,VC1の計2個であり、ノードNには送受信ポートが計4セット設けられているため、バッファは図5に示される如く、計8個設けられている。図5中、送受信ポートごとに2個設けられたバッファは、VC0,VC1として示されている。送出するデータが競合する場合とは、データパケットを送出する各方向に対し、仮想チャネルが同一の2以上のデータパケットを送出する場合である。
またノードNに受信されたデータパケットは受信された方向ごとに、2個のバッファ(VC0,VC1)のうち、当該データパケットの仮想チャネルについて設けられた側のバッファに格納される。各バッファはFIFO(First In First Out)構造を有し、上記の如く各バッファに格納されたデータパケットのうち先頭のデータパケットから順に送出される。ここで上記計8個のバッファの先頭のデータパケットのうち、仮想チャネルが同一で、その送出する方向が相互に一致する複数のデータパケットが、上記競合するデータパケットとなる。
図6は、図4とともに上記した仮想チャネル制御方法を実施した場合のデータパケットの動きを説明するための図である。図6中、データ転送方向Aとして示される如く、データは右下に位置するノードから左上に位置するノードに対して転送される。つまり、図6中、データはノードN1からN5まで順次転送される。但し図6の例の場合、ノードN5は当該データパケットの最終的な宛先のノードではないものとする。
図6中、各ノードが有する2個の長円はそれぞれ仮想チャネルVC0,VC1のバッファを示す。また上記2個の長円のうち、ハッチングがなされている側の長円は、前記データパケットが格納された側のバッファを示す。
図6中、データはまず左方向にノードN1からN3まで転送され、データが次元の宛先、すなわちノードN3の位置に達した後、データを転送する次元が変更される。その後図6中、上方向にノードN3からN5までデータが転送される。図6の例の場合、データの転送中に日付変更線を超えることはないものとする。したがって図6に示されるデータ転送の間、図4のステップS11の判定結果は常にNOである。
図6中、データがノードN1からN2に送出された際、データを受信した次元のノードN2の座標は、当該次元の宛先のノードであるN3の一台手前の座標である。したがって図4のステップS13の判定結果はYESとなる。ここでノードN2が受信するデータにつき、SD1として示されるように、各ノードN1,N2において、仮想チャネルVC0のバッファが使用されている。従って、ノードN2ではS13の判定結果に基づいてデータの仮想チャネルが変更され、データを転送する際に使用されるバッファが仮想チャネルVC0のものからVC1のものに変更される(ステップS14)。その結果データはノードN2から送出された後(SD2)、ノードN3の仮想チャネルVC1のバッファに格納される。
ここでノードN2からデータを受信した次元のノードN3の座標は、当該次元のデータの宛先の座標と一致する。したがって、ノードN3における図4のステップS15の判定結果はYESとなる。またノードN3はデータの最終的な宛先のノードではない(ステップS16のNO)。その結果、ノードN3からノードN4にデータが送出される際(SD3)、データを転送する仮想チャネルは現在のVC1からVC0に戻される(ステップS17)。すなわちチャネル乗り換え(SD1)でVC0からVC1へと移動したデータは、再び元の仮想チャネルVC0に戻る(SD3)。その後データはノードN4からノードN5に送出される。ノードN4からノードN5へのデータ送出は図6中、SD4として示されている。
次に図7とともに、図6の例とは異なる仮想チャネル制御方法の例につき説明する。
図7は図1とともに上記したノードの配列から、x軸に沿って配列された6個のノードN11〜N16を抜き出して示したものである。各ノードN11〜N16のx座標はそれぞれ0〜5である。説明の便宜上、図7中、データパケットは−x側から+x側に転送されるものとする。また、図7中、各ノードの上段は仮想チャネルVC0のバッファを示し、下段は仮想チャネルVC1のバッファを示す。また各ノード内に示されている「0>3」、「0>2」、「1>4」,「1>3」といった事項は、各ノードのバッファに格納されたデータパケットを示す。ここで例えば「0>3」の「>」の左側の数字「0」は、データパケットの送信元のx座標を示し、右側の数字「3」はデータパケットの宛先のx座標を示す。
また図7の例では日付変更線が、x座標「0」と「5」との間、つまりノードN11とノードN16との間に設けられている。例えばノードN16のVC0のバッファの最上段に格納のデータ「4>1」は、送信元のx座標が4であり、宛先のx座標が1である。つまり、このデータはノードN15からノードN12に転送される。ここで実施例1ではトーラス状の接続、すなわち円環状の接続がなされており、転送方向は一方向、図7の例の場合、x軸の次元におけるデータの転送方向は+x方向とされている。したがって「4>1」のデータパケットは、ノードN16の左隣に位置するx座標が4のノードN15から+x方向に送信されてノードN16に受信され、その後x座標が0のノードN11へノードN16から転送された後、ノードN11からx座標が1のノードN12へ転送される。すなわちこの場合、円環状の接続により、データパケットがx座標の最大値「5」のノードN16に至った後、x座標が最小値「0」を有するノード11に直接N16から送信される。その後データパケットは宛先のx座標「1」のノードN12に転送される。ここでデータパケットがノードN16からノードN11へと転送される際、x座標「5」と「0」との間、すなわち日付変更線をデータパケットが通過する。この場合、図4のステップS11の判定結果がYESとなり、仮想チャネルが現在のVC0からVC1へと変更される。
次に図7中、ノードN12の下段の仮想チャネルVC1のバッファの最上段に示されるデータパケット「0>1」に着目する。当該データパケットは送信元のx座標が「0」であり、すなわちそのデータパケットを保持するノードN12のすぐ左隣のノードN11の座標位置である。またデータパケットの宛先x座標が「1」であり、ノードN12自体の座標位置である。したがってデータパケットはノードN11からノードN12に対し、+x方向、つまり図7中右側に送信されてきたものである。ノードN11からノードN12へのデータパケット送信の前、ノードN11では、データパケットの仮想チャネルはVC0であり、データパケットを送出する次元であるx軸の次元の宛先「1」に対し、自己の同次元の座標位置「0」がノード1台分手前であると判定する(図4中、ステップS13のYES)。その結果、ノードN11では仮想チャネルがVC0からVC1へと変更される(図4中、ステップS14)。その後、仮想チャネルVC1で当該データパケットはノードN12に受信される。同様の手順により、それぞれのノードのすぐ左隣のノードにおいて、データパケットの仮想チャネルがVC0からVC1へと変更となった上でノードが受信したデータパケットは以下の通りである。すなわち図7中、ノードN13中、下段の「1>2」、「0>2」、ノードN14中、下段の「2>3」、「1>3」、「0>3」、ノードN15中、下段の「3>4」、「2>4」、「1>4」である。更にノードN16中、下段の「4>5」、「3>5」、「2>5」である。
このように実施例1では、日付変更線を越えるデータの仮想チャネルがVC0からVC1に変更されるというルール、すなわち図4中、ステップS11,S12に加え、図4中、ステップS13,S14のルールを適用する。すなわち、x軸からy軸への移動というようにデータ転送の次元が変わるノードの1台手前のノードにて、仮想チャネルを変更するというルールを加える。
以下に上記実施例1の効果について説明する。
実施例1の効果として、クロスバスイッチ41とのシェイクハンド機会とその成立確率の増大が挙げられる。この点につき図8とともに説明する。各ノードにおいて他のノードにデータを送出するとき以下の動作がなされる。まずクロスバスイッチ41に対し、各方向の送受信ポートを有するクロスバインタフェース42〜45からデータの送信要求が出される。そして送信要求を受けたクロスバスイッチ41は送信可能な状態になると、クロスバインタフェース42〜45に対し送信許可を与える。通常バッファはFIFO構造を有し、各バッファの先頭のデータパケットについてのみ送信要求が出される。図8中、仮想チャネルごとのバッファはVC0,VC1として示されている。
実施例1の場合、図4中、ステップS13,S14のルールをステップS11,S12のルールに追加して設けたため、仮想チャネルVC0,VC1間のデータパケット移動の機会が飛躍的に増大する。その結果、各方向の送受信ポートにつきデータパケットがVC0,VC1の2個のバッファに分散されるやすくなる。その結果、図7に示される如く、ノード間を転送されるデータパケットが一方の仮想チャネルのバッファに偏ることなく、VC0,VC1の2個のバッファのそれぞれにデータパケットが分散されて格納される。その結果、各バッファの先頭のデータパケットにつきクロスバスイッチ41に対し送信要求が出せることから、複数個の送信要求を同時に出せる状態になる。その結果、各クロスバインタフェース42〜45とクロスバスイッチ41との間でシェイクハンドが成立する可能性も増大する。ここでシェイクハンドの成立とは、ある方向のクロスバインタフェース42〜45がクロスバスイッチ41に送信要求を出した際に、送信要求に対する送信許可が与えられることを意味する。
図8の例では、各クロスバインタフェースの仮想チャネルVC0,VC1のそれぞれのバッファに格納されているデータパケットの仮想チャネルは変更されないものとする。すなわち仮想チャネルVC0のバッファに格納されたデータパケットの仮想チャネルはVC0であり、同様に仮想チャネルVC0のバッファに格納されたデータパケットの仮想チャネルはVC1であるものとする。
また図8の例では以下の場合を想定している。すなわち−xのクロスバインタフェース43の仮想チャネルVC0のバッファの先頭に+x方向に向かうデータパケットが格納され、仮想チャネルVC1のバッファの先頭に+y方向に向かうデータパケットが格納されている。同様に−yのクロスバインタフェース45の仮想チャネルVC0のバッファの先頭に+y方向に向かうデータパケットが格納され、仮想チャネルVC1のバッファの先頭に+x方向に向かうデータパケットが格納されている。このような場合、クロスバスイッチ41は以下の如くの動作を行う。
クロスバインタフェース43の仮想チャネルVC0のバッファの+x方向に向かうデータパケットにつき、クロスバスイッチ41に対し送信要求が出される(S21)。同様にクロスバインタフェース45から+y方向に向かう仮想チャネルVC0のバッファのデータパケットにつき、クロスバスイッチ41に対し送信要求が出される(S22)。これらS21,S22の送信要求はその方向が+x、+yと相互に異なる。したがってクロスバインタフェース43から送信されるデータパケットと、クロスバインタフェース45から送信されるパケットとは競合しない。したがって両クロスバインタフェース43,45からの送信要求S21,S22に対しクロスバスイッチ41はそれぞれ送信許可を出す。その結果、両クロスバインタフェース43,45の送信要求S21,S22に係るデータパケットが両方とも送出される。
同様にクロスバインタフェース43から+y方向に向かう仮想チャネルVC1のバッファのデータパケットにつき、クロスバスイッチ41に対し送信要求S23が出される。同様にクロスバインタフェース45から+x方向に向かう仮想チャネルVC1のバッファのデータパケットにつき、クロスバスイッチ41に対し送信要求が出される(S24)。両クロスバインタフェース43,45からの送信要求S23,S24はその方向が+y、+xと相互に異なる。したがって両クロスバインタフェース43,45からの送信要求S23,S24は競合しない。したがって両クロスバインタフェース43,45からの送信要求S23,S24に対しクロスバスイッチ41はそれぞれ送信許可を出す。その結果両クロスバインタフェース43,45からの送信要求S23,S24に係るデータパケットが両方とも送出される。
このように実施例1によれば、2つのデータパケットが同時に送出され、並列度が高い。すなわち実施例1によれば各送受信ポートですべてのデータパケットが2つの仮想チャネルVC0,VC1を有効利用して先頭に出るようになる。その結果送信要求が異なる仮想チャネルを用いて同時に並行して多数出される可能性が高まり、データパケットの送出方向が競合しない可能性が増加し、データ送出の効率が増加する。
ここで図1に示される如くの構造の情報処理システムの場合、仮想チャネルVC0には同軸通信のデータパケットが存在し、相対的に仮想チャネルVC1には軸移動の通信のデータパケットが存在する頻度が高くなる。ここで同軸通信とは、次元を移動せずに転送されるデータを指し、軸移動の通信とは、次元を移動して転送されるデータを指す。その結果、各クロスバインタフェースからの送信要求が各仮想チャネルを介して同時に並行して多数出される効果と相まって、データパケットを同時に並行に複数方向の送受信ポートから送出し得る機会の頻度が高まる。データパケットを同時に並行に複数方向の送受信ポートから送出し得る機会の頻度が高まる理由は以下の通りである。すなわち上記の如く、各クロスバインタフェースからの送信要求が各仮想チャネルのバッファから同時に並行して多数出されるため、他の送信要求と競合しない送信要求の発生頻度が高まる。他の送信要求と競合しない送信要求はすぐに許可されて送出し得るため、データパケットを同時に並行に複数方向の送受信ポートから送出し得る機会の頻度が高まる。
また実施例1では図7に示されるように、仮想チャネルVC0のバッファの使用率と仮想チャネルVC1のバッファの使用率との差が小さい。その結果バッファをすぐに使い切ってしまい、結果的にデータが渋滞してしまうというような事態が生ずる可能性を低下させることができる。すなわち実施例1によれば仮想チャネルVC0,VC1の計2個のバッファに均等にデータパケットが配分されるようになるため、物理的なバッファの量を増やすことなく、実質的に仮想チャネルVC0のバッファの量を増やしたのと同等の効果が得られる。
更に実施例1によれば、クロスバスイッチ41に対し同時に複数の送信要求を出すことが可能になるため、あるデータパケットが転送できる状態になった際、その転送機会を逃す可能性が減る。このためにクロスバスイッチ41が行う調停にかかる時間のばらつきが抑制される。一例として、図9に示す参考例では、ステップS32で示される+y方向の同軸通信が発生し、同時にステップS31で示される他の軸、すなわち+x方向から+y方向へと転送方向を変更する軸移動の通信が発生した場合である。この場合、上記同軸通信S32と軸移動の通信S31との送出方向がそれぞれ+yで相互に一致する。また仮想チャネルもそれぞれVC0で相互に一致するものとする。このためS32、S31それぞれの通信に対する送信要求同士が競合する。その結果S32、S31それぞれの通信を同時に実施することができず、一方の通信につき、通信機会が喪失する。これに対し実施例1によれば、上記した図8に示す例で示されるように、データパケットが2つの仮想チャネルのバッファVC0,VC1に分散して格納される。その結果ステップS22で示される+y方向の同軸通信と、ステップS23で示される+x方向から+y方向へと転送方向を変更する通信と発生し、送出方向が+yで一致する場合であってもS22、S23それぞれの通信を同時に実施できる。
すなわち実施例1によれば、クロスバスイッチ41に対し同時に並行して多数の送信要求を出すことが可能なため、通信機会が喪失する事態の発生頻度を効果的に減らすことができる。すなわち図8に示される実施例1の場合、以下に示される動作がなされる。ステップS22で示される同軸通信のデータパケットとステップS23で示される他の軸からの軸移動の通信のデータパケットとが両方ともが、それぞれ異なる仮想チャネルに対応するバッファVC0,VC1の先頭に来る。同軸通信のデータパケットと他の軸からの軸移動の通信のデータパケットとが両方とも異なる仮想チャネルに対応するバッファVC0,VC1の先頭に来ると、同軸通信の送信要求と軸移動の通信の送信要求とが同時に並行に出されるようになる。したがって同軸通信と軸移動の通信とが同時に並行して実施されるようになる。
また図9の参考例では、ステップS31,S32とも、+y方向のデータパケットがバッファの先頭にあり、+y方向に対する送信要求が出されている状態である。他方、S31,S32の通信に係るデータパケットが格納されているクロスバインタフェース43,45のそれぞれのVC0のバッファの各々には、当該+y方向向けのデータパケットの次に+x方向向けのデータパケットが格納されている。しかしながら上記+x方向向けのデータパケットはバッファの先頭にないためクロスバスイッチ41に対し送信要求を出せず、送出できない。これに対し図8に示す実施例1によれば、+x方向向けのデータパケットは、クロスバインタフェース43,45のそれぞれにおいて、仮想チャネルのバッファVC1に格納されている。当該仮想チャネルVC1のバッファは、+y方向向けのデータパケットが格納されている仮想チャネルVC0のバッファとは異なる。したがって上記+x方向向けのデータパケットはそれぞれ仮想チャネルVC1のバッファの先頭にある。したがってステップS21,S24に示されるように、上記+X方向向けのそれぞれのデータパケットの通信要求を同時に並行してクロスバスイッチ41に対し出すことができる。
このように実施例1によれば図8に示されるように、+x方向向けのデータパケットと+y方向向けのデータパケットとが両方ともバッファの先頭に来る可能性が増す。+x方向向けのデータパケットと+y方向向けのデータパケットとが両方ともバッファの先頭に来ると、以下の動作がなされる。すなわち、+x方向向けのデータパケットの送信要求(S21,S24)と+y方向向けのデータパケットの送信要求(S23,S22)とが同時に並行に出されるようになる。したがって図8に示されるように、x軸の通信とy軸の通信とが同時に並行して実施されるようになる。実施例1によれば上記効果により並列計算機システム全体の通信効率が向上する。
図10は本実施例の仮想チャネル制御方法につき、より具体的に説明するためのフローチャートである。図10中、ノードはデータパケットを送出する際、ステップS31でデータパケットの宛先を確認する。ここで確認する宛先は、データパケットを送出する次元における宛先である。データパケットを送出する次元は、上記した次元制御方法の実施により決定される。例えばデータパケットを送出する次元がx軸であれば、データパケットのx座標の宛先を確認する。次にステップS32にて、確認したデータパケットの宛先と自ノードの位置とを比較する。比較の結果、自ノードの位置がデータパケットの宛先に対しノード1台分手前であれば(S32 YES),すなわち現在の位置が宛先の1台手前であれば、ステップS33に移行する。ステップS33にてノードは、データパケットを送出する仮想チャネルを、現在の仮想チャネルから他の仮想チャネルへと変更する。他方、ステップS32の判定結果がNOの場合、ノードは当該データパケットにつき、仮想チャネルの変更は行わない(ステップS34)。ステップS33あるいはS34の後、ノードはクロスバスイッチ41へデータパケットを送信する。
図10等に示す如くの仮想チャネル制御方法を実現する際、データパケットのヘッダに格納されている情報を利用することができる。データパケットの必要最低限の構成は図11に示す如くである。すなわちヘッダとしてデータパケットの宛先となるノードのx座標及びy座標が格納される。なおデータパケットのヘッダに格納する情報として、上記の宛先座標に代え、宛先までの相対座標とする方法も可能である。当該方法の場合、宛先までの相対座標をヘッダに格納し、データパケットがノード間を移動するたびに当該相対座標を適宜に書き変える。更にデータパケットのヘッダには仮想チャネル情報VC(例えば2ビット)が格納される。仮想チャネル情報VCには、当該データパケットの仮想チャネルがVC0で有るのかVC1であるのかを識別するための情報が書き込まれる。各ノードはデータパケットを受信すると当該仮想チャネル情報VCを参照し、仮想チャネル情報VCが示す仮想チャネルのバッファに当該パケットを格納する。
図12は図2に示されるルーティングコントローラ4内の構成例を示すブロック図である。図12は、図2に示される4方向+x、−x、+y、−yの各方向の送受信ポートに設けられた4個のクロスバインタフェース42〜45、並びに図14とともに後述するCPUクロスバインタフェース48の各々の構成例を示す。
図12に示されるクロスバインタフェース42〜45およびCPUクロスバインタフェース48の各々は、パケット入力部401,ヘッダ解析部402,デマルチプレクサ403,仮想チャネルVC0のバッファ404、仮想チャネルVC1のバッファ405,マルチプレクサ406およびパケット出力部411を有する。
パケット入力部401はヘッダ解析部402に接続され、送受信ポートを介し、当該ルーティングコントローラが設けられるノードが受信したデータパケットをヘッダ解析部402に渡す。ヘッダ解析部402では、受信したデータパケットのヘッダに格納された宛先x座標、宛先y座標および仮想チャネル情報VCを確認し、確認結果に応じて図3とともに上記した次元制御方法および図4とともに上記した仮想チャネル制御方法をそれぞれ実行する。
ヘッダ解析部402は仮想チャネル制御方法を実行した結果、当該データパケットの仮想チャネルを変更するか否かを決定する。ヘッダ解析部402は上記決定の結果、仮想チャネルを変更する場合、データパケットの仮想チャネル情報VCを書き換える。ヘッダ解析部402は上記決定の結果、仮想チャネルを変更しない場合、データパケットの仮想チャネル情報VCを書き換えない。その後ヘッダ解析部402はデータパケットをデマルチプレクサに送出する。又ヘッダ解析部402は当該データパケットをマルチプレクサ406からクロスバスイッチ41に送出する際、予め当該データパケットに係る送信要求408をクロスバスイッチ41に送信する。
デマルチプレクサ403はヘッダ解析部402の制御の下、ヘッダ解析部402から送出されたデータパケットの、当該ノードに受信された時点の仮想チャネル情報VCが示す仮想チャネルのバッファ404あるいは405に、当該データパケットを格納する。すなわちヘッダ解析部402が上記の如く、仮想チャネル制御方法の実施の結果、仮想チャネル情報VCを書き換えた場合であっても、デマルチプレクサ403は、書き換える前の仮想チャネル情報VCが示す仮想チャネルのバッファにデータパケットを格納する。
各バッファ404,405に格納されたデータパケットはヘッダ解析部402の制御の下、順次マルチプレク406を介し、当該クロスバインタフェースからクロスバスイッチ41へと送信される。データパケットがクロスバインタフェースからクロスバスイッチ41に送信される際、上記の如く、予め当該データパケットについての送信要求408が、当該クロスバインタフェースのヘッダ解析部402からクロスバスイッチ41に送信される。ヘッダ解析部402では、クロスバスイッチ41から送信許可が出された場合にのみ、バッファ404,405からデータパケットを取り出し、マルチプレクサ406を介してクロスバスイッチ41に送出する。
クロスバスイッチ41ではこのようにして各クロスバインタフェース42〜45、48から送信された送信要求が競合した場合、送信要求間の調停を行う。なお送信要求が競合する場合とは、複数の送信要求に係るデータパケットの送出方向が相互に一致し、かつ仮想チャネル情報VCが示す仮想チャネルが相互に一致する場合である。4セットの送受信ポートに対する調停の順番は特に限定されないが、例えば4セットの送受信ポートに予め順位を付け、当該順位に従う方法、調停の履歴を加味する方法等が考えられる。
クロスバスイッチ41は、データパケットの送信要求が他のデータパケットの送信要求と競合しない場合、当該データパケットに送信許可を与える。そしてクロスバスイッチ41は当該送信許可に応じて送信元のクロスバインタフェースから送信されてきたデータパケットを送出方向のクロスバインタフェースへ送信する。他方データパケットの送信要求が他のデータパケットの送信要求と競合した場合、クロスバスイッチ41は上記の如く調停を行う。調停の結果クロスバスイッチ41は一のデータパケットに送信許可を与える。そしてクロスバスイッチ41は当該送信許可に応じて送信元のクロスバインタフェースから送信されてきたデータパケットをを送出方向のクロスバインタフェースへ送信する。データパケットは当該送出方向のロスバインタフェースのパケット出力部411から送受信ポートを介しノードの外部に送出される。
図12の例ではクロスバインタフェース42〜45、48の各々の各ブロック401、402,403,404,405,406,411は全てハードウェアで実現される。このようにハードウェアで実現することにより、ソフトウェアで実現する場合に比し、データパケットの処理を高速に実行できる利点がある。
図13は図12に示される各クロスバインタフェース42〜45、48の各々の構成のうち、ヘッダ解析部402に代えてヘッダ送信部408を設けた例を示す。図13の例の場合、ヘッダ解析部402が行う動作を、クロスバインタフェースの外部に設けられる情報処理部5がソフトウェアを実行することにより実現する。その他の点は図12の場合と同様であり、重複する説明を省略する。ここで図13の構成の場合、図3とともに上記した次元制御方法あるいは図4とともに上記した仮想チャネル制御方法を変更するような場合、次元制御方法あるいは仮想チャネル制御方法の具体的な内容を比較的容易に変更することができる。すなわち図13の構成の場合、情報処理部5にインストールするソフトウェアを変更するのみで次元制御方法あるいは仮想チャネル制御方法の具体的な内容を容易に変更できる。その結果ルーティングの方法を容易に変更できる。
図14はクロスバインタフェース42〜45を各方向+x、−x、+y、−yの送受信ポートP11,P12,P21,P22,に配設したルーティングコントローラ4の構成例を示すブロック図である。図14に示される如く、ルーティングコントローラ4には各方向ごとのクロスバインタフェース42〜45の他に、上記CPUクロスバインタフェース48が設けられる。CPUクロスバインタフェース48はノードにおいて情報処理部5と接続される。実施例1では、CPUクロスバインタフェース48は図12,図13とともに上記した各方向のクロスバインタフェース42〜45と同様の構成を有する。CPUクロスバインタフェース48は情報処理部5からデータパケットを受信すると、図12中、パケット入力部401を介しパケット解析部402にデータパケットを渡す。パケット解析部402は図3の次元制御方法および図4の仮想チャネル制御方法を実行する。次元制御方法における「データパケットを送出する次元」としては、初期値として例えば第1の次元、x軸とする。また仮想チャネル制御方法における「データパケットの仮想チャネル」としては、初期値として例えば第1の仮想チャネル、すなわち仮想チャネルVC0とする。また、クロスバスイッチ41は各方向のクロスバインタフェース42〜45に加え、CPUクロスバインタフェース48からの送信要求をも受信し、CPUクロスバインタフェース48からの送信要求も含め、必要に応じ、送信要求間の調停を行う。
図15は情報処理部5の構成例を示す。図15中、本体部101は、大略バス200により接続されたCPU201、RAMやROM等からなるメモリ部202、ディスク110用のディスクドライブ203およびハードディスクドライブ(HDD)204を有する。ディスプレイ102、キーボード103およびマウス104も、図示の如くバス200を介してCPU201に接続されているが、これらは直接CPU201に接続されていても良い。なお、情報処理部5の構成は図15に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
上記の構成の情報処理部5において、図13の構成を採用する場合、上記次元制御方法及び仮想チャネル制御方法をコンピュータに実行させるためのプログラムがインストールされCPU201で実行される。その結果、図13とともに上記したように、ソフトウェアによって次元制御方法及び仮想チャネル制御方法が実現される。
以下に実施例1の作用効果をシミュレーションにより検証した結果を説明する。シミュレーションの初期条件と設定内容は以下の通りである。
●トポロジとして8ノード×8ノードの配列で2次元トーラス状の接続とした。
●CPUクロスバインタフェース48を2個設けた。
●データパケットのパターン:すべてのノードが64個のデータパケットを持ち、それぞれのノードが他のノードにデータパケットを転送しようとする。64個のデータパケットのパターンはすべてのノードで「同じ目的地+長さ」の組み合わせパターンを持つようにした。
●「パケットの長さ」、「データパケットの目的地」は、一様乱数を用いて設定した。「データパケットの長さ」は1〜128クロックサイクル相当の範囲で設定した。
●すべてのデータパケットは初期状態ではCPUクロスバインタフェース48に格納されているものとした。
●ケーブル遅延はないものとした。
またシミュレーションにおけるアルゴリズムは以下の通りである。
1)クロスバスイッチ41は現在の送信状況を確認する。
2)クロスバスイッチ41はCPUクロスバインタフェース48と各方向のクロスバインタフェース42〜45から送信される送信要求を確認し、送信状況に応じた公平な調停を行う。
3)クロスバスイッチ41による調停の結果、「送信許可」を受け取ったクロスバインタフェース42〜45あるいはCPUクロスバインタフェース48はデータパケットの送出を開始する。
4)以上のプロセスをすべてのデータパケットが所望のCPUクロスバインタフェース48に到着するまで各タイムステップで行う。
上記シミュレーションの結果を図16に示す。図16中、縦軸は未到達データパケット数を示し、横軸は経過時間を表す。実線(normal-all)は通常の次元オーダルーティングの未到達パケット数を示す。細かい破線(onehop-all)は実施例1の方法を実施した場合の未到達データパケット数を示す。次に細かい破線(normal-x)は通常の次元オーダルーティングで現在x軸の送受信ポート上に存在するデータパケット数を示す。粗い破線(onehop-x)は実施例1の方法を実行した場合においてx軸上に存在するデータパケット数を示す。一点鎖線(normal-y)は通常の次元オーダルーティングのy軸上に存在するデータパケット数を示す。二点差線(onehop-y)線は実施例1の方法を実行した場合においてy軸上の存在するデータパケット数を示す。
当該結果から以下の点が理解できる。すなわち、システム全体でx軸に存在するデータパケット数のピーク最大数が実施例1の方法を用いると低下し、逆にy軸のピーク最大数は増加する。したがって効率よく次元オーダルーティングが行われ、結果的に並列度が向上し、通信時間の10%程度の削減に成功した。
上記シミュレーションは簡単のため2次元トーラス状の接続の場合について行ったが、実施例1の技術的思想はトポロジに関わらず有効であることは言うまでもない。

Claims (20)

  1. 複数の情報処理装置が相互に多次元に接続された情報処理システムであって、
    前記複数の情報処理装置の各々は、データを送受信する方向ごとに、第1の仮想チャネルに属するデータを格納する第1の受信格納装置と、第2の仮想チャネルに属するデータを格納する第2の受信格納装置とを有し、
    データが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する仮想チャネル制御部と、
    前記仮想チャネル制御部による仮想チャネルの制御の後の前記データが属する仮想チャネルに応じ、当該データを前記第1あるいは第2の受信格納装置に格納するデータ格納部と、
    データが送出される次元の宛先と自装置の同次元の位置とを比較し、前記自装置の位置が前記宛先と一致した場合、当該データを送出する次元を次の次元へと変更する送出次元制御部と、
    前記第1及び第2の受信格納装置に格納されたデータのうちの、各受信格納装置につき一単位のデータ同士の調停を行い、前記調停の結果、データを送出する各方向につき一単位のデータを実際に送出するデータとして決定する調停部とを有することを特徴とする情報処理システム。
  2. 前記仮想チャネル制御部は、前記送出次元制御部による前記比較の結果、宛先の位置と自装置の位置とが一致した際に、すでに当該データを送出する仮想チャネルの変更がなされていれば変更前の仮想チャネルに戻すことを特徴とする請求項1に記載の情報処理システム。
  3. 前記仮想チャネル制御部は、自装置の位置がデータを送出する次元の仮想チャネル変更位置と一致した場合、当該データを送出する仮想チャネルを変更することを特徴とすることを特徴とする請求項1に記載の情報処理システム。
  4. 前記複数の情報処理装置が多次元トーラス状に接続されていることを特徴とする請求項1に記載の情報処理システム。
  5. 複数の情報処理装置が相互に多次元に接続された情報処理システムにおける各々の情報処理装置であって、
    データを送受信する方向ごとに、第1の仮想チャネルに属するデータを格納する第1の受信格納装置と、第2の仮想チャネルに属するデータを格納する第2の受信格納装置とを有し、
    データが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する仮想チャネル制御部と、
    前記仮想チャネル制御部による仮想チャネル制御の実行後の前記前記データが属する仮想チャネルに応じ、当該データを前記第1あるいは第2の受信格納装置に格納する受信データ格納部と、
    データが送出される次元の宛先と自装置の同次元の位置とを比較し、前記自装置の位置が前記宛先と一致した場合、当該データを送出する次元を次の次元へと変更する送出次元制御部と、
    前記第1及び第2の受信格納装置に格納されたデータのうちの、各受信格納装置につき一単位のデータ同士の調停を行い、前記調停の結果、データを送出する各方向につき一単位のデータを実際に送出するデータとして決定する調停部とを有することを特徴とする情報処理装置。
  6. 前記仮想チャネル制御部は、前記送出次元制御部による前記比較の結果、宛先の位置と自装置の位置とが一致した際に、当該データを送出する仮想チャネルが既に変更されていれば変更前の仮想チャネルに戻すことを特徴とする請求項5に記載の情報処理装置。
  7. 前記仮想チャネル制御部は、自装置の位置がデータを送出する次元の仮想チャネル変更位置と一致した場合、当該データを送出する仮想チャネルを変更することを特徴とすることを特徴とする請求項5に記載の情報処理装置。
  8. 前記情報処理システムでは、前記複数の情報処理装置が多次元トーラス状に接続されていることを特徴とする請求項5に記載の情報処理装置。
  9. 複数の情報処理装置が相互に多次元に接続された情報処理システムにおける、各々の情報処理装置の制御方法であって、
    データを送受信する方向ごとに、第1の仮想チャネルに属するデータを格納する第1の受信格納装置と、第2の仮想チャネルに属するデータを格納する第2の受信格納装置とを有し、
    データが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する仮想チャネル制御段階と、
    前記仮想チャネル制御段階の実行後の前記データが属する仮想チャネルに応じ、当該データを前記第1あるいは第2の受信格納装置に格納する受信データ格納段階と、
    データが送出される次元の宛先と自装置の同次元の位置とを比較し、前記自装置の位置が前記宛先と一致した場合、当該データを送出する次元を次の次元へと変更する送出次元制御段階と、
    前記第1及び第2の受信格納装置に格納されたデータのうちの、各受信格納装置につき一単位のデータ同士の調停を行い、前記調停の結果、データを送出する各方向につき一単位のデータを実際に送出するデータとして決定する調停段階とを実行することを特徴とする情報処理装置の制御方法。
  10. 前記仮想チャネル制御段階は更に、前記送出次元制御段階で前記比較の結果、宛先の位置と自装置の位置とが一致した際に、当該データを送出する仮想チャネルが既に変更されていれば変更前の仮想チャネルに戻すことを特徴とする請求項9に記載の情報処理装置の制御方法。
  11. 前記仮想チャネル制御段階は更に、自装置の位置がデータが送出される次元の仮想チャネル変更位置と一致した場合、当該データを送出する仮想チャネルを変更する段階を有することを特徴とすることを特徴とする請求項9に記載の情報処理装置の制御方法。
  12. 前記情報処理システムでは、前記複数の情報処理装置が多次元トーラス状に接続されていることを特徴とする請求項9に記載の情報処理装置の制御方法。
  13. 複数の情報処理装置が相互に多次元に接続された情報処理システムにおける各々の情報処理装置であって、データを送受信する方向ごとに、第1の仮想チャネルに属するデータを格納する第1の受信格納装置と、第2の仮想チャネルに属するデータを格納する第2の受信格納装置とを有する情報処理装置の動作を制御するコンピュータを、
    データが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する仮想チャネル制御部と、
    前記仮想チャネル制御部による仮想チャネル制御の実行後の前記データが属する仮想チャネルに応じ、当該データを前記第1あるいは第2の受信格納装置に格納する受信データ格納部と、
    データが送出される次元の宛先と自装置の同次元の位置とを比較し、前記自装置の位置が前記宛先と一致した場合、当該データを送出する次元を次の次元へと変更する送出次元制御部と、
    前記第1及び第2の受信格納装置に格納されたデータのうちの、各受信格納装置につき一単位のデータ同士の調停を行い、前記調停の結果、データを送出する各方向につき一単位のデータを実際に送出するデータとして決定する調停部として機能させるための情報処理装置の制御プログラム。
  14. 前記仮想チャネル制御部は、前記送出次元制御部による前記比較の結果、宛先の位置と自装置の位置とが一致した際に、当該データを送出する仮想チャネルが既に変更されていれば変更前の仮想チャネルに戻すことを特徴とする請求項13に記載の情報処理装置の制御プログラム。
  15. 前記仮想チャネル制御部は、自装置の位置がデータが送出される次元の仮想チャネル変更位置と一致した場合、当該データを送出する仮想チャネルを変更することを特徴とすることを特徴とする請求項13に記載の情報処理装置の制御プログラム。
  16. 前記情報処理システムでは、前記複数の情報処理装置が多次元トーラス状に接続されていることを特徴とする請求項13に記載の情報処理装置の制御プログラム。
  17. 複数の情報処理装置が相互に多次元に接続された情報処理システムにおける各々の情報処理装置であって、データを送受信する方向ごとに、第1の仮想チャネルに属するデータを格納する第1の受信格納装置と、第2の仮想チャネルに属するデータを格納する第2の受信格納装置とを有する情報処理装置を制御するコンピュータを、
    データが送出される次元の宛先と、自装置の同次元の位置とを比較し、当該比較の結果自装置の位置が情報処理装置1台分手前の位置であった場合、当該データが属する仮想チャネルを変更する仮想チャネル制御部と、
    前記仮想チャネル制御部による仮想チャネル制御の実行後の前記データが属する仮想チャネルに応じ、当該データを前記第1あるいは第2の受信格納装置に格納する受信データ格納部と、
    データが送出される次元の宛先と自装置の同次元の位置とを比較し、前記自装置の位置が前記宛先と一致した場合、当該データを送出する次元を次の次元へと変更する送出次元制御部と、
    前記第1及び第2の受信格納装置に格納されたデータのうちの、各受信格納装置につき一単位のデータ同士の調停を行い、前記調停の結果、データを送出する各方向につき一単位のデータを実際に送出するデータとして決定する調停部として機能させるための情報処理装置の制御プログラムを格納したコンピュータ読み取り可能な情報記録媒体。
  18. 前記仮想チャネル制御部は、前記送出次元制御部による前記比較の結果、宛先の位置と自装置の位置とが一致した際に、当該データを送出する仮想チャネルが既に変更されていれば変更前の仮想チャネルに戻すことを特徴とする請求項17に記載の情報処理装置の制御プログラムを格納したコンピュータ読み取り可能な情報記録媒体。
  19. 前記仮想チャネル制御部は、自装置の位置がデータが送信される次元の仮想チャネル変更位置と一致した場合、当該データを送出する仮想チャネルを変更することを特徴とすることを特徴とする請求項17に記載の情報処理装置の制御プログラムを格納したコンピュータ読み取り可能な情報記録媒体。
  20. 前記情報処理システムでは、前記複数の情報処理装置が多次元トーラス状に接続されていることを特徴とする請求項17に記載の情報処理装置の制御プログラムを格納したコンピュータ読み取り可能な情報記録媒体。
JP2010548330A 2009-01-30 2009-01-30 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 Active JP5195933B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/051609 WO2010087002A1 (ja) 2009-01-30 2009-01-30 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPWO2010087002A1 true JPWO2010087002A1 (ja) 2012-07-26
JP5195933B2 JP5195933B2 (ja) 2013-05-15

Family

ID=42395272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010548330A Active JP5195933B2 (ja) 2009-01-30 2009-01-30 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Country Status (6)

Country Link
US (1) US8090895B2 (ja)
EP (1) EP2393015B1 (ja)
JP (1) JP5195933B2 (ja)
KR (1) KR101250666B1 (ja)
CN (1) CN102301365B (ja)
WO (1) WO2010087002A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
US8539130B2 (en) * 2009-09-24 2013-09-17 Nvidia Corporation Virtual channels for effective packet transfer
US8850089B1 (en) * 2010-06-18 2014-09-30 Integrated Device Technology, Inc. Method and apparatus for unified final buffer with pointer-based and page-based scheme for traffic optimization
CN104106246B (zh) * 2012-01-31 2017-11-10 中兴通讯(美国)公司 用于管理传输无关式多媒体体验质量的方法和系统
JP5790526B2 (ja) * 2012-02-06 2015-10-07 富士通株式会社 分散処理方法および分散処理システム
NO2776466T3 (ja) * 2014-02-13 2018-01-20
CN104484293B (zh) * 2014-11-20 2017-09-08 浪潮(北京)电子信息产业有限公司 一种在多控存储系统中实现前端协议的方法和设备
US20160187958A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Techniques for managing power and performance for a networking device
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
WO2018097015A1 (ja) * 2016-11-28 2018-05-31 株式会社ターボデータラボラトリー 分散システム
JP7167687B2 (ja) * 2018-12-18 2022-11-09 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
JPH01241660A (ja) * 1988-03-24 1989-09-26 Toshiba Corp プロセッサ間通信方式
JPH0626684A (ja) 1992-07-13 1994-02-04 Matsushita Seiko Co Ltd 換気ユニットの電装ボックス
JPH06266684A (ja) 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
JPH07191947A (ja) 1993-12-27 1995-07-28 Toshiba Corp 並列計算機
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US5659796A (en) * 1995-04-13 1997-08-19 Cray Research, Inc. System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
JP3860257B2 (ja) * 1996-06-28 2006-12-20 富士通株式会社 チャネルの決定方法
US6938094B1 (en) * 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6888843B2 (en) * 1999-09-17 2005-05-03 Advanced Micro Devices, Inc. Response virtual channel for handling all responses
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6633580B1 (en) * 2000-03-07 2003-10-14 Sun Microsystems N×N crossbar packet switch
CA2438195C (en) 2001-02-24 2009-02-03 International Business Machines Corporation Optimized scalabale network switch
US20040022094A1 (en) * 2002-02-25 2004-02-05 Sivakumar Radhakrishnan Cache usage for concurrent multiple streams
CN100461748C (zh) * 2004-10-22 2009-02-11 华为技术有限公司 直接互连交换网路由的方法
CN100399771C (zh) * 2004-12-09 2008-07-02 电子科技大学 一种多维交换结构中的无死锁自适应路由方法
CN101163133B (zh) * 2006-10-10 2011-06-29 天津中科蓝鲸信息技术有限公司 一种多机虚拟环境下实现资源共享的通信系统及通信方法
CN101262444A (zh) * 2008-03-10 2008-09-10 清华大学 基于通道交叠的容错mesh网避免死锁的路由方法
CN101267394A (zh) * 2008-03-10 2008-09-17 清华大学 三维mesh网中无死锁的平面自适应路由方法
CN101242372A (zh) * 2008-03-10 2008-08-13 清华大学 k元N维mesh网中的无死锁路由方法
CN101335704B (zh) * 2008-04-18 2011-05-11 清华大学 三维torus网中的无死锁自适应路由方法
CN101267398B (zh) * 2008-04-18 2010-09-01 清华大学 二维torus网中的无死锁自适应路由方法

Also Published As

Publication number Publication date
KR20110102932A (ko) 2011-09-19
KR101250666B1 (ko) 2013-04-03
CN102301365B (zh) 2013-12-25
EP2393015B1 (en) 2015-07-01
EP2393015A1 (en) 2011-12-07
US8090895B2 (en) 2012-01-03
WO2010087002A1 (ja) 2010-08-05
CN102301365A (zh) 2011-12-28
EP2393015A4 (en) 2014-04-09
JP5195933B2 (ja) 2013-05-15
US20110283038A1 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
JP5195933B2 (ja) 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
US8638665B2 (en) Router, information processing device having said router, and packet routing method
US9860197B2 (en) Automatic buffer sizing for optimal network-on-chip design
US8667439B1 (en) Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost
JP3532574B2 (ja) トーラス相互結合網のための適応ルーティング機構
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
JP2016525290A (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US20080089329A1 (en) Computer cluster
JP5477112B2 (ja) ネットワークシステムの試験方法
KR100412010B1 (ko) 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
CN106372013B (zh) 远程内存访问方法、装置和系统
Pinkston et al. Characterization of deadlocks in k-ary n-cube networks
JP4687925B2 (ja) 優先調停システム及び優先調停方法
KR101373778B1 (ko) 시스템 온 칩의 내부 통신을 위한 네트워크 온 칩 및 데이터 전송 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9594651B2 (en) Parallel computer system and control method for parallel computer system
JP5556377B2 (ja) 並列計算システム、プロセッサ、ネットワークスイッチ装置、及び通信方法
JP2009177256A (ja) パケットスイッチ装置およびパケットスイッチ方法
JP4724743B2 (ja) データ転送装置およびデータ転送装置の制御方法
Alimi et al. Network-on-Chip Topologies: Potentials, Technical Challenges, Recent Advances and Research Direction
JP2014137732A (ja) 情報処理システム及び情報処理システムの制御方法
JP7456603B2 (ja) スイッチ装置
US9336172B2 (en) Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration
JP2011193258A (ja) 半導体集積回路装置、経路決定回路及び経路決定方法
CN117135107A (zh) 一种网络通信拓扑系统、路由方法、设备及介质

Legal Events

Date Code Title Description
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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

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

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5195933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150