(57)【要約】  第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、計算ノードは、受信したデータを第１の伝送路を介して隣接する後段のノードに転送する第１のチャネルと、受信したデータを第２の伝送路を介して隣接する後段のノードに転送する第２のチャネルと、第１又は第２のチャネルが受信したデータを受信し、処理したデータを隣接する後段のノードに送信する演算処理装置を有し、入出力ノードは、前段の計算ノードの第１のチャネルが転送したデータ又は前段の計算ノードの演算処理装置が送信したデータを受信する第３のチャネルと、受信したデータを第２の伝送路を介して隣接する後段の計算ノードの第１のチャネルに転送する第４のチャネルと、第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第２のチャネルに送信する入出力処理装置を有する。
2012127619.tif 000002
【特許請求の範囲】
【請求項１】
第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、
前記計算ノードは、
隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第１のチャネルと、
隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第２のチャネルと、
前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、
前記入出力ノードは、
隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第３のチャネルと、
隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第１のチャネルに転送する第４のチャネルと、
前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第２のチャネルに送信する入出力処理装置を有することを特徴とする並列計算機システム。
【請求項２】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する前段の計算ノードの第１のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第４のチャネルに転送することを特徴とする請求項１記載の並列計算機システム。
【請求項３】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する前段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第４のチャネルに送信することを特徴とする請求項１記載の並列計算機システム。
【請求項４】
前記並列計算機ノードにおいて、
入出力ノードと複数の計算ノードはさらに、第２の方向にデータが転送される第３及び第４の伝送路を介して接続され、
前記計算ノードはさらに、
隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第３の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第５のチャネルと、
隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第４の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第６のチャネルを有し、
前記演算処理装置はさらに、
前記第５のチャネル又は前記第６のチャネルが受信したデータを受信するとともに、処理したデータを隣接する前段の入出力ノード又は計算ノードに送信し、
前記入出力ノードはさらに、
隣接する後段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第７のチャネルと、
隣接する後段の計算ノードの第５のチャネルが転送したデータ又は隣接する後段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第４の伝送路を介して隣接する前段の計算ノードの第５のチャネルに転送する第８のチャネルを有し、
前記入出力処理装置はさらに、
前記第７のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する前段の計算ノードの第６のチャネルに送信することを特徴とする請求項１記載の並列計算機システム。
【請求項５】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する後段の計算ノードの第５のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第８のチャネルに転送することを特徴とする請求項４記載の並列計算機システム。
【請求項６】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する後段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第８のチャネルに送信することを特徴とする請求項４記載の並列計算機システム。
【請求項７】
第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、
いずれかの計算ノードが有する第１のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、
いずれかの計算ノードが有する第２のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、
いずれかの計算ノードが有する演算処理装置が、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、
前記入出力ノードが有する第３のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、
前記入出力ノードが有する第４のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第１のチャネルに転送し、
前記入出力ノードが有する入出力処理装置が、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第２のチャネルに送信することを特徴とする並列計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システム及び並列計算機システムの制御方法に関する。
【背景技術】
【０００２】
近年の並列計算機では、リング（環状）ネットワークやリングネットワークを多次元に拡張したトーラス（円環状）ネットワークの必要性が大きくなっている。並列計算機は、複数の計算ノードをネットワークで接続している。並列計算機では、計算ノードが増えるに従い、ネットワークにおけるノード接続にかかるコストが問題になる。リングネットワークは、多数のノード接続にかかるコストが低い点で有利である。【０００３】
リングネットワークは、ノード接続にかかるコストが低いだけでなく、対称なネットワークである。ネットワークの対称性は、ネットワーク全体を均等に、効率よく利用するために必要な特徴である。特に、並列計算プログラムは、各ノードに規則的な通信を行なわせる場合が多いため、並列計算機においてはネットワークの対称性が特に重要となる。規則的な通信パターンとは、ネットワーク内のいずれのノードからネットワーク構成を見ても、同様のネットワーク構成に見える状況であり、且つネットワーク内の各ノードが同様のアルゴリズムでデータ通信を行う状況である。【０００４】
一方、並列計算機は、多数の計算ノードと少数の入出力ノードで構成される。並列計算機が計算を行う際には、並列計算機は外部装置とのデータ入出力が必要になる。外部装置とのデータ入出力量は、一般的に、並列計算機における計算ノード間のデータ転送量に比べて小さい。このため、一部のノードにのみ入出力装置を取り付ければ十分な量のデータの入出力を行うことができる。入出力装置を取り付けたノードは、一般的に計算を実行せず、データの入出力専用の入出力ノードとなる。データの入出力処理を行う入出力ノードで計算を行うと、入出力処理を行わないノードに比べて計算が遅くなる。並列計算機で効率よく並列計算を行うには、それぞれのノードの計算や通信の進捗を揃えることが重要である。それぞれのノードで実行される処理の進捗に差があると、並列計算の効率が悪化する。【０００５】
また、従来より、複数のプロセッサを、機能を分担した２系統のネットワークで接続した可変構造別系列ネットワークを有する並列計算機が知られている。また、メッシュネットワークに入出力ノードを設けた並列計算機が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２３０４３５号公報
【特許文献２】特開平６−２８３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、リングネットワーク又はトーラスネットワークを使って、複数の計算ノード及び入出力ノードを接続する並列計算機では、複数の計算ノードは、ネットワークの対称性を利用した通信を行うことが困難である。これは、リングネットワーク又はトーラスネットワークに入出力ノードが追加されることで、規則的な通信パターンを維持することが困難になるからである。つまり、それぞれの計算ノードは、プログラム上は互いに同様の処理を実行するが、入出力を集中して行う入出力ノードが追加されることで、データが混み合う箇所が発生し、規則的な通信パターンが維持できなくなる。例えば、Cray社のXTと呼ばれる並列計算機では、トーラスネットワークで接続されたノードの一部を入出力専用の入出力ノードとして設定しているため、規則的な通信パターンによるネットワークの効率的な利用ができない。【０００８】
リングネットワーク又はトーラスネットワークを使って計算ノードのみを接続する並列計算機では、計算ノードを入出力ノードと接続するため、計算ノードのみを接続するネットワークとは別のネットワークを必要とする。例えば、IBM社のBlueGeneと呼ばれる並列計算機では、複数の計算ノードをトーラスネットワークで接続し、各計算ノードは入出力ノードとツリーネットワークで接続する。各ネットワークは、規則的な通信パターンにより、効率的に利用される。しかしながら、IBM社のBlueGeneでは、計算ノードと入出力ノードを単一のネットワークで接続することができず、必要なハードウェア量が増大し、並列計算機の製造コストが上昇する。【０００９】
上記課題に鑑み、明細書に開示された並列計算機システム及び並列計算機システムの制御方法は、計算ノードと入出力ノードをネットワークで接続し、かつ規則的な通信パターンで計算ノード間を通信することができる並列計算機システム及び並列計算機システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、明細書に開示された並列計算機システムは、第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、前記計算ノードは、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第１のチャネルと、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第２のチャネルと、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、前記入出力ノードは、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第３のチャネルと、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第１のチャネルに転送する第４のチャネルと、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第２のチャネルに送信する入出力処理装置を有する。【００１１】
明細書に開示された並列計算機システムの制御方法は、第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、いずれかの計算ノードが有する第１のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する第２のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する演算処理装置が、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、前記入出力ノードが有する第３のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、前記入出力ノードが有する第４のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第１のチャネルに転送し、前記入出力ノードが有する入出力処理装置が、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第２のチャネルに送信する。
【発明の効果】
【００１２】
明細書に開示された並列計算機システム及び並列計算機システムの制御方法は、計算ノードと入出力ノードをネットワークで接続し、かつ規則的な通信パターンで計算ノード間を通信することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態にかかる並列計算機システムの一例を示す模式図である。
【図２】（Ａ）は、図１の並列計算機システムに含まれる計算ノードの構成を模式的に示す図である。（Ｂ）は、図１の並列計算機システムに含まれる入出力ノードの構成を模式的に示す図である。
【図３】ルータ１１の構成を示す模式図である。
【図４】図１の並列計算機システムから入出力ノードを削除した場合の仮想チャネル間の依存関係を表す図である。
【図５】図１の並列計算機システムにおける仮想チャネル間の依存関係を表す図である。
【図６】図１の並列計算機システムにおけるリングネットワークを２次元のトーラスネットワークに拡張した例を示す図である。
【図７】図６の２次元のトーラスネットワークの変形例を示す図である。
【図８】各計算ノードで実行される、第１仮想チャネルに関するルーティング処理を示すフローチャートである。
【図９】各計算ノードで実行される、第２仮想チャネルに関するルーティング処理を示すフローチャートである。
【図１０】パケットが各計算ノードの演算器から出力される場合のルーティング処理を示すフローチャートである。
【図１１】（Ａ）は、各入出力ノードで実行される、第１仮想チャネルに関するルーティング処理を示すフローチャートである。（Ｂ）は、各入出力ノードで実行される、第２仮想チャネルに関するルーティング処理を示すフローチャートである。（Ｃ）は、パケットが各入出力ノードの演算器から出力される場合のルーティング処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００１５】
図１は、本実施の形態にかかる並列計算機システムの一例を示す模式図である。図２（Ａ）は、図１の並列計算機システムに含まれる計算ノードの構成を模式的に示す図である。図２（Ｂ）は、図１の並列計算機システムに含まれる入出力ノードの構成を模式的に示す図である。
【００１６】
図１に示すように、並列計算機システム１は、並列計算プログラムの計算を実行する計算ノード２−１〜２−４及び外部装置との間でデータを入出力する入出力ノード３を備えている。計算ノード２−１〜２−４及び入出力ノード３の各々は、隣接する２つのノードと双方向に接続するための２つのリンクを有する。計算ノード２−１〜２−４及び入出力ノード３は、リングネットワークを構成する。尚、並列計算機システム１に含まれる計算ノード及び入出力ノードの個数は、図１に示す個数に限定されるものではない。また、並列計算機システム１に適用されるネットワークは、リングネットワーク又はトーラスネットワークである。
【００１７】
図２（Ａ）に示すように、各計算ノード２−Ｎ（Ｎ＝１〜４）は、ルータ１１及び演算器１２を有する。ルータ１１は、隣接するノードから出力されたパケットを、当該パケットのヘッダに含まれる宛先に基づいてルーティングする。演算器（Processing Element; PE）１２は、ルータ１１で取得されたパケットに対し、予め割り当てられた並列計算プログラムに従って計算を実行する。また、必要に応じて、演算器１２は、その計算結果をルータ１１に返信する。
【００１８】
図２（Ｂ）に示すように、入出力ノード３は、ルータ２１、演算器２２、及び入出力装置２３を有する。ルータ２１は、隣接するノードから出力されたパケット又は入出力装置２３を介して入力したパケットを、当該パケットのヘッダに含まれる宛先に基づいてルーティングする。演算器２２は、入出力装置２３を介して入出力するパケットに対して演算を実行するが、図２（Ａ）に示された計算ノードの演算器１２とは異なり、並列計算プログラムに従ってルータ１１で取得されたパケットに対し、演算を実行するものではない。入出力装置２３は、不図示の外部装置との間でパケットを入出力する。演算器１２及び２２は、ＣＰＵ（Central Processing Unit）やメモリなどで構成されており、入出力装置２３は、外部装置との間でパケットを入出力する通信インターフェースで構成されている。
【００１９】
図３は、ルータ１１の構成を示す模式図である。尚、ルータ２１の構成は、図３のルータ１１の構成と同様であるので、ルータ２１の構成の説明は省略する。
【００２０】
図３において、ルータ１１は、複数のポート４１、クロスバースイッチ４２及びアービタ４３を備えている。各ポート４１は、ルーティング論理回路４４、複数の仮想チャネルバッファ４５及びセレクタ４６，４７を備えている。各ポート４１には、複数の仮想チャネルバッファ４５に対応する複数の仮想チャネルが割り当てられている。
【００２１】
セレクタ４７は、パケットの転送タイミングを制御するフロー制御信号を隣接するノードに出力すると共に当該隣接するノード又は演算器１２からパケットを入力する。各仮想チャネルバッファ４５は、入力パケットを保持する。ルーティング論理回路４４は、ルーティング規則を保持し、ルータ１１のルーティング動作を制御する。例えば、ルーティング論理回路４４は、入力パケットの出力方向の判断やルーティングの終了の判断等を行う。また、ルーティング論理回路４４は、入力パケットが自ノードの仮想チャネルと異なる、出力先のノードの仮想チャネルに乗り換えられるように、アービタ４３を介してクロスバースイッチ４２を制御する。セレクタ４６は、ルーティング論理回路４４及びアービタ４３からの信号に基づいて、仮想チャネルバッファ４５に保持されたパケットをクロスバースイッチ４２に出力する。アービタ４３は、セレクタ４６からの応答信号及び出力先のノードからのフロー制御信号に基づいて、複数の入力パケットを調停する調停信号をクロスバースイッチ４２に出力することにより、複数の入力パケットが衝突することを回避する。クロスバースイッチ４２は、アービタ４３からの調停信号に基づいて、各入力パケットの仮想チャネルを動的に切り替え、各入力パケットを出力先のノード又は演算器１２に出力する。
【００２２】
図４は、図１の並列計算機システム１から入出力ノード３を削除した場合の仮想チャネル間の依存関係を表す図である。
【００２３】
図４において、計算ノード２−１〜２−４の構成は、概略的に示されている。計算ノード２−１〜２−４の各々は、演算器１２と仮想チャネルバッファ４５Ａ−１、４５Ｂ−１、４５Ａ−２及び４５Ｂ−２とを含む。仮想チャネルバッファ４５Ａ−１を通過する経路が、右方向の第１仮想チャネルを構成する。仮想チャネルバッファ４５Ｂ−１を通過する経路が、右方向の第２仮想チャネルを構成する。仮想チャネルバッファ４５Ａ−２を通過する経路が、左方向の第１仮想チャネルを構成する。仮想チャネルバッファ４５Ｂ−２を通過する経路が、左方向の第２仮想チャネルを構成する。
【００２４】
図１の並列計算機システム１から入出力ノード３を削除した場合のルーティング規則では、各計算ノードの演算器１２は、パケットを右方向又は左方向の第１仮想チャネルに出力する。計算ノード２−１及び２−２の間、計算ノード２−３及び２−４の間、並びに計算ノード２−４及び２−１の間では、パケットは、第１仮想チャネルから第２仮想チャネルに、又は第２仮想チャネルから第１仮想チャネルに乗り換えることはない。一方、計算ノード２−２及び２−３の間では、パケットは、第１仮想チャネルから第２仮想チャネルに乗り換える。これは、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避するためである。このデッドロックとは、リングネットワーク又はトーラスネットワークに接続される複数の仮想チャネルのいずれかが、何らかの原因により受信したパケットの処理を滞らせた場合に、当該リングネットワーク又はトーラスネットワークに存在する他のパケットの処理も滞る結果、当該リングネットワーク又はトーラスネットワークに存在する全てのパケットの処理が滞ることをいう。この場合、計算ノード２−２及び２−３の間に、パケットが第１仮想チャネルから第２仮想チャネルに乗り換える仮想チャネル変更線を並列計算機システム１に設定する必要がある。具体的には、並列計算機システムの管理者が、パケットが第１仮想チャネルから第２仮想チャネルに乗り換えるルーティング規則を計算ノード２−２内のルーティング論理回路４４に設定する。例えば、図１の並列計算機システム１から入出力ノード３を削除する場合には、並列計算機システムの管理者は、パケットが第１仮想チャネルから第２仮想チャネルに乗り換えるルーティング規則を、入出力ノード３にパケットを出力する計算ノード内のルーティング論理回路４４に設定する。これにより、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避できる。
【００２５】
図５は、図１の並列計算機システム１における仮想チャネル間の依存関係を表す図である。
【００２６】
図５において、計算ノード２−１〜２−４及び入出力ノード３の構成は、概略的に示されている。計算ノード２−１〜２−４の各々は、演算器１２と仮想チャネルバッファ４５Ａ−１、４５Ｂ−１、４５Ａ−２及び４５Ｂ−２とを含む。入出力ノード３は、入出力装置２３と、仮想チャネルバッファ４５Ａ−１、４５Ｂ−１、４５Ａ−２及び４５Ｂ−２とを含む。計算ノード２−１〜２−４及び入出力ノード３の各々は、隣接するノードと接続する２つのリンクを有し、各リンクが第１仮想チャネル及び第２仮想チャネルを有する。尚、各ノードが有するリンク数は、複数であればよく、２つに限定されるものではない。仮想チャネルバッファ４５Ａ−１を通過する経路が、右方向の第１仮想チャネルを構成する。仮想チャネルバッファ４５Ｂ−１を通過する経路が、右方向の第２仮想チャネルを構成する。仮想チャネルバッファ４５Ａ−２を通過する経路が、左方向の第１仮想チャネルを構成する。仮想チャネルバッファ４５Ｂ−２を通過する経路が、左方向の第２仮想チャネルを構成する。
【００２７】
図１の並列計算機システム１のルーティング規則では、計算ノード２−１及び２−４の演算器１２は、パケットを右方向又は左方向の第１仮想チャネルに出力する。計算ノード２−２の演算器１２は、パケットを左方向の第１仮想チャネルに出力する、又はパケットを右方向の第１仮想チャネル若しくは第２仮想チャネルに出力する。右方向に出力されるパケットの宛先が入出力ノード３である場合には、計算ノード２−２の演算器１２は、当該パケットを右方向の第１仮想チャネルに出力する。右方向に出力されるパケットの宛先が入出力ノード３以外の計算ノードである場合には、計算ノード２−２の演算器１２は、当該パケットを右方向の第２仮想チャネルに出力する。
【００２８】
計算ノード２−４の演算器１２は、パケットを右方向の第１仮想チャネルに出力する、又はパケットを左方向の第１仮想チャネル若しくは第２仮想チャネルに出力する。左方向に出力されるパケットの宛先が入出力ノード３である場合には、計算ノード２−４の演算器１２は、当該パケットを左方向の第１仮想チャネルに出力する。左方向に出力されるパケットの宛先が入出力ノード３以外の計算ノードである場合には、計算ノード２−４の演算器１２は、当該パケットを左方向の第２仮想チャネルに出力する。
【００２９】
各計算ノードへ転送されるパケットは、第１仮想チャネルから第２仮想チャネルに、又は第２仮想チャネルから第１仮想チャネルに乗り換えることはない。入出力ノード３へ転送されるパケットのうち、宛先が入出力ノード３であるパケットは、仮想チャネルの乗り換えを行わない。一方、入出力ノード３へ転送されるパケットのうち、入出力ノード３を通過するパケットは、第１仮想チャネルから第２仮想チャネルに乗り換える。このように、入出力ノード３は、入出力ノード３を通過するパケットが第１仮想チャネルから第２仮想チャネルに乗り換える仮想チャネル変更線の役割を果たす。
【００３０】
また、入出力ノード３における右方向及び左方向の第１仮想チャネルは、宛先が入出力ノード３であるパケットが入出力ノード３へ到着するための専用の仮想チャネルになる。また、入出力ノード３からパケットを受信する計算ノードの第１仮想チャネルは、入出力ノード３からパケットを受信するための専用の仮想チャネルになる。その他の計算ノードの第１仮想チャネルは、隣接する計算ノードからパケットを受信する仮想チャネルになる。つまり、入出力ノード３における右方向及び左方向の第１仮想チャネル並びに入出力ノード３からパケットを受信する計算ノードの第１仮想チャネルは、その他の計算ノードの第１仮想チャネルと入出力ノード３からのみパケットを受信する点で異なる。この差違により、入出力ノード３からのパケット送り出し方向及び入出力ノード３へのパケット到着方向が、計算ノード間のパケットの転送方向と異なる場合でも、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避できる。
【００３１】
図６は、図１の並列計算機システム１におけるリングネットワークを２次元のトーラスネットワークに拡張した例を示す図である。図６において、垂直方向がＹ軸であり、水平方向がＸ軸である。図６では、４ｘ４の計算ノードを接続した２次元のトーラスネットワークの各軸に、１つの入出力ノードが追加されている。つまり、軸Ｘ１〜Ｘ４及び軸Ｙ１〜Ｙ４は、各々４つの計算ノード及び１つの入出力ノードを有する。
【００３２】
ここで、従来のトーラスネットワークのルーティングと同様の次元順ルーティングを仮定すると、パケットはＸ軸又はＹ軸上を１回しか直進できない。つまり、パケットは、図６の経路Ａ（軸Ｘ１→軸Ｙ１→軸Ｘ４）又は経路Ｂ（軸Ｙ３→軸Ｘ１→軸Ｙ２）で示すように、Ｘ軸上又はＹ軸上を２度通過することはできない。仮に、パケットがＸ軸上又はＹ軸上を２度通過すると、全ての仮想チャネルがパケットが処理する状態が発生し易くなり、その結果、トーラスネットワークにデッドロックが発生する可能性が高まる。
【００３３】
一方、本実施の形態では、上述したように、入出力ノードにおける右方向及び左方向の第１仮想チャネルが、宛先が入出力ノードであるパケットが当該入出力ノードへ到着するための専用の仮想チャネルになり、且つ入出力ノードからパケットを受信する計算ノードの第１仮想チャネルが、当該入出力ノードからパケットを受信するための専用の仮想チャネルになる。よって、入出力ノードに出入りする１ホップは、計算ノード間の通信に使用される仮想チャネルを使用しないので、入出力ノードからパケットを受信する計算ノード及び入出力ノードへパケットを送信する計算ノードが、パケットの進行方向を自由に決めることができる。換言すると、上述した２つの専用の仮想チャネルが設けられているので、入出力ノードに出入りする１ホップは、トーラスネットワークの次元順ルーティングから独立する。従って、図６の経路Ａでは、入出力ノード５０からのパケット送り出し方向及び入出力ノード５１へのパケット到着方向（即ちＸ軸方向）が、計算ノード５４及び５５間のパケットの転送方向（即ちＹ軸方向）と異なるが、図６の２次元トーラスネットワークにデッドロックは発生しない。同様に、図６の経路Ｂでも、図６の２次元トーラスネットワークにデッドロックは発生しない。このため、異なるＸ軸上の入出力ノード５０及び５１は互いに通信が可能である。同様に、異なるＹ軸上の入出力ノード５２及び５３も互いに通信が可能である。
【００３４】
また、軸Ｙ１上の計算ノード５４及び５５間に設けられた入出力ノード５６は仮想チャネル変更線の役割を果たす。よって、軸Ｙ１上の計算ノード５４及び５５間では、仮想的に拡張部分のないリングネットワーク又はトーラスネットワークとみなして、規則的な通信を行うことができ、ネットワークの効率的な利用が可能である。
【００３５】
図７は、図６の２次元のトーラスネットワークの変形例を示す図である。
【００３６】
並列計算機システム１におけるリングネットワークは、図７の２次元のトーラスネットワークに拡張することができる。図７の２次元のトーラスネットワークでは、入出力ノードを含まない軸Ｘ２及びＹ２が、入出力ノードを含む軸Ｘ１、Ｘ３、Ｘ４、Ｙ１、Ｙ３及びＹ４と混在する。この場合、ユーザは、図４に示す仮想チャネル変更線を軸Ｘ２及びＹ２に設定する。具体的には、ユーザは、パケットが第１仮想チャネルから第２仮想チャネルに乗り換えるルーティング規則を、軸Ｘ２上のいずれか１つの計算ノード及び軸Ｙ２上のいずれか１つの計算ノード内のルーティング論理回路４４に設定する。これにより、軸Ｘ２及びＹ２上でデッドロックが発生することを回避することができる。
【００３７】
尚、並列計算機システム１には、図６又は図７に示すような２次元のトーラスネットワークだけでなく、３次元のトーラスネットワークも適用できる。
【００３８】
図８は、各計算ノードで実行される、第１仮想チャネルに関するルーティング処理を示すフローチャートである。
【００３９】
まず、各計算ノードに含まれるルータ１１のルーティング論理回路４４が、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがトーラスネットワークを直進する必要があるか否かを判断する（ステップＳ１）。ルーティング論理回路４４が、パケットがトーラスネットワークを直進する必要があると判断した場合には（ステップＳ１でＹＥＳ）、ルーティング論理回路４４は、パケットの直進先が入出力ノードであるか又は出力すべきパケットが仮想チャネル変更線を跨ぐか否かを判断する（ステップＳ２）。
【００４０】
ルーティング論理回路４４が、パケットの直進先が入出力ノードである又は出力すべきパケットが仮想チャネル変更線を跨ぐと判断した場合には（ステップＳ２でＹＥＳ）、ルーティング論理回路４４は、パケットを転送するチャネルを第１仮想チャネルから第２仮想チャネルに変更する（ステップＳ３）。ルーティング論理回路４４は、パケットの転送方向を直進方向に設定する（ステップＳ４）。その後、本処理は終了する。ルーティング論理回路４４が、パケットの直進先が入出力ノードでない又は出力すべきパケットが仮想チャネル変更線を跨がないと判断した場合には（ステップＳ２でＮＯ）、手順は上記ステップＳ４に進む。
【００４１】
また、ルーティング論理回路４４が、パケットがトーラスネットワークを直進する必要がないと判断した場合には（ステップＳ１でＮＯ）、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングを終了するか否かを判断する（ステップＳ５）。ここでは、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがＸ軸、Ｙ軸又はＺ軸を進むルーティングを終了するか否かを判断している。
【００４２】
ルーティング論理回路４４が、トーラスネットワークのルーティングを終了すると判断した場合には（ステップＳ５でＹＥＳ）、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノード（ステップＳ２の入出力ノードと異なる他の入出力ノード）へ転送するか否かを判断する（ステップＳ６）。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送すると判断した場合には（ステップＳ６でＹＥＳ）、ルーティング論理回路４４は、パケットの転送方向を決定する（ステップＳ７）。ここでは、ルーティング論理回路４４は、パケットの転送方向を他の入出力ノードの方向に決定する。
【００４３】
ルーティング論理回路４４が、トーラスネットワークのルーティングを終了しないと判断した場合には（ステップＳ５でＮＯ）、ルーティング論理回路４４は、パケットの転送方向を決定する（ステップＳ７）。並列計算機システム１では、軸ごとに優先度が予め決められており、ルーティング論理回路４４は、その予め決められた各軸の優先度に従って、パケットの転送方向を決定する。例えば、Ｘ軸を進んできたパケットはＺ軸方向よりもＹ軸方向に優先的に進むと設定されている場合には、Ｘ軸を進んできたパケットは、次にＹ軸方向に進む。ステップＳ７の後、本処理は終了する。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送しないと判断した場合には（ステップＳ６でＮＯ）、ルーティング論理回路４４は、パケットを自身宛のパケットとして受信する（ステップＳ８）。その後、本処理は終了する。
【００４４】
図９は、各計算ノードで実行される、第２仮想チャネルに関するルーティング処理を示すフローチャートである。
【００４５】
まず、各計算ノードに含まれるルータ１１のルーティング論理回路４４が、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがトーラスネットワークを直進する必要があるか否かを判断する（ステップＳ１１）。ルーティング論理回路４４が、パケットがトーラスネットワークを直進する必要があると判断した場合には（ステップＳ１１でＹＥＳ）、ルーティング論理回路４４は、パケットの直進先が入出力ノードであるか又は出力すべきパケットが仮想チャネル変更線を跨ぐか否かを判断する（ステップＳ１２）。
【００４６】
ルーティング論理回路４４が、パケットの直進先が入出力ノードである又は出力すべきパケットが仮想チャネル変更線を跨ぐと判断した場合には（ステップＳ１２でＹＥＳ）、ルーティング論理回路４４は、パケットを破棄する（ステップＳ１３）。その後、本処理は終了する。一方、ルーティング論理回路４４が、パケットの直進先が入出力ノードでない又は出力すべきパケットが仮想チャネル変更線を跨がないと判断した場合には（ステップＳ１２でＮＯ）、ルーティング論理回路４４は、パケットの転送方向を直進方向に設定する（ステップＳ１４）。その後、本処理は終了する。
【００４７】
また、ルーティング論理回路４４が、パケットがトーラスネットワークを直進する必要がないと判断した場合には（ステップＳ１１でＮＯ）、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングを終了するか否かを判断する（ステップＳ１５）。ここでは、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがＸ軸、Ｙ軸又はＺ軸を進むルーティングを終了するか否かを判断している。
【００４８】
ルーティング論理回路４４が、トーラスネットワークのルーティングを終了すると判断した場合には（ステップＳ１５でＹＥＳ）、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノード（ステップＳ１２の入出力ノードと異なる他の入出力ノード）へ転送するか否かを判断する（ステップＳ１６）。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送すると判断した場合には（ステップＳ１６でＹＥＳ）、ルーティング論理回路４４は、パケットを転送するチャネルを第２仮想チャネルから第１仮想チャネルに変更する（ステップＳ１７）。ルーティング論理回路４４は、パケットの転送方向を決定する（ステップＳ１８）。ここでは、ルーティング論理回路４４は、パケットの転送方向を他の入出力ノードの方向に決定する。ステップＳ１８の後、本処理は終了する。
【００４９】
ルーティング論理回路４４が、トーラスネットワークのルーティングを終了しないと判断した場合には（ステップＳ１５でＮＯ）、手順は上記ステップＳ１７に進む。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送しないと判断した場合には（ステップＳ１６でＮＯ）、ルーティング論理回路４４は、パケットを自身宛のパケットとして受信する（ステップＳ１９）。その後、本処理は終了する。
【００５０】
図１０は、パケットが各計算ノードの演算器１２から出力される場合のルーティング処理を示すフローチャートである。
【００５１】
まず、各計算ノードに含まれるルータ１１のルーティング論理回路４４が、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングが必要であるか否かを判断する（ステップＳ２１）。ルーティング論理回路４４が、トーラスネットワークのルーティングが必要であると判断した場合には（ステップＳ２１でＹＥＳ）、ルーティング論理回路４４は、パケットの転送方向を決定する（ステップＳ２２）。ここでは、ルーティング論理回路４４は、予め決められた各軸の優先度に従って、パケットの転送方向を決定する。
【００５２】
ルーティング論理回路４４は、パケットの転送先が入出力ノードであるか否かを判断する（ステップＳ２３）。ルーティング論理回路４４が、パケットの転送先が入出力ノードであると判断した場合には（ステップＳ２３でＹＥＳ）、ルーティング論理回路４４は、パケットを転送するチャネルを第２仮想チャネルに設定する（ステップＳ２４）。その後、本処理は終了する。一方、ルーティング論理回路４４が、パケットの転送先が入出力ノードでないと判断した場合には（ステップＳ２３でＮＯ）、ルーティング論理回路４４は、パケットを転送するチャネルを第１仮想チャネルに設定する（ステップＳ２５）。その後、本処理は終了する。
【００５３】
ルーティング論理回路４４が、トーラスネットワークのルーティングが必要でないと判断した場合には（ステップＳ２１でＮＯ）、ルーティング論理回路４４は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノード（ステップＳ２３の入出力ノードと異なる他の入出力ノード）へ転送するか否かを判断する（ステップＳ２６）。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送すると判断した場合には（ステップＳ２６でＹＥＳ）、ルーティング論理回路４４は、パケットの転送方向を決定する（ステップＳ２７）。ここでは、ルーティング論理回路４４は、パケットの転送方向を他の入出力ノードの方向に決定する。その後、手順はステップＳ２５に進む。ルーティング論理回路４４が、パケットを他の入出力ノードへ転送しないと判断した場合には（ステップＳ２６でＮＯ）、ルーティング論理回路４４は、パケットを自ノードにループバックする（ステップＳ２８）。その後、本処理は終了する。
【００５４】
図１１（Ａ）は、各入出力ノードで実行される、第１仮想チャネルに関するルーティング処理を示すフローチャートである。図１１（Ｂ）は、各入出力ノードで実行される、第２仮想チャネルに関するルーティング処理を示すフローチャートである。図１１（Ｃ）は、パケットが各入出力ノードの演算器２２から出力される場合のルーティング処理を示すフローチャートである。
【００５５】
図１１（Ａ）において、各入出力ノードに含まれるルータ２１のルーティング論理回路４４は、第１仮想チャネルを介して隣接する計算ノードからパケットを受信する（ステップＳ３１）。このように、各入出力ノードの第１仮想チャネルは、パケットが各入出力ノードに到着するための専用の仮想チャネルになる。その後、本処理は終了する。
【００５６】
図１１（Ｂ）において、各入出力ノードに含まれるルータ２１のルーティング論理回路４４は、パケットの転送方向を直進に設定する（ステップＳ３２）。このように、各入出力ノードの第２仮想チャネルは、パケットを通過する仮想チャネルである。その後、本処理は終了する。
【００５７】
図１１（Ｃ）において、各入出力ノードに含まれるルータ２１のルーティング論理回路４４は、パケットを転送するチャネルを第１仮想チャネルに設定する（ステップＳ３３）。尚、入出力ノードからパケットを受信する計算ノードの第１仮想チャネルは、入出力ノードからパケットを受信するための専用の仮想チャネルになる。その後、本処理は終了する。
【００５８】
本実施の形態によれば、並列計算機システム１は、複数の計算ノードと入出力ノードとを単一のリングネットワーク又はトーラスネットワークで接続する。そして、入出力ノードの第１仮想チャネルが、宛先が自身であるデータが当該入出力ノードへ到着するための専用の仮想チャネルに設定される。入出力ノードからデータを受信する計算ノードの第１仮想チャネルは、当該入出力ノードからデータを受信するための専用の仮想チャネルに設定される。よって、入出力ノードに出入りする１ホップは、計算ノード間の通信に使用される仮想チャネルを使用しないので、リングネットワーク又はトーラスネットワークにデッドロックが発生することがなく、規則的な通信パターンで計算ノード間を通信することができる。
【００５９】
単一のリングネットワーク又はトーラスネットワークから入出力ノードを削除する場合には、入出力ノードの両端に接続された計算ノード同士が接続される。また、出力されるデータが第１仮想チャネルから第２仮想チャネルに乗り換える設定が、当該入出力ノードにデータを出力していた計算ノードに設定される。よって、リングネットワーク又はトーラスネットワークにデッドロックが発生することがなく、規則的な通信パターンで計算ノード間を通信することができる。
【符号の説明】
【００６０】
１  並列計算機システム
２−１〜２−４  計算ノード
３  入出力ノード
１１，２１  ルータ
１２，２２  演算器
２３  入出力装置
４１  ポート
４２  クロスバースイッチ
４３  アービタ
４４  ルーティング論理回路
４５  仮想チャネルバッファ
４６，４７  セレクタ
【図１】
2012127619.tif 000003
【図２】
2012127619.tif 000004
【図３】
2012127619.tif 000005
【図４】
2012127619.tif 000006
【図５】
2012127619.tif 000007
【図６】
2012127619.tif 000008
【図７】
2012127619.tif 000009
【図８】
2012127619.tif 000010
【図９】
2012127619.tif 000011
【図１０】
2012127619.tif 000012
【図１１】
2012127619.tif 000013
【手続補正書】
【提出日】平成25年10月2日(2013.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、
前記計算ノードは、
隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第１のチャネルと、
隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第２のチャネルと、
前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、
前記入出力ノードは、
隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第３のチャネルと、
隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第２のチャネルに転送する第４のチャネルと、
前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第１のチャネルに送信する入出力処理装置を有することを特徴とする並列計算機システム。
【請求項２】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する前段の計算ノードの第１のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第４のチャネルに転送することを特徴とする請求項１記載の並列計算機システム。
【請求項３】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する前段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第４のチャネルに送信することを特徴とする請求項１記載の並列計算機システム。
【請求項４】
前記並列計算機ノードにおいて、
入出力ノードと複数の計算ノードはさらに、第２の方向にデータが転送される第３及び第４の伝送路を介して接続され、
前記計算ノードはさらに、
隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第３の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第５のチャネルと、
隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第４の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第６のチャネルを有し、
前記演算処理装置はさらに、
前記第５のチャネル又は前記第６のチャネルが受信したデータを受信するとともに、処理したデータを隣接する前段の入出力ノード又は計算ノードに送信し、
前記入出力ノードはさらに、
隣接する後段の計算ノードの第５のチャネルが転送したデータ又は隣接する後段の計算ノードの演算処理装置が送信したデータを受信する第７のチャネルと、
隣接する後段の計算ノードの第６のチャネルが転送したデータ又は隣接する後段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第４の伝送路を介して隣接する前段の計算ノードの第６のチャネルに転送する第８のチャネルを有し、
前記入出力処理装置はさらに、
前記第７のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する前段の計算ノードの第５のチャネルに送信することを特徴とする請求項１記載の並列計算機システム。
【請求項５】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する後段の計算ノードの第５のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第８のチャネルに転送することを特徴とする請求項４記載の並列計算機システム。
【請求項６】
前記並列計算機システムにおいて、
前記入出力ノードに隣接する後段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第８のチャネルに送信することを特徴とする請求項４記載の並列計算機システム。
【請求項７】
第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、
いずれかの計算ノードが有する第１のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、
いずれかの計算ノードが有する第２のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、
いずれかの計算ノードが有する演算処理装置が、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、
前記入出力ノードが有する第３のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、
前記入出力ノードが有する第４のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第２のチャネルに転送し、
前記入出力ノードが有する入出力処理装置が、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第１のチャネルに送信することを特徴とする並列計算機システムの制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記目的を達成するため、明細書に開示された並列計算機システムは、第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、前記計算ノードは、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第１のチャネルと、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第２のチャネルと、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、前記入出力ノードは、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第３のチャネルと、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第２のチャネルに転送する第４のチャネルと、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第１のチャネルに送信する入出力処理装置を有する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
明細書に開示された並列計算機システムの制御方法は、第１の方向にデータが転送される第１及び第２の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、いずれかの計算ノードが有する第１のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第１の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する第２のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する演算処理装置が、前記第１のチャネル又は前記第２のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、前記入出力ノードが有する第３のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、前記入出力ノードが有する第４のチャネルが、隣接する前段の計算ノードの第１のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第２の伝送路を介して隣接する後段の計算ノードの第２のチャネルに転送し、前記入出力ノードが有する入出力処理装置が、前記第３のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第１のチャネルに送信する。
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2012127619.tif 000014
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2012127619.tif 000015
【国際調査報告】
2012127619.tif 000016
2012127619.tif 000017
2012127619.tif 000018
2012127619.tif 000019