(57)【特許請求の範囲】
【請求項１】
１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、
前記結合網に結合された演算ノードと、を備え、
前記スイッチ装置は、前記スイッチ装置に入力された信号を格納する複数の入力バッファを有し、
ｘ（ｘは自然数）段目の前記スイッチ装置は、前記演算ノードから他の演算ノードへの伝送されるデータが前記ｘ段目のスイッチ装置に入力された場合に、前記ｘ段目のスイッチ装置から（ｘ＋１）段目の前記スイッチ装置に前記データを送出し、前記データの送出に応じて前記（ｘ＋１）段目のスイッチ装置から前記ｘ段目のスイッチ装置に送出されるフロー制御信号に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、判定結果に基づいて、ｘ段目のスイッチ装置から次にデータを送出する送出先を（ｘ＋１）段目のスイッチ装置の中から選択し、
前記フロー制御信号は、前記データに対するＡＣＫ信号であり、
（ｘ＋１）段目のスイッチ装置に備えられた前記入力バッファは、データを格納できない状態の場合にはｘ段目のスイッチ装置へのＡＣＫ信号の応答を待機し、
前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるＡＣＫ信号に基づくハンドシェイクによりデータの出力を行う、
並列計算ネットワーク装置。
【請求項２】
前記入力バッファから転送されたデータの出力を行うクロスバースイッチと、を備え、
前記クロスバースイッチは前記入力バッファに調停情報を送信し、調停情報がビジー状態の場合には、前記入力バッファは前記クロスバースイッチへのデータ転送を待機する、
請求項１に記載の並列計算ネットワーク装置。
【請求項３】
前記入力バッファは、前記クロスバースイッチから前記入力バッファに送出された調停情報がビジー状態を示す場合にはデータを格納して転送を待機し、
前記調停情報がビジー状態から解除された場合には、前記入力バッファに先に入力されたデータから順番に、前記クロスバースイッチへデータの転送を行う、
請求項２に記載の並列計算ネットワーク装置。
【請求項４】
前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるフロー制御信号の応答時間を検出する検出回路を備え、
前記応答時間に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、
判定結果に基づいて接続先となる（ｘ＋１）段目のスイッチ装置を選択する、
請求項１乃至請求項３のいずれか１項に記載の並列計算ネットワーク装置。
【請求項５】
１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、
前記結合網に結合された演算ノードと、を備える並列計算ネットワーク装置の制御方法であって、
前記スイッチ装置は、前記スイッチ装置に入力された信号を格納する複数の入力バッファと、を有し、
前記演算ノードは他の演算ノードに伝送するデータを送出し、
前記データが入力されたｘ段目のスイッチ装置から（ｘ＋１）段目のスイッチ装置に前記データを送出し、
前記データに応じて（ｘ＋１）段目のスイッチ装置からｘ段目のスイッチ装置へ応答されるフロー制御信号に基づいて、（ｘ＋１）段目のスイッチ装置の状態を判定し、
前記判定結果に応じてｘ段目のスイッチ装置から次に送出するデータの転送先を（ｘ＋１）段目のスイッチ装置の中から選択し、
前記フロー制御信号は、前記データに対するＡＣＫ信号であり、
（ｘ＋１）段目のスイッチ装置に備えられた前記入力バッファは、データを格納できない状態の場合にはｘ段目のスイッチ装置へのＡＣＫ信号の応答を待機し、前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるＡＣＫ信号に基づくハンドシェイクによりデータの出力を行う、
並列計算ネットワーク装置の制御方法。
【請求項６】
前記入力バッファから転送されたデータの出力を行うクロスバースイッチと、を備える並列計算ネットワーク装置の制御方法であって、
前記クロスバースイッチは前記入力バッファに調停情報を送信し、調停情報がビジー状態の場合には、前記入力バッファは前記クロスバースイッチへのデータ転送を待機する、
請求項５に記載の並列計算ネットワーク装置の制御方法。
【請求項７】
前記入力バッファは、前記クロスバースイッチから前記入力バッファに送出された調停情報がビジー状態を示す場合にはデータを格納して転送を待機し、
前記調停情報がビジー状態から解除された場合には、前記入力バッファに先に入力されたデータから順番に、前記クロスバースイッチへデータの転送を行う、
請求項６に記載の並列計算ネットワーク装置の制御方法。
【請求項８】
前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるフロー制御信号の応答時間を検出し、
前記応答時間に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、
判定結果に基づいて接続先となる（ｘ＋１）段目のスイッチ装置を選択する、
請求項５乃至請求項７のいずれか１項に記載の並列計算ネットワーク装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算ネットワーク装置および並列計算ネットワーク装置の制御方法に関する。
【背景技術】
【０００２】
複数の演算ノードと相互結合網から構成される並列計算機において、複数の演算ノード間のデータ転送は相互結合網を介して行われる。相互結合網は、複数の演算ノードを結合するスイッチ装置から構成される。このとき、演算ノードの個数が少ない場合にはフルクロスバースイッチが用いられる。
【０００３】
しかし近年では、並列計算機システムの性能向上の為、演算ノードの個数が増大傾向にある。多数の演算ノードを接続する相互結合網は、フルクロスバースイッチではスイッチ装置の物理量が肥大化する。したがって相互結合網には、小サイズのスイッチ装置を多段に接続して構成されたものが使用されている。ここで、複数の小サイズのスイッチ装置によりデータが通過する経路は、通常は固定されている。
【０００４】
特許文献１には、ネットワークの性能および接続能力を高める適応交換装置に関する技術が開示されている。これによると、複数段からなるスイッチ装置において、前段にあるスイッチは次段スイッチの負荷情報を入手し、この情報より経路を選択する、適用型(Adaptive)のルーティングを行うことができる。
【０００５】
特許文献２には、通信システムおよび通信方法に関する技術が開示されている。これによると、パケットを再送する際に、パケットを再送するためのバッファサイズと確認応答の送信遅延間隔を最適化することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−１９７１２５号公報
【特許文献２】特開２００７−１８０６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、小サイズのスイッチ装置を多段に接続して構成した相互結合網では、データが通過する経路が固定されている。そのため、途中経路で競合負荷が高く通過時間を要するスイッチがあったとしても、それを迂回することは出来なかった。
【０００８】
特許文献１に開示されている技術では、途中経路で通過時間を要するスイッチがある場合にはそのスイッチを迂回することができるが、次段スイッチからの負荷情報通知の専用パスを追加することが必要であり、物量が増える構成であった。
【０００９】
特許文献２に開示されている技術は、スイッチ装置間を流れるデータの途中経路を効率化するものではない。
【００１０】
本発明の目的は、新たなインターフェース信号を追加することなく、動的に経路変更を可能とするスイッチ構成によりネットワーク性能を向上させることができる、並列計算ネットワーク装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様は、１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、前記結合網に結合された演算ノードと、を備え、ｘ（ｘは自然数）段目の前記スイッチ装置は、前記演算ノードから他の演算ノードへの伝送されるデータが前記ｘ段目のスイッチ装置に入力された場合に、前記ｘ段目のスイッチ装置から（ｘ＋１）段目の前記スイッチ装置に前記データを送出し、前記データの送出に応じて前記（ｘ＋１）段目のスイッチ装置から前記ｘ段目のスイッチ装置に送出されるフロー制御信号に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、判定結果に基づいて、ｘ段目のスイッチ装置から次にデータを送出する送出先を（ｘ＋１）段目のスイッチ装置の中から選択する、並列計算ネットワーク装置である。
【００１２】
また本発明の第２の態様は、１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、前記結合網に結合された演算ノードと、を備える並列計算ネットワーク装置の制御方法であって、前記演算ノードは他の演算ノードに伝送するデータを送出し、前記データが入力されたｘ段目のスイッチ装置から（ｘ＋１）段目のスイッチ装置に前記データを送出し、前記データに応じて（ｘ＋１）段目のスイッチ装置からｘ段目のスイッチ装置へ応答されるフロー制御信号に基づいて、（ｘ＋１）段目のスイッチ装置の状態を判定し、前記判定結果に応じてｘ段目のスイッチ装置から次に送出するデータの転送先を（ｘ＋１）段目のスイッチ装置の中から選択する、並列計算ネットワーク装置の制御方法である。
【発明の効果】
【００１３】
新たなインターフェース信号を追加することなく、ネットワーク性能を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる並列計算ネットワーク装置のブロック図である。
【図２】実施の形態１にかかる並列計算ネットワーク装置の詳細なブロック図である。
【図３】実施の形態１にかかるスイッチに係る詳細なブロック図である。
【発明を実施するための形態】
【００１５】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態に係る並列計算ネットワーク装置のブロック図である。並列計算ネットワーク装置は、複数の演算ノード１１０〜１１ｋ（ｋは自然数）と、相互結合網１２を備える。ここで、相互結合網１２は、スイッチ装置１２１を備える。
【００１６】
演算ノード１１０〜１１ｋは、演算処理を行う装置である。演算ノード１１０〜１１ｋは、それぞれスイッチ装置１２１に接続されている。演算ノード１１０〜１１ｋは、異なる演算ノード１１０〜１１ｋに対し通信データを転送する場合には、スイッチ装置１２１を介して通信する。
【００１７】
相互結合網１２は、スイッチ装置１２１を備える。スイッチ装置１２１は、複数の演算ノード１１０〜１１ｋにおける通信を媒介する。
【００１８】
図２は、本実施の形態に係る並列計算ネットワーク装置の詳細なブロック図である。並列計算ネットワーク装置は、演算ノード２１０〜２１ａ（ａは自然数）と、相互結合網２２と、演算ノード２２０〜２２ａを備える。演算ノード２１０〜２１ａの個数と、演算ノード２２０〜２２ａの個数は、異なる個数であってもよい。
【００１９】
相互結合網２２は多段のネットワーク装置を備える。ここでは３段のスイッチ装置を備えるネットワーク装置を例示して説明する。３段のスイッチ装置は１段ごとに複数のスイッチ装置を備える。３段のスイッチは、それぞれ１段スイッチ２３０〜２３ｍ（ｍは自然数）、２段スイッチ２４０〜２４ｎ（ｎは自然数）、３段スイッチ２５０〜２５ｍとする。１段スイッチ２３０〜２３ｍの個数と、３段スイッチ２５０〜２５ｍの個数は、異なる個数であってもよい。
【００２０】
１段スイッチ２３０〜２３ｍ、２段スイッチ２４０〜２４ｎ、３段スイッチ２５０〜２５ｍは、それぞれ複数の入力ポートおよび出力ポートを備える。１段スイッチ２３０〜２３ｍは、２段スイッチ２４０〜２４ｎと接続されている。ここで、１段スイッチ２３０は２段スイッチ２４０〜２４ｎのうちの複数個と接続されている。他の１段スイッチについても同様に、それぞれが２段スイッチ２４０〜２４ｎのうちの複数個と接続されている。
典型的には、１段スイッチ２３０〜２３ｍのそれぞれは、２段スイッチ２４０〜２４ｎの全てと接続されている。
１段スイッチ２３０〜２３ｍは、それぞれ接続されている２段スイッチ２４０〜２４ｎとデータの送受信を行う。ここで、１段スイッチ２３０〜２３ｍから２段スイッチ２４０〜２４ｎに、演算ノード２２０〜２２ａに送出するデータが出力される。また１段スイッチは、２段スイッチからＡＣＫ（Acknowledge）信号が入力される。
【００２１】
２段スイッチ２４０〜２４ｎは、３段スイッチ２５０〜２５ｍと接続されている。ここで、２段スイッチ２４０は３段スイッチ２５０〜２５ｍのうちの複数個と接続されている。他の２段スイッチについても同様に、それぞれが３段スイッチ２５０〜２５ｍのうちの複数個と接続されている。
典型的には、２段スイッチ２４０〜２４ｎのそれぞれは、３段スイッチ２５０〜２５ｍの全てと接続されている。
２段スイッチ２４０〜２４ｎは、それぞれ接続されている３段スイッチ２５０〜２５ｍとデータの送受信を行う。ここで、２段スイッチ２４０〜２４ｎから３段スイッチ２５０〜２５ｍに、演算ノード２２０〜２２ａに送出するデータが出力される。また２段スイッチは、３段スイッチからＡＣＫ（Acknowledge）信号が入力される。
【００２２】
演算ノード２１０〜２１ａは、それぞれ１段スイッチ２３０〜２３ｍの入力ポートに接続されている。典型的には、演算ノード２１０〜２１ａのうちの一部の演算ノードが、１段スイッチ２３０〜２３ｍの１つと接続されている。すなわち、１つの１段スイッチごとに複数の演算ノードが接続された状態となる。
演算ノード２１０〜２１ａは、演算ノード２２０〜２２ａに送出するデータを、それぞれ接続された１段スイッチ２３０〜２３ｍに出力する。
【００２３】
演算ノード２２０〜２２ａは、それぞれ３段スイッチ２５０〜２５ｍの出力ポートに接続されている。典型的には、演算ノード２２０〜２２ａのうちの一部の演算ノードが、３段スイッチ２５０〜２５ｍのうちの１つに接続されている。したがって、１つの３段スイッチごとに複数の演算ノードが接続された状態となる。演算ノード２２０〜２２ａは、３段スイッチ２５０〜２５ｍから出力されたデータを入力する。
すなわち、演算ノード２１０〜２１ａから出力されたデータは、１段スイッチ２３０〜２３ｍ、２段スイッチ２４０〜２４ｎ、３段スイッチ２５０〜２５ｍを介して、演算ノード２２０〜２２ａに入力される。
【００２４】
なお、スイッチ装置の段数は３段に限られず、さらに多段としても良い。また、ＡＣＫ信号は、信号の伝達フローを制御する他の信号であってもよい。
【００２５】
図３は、本実施の形態に係るスイッチ装置の詳細なブロック図である。このスイッチ装置３０は、１段スイッチ２３０〜２３ｍ、２段スイッチ２４０〜２４ｎ、３段スイッチ２５０〜２５ｍのそれぞれに使用する。すなわち、１段スイッチ２３０〜２３ｍ、２段スイッチ２４０〜２４ｎ、３段スイッチ２５０〜２５ｍが同様の構成となっている。相互結合網２２では、図３に示すスイッチ装置３０が直列に接続されている。
スイッチ装置３０は、複数個の入力バッファ３１０〜３１ｂ（ｂは自然数）と、クロスバースイッチ３２と、検出回路３３を備える。
【００２６】
入力バッファ３１０〜３１ｂは、それぞれ前段のスイッチ装置または演算ノードと接続されている。すなわち、スイッチ装置が１段スイッチ２３０〜２３ｍであれば、入力バッファ３１０〜３１ｂは演算ノードと接続され、スイッチ装置が１段スイッチ２３０〜２３ｍでなければ、入力バッファ３１０〜３１ｂは前段のスイッチ装置の出力ポートと接続している。また入力バッファ３１０〜３１ｂは、クロスバースイッチ３２と接続されている。
【００２７】
入力バッファ３１０〜３１ｂは、前段のスイッチ装置または演算ノードから入力した入力データを一旦格納し、格納したデータをクロスバースイッチ３２に出力する。例えば、入力バッファ３１０は入力＃０から出力された入力データ＃０を入力し、クロスバースイッチ３２にデータ＃０を出力する。ここで入力＃０は、１つのスイッチ装置または演算ノードであり、例えばスイッチ装置３０が２段スイッチであるとすると、入力＃０はスイッチ装置３０の入力バッファ３１０に接続された１段スイッチ２３０であり、入力＃１は１段スイッチ２３１である。
入力バッファ３１０〜３１ｂは、クロスバースイッチ３２から出力された調停情報を入力し、入力バッファ３１０〜３１ｂの使用状態に基づいて、接続されている前段のスイッチ装置または演算ノードに、入力ＡＣＫ信号を出力する。例えば、入力バッファ３１０は、クロスバースイッチ３２から出力された調停情報＃０を入力し、入力＃０に入力ＡＣＫ信号を出力する。
【００２８】
すなわちスイッチ装置３０は、入力バッファ３１０〜３１ｂが入力データと入力ＡＣＫ信号の送受信を行うインターフェースを備える。またスイッチ装置３０は、クロスバースイッチ３２が、出力データと出力ＡＣＫ信号の送受信を行うインターフェースを備える。
【００２９】
なお、入力バッファ３１０〜３１ｂは、典型的にはキューによるデータ構造によりデータの格納を行う。したがって、例えば１つのデータが入力バッファ３１０に入力された後に、先と異なるデータが入力バッファ３１０に入力された場合には、先に入力されたデータが出力されてから、後に入力されたデータが出力される。
【００３０】
クロスバースイッチ３２は、入力バッファ３１０〜３１ｂのそれぞれと接続されている。またクロスバースイッチ３２は、スイッチ装置３０の後段に備えられた複数のスイッチ装置または複数の演算ノード２２０〜２２ａに接続されている。例えば、スイッチ装置３０が２段スイッチ２４０だとすると、出力＃０は３段スイッチ２５０であり、出力＃１は３段スイッチ２５１である。
クロスバースイッチ３２は、入力バッファ３１０〜３１ｂから入力されたデータについて、出力先のルーティングを行う。例えば、１段スイッチ２３０のクロスバースイッチ３２から２段スイッチ２４０に出力データ＃０が入力されると、２段スイッチ２４０は、出力データ＃０を２段スイッチ２４０の入力バッファ３１０に格納する。２段スイッチ２４０のクロスバースイッチ３２はルーティングを行い、例えば、入力バッファ３１０に格納されたデータ＃０を、出力データ＃１として３段スイッチ２４１に出力する。３段スイッチ２４１は、出力データ＃１を３段スイッチ２４１の入力バッファ３１１に格納する。
また例えば、１段スイッチ２３１のクロスバースイッチ３２から２段スイッチ２４０に出力データ＃１が入力されると、２段スイッチ２４０は、出力データ＃１を２段スイッチ２４０の入力バッファ３１１に格納する。２段スイッチ２４０のクロスバースイッチ３２はルーティングを行い、例えば、入力バッファ３１０に格納されたデータ＃１を、出力データ＃３として３段スイッチ２４３に出力する。３段スイッチ２４３は、出力データ＃３を３段スイッチ２４３の入力バッファ３１３に格納する。
【００３１】
検出回路３３は、スイッチ装置３０の次段に備えられたスイッチ装置３０からクロスバースイッチ３２に入力された出力ＡＣＫ信号を検出する。クロスバースイッチ３２は、検出回路３３の検出結果に応じて、次段の複数のスイッチ装置３０のうち、１つのスイッチ装置３０にデータを伝送する。すなわち、クロスバースイッチ３２は、検出回路３３の検出結果に応じてルーティングを行う。
【００３２】
次に、本実施の形態における動作について説明する。
【００３３】
図２において、演算ノード２１０〜２１ａは、それぞれの演算ノード２１０〜２１ａが接続している１段スイッチ２３０〜２３ｍにデータを出力する。
【００３４】
演算ノード２１０〜２１ａからデータを入力された１段スイッチ２３０〜２３ｍは、それぞれ接続されているｎ個の２段スイッチ２４０〜２４ｎの１つにデータを出力する。例えば、各１段スイッチはデフォルトで出力先となる２段スイッチが設定されており、１段スイッチ２３０が最初にデータを出力する２段スイッチは２段スイッチ２４０である。このとき、１段スイッチ２３０〜２３ｍは、２段スイッチ２４０〜２４ｎのうち任意の１つにデータを出力できるものとする。すなわち、１段スイッチ２３０は、２段スイッチ２４０以外の２段スイッチに、データを転送することが可能な状態である。
【００３５】
１段スイッチ２３０〜２３ｍのいずれかから２段スイッチ２４０〜２４ｎのいずれかにデータを出力した場合には、出力先の２段スイッチから出力元の１段スイッチにＡＣＫ信号が出力される。例えば、１段スイッチ２３０から２段スイッチ２４０にデータを出力した場合には、２段スイッチ２４０から１段スイッチ２３０にＡＣＫ信号が出力される。
【００３６】
すなわち図３において、１段スイッチであるスイッチ装置３０のクロスバースイッチ３２から出力された出力データは、２段スイッチであるスイッチ装置３０の入力バッファ３１０〜３１ｂのいずれか１つに、入力データとして格納される。
【００３７】
このとき、２段スイッチのクロスバースイッチ３２は、さらに後段のスイッチ装置からの出力ＡＣＫ信号が不返却の場合には、そのデータが格納された入力バッファに、ビジー状態である旨の調停情報を出力する。例えば、２段スイッチの入力バッファ３１０に格納されたデータ＃０の行き先が演算ノード２２ａであり、演算ノード２２ａと接続する３段スイッチ２５ｍから、２段スイッチのクロスバースイッチ３２にＡＣＫ信号が返却されていなければ、２段スイッチのクロスバースイッチ３２は入力バッファ３１０にビジー状態である旨の調停情報＃０を出力する。
またクロスバースイッチ３２は、複数の入力バッファ３１０〜３１ｂから同時にデータ転送の要求を受けた場合には、いずれか１つを選択してデータの出力を行う。クロスバースイッチ３２は、競合するために選択されなかった入力バッファに対して、ビジー状態であることを示す調停情報を出力する。
【００３８】
ここで、入力バッファ３１０〜３１ｂは、キュー構造によりデータを一時的に蓄える構造とする。したがって、例えば入力バッファ３１０は、クロスバースイッチ３２から入力された調停情報がビジーの場合には、データをクロスバースイッチ３２に出力せずに入力バッファ３１０に一時的に格納する。調停情報のビジー状態が解除された場合には、入力バッファ３１０は、先に格納されたデータから順にクロスバースイッチ３２に転送する。
【００３９】
入力データが格納された入力バッファ３１０〜３１ｂは、入力ＡＣＫ信号を出力する。ここで、例えば特定の２段スイッチのクロスバースイッチ３２にデータが集中した場合には、入力バッファ３１０からクロスバースイッチ３２にデータ＃０の転送ができず、入力ＡＣＫ信号の返却に遅延が生じる。さらに、入力バッファ３１０の容量いっぱいまでデータが格納されるなど、入力バッファ３１０に新たなデータを格納できなくなった場合には、入力バッファ３１０は入力ＡＣＫ信号を出力しない。入力バッファ３１０は新たにデータが格納できる状態になった場合に、入力ＡＣＫ信号＃０を出力する。
【００４０】
１段スイッチのクロスバースイッチ３２は、データの出力先である２段スイッチから出力された入力ＡＣＫ信号を、出力ＡＣＫ信号として入力する。１段スイッチのクロスバースイッチ３２は、２段スイッチから出力ＡＣＫ信号が不返却の場合には該当出力への転送を行わず、出力ＡＣＫ信号が返却された場合に、該当出力への転送を再開する。例えば、１段スイッチ２３０から２段スイッチ２４０にデータを転送した場合には、１段スイッチ２３０は２段スイッチ２４０からのＡＣＫ信号の入力があってから、２段スイッチ２４０へのデータの転送を再開する。
すなわち、ＡＣＫ信号を用いたハンドシェイクを行うことにより、ｎ段スイッチ間のインターフェースにおいて通信データをロストすることなく、データ転送を行う。
【００４１】
１段スイッチの検出回路３３は、クロスバースイッチ３２がデータを出力してから、入力ＡＣＫ信号が入力されるまでの時間を検出する。すなわち、ＡＣＫ信号の応答時間を検出する。
なお、１段スイッチ２３０〜２３ｍがデータを出力し、入力ＡＣＫ信号が入力されるまでの最短時間は、１段スイッチから２段スイッチへのデータ転送の信号線遅延と、２段スイッチの入力バッファでの制御の遅延と、２段スイッチから１段スイッチへのＡＣＫ信号の信号線遅延の総和となる。
【００４２】
１段スイッチ２３０〜２３ｍは、それぞれデータを出力してから入力ＡＣＫ信号が入力されるまでの時間に基づいて、データを伝送した２段スイッチの状態を判定し、次のデータの出力先となる２段スイッチの選択を行う。
すなわち１段スイッチ２３０〜２３ｍは、２段スイッチからの入力ＡＣＫ信号の返却の遅延が生じている場合や、入力ＡＣＫ信号が返却されない場合には、２段スイッチは負荷がかかっている状態であると判定して、後のデータからは他の２段スイッチに出力する。例えば、１段スイッチ２３０が２段スイッチ２４０にデータを送出し、ある一定時間以上２段スイッチからのＡＣＫ信号の応答がなければ、１段スイッチ２３０はデータの転送先を２段スイッチ２４０から他の２段スイッチに切り替えて、後続のデータの転送を行う。
【００４３】
２段スイッチ２４０〜２４ｎは、通信データに含まれる行き先演算ノード情報より、行き先の演算ノード２２０〜２２ａに接続される３段スイッチに通信データを出力する。
３段スイッチ２５０〜２５ｍは、通信データに含まれる行き先演算ノード情報より、行き先の演算ノード２２０〜２２ａに対し、通信データを出力する。
相互結合網２２がさらに多段のスイッチ装置３０から構成される場合には、上記の１段スイッチで行った動作を、他段のスイッチ装置３０でも行う。例えば、相互結合網２２が４段のスイッチ装置３０から構成される場合には、１段スイッチが２段スイッチを選択するのと同様に、２段スイッチが３段スイッチを選択して、データの転送を行う。
【００４４】
このようにして、送信ノードから受信ノードへの転送リクエストの通過経路を動的に変更可能とすることで、ネットワークの転送スループット性能を向上させることができる。
【００４５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、スイッチ装置間で送受信される信号は、データのフローを制御する信号であればＡＣＫ信号でなくともよく、ＳｅｌｅｃｔｉｖｅＡＣＫ信号などの他の信号であってもよい。
【００４６】
（付記１）１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、前記結合網に結合された演算ノードと、を備え、ｘ（ｘは自然数）段目の前記スイッチ装置は、前記演算ノードから他の演算ノードへの伝送されるデータが前記ｘ段目のスイッチ装置に入力された場合に、前記ｘ段目のスイッチ装置から（ｘ＋１）段目の前記スイッチ装置に前記データを送出し、前記データの送出に応じて前記（ｘ＋１）段目のスイッチ装置から前記ｘ段目のスイッチ装置に送出されるフロー制御信号に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、判定結果に基づいて、ｘ段目のスイッチ装置から次にデータを送出する送出先を（ｘ＋１）段目のスイッチ装置の中から選択する、並列計算ネットワーク装置。
【００４７】
（付記２）前記フロー制御信号は、前記データに対するＡＣＫ信号である、付記１に記載の並列計算ネットワーク装置。
【００４８】
（付記３）前記スイッチ装置は、前記スイッチ装置に入力された信号を格納する複数の入力バッファと、前記多数の入力バッファから転送されたデータの出力を行うクロスバースイッチと、を備え、前記クロスバースイッチは前記入力バッファに調停情報を送信し、調停情報がビジー状態の場合には、前記入力バッファは前記クロスバースイッチへのデータ転送を待機する、付記１または付記２に記載の並列計算ネットワーク装置。
【００４９】
（付記４）前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるフロー制御信号の応答時間を検出する検出回路を備え、前記応答時間に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、判定結果に基づいて接続先となる（ｘ＋１）段目のスイッチ装置を選択する、付記１乃至付記３のいずれか１つに記載の並列計算ネットワーク装置。
【００５０】
（付記５）前記入力バッファは、前記クロスバースイッチから前記入力バッファに送出された調停情報がビジー状態を示す場合にはデータを格納して転送を待機し、前記調停情報がビジー状態から解除された場合には、前記入力バッファに先に入力されたデータから順番に、前記クロスバースイッチへデータの転送を行う、付記１乃至付記４のいずれか１つに記載の並列計算ネットワーク装置。
【００５１】
（付記６）（ｘ＋１）段目のスイッチ装置に備えられた前記入力バッファは、データを格納できない状態の場合にはｘ段目のスイッチ装置へのＡＣＫ信号の応答を待機し、前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるＡＣＫ信号に基づくハンドシェイクによりデータの出力を行う、付記１乃至付記５のいずれか１つに記載の並列計算ネットワーク装置。
【００５２】
（付記７）１段につき複数のスイッチ装置を有し、前記スイッチ装置を多段に備える結合網と、前記結合網に結合された演算ノードと、を備える並列計算ネットワーク装置の制御方法であって、前記演算ノードは他の演算ノードに伝送するデータを送出し、前記データが入力されたｘ段目のスイッチ装置から（ｘ＋１）段目のスイッチ装置に前記データを送出し、前記データに応じて（ｘ＋１）段目のスイッチ装置からｘ段目のスイッチ装置へ応答されるフロー制御信号に基づいて、（ｘ＋１）段目のスイッチ装置の状態を判定し、前記判定結果に応じてｘ段目のスイッチ装置から次に送出するデータの転送先を（ｘ＋１）段目のスイッチ装置の中から選択する、並列計算ネットワーク装置の制御方法。
【００５３】
（付記８）前記フロー制御信号は、前記データに対するＡＣＫ信号である、付記７に記載の並列計算ネットワーク装置の制御方法。
【００５４】
（付記９）前記スイッチ装置は、前記スイッチ装置に入力された信号を格納する複数の入力バッファと、前記多数の入力バッファから転送されたデータの出力を行うクロスバースイッチと、を備える並列計算ネットワーク装置の制御方法であって、前記クロスバースイッチは前記入力バッファに調停情報を送信し、調停情報がビジー状態の場合には、前記入力バッファは前記クロスバースイッチへのデータ転送を待機する、付記７または付記８に記載の並列計算ネットワーク装置の制御方法。
【００５５】
（付記１０）前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるフロー制御信号の応答時間を検出し、前記応答時間に基づいて前記（ｘ＋１）段目のスイッチ装置の状態を判定し、判定結果に基づいて接続先となる（ｘ＋１）段目のスイッチ装置を選択する、付記７乃至付記９のいずれか１つに記載の並列計算ネットワーク装置の制御方法。
【００５６】
（付記１１）前記入力バッファは、前記クロスバースイッチから前記入力バッファに送出された調停情報がビジー状態を示す場合にはデータを格納して転送を待機し、前記調停情報がビジー状態から解除された場合には、前記入力バッファに先に入力されたデータから順番に、前記クロスバースイッチへデータの転送を行う、付記７乃至付記１０のいずれか１つに記載の並列計算ネットワーク装置の制御方法。
【００５７】
（付記１２）（ｘ＋１）段目のスイッチ装置に備えられた前記入力バッファは、データを格納できない状態の場合にはｘ段目のスイッチ装置へのＡＣＫ信号の応答を待機し、前記ｘ段目のスイッチ装置は、前記（ｘ＋１）段目のスイッチ装置から入力されるＡＣＫ信号に基づくハンドシェイクによりデータの出力を行う、付記７乃至付記１１のいずれか１つに記載の並列計算ネットワーク装置の制御方法。
【符号の説明】
【００５８】
１１０-１１ｋ    演算ノード
１２    相互結合網
１２１    スイッチ装置
２２    相互結合網
２１０-２１ａ    演算ノード
２２０-２２ａ    演算ノード
２３０-２３ｍ    １段スイッチ
２４０-２４ｎ    ２段スイッチ
２５０-２５ｍ    ３段スイッチ
３０    スイッチ装置
３１０-３１ｂ    入力バッファ
３２    クロスバースイッチ
３３    検出回路
【図１】
0005521559.tif 000002
【図２】
0005521559.tif 000003
【図３】
0005521559.tif 000004