"第1の方向にデータが転送される第1及び第2の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、前記計算ノードは、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第1の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第1のチャネルと、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第2のチャネルと、前記第1のチャネル又は前記第2のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、前記入出力ノードは、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第3のチャネルと、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の計算ノードの第1のチャネルに転送する第4のチャネルと、前記第3のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第2のチャネルに送信する入出力処理装置を有することを特徴とする並列計算機システム。前記並列計算機システムにおいて、前記入出力ノードに隣接する前段の計算ノードの第1のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第4のチャネルに転送することを特徴とする請求項1記載の並列計算機システム。前記並列計算機システムにおいて、前記入出力ノードに隣接する前段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第4のチャネルに送信することを特徴とする請求項1記載の並列計算機システム。前記並列計算機ノードにおいて、入出力ノードと複数の計算ノードはさらに、第2の方向にデータが転送される第3及び第4の伝送路を介して接続され、前記計算ノードはさらに、隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第3の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第5のチャネルと、隣接する後段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第4の伝送路を介して隣接する前段の入出力ノード又は計算ノードに転送する第6のチャネルを有し、前記演算処理装置はさらに、前記第5のチャネル又は前記第6のチャネルが受信したデータを受信するとともに、処理したデータを隣接する前段の入出力ノード又は計算ノードに送信し、前記入出力ノードはさらに、隣接する後段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第7のチャネルと、隣接する後段の計算ノードの第5のチャネルが転送したデータ又は隣接する後段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第4の伝送路を介して隣接する前段の計算ノードの第5のチャネルに転送する第8のチャネルを有し、前記入出力処理装置はさらに、前記第7のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する前段の計算ノードの第6のチャネルに送信することを特徴とする請求項1記載の並列計算機システム。前記並列計算機システムにおいて、前記入出力ノードに隣接する後段の計算ノードの第5のチャネルは、受信したデータを前記入出力ノードに転送する場合、前記受信したデータを前記第8のチャネルに転送することを特徴とする請求項4記載の並列計算機システム。前記並列計算機システムにおいて、前記入出力ノードに隣接する後段の計算ノードの演算処理装置は、処理したデータを前記入出力ノードに送信する場合、前記処理したデータを前記第8のチャネルに送信することを特徴とする請求項4記載の並列計算機システム。第1の方向にデータが転送される第1及び第2の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、いずれかの計算ノードが有する第1のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第1の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する第2のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する演算処理装置が、前記第1のチャネル又は前記第2のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、前記入出力ノードが有する第3のチャネルが、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、前記入出力ノードが有する第4のチャネルが、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の計算ノードの第1のチャネルに転送し、前記入出力ノードが有する入出力処理装置が、前記第3のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第2のチャネルに送信することを特徴とする並列計算機システムの制御方法。ところで、リングネットワーク又はトーラスネットワークを使って、複数の計算ノード及び入出力ノードを接続する並列計算機では、複数の計算ノードは、ネットワークの対称性を利用した通信を行うことが困難である。これは、リングネットワーク又はトーラスネットワークに入出力ノードが追加されることで、規則的な通信パターンを維持することが困難になるからである。つまり、それぞれの計算ノードは、プログラム上は互いに同様の処理を実行するが、入出力を集中して行う入出力ノードが追加されることで、データが混み合う箇所が発生し、規則的な通信パターンが維持できなくなる。例えば、Cray社のXTと呼ばれる並列計算機では、トーラスネットワークで接続されたノードの一部を入出力専用の入出力ノードとして設定しているため、規則的な通信パターンによるネットワークの効率的な利用ができない。リングネットワーク又はトーラスネットワークを使って計算ノードのみを接続する並列計算機では、計算ノードを入出力ノードと接続するため、計算ノードのみを接続するネットワークとは別のネットワークを必要とする。例えば、IBM社のBlueGeneと呼ばれる並列計算機では、複数の計算ノードをトーラスネットワークで接続し、各計算ノードは入出力ノードとツリーネットワークで接続する。各ネットワークは、規則的な通信パターンにより、効率的に利用される。しかしながら、IBM社のBlueGeneでは、計算ノードと入出力ノードを単一のネットワークで接続することができず、必要なハードウェア量が増大し、並列計算機の製造コストが上昇する。上記課題に鑑み、明細書に開示された並列計算機システム及び並列計算機システムの制御方法は、計算ノードと入出力ノードをネットワークで接続し、かつ規則的な通信パターンで計算ノード間を通信することができる並列計算機システム及び並列計算機システムの制御方法を提供することを目的とする。上記目的を達成するため、明細書に開示された並列計算機システムは、第1の方向にデータが転送される第1及び第2の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムにおいて、前記計算ノードは、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第1の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第1のチャネルと、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送する第2のチャネルと、前記第1のチャネル又は前記第2のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信する演算処理装置を有し、前記入出力ノードは、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信する第3のチャネルと、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の計算ノードの第1のチャネルに転送する第4のチャネルと、前記第3のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第2のチャネルに送信する入出力処理装置を有する。明細書に開示された並列計算機システムの制御方法は、第1の方向にデータが転送される第1及び第2の伝送路を介して接続される入出力ノードと複数の計算ノードを有する並列計算機システムの制御方法において、いずれかの計算ノードが有する第1のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第1の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する第2のチャネルが、隣接する前段の入出力ノード又は計算ノードが転送したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の入出力ノード又は計算ノードに転送し、いずれかの計算ノードが有する演算処理装置が、前記第1のチャネル又は前記第2のチャネルが受信したデータを受信するとともに、処理したデータを隣接する後段の入出力ノード又は計算ノードに送信し、前記入出力ノードが有する第3のチャネルが、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信し、前記入出力ノードが有する第4のチャネルが、隣接する前段の計算ノードの第1のチャネルが転送したデータ又は隣接する前段の計算ノードの演算処理装置が送信したデータを受信するとともに、受信したデータを前記第2の伝送路を介して隣接する後段の計算ノードの第1のチャネルに転送し、前記入出力ノードが有する入出力処理装置が、前記第3のチャネルが受信したデータを受信するとともに、入出力したデータを隣接する後段の計算ノードの第2のチャネルに送信する。明細書に開示された並列計算機システム及び並列計算機システムの制御方法は、計算ノードと入出力ノードをネットワークで接続し、かつ規則的な通信パターンで計算ノード間を通信することができる。以下、図面を参照しながら本発明の実施の形態を説明する。図1は、本実施の形態にかかる並列計算機システムの一例を示す模式図である。図2Aは、図1の並列計算機システムに含まれる計算ノードの構成を模式的に示す図である。図2Bは、図1の並列計算機システムに含まれる入出力ノードの構成を模式的に示す図である。図1に示すように、並列計算機システム1は、並列計算プログラムの計算を実行する計算ノード2-1~2-4及び外部装置との間でデータを入出力する入出力ノード3を備えている。計算ノード2-1~2-4及び入出力ノード3の各々は、隣接する2つのノードと双方向に接続するための2つのリンクを有する。計算ノード2-1~2-4及び入出力ノード3は、リングネットワークを構成する。尚、並列計算機システム1に含まれる計算ノード及び入出力ノードの個数は、図1に示す個数に限定されるものではない。また、並列計算機システム1に適用されるネットワークは、リングネットワーク又はトーラスネットワークである。図2Aに示すように、各計算ノード2-NN=1~4は、ルータ11及び演算器12を有する。ルータ11は、隣接するノードから出力されたパケットを、当該パケットのヘッダに含まれる宛先に基づいてルーティングする。演算器ProcessingElementPE12は、ルータ11で取得されたパケットに対し、予め割り当てられた並列計算プログラムに従って計算を実行する。また、必要に応じて、演算器12は、その計算結果をルータ11に返信する。図2Bに示すように、入出力ノード3は、ルータ21、演算器22、及び入出力装置23を有する。ルータ21は、隣接するノードから出力されたパケット又は入出力装置23を介して入力したパケットを、当該パケットのヘッダに含まれる宛先に基づいてルーティングする。演算器22は、入出力装置23を介して入出力するパケットに対して演算を実行するが、図2Aに示された計算ノードの演算器12とは異なり、並列計算プログラムに従ってルータ11で取得されたパケットに対し、演算を実行するものではない。入出力装置23は、不図示の外部装置との間でパケットを入出力する。演算器12及び22は、CPUCentralProcessingUnitやメモリなどで構成されており、入出力装置23は、外部装置との間でパケットを入出力する通信インターフェースで構成されている。図3は、ルータ11の構成を示す模式図である。尚、ルータ21の構成は、図3のルータ11の構成と同様であるので、ルータ21の構成の説明は省略する。図3において、ルータ11は、複数のポート41、クロスバースイッチ42及びアービタ43を備えている。各ポート41は、ルーティング論理回路44、複数の仮想チャネルバッファ45及びセレクタ46,47を備えている。各ポート41には、複数の仮想チャネルバッファ45に対応する複数の仮想チャネルが割り当てられている。セレクタ47は、パケットの転送タイミングを制御するフロー制御信号を隣接するノードに出力すると共に当該隣接するノード又は演算器12からパケットを入力する。各仮想チャネルバッファ45は、入力パケットを保持する。ルーティング論理回路44は、ルーティング規則を保持し、ルータ11のルーティング動作を制御する。例えば、ルーティング論理回路44は、入力パケットの出力方向の判断やルーティングの終了の判断等を行う。また、ルーティング論理回路44は、入力パケットが自ノードの仮想チャネルと異なる、出力先のノードの仮想チャネルに乗り換えられるように、アービタ43を介してクロスバースイッチ42を制御する。セレクタ46は、ルーティング論理回路44及びアービタ43からの信号に基づいて、仮想チャネルバッファ45に保持されたパケットをクロスバースイッチ42に出力する。アービタ43は、セレクタ46からの応答信号及び出力先のノードからのフロー制御信号に基づいて、複数の入力パケットを調停する調停信号をクロスバースイッチ42に出力することにより、複数の入力パケットが衝突することを回避する。クロスバースイッチ42は、アービタ43からの調停信号に基づいて、各入力パケットの仮想チャネルを動的に切り替え、各入力パケットを出力先のノード又は演算器12に出力する。図4は、図1の並列計算機システム1から入出力ノード3を削除した場合の仮想チャネル間の依存関係を表す図である。図4において、計算ノード2-1~2-4の構成は、概略的に示されている。計算ノード2-1~2-4の各々は、演算器12と仮想チャネルバッファ45A-1、45B-1、45A-2及び45B-2とを含む。仮想チャネルバッファ45A-1を通過する経路が、右方向の第1仮想チャネルを構成する。仮想チャネルバッファ45B-1を通過する経路が、右方向の第2仮想チャネルを構成する。仮想チャネルバッファ45A-2を通過する経路が、左方向の第1仮想チャネルを構成する。仮想チャネルバッファ45B-2を通過する経路が、左方向の第2仮想チャネルを構成する。図1の並列計算機システム1から入出力ノード3を削除した場合のルーティング規則では、各計算ノードの演算器12は、パケットを右方向又は左方向の第1仮想チャネルに出力する。計算ノード2-1及び2-2の間、計算ノード2-3及び2-4の間、並びに計算ノード2-4及び2-1の間では、パケットは、第1仮想チャネルから第2仮想チャネルに、又は第2仮想チャネルから第1仮想チャネルに乗り換えることはない。一方、計算ノード2-2及び2-3の間では、パケットは、第1仮想チャネルから第2仮想チャネルに乗り換える。これは、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避するためである。このデッドロックとは、リングネットワーク又はトーラスネットワークに接続される複数の仮想チャネルのいずれかが、何らかの原因により受信したパケットの処理を滞らせた場合に、当該リングネットワーク又はトーラスネットワークに存在する他のパケットの処理も滞る結果、当該リングネットワーク又はトーラスネットワークに存在する全てのパケットの処理が滞ることをいう。この場合、計算ノード2-2及び2-3の間に、パケットが第1仮想チャネルから第2仮想チャネルに乗り換える仮想チャネル変更線を並列計算機システム1に設定する必要がある。具体的には、並列計算機システムの管理者が、パケットが第1仮想チャネルから第2仮想チャネルに乗り換えるルーティング規則を計算ノード2-2内のルーティング論理回路44に設定する。例えば、図1の並列計算機システム1から入出力ノード3を削除する場合には、並列計算機システムの管理者は、パケットが第1仮想チャネルから第2仮想チャネルに乗り換えるルーティング規則を、入出力ノード3にパケットを出力する計算ノード内のルーティング論理回路44に設定する。これにより、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避できる。図5は、図1の並列計算機システム1における仮想チャネル間の依存関係を表す図である。図5において、計算ノード2-1~2-4及び入出力ノード3の構成は、概略的に示されている。計算ノード2-1~2-4の各々は、演算器12と仮想チャネルバッファ45A-1、45B-1、45A-2及び45B-2とを含む。入出力ノード3は、入出力装置23と、仮想チャネルバッファ45A-1、45B-1、45A-2及び45B-2とを含む。計算ノード2-1~2-4及び入出力ノード3の各々は、隣接するノードと接続する2つのリンクを有し、各リンクが第1仮想チャネル及び第2仮想チャネルを有する。尚、各ノードが有するリンク数は、複数であればよく、2つに限定されるものではない。仮想チャネルバッファ45A-1を通過する経路が、右方向の第1仮想チャネルを構成する。仮想チャネルバッファ45B-1を通過する経路が、右方向の第2仮想チャネルを構成する。仮想チャネルバッファ45A-2を通過する経路が、左方向の第1仮想チャネルを構成する。仮想チャネルバッファ45B-2を通過する経路が、左方向の第2仮想チャネルを構成する。図1の並列計算機システム1のルーティング規則では、計算ノード2-1及び2-4の演算器12は、パケットを右方向又は左方向の第1仮想チャネルに出力する。計算ノード2-2の演算器12は、パケットを左方向の第1仮想チャネルに出力する、又はパケットを右方向の第1仮想チャネル若しくは第2仮想チャネルに出力する。右方向に出力されるパケットの宛先が入出力ノード3である場合には、計算ノード2-2の演算器12は、当該パケットを右方向の第1仮想チャネルに出力する。右方向に出力されるパケットの宛先が入出力ノード3以外の計算ノードである場合には、計算ノード2-2の演算器12は、当該パケットを右方向の第2仮想チャネルに出力する。計算ノード2-4の演算器12は、パケットを右方向の第1仮想チャネルに出力する、又はパケットを左方向の第1仮想チャネル若しくは第2仮想チャネルに出力する。左方向に出力されるパケットの宛先が入出力ノード3である場合には、計算ノード2-4の演算器12は、当該パケットを左方向の第1仮想チャネルに出力する。左方向に出力されるパケットの宛先が入出力ノード3以外の計算ノードである場合には、計算ノード2-4の演算器12は、当該パケットを左方向の第2仮想チャネルに出力する。各計算ノードへ転送されるパケットは、第1仮想チャネルから第2仮想チャネルに、又は第2仮想チャネルから第1仮想チャネルに乗り換えることはない。入出力ノード3へ転送されるパケットのうち、宛先が入出力ノード3であるパケットは、仮想チャネルの乗り換えを行わない。一方、入出力ノード3へ転送されるパケットのうち、入出力ノード3を通過するパケットは、第1仮想チャネルから第2仮想チャネルに乗り換える。このように、入出力ノード3は、入出力ノード3を通過するパケットが第1仮想チャネルから第2仮想チャネルに乗り換える仮想チャネル変更線の役割を果たす。また、入出力ノード3における右方向及び左方向の第1仮想チャネルは、宛先が入出力ノード3であるパケットが入出力ノード3へ到着するための専用の仮想チャネルになる。また、入出力ノード3からパケットを受信する計算ノードの第1仮想チャネルは、入出力ノード3からパケットを受信するための専用の仮想チャネルになる。その他の計算ノードの第1仮想チャネルは、隣接する計算ノードからパケットを受信する仮想チャネルになる。つまり、入出力ノード3における右方向及び左方向の第1仮想チャネル並びに入出力ノード3からパケットを受信する計算ノードの第1仮想チャネルは、その他の計算ノードの第1仮想チャネルと入出力ノード3からのみパケットを受信する点で異なる。この差違により、入出力ノード3からのパケット送り出し方向及び入出力ノード3へのパケット到着方向が、計算ノード間のパケットの転送方向と異なる場合でも、リングネットワーク又はトーラスネットワークにデッドロックが発生することを回避できる。図6は、図1の並列計算機システム1におけるリングネットワークを2次元のトーラスネットワークに拡張した例を示す図である。図6において、垂直方向がY軸であり、水平方向がX軸である。図6では、4x4の計算ノードを接続した2次元のトーラスネットワークの各軸に、1つの入出力ノードが追加されている。つまり、軸X1~X4及び軸Y1~Y4は、各々4つの計算ノード及び1つの入出力ノードを有する。ここで、従来のトーラスネットワークのルーティングと同様の次元順ルーティングを仮定すると、パケットはX軸又はY軸上を1回しか直進できない。つまり、パケットは、図6の経路A軸X1→軸Y1→軸X4又は経路B軸Y3→軸X1→軸Y2で示すように、X軸上又はY軸上を2度通過することはできない。仮に、パケットがX軸上又はY軸上を2度通過すると、全ての仮想チャネルがパケットが処理する状態が発生し易くなり、その結果、トーラスネットワークにデッドロックが発生する可能性が高まる。一方、本実施の形態では、上述したように、入出力ノードにおける右方向及び左方向の第1仮想チャネルが、宛先が入出力ノードであるパケットが当該入出力ノードへ到着するための専用の仮想チャネルになり、且つ入出力ノードからパケットを受信する計算ノードの第1仮想チャネルが、当該入出力ノードからパケットを受信するための専用の仮想チャネルになる。よって、入出力ノードに出入りする1ホップは、計算ノード間の通信に使用される仮想チャネルを使用しないので、入出力ノードからパケットを受信する計算ノード及び入出力ノードへパケットを送信する計算ノードが、パケットの進行方向を自由に決めることができる。換言すると、上述した2つの専用の仮想チャネルが設けられているので、入出力ノードに出入りする1ホップは、トーラスネットワークの次元順ルーティングから独立する。従って、図6の経路Aでは、入出力ノード50からのパケット送り出し方向及び入出力ノード51へのパケット到着方向即ちX軸方向が、計算ノード54及び55間のパケットの転送方向即ちY軸方向と異なるが、図6の2次元トーラスネットワークにデッドロックは発生しない。同様に、図6の経路Bでも、図6の2次元トーラスネットワークにデッドロックは発生しない。このため、異なるX軸上の入出力ノード50及び51は互いに通信が可能である。同様に、異なるY軸上の入出力ノード52及び53も互いに通信が可能である。また、軸Y1上の計算ノード54及び55間に設けられた入出力ノード56は仮想チャネル変更線の役割を果たす。よって、軸Y1上の計算ノード54及び55間では、仮想的に拡張部分のないリングネットワーク又はトーラスネットワークとみなして、規則的な通信を行うことができ、ネットワークの効率的な利用が可能である。図7は、図6の2次元のトーラスネットワークの変形例を示す図である。並列計算機システム1におけるリングネットワークは、図7の2次元のトーラスネットワークに拡張することができる。図7の2次元のトーラスネットワークでは、入出力ノードを含まない軸X2及びY2が、入出力ノードを含む軸X1、X3、X4、Y1、Y3及びY4と混在する。この場合、ユーザは、図4に示す仮想チャネル変更線を軸X2及びY2に設定する。具体的には、ユーザは、パケットが第1仮想チャネルから第2仮想チャネルに乗り換えるルーティング規則を、軸X2上のいずれか1つの計算ノード及び軸Y2上のいずれか1つの計算ノード内のルーティング論理回路44に設定する。これにより、軸X2及びY2上でデッドロックが発生することを回避することができる。尚、並列計算機システム1には、図6又は図7に示すような2次元のトーラスネットワークだけでなく、3次元のトーラスネットワークも適用できる。図8は、各計算ノードで実行される、第1仮想チャネルに関するルーティング処理を示すフローチャートである。まず、各計算ノードに含まれるルータ11のルーティング論理回路44が、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがトーラスネットワークを直進する必要があるか否かを判断するステップS1。ルーティング論理回路44が、パケットがトーラスネットワークを直進する必要があると判断した場合にはステップS1でYES、ルーティング論理回路44は、パケットの直進先が入出力ノードであるか又は出力すべきパケットが仮想チャネル変更線を跨ぐか否かを判断するステップS2。ルーティング論理回路44が、パケットの直進先が入出力ノードである又は出力すべきパケットが仮想チャネル変更線を跨ぐと判断した場合にはステップS2でYES、ルーティング論理回路44は、パケットを転送するチャネルを第1仮想チャネルから第2仮想チャネルに変更するステップS3。ルーティング論理回路44は、パケットの転送方向を直進方向に設定するステップS4。その後、本処理は終了する。ルーティング論理回路44が、パケットの直進先が入出力ノードでない又は出力すべきパケットが仮想チャネル変更線を跨がないと判断した場合にはステップS2でNO、手順は上記ステップS4に進む。また、ルーティング論理回路44が、パケットがトーラスネットワークを直進する必要がないと判断した場合にはステップS1でNO、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングを終了するか否かを判断するステップS5。ここでは、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがX軸、Y軸又はZ軸を進むルーティングを終了するか否かを判断している。ルーティング論理回路44が、トーラスネットワークのルーティングを終了すると判断した場合にはステップS5でYES、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノードステップS2の入出力ノードと異なる他の入出力ノードへ転送するか否かを判断するステップS6。ルーティング論理回路44が、パケットを他の入出力ノードへ転送すると判断した場合にはステップS6でYES、ルーティング論理回路44は、パケットの転送方向を決定するステップS7。ここでは、ルーティング論理回路44は、パケットの転送方向を他の入出力ノードの方向に決定する。ルーティング論理回路44が、トーラスネットワークのルーティングを終了しないと判断した場合にはステップS5でNO、ルーティング論理回路44は、パケットの転送方向を決定するステップS7。並列計算機システム1では、軸ごとに優先度が予め決められており、ルーティング論理回路44は、その予め決められた各軸の優先度に従って、パケットの転送方向を決定する。例えば、X軸を進んできたパケットはZ軸方向よりもY軸方向に優先的に進むと設定されている場合には、X軸を進んできたパケットは、次にY軸方向に進む。ステップS7の後、本処理は終了する。ルーティング論理回路44が、パケットを他の入出力ノードへ転送しないと判断した場合にはステップS6でNO、ルーティング論理回路44は、パケットを自身宛のパケットとして受信するステップS8。その後、本処理は終了する。図9は、各計算ノードで実行される、第2仮想チャネルに関するルーティング処理を示すフローチャートである。まず、各計算ノードに含まれるルータ11のルーティング論理回路44が、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがトーラスネットワークを直進する必要があるか否かを判断するステップS11。ルーティング論理回路44が、パケットがトーラスネットワークを直進する必要があると判断した場合にはステップS11でYES、ルーティング論理回路44は、パケットの直進先が入出力ノードであるか又は出力すべきパケットが仮想チャネル変更線を跨ぐか否かを判断するステップS12。ルーティング論理回路44が、パケットの直進先が入出力ノードである又は出力すべきパケットが仮想チャネル変更線を跨ぐと判断した場合にはステップS12でYES、ルーティング論理回路44は、パケットを破棄するステップS13。その後、本処理は終了する。一方、ルーティング論理回路44が、パケットの直進先が入出力ノードでない又は出力すべきパケットが仮想チャネル変更線を跨がないと判断した場合にはステップS12でNO、ルーティング論理回路44は、パケットの転送方向を直進方向に設定するステップS14。その後、本処理は終了する。また、ルーティング論理回路44が、パケットがトーラスネットワークを直進する必要がないと判断した場合にはステップS11でNO、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングを終了するか否かを判断するステップS15。ここでは、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットがX軸、Y軸又はZ軸を進むルーティングを終了するか否かを判断している。ルーティング論理回路44が、トーラスネットワークのルーティングを終了すると判断した場合にはステップS15でYES、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノードステップS12の入出力ノードと異なる他の入出力ノードへ転送するか否かを判断するステップS16。ルーティング論理回路44が、パケットを他の入出力ノードへ転送すると判断した場合にはステップS16でYES、ルーティング論理回路44は、パケットを転送するチャネルを第2仮想チャネルから第1仮想チャネルに変更するステップS17。ルーティング論理回路44は、パケットの転送方向を決定するステップS18。ここでは、ルーティング論理回路44は、パケットの転送方向を他の入出力ノードの方向に決定する。ステップS18の後、本処理は終了する。ルーティング論理回路44が、トーラスネットワークのルーティングを終了しないと判断した場合にはステップS15でNO、手順は上記ステップS17に進む。ルーティング論理回路44が、パケットを他の入出力ノードへ転送しないと判断した場合にはステップS16でNO、ルーティング論理回路44は、パケットを自身宛のパケットとして受信するステップS19。その後、本処理は終了する。図10は、パケットが各計算ノードの演算器12から出力される場合のルーティング処理を示すフローチャートである。まず、各計算ノードに含まれるルータ11のルーティング論理回路44が、パケットのヘッダに含まれるパケットの宛先に基づいて、トーラスネットワークのルーティングが必要であるか否かを判断するステップS21。ルーティング論理回路44が、トーラスネットワークのルーティングが必要であると判断した場合にはステップS21でYES、ルーティング論理回路44は、パケットの転送方向を決定するステップS22。ここでは、ルーティング論理回路44は、予め決められた各軸の優先度に従って、パケットの転送方向を決定する。ルーティング論理回路44は、パケットの転送先が入出力ノードであるか否かを判断するステップS23。ルーティング論理回路44が、パケットの転送先が入出力ノードであると判断した場合にはステップS23でYES、ルーティング論理回路44は、パケットを転送するチャネルを第2仮想チャネルに設定するステップS24。その後、本処理は終了する。一方、ルーティング論理回路44が、パケットの転送先が入出力ノードでないと判断した場合にはステップS23でNO、ルーティング論理回路44は、パケットを転送するチャネルを第1仮想チャネルに設定するステップS25。その後、本処理は終了する。ルーティング論理回路44が、トーラスネットワークのルーティングが必要でないと判断した場合にはステップS21でNO、ルーティング論理回路44は、パケットのヘッダに含まれるパケットの宛先に基づいて、パケットを他の入出力ノードステップS23の入出力ノードと異なる他の入出力ノードへ転送するか否かを判断するステップS26。ルーティング論理回路44が、パケットを他の入出力ノードへ転送すると判断した場合にはステップS26でYES、ルーティング論理回路44は、パケットの転送方向を決定するステップS27。ここでは、ルーティング論理回路44は、パケットの転送方向を他の入出力ノードの方向に決定する。その後、手順はステップS25に進む。ルーティング論理回路44が、パケットを他の入出力ノードへ転送しないと判断した場合にはステップS26でNO、ルーティング論理回路44は、パケットを自ノードにループバックするステップS28。その後、本処理は終了する。図11Aは、各入出力ノードで実行される、第1仮想チャネルに関するルーティング処理を示すフローチャートである。図11Bは、各入出力ノードで実行される、第2仮想チャネルに関するルーティング処理を示すフローチャートである。図11Cは、パケットが各入出力ノードの演算器22から出力される場合のルーティング処理を示すフローチャートである。図11Aにおいて、各入出力ノードに含まれるルータ21のルーティング論理回路44は、第1仮想チャネルを介して隣接する計算ノードからパケットを受信するステップS31。このように、各入出力ノードの第1仮想チャネルは、パケットが各入出力ノードに到着するための専用の仮想チャネルになる。その後、本処理は終了する。図11Bにおいて、各入出力ノードに含まれるルータ21のルーティング論理回路44は、パケットの転送方向を直進に設定するステップS32。このように、各入出力ノードの第2仮想チャネルは、パケットを通過する仮想チャネルである。その後、本処理は終了する。図11Cにおいて、各入出力ノードに含まれるルータ21のルーティング論理回路44は、パケットを転送するチャネルを第1仮想チャネルに設定するステップS33。尚、入出力ノードからパケットを受信する計算ノードの第1仮想チャネルは、入出力ノードからパケットを受信するための専用の仮想チャネルになる。その後、本処理は終了する。本実施の形態によれば、並列計算機システム1は、複数の計算ノードと入出力ノードとを単一のリングネットワーク又はトーラスネットワークで接続する。そして、入出力ノードの第1仮想チャネルが、宛先が自身であるデータが当該入出力ノードへ到着するための専用の仮想チャネルに設定される。入出力ノードからデータを受信する計算ノードの第1仮想チャネルは、当該入出力ノードからデータを受信するための専用の仮想チャネルに設定される。よって、入出力ノードに出入りする1ホップは、計算ノード間の通信に使用される仮想チャネルを使用しないので、リングネットワーク又はトーラスネットワークにデッドロックが発生することがなく、規則的な通信パターンで計算ノード間を通信することができる。単一のリングネットワーク又はトーラスネットワークから入出力ノードを削除する場合には、入出力ノードの両端に接続された計算ノード同士が接続される。また、出力されるデータが第1仮想チャネルから第2仮想チャネルに乗り換える設定が、当該入出力ノードにデータを出力していた計算ノードに設定される。よって、リングネットワーク又はトーラスネットワークにデッドロックが発生することがなく、規則的な通信パターンで計算ノード間を通信することができる。"