(57)【特許請求の範囲】
【請求項１】
第１の計算を行った結果に基づき、パケットを送信する第１の計算ノードと、
前記第１の計算ノードに接続され、前記第１の計算ノードからのパケットに含まれるヘッダを解析する第１の解析部と、
前記第１の解析部に接続され、第１の要求を出力するとともに、出力した前記第１の要求に対する第１の許可を入力するまで前記第１の計算ノードからのパケットを第１のバッファに保持するとともに、前記第１の許可を入力した場合、前記第１の解析部によるヘッダの解析結果に応じて、前記第１のバッファに保持した前記第１の計算ノードからのパケットに基づき、第１のパケットと第２のパケットとを送信する第１の送信部と、
前記第１の送信部に接続され、前記第１の送信部から入力した前記第１の要求に基づき、前記第１の許可を出力するとともに、前記第１の送信部からの第１のパケットを受信し、受信した第１のパケットの経路を切り換えるクロスバスイッチと、
前記クロスバスイッチと前記第１の送信部とに接続され、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを並列に受信する第２の受信部と、
接続された前記第２の受信部から受信した第１のパケットと第２のパケットとに基づき、計算を行う第２の計算ノードを有する情報処理装置。
【請求項２】
前記第２の受信部は、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを同時に受信する請求項１記載の情報処理装置。
【請求項３】
前記第２の計算ノードはさらに、第２の計算を行った結果に基づき、パケットを送信し、
前記情報処理装置はさらに、前記第２の計算ノードに接続され、前記第２の計算ノードからのパケットに含まれるヘッダを解析する第２の解析部と、
前記第２の解析部に接続され、第２の要求を出力するとともに、出力した前記第２の要求に対する第２の許可を入力するまで前記第２の計算ノードからのパケットを第２のバッファに保持するとともに、前記第２の許可を入力した場合、前記第２の解析部によるヘッダの解析結果に応じて、前記第２のバッファに保持した前記第２の計算ノードからのパケットに基づき、第３のパケットと第４のパケットとを送信する第２の送信部と、
前記第２の送信部から入力した前記第２の要求に基づき、前記第２の許可を出力するとともに、前記第２の送信部からの第３のパケットを受信し、受信した第３のパケットの経路を切り換える前記クロスバスイッチと前記第２の送信部とに接続され、前記クロスバスイッチからの第３のパケットと前記第２の送信部からの第４のパケットとを並列に受信する第１の受信部とを有し、
前記第１の計算ノードはさらに、接続された前記第１の受信部から受信した第３のパケットと第４のパケットとに基づき、計算を行う請求項１又は２記載の情報処理装置。
【請求項４】
前記第１の受信部は、前記クロスバスイッチからの第３のパケットと前記第２の送信部からの第４のパケットとを同時に受信する請求項３記載の情報処理装置。
【請求項５】
情報処理装置の制御方法において、
前記情報処理装置が有する第１の計算ノードが、第１の計算を行った結果に基づき、パケットを送信し、
前記情報処理装置が有する、前記第１の計算ノードに接続された第１の解析部が、前記第１の計算ノードからのパケットに含まれるヘッダを解析し、
前記情報処理装置が有する、前記第１の解析部に接続された第１の送信部が、第１の要求を出力し、
前記情報処理装置が有する、前記第１の送信部に接続されたクロスバスイッチが、前記第１の送信部から入力した前記第１の要求に基づき、第１の許可を出力し、
前記第１の送信部が、出力した前記第１の要求に対する前記第１の許可を入力するまで前記第１の計算ノードからのパケットを第１のバッファに保持するとともに、前記第１の許可を入力した場合、前記第１の解析部によるヘッダの解析結果に応じて、前記第１のバッファに保持した前記第１の計算ノードからのパケットに基づき、第１のパケットと第２のパケットとを送信し、
前記クロスバスイッチが、前記第１の送信部からの第１のパケットを受信し、受信した第１のパケットの経路を切り換え、
前記情報処理装置が有する、前記クロスバスイッチと前記第１の送信部とに接続された第２の受信部が、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを並列に受信し、
前記情報処理装置が有する第２の計算ノードが、接続された前記第２の受信部から受信した第１のパケットと第２のパケットとに基づき、計算を行う情報処理装置の制御方法。
【請求項６】
前記第２の受信部は、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを同時に受信する請求項５記載の情報処理装置の制御方法。
【請求項７】
前記第２の計算ノードはさらに、第２の計算を行った結果に基づき、パケットを送信し、
前記情報処理装置が有する、前記第２の計算ノードに接続された第２の解析部が、前記第２の計算ノードからのパケットに含まれるヘッダを解析し、
前記情報処理装置が有する、前記第２の解析部に接続された第２の送信部が、第２の要求を出力し、
前記クロスバスイッチが、前記第２の送信部から入力した前記第２の要求に基づき、第２の許可を出力し、
前記第２の送信部が、出力した前記第２の要求に対する前記第２の許可を入力するまで前記第２の計算ノードからのパケットを第２のバッファに保持するとともに、前記第２の許可を入力した場合、前記第２の解析部によるヘッダの解析結果に応じて、前記第２のバッファに保持した前記第２の計算ノードからのパケットに基づき、第３のパケットと第４のパケットとを送信し、
前記クロスバスイッチが、前記第２の送信部からの第３のパケットを受信し、受信した第３のパケットの経路を切り換え、
前記情報処理装置が有する第１の受信部が、前記クロスバスイッチからの第３のパケットと前記第２の送信部からの第４のパケットとを並列に受信し、
前記第１の計算ノードはさらに、接続された前記第１の受信部から受信した第３のパケットと第４のパケットとに基づき、計算を行う請求項５又は６記載の情報処理装置の制御方法。
【請求項８】
前記第１の受信部は、前記クロスバスイッチからの第３のパケットと前記第２の送信部からの第４のパケットとを同時に受信する請求項７記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、情報処理装置及びネットワークシステムの制御方法に関する。
【背景技術】
【０００２】
計算機（又は、コンピュータ）等の情報処理装置の性能は年々向上し続けているが、半導体回路の微細化限界の到来等に伴う動作クロック周波数の上昇カーブの飽和により、ＣＰＵ（Central Processing Unit）等のプロセッサの性能を向上するのには限界がある。このため、近年では複数のプロセッサを備えた並列計算機により更なる性能の向上が図られている。
【０００３】
並列計算機の性能は、プロセッサ単体の演算速度だけでなく、プロセッサ間の通信に要する時間、即ち、通信速度にも依存する。プロセッサ単体の性能を向上するのには限界があるため、現在の状況では並列計算機の更なる性能向上を図るためにはプロセッサ間の通信速度の向上が要求される。並列計算機における通信速度は、大きく分けて２つの要素に分けることができる。一つはデータ転送時間たるレイテンシであり、もう一つはデータ転送の帯域幅たるバンド幅である。
【０００４】
レイテンシは、データの通信開始から通信終了までにかかる時間であり、レイテンシが短い程通信速度は向上する。しかし、並列計算機の性能向上のために並列計算機の構造を複雑にすると、論理が複雑になり結果として使用するトランジスタの数が増大して信号遅延が発生するため、レイテンシが低下してしまう。又、レイテンシの影響は、並列計算機の規模が大きくなる程蓄積され、並列計算機システム全体の更なる性能向上を難しくしている。
【０００５】
バンド幅は、一度に転送できるデータ量を示す尺度であり、当然ながら一度に多くのデータ量を転送可能であることが望ましい、しかし、単純に一度に転送可能なデータ量を増加すると、一度に転送するビット数が増加するためにデータの転送及び保持等に用いるトランジスタ数も増加し、結果として並列計算機を構成する大規模集積回路（ＬＳＩ：Large Scale Integrated circuit）の半導体チップの面積が増加してしまう。このため、一度に転送するビット数を増加させたことによりデータ転送の同期に時間がかかり、結果的に上記レイテンシを低下させてしまう。
【０００６】
図１は、従来のネットワークシステム（又は、ネットワークアーキテクチャ）の一例を説明する図である。図１は、２次元メッシュトーラス（Mesh Torus）トポロジー等の２次元メッシュトポロジーを用いるネットワークシステム１を示す。図１に示すように、ネットワークシステム１は、クロスバスイッチ（Crossbar Switch）２と、クロスバスイッチ２に接続されたクロスバインタフェース３−１〜３−４を有する。各クロスバインタフェース３−１〜３−４からのデータは、全てクロスバスイッチ２を経由してクロスバインタフェース３−１〜３−４へ再分配される。
【０００７】
各クロスバインタフェース３−１〜３−４には、ノード５が接続されている。ノード５は、プロセッサ等の計算ノード５、或いは、入出力（Ｉ／Ｏ：Input and Output）ノードであり、少なくとも１個のノード５が計算ノードである。ネットワークシステム１及び４個のノード５は、情報処理装置を形成しており、２以上のノード５が計算ノードの場合には並列計算機が形成される。
【０００８】
図１からもわかるように、計算機に限らず、ネットワークシステムにおいてもレイテンシ及びバンド幅がトレードオフの関係にあり、レイテンシ及びバンド幅の両方を向上することは難しい。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１１−２１２８６６号公報
【特許文献２】特開２００２−３２８８３８号公報
【特許文献３】特開平１０−２１５２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の計算機やネットワークシステムでは、レイテンシ及びバンド幅の両方を向上することが難しいという問題があった。
【００１１】
そこで、本発明は、レイテンシ及びバンド幅の両方を向上可能なネットワークシステム、情報処理装置及びネットワークシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一観点によれば、クロスバスイッチと、前記クロスバスイッチに接続されたポートを有する複数のクロスバインタフェースと、前記複数のクロスバインタフェースのうち、使用頻度が所定値以上のポートの組を形成するクロスバインタフェース同士を直接接続するバイパスルートを備えたネットワークシステムが提供される。
【００１３】
本発明の一観点によれば、第１の計算を行った結果に基づき、パケットを送信する第１の計算ノードと、前記第１の計算ノードに接続され、前記第１の計算ノードからのパケットに含まれるヘッダを解析する第１の解析部と、前記第１の解析部に接続され、第１の要求を出力するとともに、出力した前記第１の要求に対する第１の許可を入力するまで前記第１の計算ノードからのパケットを第１のバッファに保持するとともに、前記第１の許可を入力した場合、前記第１の解析部によるヘッダの解析結果に応じて、前記第１のバッファに保持した前記第１の計算ノードからのパケットに基づき、第１のパケットと第２のパケットとを送信する第１の送信部と、前記第１の送信部に接続され、前記第１の送信部から入力した前記第１の要求に基づき、前記第１の許可を出力するとともに、前記第１の送信部からの第１のパケットを受信し、受信した第１のパケットの経路を切り換えるクロスバスイッチと、前記クロスバスイッチと前記第１の送信部とに接続され、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを並列に受信する第２の受信部と、接続された前記第２の受信部から受信した第１のパケットと第２のパケットとに基づき、計算を行う第２の計算ノードを有する情報処理装置が提供される。
【００１４】
本発明の一観点によれば、情報処理装置の制御方法において、前記情報処理装置が有する第１の計算ノードが、第１の計算を行った結果に基づき、パケットを送信し、前記情報処理装置が有する、前記第１の計算ノードに接続された第１の解析部が、前記第１の計算ノードからのパケットに含まれるヘッダを解析し、前記情報処理装置が有する、前記第１の解析部に接続された第１の送信部が、第１の要求を出力し、前記情報処理装置が有する、前記第１の送信部に接続されたクロスバスイッチが、前記第１の送信部から入力した前記第１の要求に基づき、第１の許可を出力し、前記第１の送信部が、出力した前記第１の要求に対する前記第１の許可を入力するまで前記第１の計算ノードからのパケットを第１のバッファに保持するとともに、前記第１の許可を入力した場合、前記第１の解析部によるヘッダの解析結果に応じて、前記第１のバッファに保持した前記第１の計算ノードからのパケットに基づき、第１のパケットと第２のパケットとを送信し、前記クロスバスイッチが、前記第１の送信部からの第１のパケットを受信し、受信した第１のパケットの経路を切り換え、前記情報処理装置が有する、前記クロスバスイッチと前記第１の送信部とに接続された第２の受信部が、前記クロスバスイッチからの第１のパケットと前記第１の送信部からの第２のパケットとを並列に受信し、前記情報処理装置が有する第２の計算ノードが、接続された前記第２の受信部から受信した第１のパケットと第２のパケットとに基づき、計算を行う情報処理装置の制御方法が提供される。
【発明の効果】
【００１５】
開示のネットワークシステム、情報処理装置及びネットワークシステムの制御方法によれば、レイテンシ及びバンド幅の両方を向上することができる。
【図面の簡単な説明】
【００１６】
【図１】従来のネットワークシステムの一例を説明する図である。
【図２】実施例におけるネットワークシステムの一例を説明する図である。
【図３】クロスバスイッチの一例を説明する図である。
【図４】同時通信の性能評価のシミュレーション結果を示す図である。
【図５】実施例におけるネットワークシステムの他の例を説明する図である。
【図６】実施例におけるネットワークシステムの他の例を説明する図である。
【図７】実施例におけるネットワークシステムの他の例を説明する図である。
【図８】実施例におけるネットワークシステムの他の例を説明する図である。
【図９】クロスバインタフェースの一例を説明する図である。
【図１０】クロスバスイッチの動作を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
開示のネットワークシステム、情報処理装置及びネットワークシステムの制御方法では、通信経路の偏り、即ち、ポートの使用頻度（又は、データ通信頻度）の偏りに注目して、レイテンシ及びバンド幅の両方を向上させる。レイテンシとバンド幅両方を向上させることによって、並列計算機等の情報処理装置の性能を向上することができる。
【００１８】
以下に、開示のネットワークシステム、情報処理装置及びネットワークシステムの制御方法の各実施例を図面と共に説明する。
【実施例】
【００１９】
多くの並列計算機では、デッドロック（Deadlock）を回避するために次元オーダルーティング（ＤＯＲ：Dimension Order Routing）等のデッドロックを論理的に回避する通信経路選択アルゴリズムが採用されている。このような通信経路選択アルゴリズムを採用すると、通信経路の偏り、即ち、使用頻度（又は、データ通信頻度）の高いポートの組と使用頻度がそれほど高くないポートの組が発生する。
【００２０】
例えば、２次元メッシュトポロジーで次元オーダルーティング（ＤＯＲ）を採用すると、クロスバスイッチ（Crossbar Switch）等の分配型スイッチネットワーク（Distributed Switched Network）を経由するデータは、目的とする（又は、宛先となる）ノード座標のＸ座標を一致させてからＹ座標を一致させるような通信経路を選択して転送される。全てのデータは、各々が目的とするノード座標のＸ座標を一致させる際に同じ順序でＸ座標を横切り、目的とするノード座標のＹ座標を一致させる際に同じ順序でＹ座標を横切るので、デッドロックが回避できる。説明の便宜上、例えば２次元メッシュ上の座標を（ｘ、ｙ）として、座標（０，０）から座標（ｎ，ｎ）にデータを転送する場合、Ｘ軸のポート同士の通信がｎ回、Ｙ軸のポート同士の通信がｎ−１回、Ｘ軸のポートとＹ軸のポートの通信が１回となり、Ｘ軸のポート同士又はＹ軸のポート同士といった同軸のポート同士の通信の回数が、それ以外のＸ軸のポートとＹ軸のポート間である異なる軸のポート間の通信の回数と比べて多い。
【００２１】
そこで、本発明の一実施例では、使用頻度の偏りに注目して、レイテンシ及びバンド幅の両方を向上させる。レイテンシ及びバンド幅の両方を向上させることにより、例えば並列計算機等の情報処理装置の性能を向上可能となる。
【００２２】
図２は、実施例におけるネットワークシステム（又は、ネットワークアーキテクチャ）の一例を説明する図である。図２は、２次元メッシュトーラス（Mesh Torus）トポロジー、２次元ライントーラス（Line Torus）トポロジー、２次元メッシュリング（Mesh Ring）トポロジー、２次元ラインリング（Line Ring）トポロジーのいずれかのトポロジーを用いるネットワークシステム１１を示す。図２に示すように、ネットワークシステム１１は、クロスバスイッチ（Crossbar Switch）１２と、クロスバスイッチ１２に接続されたクロスバインタフェース（又は、スイッチインタフェース）１３−１〜１３−４と、バイパスルート１４−１，１４−２を有する。ポートを形成する各クロスバインタフェース１３−１〜１３−４は、クロスバスイッチ１２と対応するノード５０−１〜５０−４との間に接続される。ノード５０−１〜５０−４は、例えば各種計算（又は、演算）を実行するＣＰＵ、プロセッサ等の計算ノード、或いは、入出力（Ｉ／Ｏ：Input and Output）ノードであり、ノード５０−１〜５０−４のうち少なくとも１個のノードが計算ノードである。ネットワークシステム１１及び４個のノード５０−１〜５０−４は、情報処理装置を形成しており、ノード５０−１〜５０−４のうち２個以上のノードが計算ノードの場合には並列計算機が形成される。つまり、情報処理装置は、クロスバスイッチ１２と、クロスバインタフェース１３−１〜１３−４と、バイパスルート１４−１，１４−２と、ノード５０−１〜５０−４を有する。
【００２３】
各クロスバインタフェース１３−１〜１３−４からのデータは、データの経路を切り替えるクロスバスイッチ１２を経由してクロスバインタフェース１３−１〜１３−４へ再分配されか、或いは、クロスバスイッチ１２を経由することなくバイパスルート１４−１，１４−２を経由して対応するクロスバインタフェースへ転送される。
【００２４】
図３は、クロスバスイッチ１２の一例を説明する図である。この例では、クロスバスイッチ１２はＸ軸方向に配置されたｎ個（ｎは２以上の自然数）のスイッチ（ＳＷ）１２１と、Ｙ軸方向に配置されたｎ個のスイッチ１２１を有する。このようなクロスバスイッチ１２において、２次元メッシュトーラストポロジー、２次元ライントーラストポロジー、２次元メッシュリングトポロジー、２次元ラインリングトポロジーのいずれかのトポロジーで通信経路選択アルゴリズムとして次元オーダルーティング（ＤＯＲ）を採用し、例えば２次元メッシュ上の座標を（ｘ、ｙ）として、座標（０，０）から座標（ｎ，ｎ）にデータを転送する場合、Ｘ軸のポート同士の通信がｎ回、Ｙ軸のポート同士の通信がｎ−１回、Ｘ軸のポートとＹ軸のポートの通信が１回となる。このように、Ｘ軸のポート同士又はＹ軸のポート同士といった同軸のポート同士の通信の回数が、それ以外のＸ軸のポートとＹ軸のポート間である異なる軸のポート間の通信の回数と比べて多い。そこで、この例では、使用頻度が所定値以上で高いポートの組を形成するＸ軸同士のクロスバインタフェース１３−１，１３−２がバイパスルート１４−１により接続されており、使用頻度が所定値以上で高いポートの組を形成するＹ軸同士のクロスバインタフェース１３−３，１３−４がバイパスルート１４−２により接続されているが、バイパスルートにより接続されるクロスバインタフェースはこれに限定されない。
【００２５】
尚、Ｘ軸のポートがｎ個でＹ軸のポートがｎ個のクロスバスイッチ１２は、図３のようにｎ２個のスイッチ１２１を用いる構成に限定されるものではないことは言うまでもない。
【００２６】
例えば、採用する通信経路選択アルゴリズムが互いに異なる軸のポート同士の通信の回数が同軸同士の通信の回数と比べて多い場合には、クロスバインタフェース１３−１，１３−４がバイパスルートにより接続され、クロスバインタフェース１３−２，１３−２がバイパスルートにより接続されていても良い。
【００２７】
このように、使用頻度（又は、データ通信頻度）が所定値以上で高いポートの組を形成する例えばクロスバインタフェース１３−１，１３−２間のデータ転送を、クロスバスイッチ１２を経由せずに直接バイパスルート１４−１を経由して行う。これにより、バイパスルート１４−１を通るデータに関しては、クロスバスイッチ１２を経由せずに直接クロスバインタフェース１３−１，１３−２のポート間でデータ転送が行われるので、クロスバスイッチ１２を経由する場合と比べて低いレイテンシでデータ転送を行うことができる。又、クロスバインタフェース１３−１，１３−２を経由するデータ転送の大多数がバイパスルート１４−１を経由するデータ転送となるため、レイテンシが実質的に低下する。
【００２８】
更に、バイパスルートを設けることで、クロスバインタフェースが仮想チャネルを有する場合には、バイパスルートを経由するデータとそれ以外のクロスバスイッチ１２を経由するデータとを同時に、即ち、並列に転送することも可能であり、バンド幅を実質的に増加させることができる。例えば、クロスバインタフェース１３−１からクロスバインタフェース１３−２へパケットを転送する際に、バイパスルート１４−１を経由してデータを転送すると共に、同時にクロスバスイッチ１２を経由してデータを転送することにより、バンド幅を２倍にすることができる。尚、パケットの形式（又は、フォーマット）は特に限定されないが、分配型（又は、分散型）ルーティング（Distributed Routing）の場合、パケットには宛先情報やパケットの発行元（ソース）の情報を含むルーティング情報が含まれる。例えばヘッダとデータ部で形成されるパケットの場合、ルーティング情報はパケットのヘッダに含まれており、データはデータ部に含まれている。
【００２９】
尚、図２は、ネットワークシステム１１内の接続を説明するためのものであり、クロスバインタフェース１３−１〜１３−４のクロスバスイッチ１２に対する物理的位置は図２の位置に限定されるものではない。又、後述する図５〜図８においても、図示された各クロスバインタフェースのクロスバスイッチに対する位置は、物理的な位置を示すものではない。
【００３０】
図４は、同時通信の性能評価のシミュレーション結果を示す図である。図４中、縦軸は未到達パケット数を示し、横軸は経過時間をＣＰＵサイクル数で示す。例えば、図２のクロスバインタフェース１３−１からクロスバインタフェース１３−２へパケットを転送する際に、データは目的とする（又は、宛先となる）ノード座標のＸ座標を一致させてからＹ座標を一致させるような通信経路を選択する。図４において、Ａｘはクロスバスイッチ１２を経由する場合のＸ座標を一致させる処理の性能評価のシミュレーション結果、Ａｙはクロスバスイッチ１２を経由する場合のＹ座標を一致させる処理の性能評価のシミュレーション結果、Ａ−１はクロスバインタフェース１３−１からクロスバインタフェース１３−２へクロスバスイッチ１２を経由してパケットを転送した場合の性能評価のシミュレーション結果を示し、図１の従来例においてクロスバインタフェース３−１からクロスバインタフェース３−２へクロスバスイッチ２を経由してパケットを転送した場合の性能評価のシミュレーション結果に相当する。又、Ｂｘはクロスバスイッチ１２を経由せずに直接バイパスルート１４−１を経由する場合のＸ座標を一致させる処理の性能評価のシミュレーション結果、Ｂｙはクロスバスイッチ１２を経由せずに直接バイパスルート１４−１を経由する場合のＹ座標を一致させる処理の性能評価のシミュレーション結果、Ｂ−１はクロスバインタフェース１３−１からクロスバインタフェース１３−２へクロスバスイッチ１２を経由せずに直接バイパスルート１４−１を経由してパケットを転送した場合の性能評価のシミュレーション結果を示す。図４のシミュレーション結果Ｂ−１とシミュレーション結果Ａ−１の比較から、シミュレーション結果Ｂ−１について１０％の性能向上が確認された。尚、図４のシミュレーション結果は、正規化されたパケット転送速度について算出されている。
【００３１】
図５は、実施例におけるネットワークシステムの他の例を説明する図である。図５は、２次元メッシュトーラストポロジー、２次元ライントーラストポロジー、２次元メッシュリングトポロジー、２次元ラインリングトポロジーのいずれかのトポロジーを用いるネットワークシステム１１を示す。図５中、図２と同一部分には同一符号を付し、その説明は省略する。この例では、同軸のポート同士の通信の回数がそれ以外の通信の回数と比べて多い通信経路選択アルゴリズムが採用されているので、＋Ｘ軸のポートを有するクロスバインタフェース１３−１と−Ｘ軸のポートを有するクロスバインタフェース１３−２がバイパスルート１４−１により接続されている。又、＋Ｙ軸のポートを有するクロスバインタフェース１３−３と−Ｙ軸のポートを有するクロスバインタフェース１３−４がバイパスルート１４−２により接続されている。尚、クロスバインタフェース１３−１，１３−２の＋Ｘ軸，−Ｘ軸のポートとは、クロスバスイッチ１１の対応するＸ軸のポートに接続されたポートであり、クロスバインタフェース１３−３，１３−４の＋Ｙ軸，−Ｙ軸のポートとは、クロスバスイッチ１１の対応するＹ軸のポートに接続されたポートであり、＋Ｘ，−Ｘ，＋Ｙ，−Ｙ軸のポートとは便宜上付けられたポート名である。
【００３２】
図６は、実施例におけるネットワークシステムの他の例を説明する図である。図６は、３次元メッシュトーラストポロジー、３次元ライントーラストポロジー、３次元メッシュリングトポロジー、３次元ラインリングトポロジーのいずれかのトポロジーを用いるネットワークシステム２１を示す。クロスバスイッチ１２Ａには、クロスバインタフェース１３−１〜１３−４に加え、更にクロスバインタフェース１３−５，１３−６が接続されている。図６中、図５と同一部分には同一符号を付し、その説明は省略する。この例では、同軸のポート同士の通信の回数がそれ以外の通信の回数と比べて多い通信経路選択アルゴリズムが採用されているので、＋Ｚ軸のポートを有するクロスバインタフェース１３−５と−Ｚ軸のポートを有するクロスバインタフェース１３−６がバイパスルート１４−３により接続されている。
【００３３】
ポートを形成するクロスバインタフェース１３−５，１３−６は、クロスバスイッチ１２Ａと対応するノード５０−５〜５０−６との間に接続される。ノード５０−５，〜５０−６は、計算ノード、或いは、Ｉ／Ｏノードであり、ノード５０−１〜５０−６のうち少なくとも１個のノードが計算ノードである。ネットワークシステム２１及び６個のノード５０−１〜５０−６は、情報処理装置を形成しており、ノード５０−１〜５０−６のうち２個以上のノードが計算ノードの場合には並列計算機が形成される。つまり、情報処理装置は、クロスバスイッチ１２Ａと、クロスバインタフェース１３−１〜１３−６と、バイパスルート１４−１〜１４−３と、ノード５０−１〜５０−６を有する。
【００３４】
図７は、実施例におけるネットワークシステムの他の例を説明する図である。図７は、２次元メッシュトーラストポロジー、２次元ライントーラストポロジー、２次元メッシュリングトポロジー、２次元ラインリングトポロジーのいずれかのトポロジーを用いるネットワークシステム３１を示す。図７中、図５と同一部分には同一符号を付し、その説明は省略する。この例では、互いに異なる軸のポート同士の通信の回数が同軸のポート同士の通信の回数と比べて多い通信経路選択アルゴリズムが採用されているので、＋Ｘ軸のポートを有するクロスバインタフェース１３−１と＋Ｙ軸のポートを有するクロスバインタフェース１３−３がバイパスルート１４−４により接続されている。又、−Ｘ軸のポートを有するクロスバインタフェース１３−２と−Ｙ軸のポートを有するクロスバインタフェース１３−４がバイパスルート１４−５により接続されている。
【００３５】
図８は、実施例におけるネットワークシステムの他の例を説明する図である。図８は、ツリー型トポロジーを用いるネットワークシステム４１を示す。クロスバスイッチ１２Ｂには、親のクロスバインタフェース１３Ａ−１及び子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２が接続されている。親のクロスバインタフェース１３Ａ−１からクロスバスイッチ１２Ｂを介して子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２が分岐することでツリー型が形成されている。この例では、子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２のポートから親のクロスバインタフェース１３Ａ−１のポートへ通信の回数が子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２のポート同士の通信の回数と比べて多い通信経路選択アルゴリズムが採用されているので、子のクロスバインタフェース１３Ｂ−１のポートと親のクロスバインタフェース１３Ａ−１のポートがバイパスルート１４Ｂ−１により接続されている。又、子のクロスバインタフェース１３Ｂ−２のポートと親のクロスバインタフェース１３Ａ−１のポートがバイパスルート１４Ｂ−２により接続されている。尚、この例では、子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２のポートから親のクロスバインタフェース１３Ａ−１のポートへのバイパスルート１４Ｂ−１，１４Ｂ−２が設けられているが、親のクロスバインタフェース１３Ａ−１から子のクロスバインタフェース１３Ｂ−１，１３Ｂ−２のポートへのバイパスルートを更に設けても良いことは言うまでもない。
【００３６】
ポートを形成するクロスバインタフェース１３Ａ−１，１３Ｂ−１，１３Ｂ−２は、クロスバスイッチ１２Ｂと対応するノード５０Ａ−１，５０Ｂ−１，５０Ｂ−２との間に接続される。ノード５０−Ａ−１，５０Ｂ−１，５０Ｂ−２は、計算ノード、或いは、Ｉ／Ｏノードであり、ノード５０Ａ−１，５０Ｂ−１，５０Ｂ−２のうち少なくとも１個のノードが計算ノードである。ネットワークシステム４１及び３個のノード５０Ａ−１，５０Ｂ−１，５０Ｂ−２は、情報処理装置を形成しており、ノードノード５０Ａ−１，５０Ｂ−１，５０Ｂ−２のうち２個以上のノードが計算ノードの場合には並列計算機が形成される。つまり、情報処理装置は、クロスバスイッチ１２Ｂと、クロスバインタフェース１３Ａ−１，１３Ｂ−１，１３Ｂ−２と、バイパスルート１４Ｂ−１，１４Ｂ−２と、ノードノード５０Ａ−１，５０Ｂ−１，５０Ｂ−２を有する。
【００３７】
ツリー型トポロジーにおいて、例えば孫及びひ孫のクロスバインタフェースを更に設ける場合には、図８に示すようにノード５０Ｂ−１に孫のクロスバインタフェース１３Ｃ−１が接続され、孫のクロスバインタフェース１３Ｃ−１はクロスバスイッチ１２Ｃを介してひ孫のクロスバインタフェース（図示せず）に接続される。孫のクロスバインタフェース１３Ｃ−１及びひ孫のクロスバインタフェースの構成は、クロスバインタフェース１３Ａ−１，１３Ｂ−１，１３Ｂ−２と同様の構成で良い。又、クロスバスイッチ１２Ｃの構成も、クロスバスイッチ１２Ｂと同様の構成で良い。
【００３８】
尚、上記ネットワークシステム１１，２１，３１，４１においては、１つのクロスバインタフェースに対して接続されるバイパスルートは１つであるが、採用する通信経路選択アルゴリズムに応じて、１つのクロスバインタフェースに対して２以上のクロスバインタフェースを接続するために２以上のバイパスルートを接続するようにしても良い。例えば、図６に示すネットワークシステム２１において、＋Ｘ軸のポートを有するクロスバインタフェース１３−１と＋Ｚ軸のポートを有するクロスバインタフェース１３−５をバイパスルートにより接続しても良い。
【００３９】
図９は、クロスバインタフェースの一例を説明する図である。説明の便宜上、図９に示すクロスバインタフェース１３に接続されるバイパスルート１４は１つであるものとする。クロスバインタフェース１３は、図９に示す如く接続されたクロスバ受信部１３１、外部インタフェース１３２、ヘッダ解析部１３３、及びクロスバ送信部１３４を有する。
【００４０】
クロスバ受信部１３１には、クロスバスイッチ１２からのパケットと、バイパスルート１４からのパケットが入力される。使用する通信プロトコルに応じてパケットをクロスバスイッチ１２を経由するかバイパスルート１４を経由するかのいずれか１つを選択する排他制御がクロスバインタフェース１３に対して予め行われているので、クロスバ受信部１３１はクロスバスイッチ１２からのパケット又はバイパスルート１４からのパケットを外部インタフェース１３２へ供給する。
【００４１】
外部インタフェース１３２は、ノード５０に接続される。ノード５０は、計算ノード又はＩ／Ｏノードである。外部インタフェース１３２は、クロスバ受信部１３１からのパケットをノード５０へ出力し、ノード５０からのパケットをヘッダ解析部１３３へ供給する。ノード５０は、メモリ（図示せず）等と共に例えば並列計算機を形成するシステムボード（図示せず）に搭載されたＣＰＵであっても良い。又、ノード５０は、上記システムボードとは別体のＩ／Ｏボードに搭載されたＩ／Ｏインタフェースであっても良い。
【００４２】
ヘッダ解析部１３３は、外部インタフェース１３２からのパケットのヘッダに含まれるルーティング情報に基づいて目的とする（又は、宛先となる）ノード座標、即ち、パケットの宛先情報を認識し、パケットを転送するべきポートのＸ座標及びＹ座標を決定する。ヘッダに含まれるルーティング情報は、パケットの宛先情報（例えば、デスティネーションアドレス）に加え、パケットの発行元の情報（例えば、ソースアドレス）を含んでも良い。
【００４３】
クロスバ送信部１３４は、リクエストを発行してクロスバスイッチ１２からパケットの送信を許可するグラント（Grant）が与えられると、外部インタフェース１３２からヘッダ解析部１３３を介して得られるパケットをクロスバスイッチ１２へ出力する。一方、リクエストを発行してもクロスバスイッチ１２からグラントが与えられないと、クロスバ送信部１３４は、外部インタフェース１３２からヘッダ解析部１３３を介して得られるパケットをクロスバスイッチ１２へ出力することなくバイパスルート１４へ出力する。
【００４４】
クロスバ送信部１３４は、ＦＩＦＯ（First-In-First-Out）等で形成されたバッファ（図示せず）が複数個並列接続された構成を有しても良い。この場合、クロスバ送信部１３４は、発行したリクエストに対してクロスバスイッチ１２からグラントが与えられるまではパケットをバッファ内に保持することができる。このように、クロスバインタフェース１３がバッファを用いた仮想チャネルを有する場合には、バイパスルート１４を経由するデータとそれ以外のクロスバスイッチ１２を経由するデータとを同時に、即ち、並列に転送することも可能であり、バンド幅を実質的に増加させることができる。
【００４５】
クロスバインタフェースに接続されるバイパスルートが２以上の場合には、図９と同様の構成が各バイパスルートに対して設けられることは言うまでもない。
【００４６】
並列計算機は、一般的にはネットワーク用のポートとＣＰＵのポートを有し、場合によってはＩ／Ｏノードのポートを有する。ここでは説明の便宜上、ＣＰＵのポート名をＣＰＵ０，ＣＰＵ１とし、Ｉ／Ｏノードのポート名をＩＯ０、ＩＯ１とする。次元オーダルーティング（ＤＯＲ）を採用している場合、ＣＰＵのポートＣＰＵ０，ＣＰＵ１は＋Ｘ軸、−Ｘ軸のポートと通信する可能性が高いので、図５又は図６の場合のようにＣＰＵ０と＋Ｘ軸のポート、ＣＰＵ１と−Ｘ軸のポートを組にしてバイパスルートを設けることができる。この場合、ＣＰＵ側で＋Ｘ軸のポートに出力されるものはＣＰＵのポートＣＰＵ０に入れるようにするアルゴリズムを加えるとより効果的である。
【００４７】
又、次元オーダルーティング（ＤＯＲ）を採用している場合は、Ｉ／ＯノードはＺ軸のポートと通信する可能性が高い。そこで、ＩＯ０と＋Ｚ軸のポート、ＩＯ１と−Ｚ軸のポートを組にしてバイパスルートを設けることができる。
【００４８】
尚、言うまでもなく、上記実施例のネットワークシステムは、並列計算機の通信のみに対して適用可能なものではなく、汎用的に利用できる。
【００４９】
図１０は、クロスバスイッチの動作、即ち、調停処理を説明するフローチャートである。ここでは説明の便宜上、図５に示すクロスバスイッチ１２の動作を例に取って説明する。
【００５０】
図１０において、ステップＳ２１は、＋Ｘ，−Ｘ，＋Ｙ，−Ｙ軸のポートからのリクエスト（要求）を確認し、ステップＳ２２は、＋Ｘ，−Ｘ，＋Ｙ，−Ｙ軸のポートのいずれかの軸からパケットを受け取っているか否かを判定する。リクエストは、クロスバスイッチ１２がポート（入力ポート）から受け取ったパケットを出力するべきポート（出力ポート）を示す。ステップＳ２２の判定結果がＹＥＳであると、ステップＳ２３は＋Ｘ，−Ｘ，＋Ｙ，−Ｙ軸のポートへはパケットの送信を許可するグラントを与えることなく、処理はステップＳ３４へ進む。ステップＳ３４は、受け取っているパケットが終了したか否かを判定し、判定結果がＹＥＳになると処理はステップＳ２１へ戻る。
【００５１】
ステップＳ２２の判定結果がＮＯであると、ステップＳ２４は、＋Ｘ軸のポートからのリクエストがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２５へ進み、判定結果がＮＯであれば処理はステップＳ２６へ進む。ステップＳ２５は、＋Ｘ軸のポートへグラントを与え、処理は後述するステップＳ３３へ進む。ステップＳ２６は、−Ｘ軸のポートからのリクエストがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２７へ進み、判定結果がＮＯであれば処理はステップＳ２８へ進む。ステップＳ２７は、−Ｘ軸のポートへグラントを与え、処理は後述するステップＳ３３へ進む。ステップＳ２８は、＋Ｙ軸のポートからのリクエストがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２９へ進み、判定結果がＮＯであれば処理はステップＳ３０へ進む。ステップＳ２９は、＋Ｙ軸のポートへグラントを与え、処理は後述するステップＳ３３へ進む。ステップＳ３０は、−Ｙ軸のポートからのリクエストがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ３１へ進み、判定結果がＮＯであれば処理はステップＳ３２へ進む。ステップＳ３１は、−Ｙ軸のポートへグラントを与え、処理はステップＳ３３へ進む。
【００５２】
ステップＳ３３は、リクエストの処理が終了したか否かを判定し、判定結果がＹＥＳになると処理はステップＳ２１へ戻る。又、ステップＳ３２の後、処理はステップＳ２１へ戻る。
【００５３】
このようにして、クロスバスイッチ１２は、パケットを受け取っていないときにリクエストがきたらこのリクエストのソースへグラントを与える。上記調停処理は、クロスバスイッチ１２内の出力ポートの部分で実行可能である。
【００５４】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
クロスバスイッチと、
前記クロスバスイッチに接続されたポートを有する複数のクロスバインタフェースと、
前記複数のクロスバインタフェースのうち、使用頻度が所定値以上のポートの組を形成するクロスバインタフェース同士を直接接続するバイパスルートを備えた、ネットワークシステム。
（付記２）
前記バイパスルートで直接接続されるクロスバインタフェースは、通信経路選択アルゴリズムに基づいて決定されている、付記１記載のネットワークシステム。
（付記３）
前記通信経路選択アルゴリズムは次元オーダルーティングであり、前記バイパスルートで直接接続されるクロスバインタフェースは、データの宛先となるノード座標と同軸のポートを形成する、付記２記載のネットワークシステム。
（付記４）
前記バイパスルートで直接接続されるクロスバインタフェースは、データの宛先となるノード座標と互いに異なる軸のポートを形成する、付記２記載のネットワークシステム。
（付記５）
各クロスバインタフェースは、前記クロスバスイッチとプロセッサ又は入出力ノードとの間に接続されている、付記１乃至４のいずれか１項記載のネットワークシステム。
（付記６）
各クロスバインタフェースは、前記クロスバスイッチ及び前記バイパスルートに接続されたクロスバ送信部を有し、
前記クロスバ送信部は、リクエストを発行して前記クロスバスイッチからパケットの送信を許可するグラントが与えられると前記プロセッサ又は入出力ノードからのパケットを前記クロスバスイッチへ出力すると共に、前記リクエストを発行して前記クロスバスイッチからグラントが与えられないと前記プロセッサ又は入出力ノードからのパケットを前記クロスバスイッチへ出力することなく前記バイパスルートへ出力する、付記５記載のネットワークシステム。
（付記７）
第１の計算を行い、パケットを送信する第１の計算ノードと、
前記第1の計算ノードに接続され、前記第１の計算ノードが送信するパケットを転送する第１のクロスバインタフェースと、
接続された前記第１の計算ノードからのパケットを受信し、パケットの経路を切り替えるクロスバスイッチと、
前記クロスバスイッチと前記第１のクロスバインタフェースに接続され、前記クロスバスイッチ又は前記第１のクロスバインタフェースからのパケットを転送する第２のクロスバインタフェースと、
接続された前記第２のクロスバインタフェースからのパケットを受信し、第２の計算を行う第２の計算ノードを有する情報処理装置。
（付記８）
前記第２のクロスバインタフェースは、前記クロスバスイッチからのパケットと、前記第１のクロスバインタフェースからのパケットを同時に受信する付記７記載の情報処理装置。
（付記９）
前記第２のクロスバインタフェースは、前記クロスバスイッチ及び前記第２のクロスバインタフェースに接続されたクロスバ送信部を有し、
前記クロスバ送信部は、パケット送信の要求を発行して前記クロスバスイッチからパケットの送信の許可が与えられた場合、前記計算ノードからのパケットを前記クロスバスイッチへ出力するとともに、前記要求を発行して前記クロスバスイッチから前記許可が与えられない場合、前記第１のクロスバインタフェースへ出力する付記７記載の情報処理装置。
（付記１０）
クロスバスイッチと、
複数のノードと、
ポートを有すると共に前記クロスバスイッチと前記複数のノードの間に接続された複数のクロスバインタフェースと、
前記複数のクロスバインタフェースのうち、使用頻度が所定値以上のポートの組を形成するクロスバインタフェース同士を直接接続するバイパスルートを備え、
前記複数のノードは、少なくとも１つの計算ノードと少なくとも１つの入出力ノードで形成される、情報処理装置。
（付記１１）
前記バイパスルートで直接接続されるクロスバインタフェースは、通信経路選択アルゴリズムに基づいて決定されている、付記１０記載の情報処理装置。
（付記１２）
前記通信経路選択アルゴリズムは次元オーダルーティングであり、前記バイパスルートで直接接続されるクロスバインタフェースは、データの宛先となるノード座標と同軸のポートを形成する、付記１１記載の情報処理装置。
（付記１３）
前記バイパスルートで直接接続されるクロスバインタフェースは、データの宛先となるノード座標と互いに異なる軸のポートを形成する、付記１１記載の情報処理装置。
（付記１４）
各クロスバインタフェースは、前記クロスバスイッチ及び前記バイパスルートに接続されたクロスバ送信部を有し、
前記クロスバ送信部は、リクエストを発行して前記クロスバスイッチからパケットの送信を許可するグラントが与えられると前記ノードからのパケットを前記クロスバスイッチへ出力すると共に、前記リクエストを発行して前記クロスバスイッチからグラントが与えられないと前記ノードからのパケットを前記クロスバスイッチへ出力することなく前記バイパスルートへ出力する、付記１０乃至１３のいずれか1項記載の情報処理装置。
（付記１５）
各クロスバインタフェースは、前記クロスバスイッチ及び前記バイパスルートに接続されたクロスバ受信部を有し、
前記クロスバ受信部は、前記クロスバスイッチからのパケットと、前記クロスバインタフェースからのパケットを入力し、使用する通信プロトコルに応じた排他制御によりいずれか一方のパケットを選択出力する、付記１０乃至１３記載の情報処理装置。
（付記１６）
各クロスバインタフェースは、仮想チャネルを有すると共に前記クロスバスイッチ及び前記バイパスルートに接続されたクロスバ受信部を有し、
前記クロスバ受信部は、前記クロスバスイッチからのパケットと、前記クロスバインタフェースからのパケットを同時に入力し、両方のデータとを仮想チャネルを用いて並列に転送する、付記１０乃至１３記載の情報処理装置。
（付記１７）
第１の計算を行う第１の計算ノードが、パケットを送信するステップと、
前記第1の計算ノードに接続された第１のクロスバインタフェースが、前記第１の計算ノードが送信するパケットを転送するステップと、
クロスバスイッチが、前記クロスバスイッチに接続された前記第１の計算ノードからのパケットを受信し、パケットの経路を切り替えるステップと、
前記クロスバスイッチと前記第１のクロスバインタフェースに接続された第２のクロスバインタフェースが、前記クロスバスイッチ又は前記第１のクロスバインタフェースからのパケットを転送するステップと、
第２の計算を行う第２の計算ノードが、前記第２の計算ノードに接続された前記第２のクロスバインタフェースからのパケットを受信するステップを含むネットワークシステムの制御方法。
（付記１８）
前記第２のクロスバインタフェースは、前記クロスバスイッチからのパケットと、前記第１のクロスバインタフェースからのパケットを同時に受信する付記１７記載のネットワークシステムの制御方法。
（付記１９）
前記第２のクロスバインタフェースは、前記クロスバスイッチ及び前記第２のクロスバインタフェースに接続されたクロスバ送信部を有し、
前記クロスバ送信部は、パケット送信の要求を発行して前記クロスバスイッチからパケットの送信の許可が与えられた場合、前記計算ノードからのパケットを前記クロスバスイッチへ出力するとともに、前記要求を発行して前記クロスバスイッチから前記許可が与えられない場合、前記第１のクロスバインタフェースへ出力する付記１７記載のネットワークシステムの制御方法。
（付記２０）
第１のクロスバインタフェースが受信したパケットをクロスバスイッチへ転送するステップと、
前記クロスバスイッチが前記第１のクロスバスイッチからのパケットの経路を通信経路選択アルゴリズムに基づいて決定された経路に切り替えて転送するステップと、
前記クロスバスイッチと前記第１のクロスバインタフェースに接続された第２のクロスバインタフェースが、前記クロスバスイッチからのパケット又は前記第１のクロスバインタフェースからのパケットをバイパスルートを介して受信するステップを含む、ネットワークシステムの制御方法。
（付記２１）
前記第１のクロスバインタフェースからリクエストを発行して前記クロスバスイッチからパケットの送信を許可するグラントが与えられると前記第１のクロスバインタフェースが受信したパケットを前記クロスバスイッチへ出力すると共に、前記リクエストを発行して前記クロスバスイッチからグラントが与えられないと前記第１のクロスバインタフェースが受信したパケットを前記クロスバスイッチへ出力することなく前記バイパスルートを介して前記第２のクロスバインタフェースへ出力するステップを含む、付記２０記載のネットワークシステムの制御方法。
（付記２２）
前記第２のクロスバインタフェースが前記クロスバスイッチからのパケットと前記クロスバインタフェースからのパケットを入力し、使用する通信プロトコルに応じた排他制御によりいずれか一方のパケットを前記第２のクロスバインタフェースに接続されたノードに選択出力するステップを含む、付記２０記載のネットワークシステムの制御方法。
（付記２３）
前記第２のクロスバインタフェースが前記クロスバスイッチからのパケットと前記バイパスルートを介した前記第１のクロスバインタフェースからのパケットを同時に入力し、両方のデータとを仮想チャネルを用いて前記第２のクロスバインタフェースに接続されたノードに並列に転送する、付記２０記載のネットワークシステムの制御方法。
【００５５】
以上、開示のネットワークシステム及び情報処理装置を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００５６】
１１      ネットワークシステム
１２      クロスバスイッチ
１３−１〜１３−４      クロスバインタフェース
１４−１，１４−２      バイパスルート
５０，５０−１〜５０−６      ノード
【図１】
0005493575.tif 000002
【図２】
0005493575.tif 000003
【図３】
0005493575.tif 000004
【図４】
0005493575.tif 000005
【図５】
0005493575.tif 000006
【図６】
0005493575.tif 000007
【図７】
0005493575.tif 000008
【図８】
0005493575.tif 000009
【図９】
0005493575.tif 000010
【図１０】
0005493575.tif 000011