(57)【要約】【課題】並列コンピュータ・システム内のトーラス・ネットワーク障害を克服するための装置及び方法を提供する。【解決手段】トーラス・ネットワーク内で障害が生じる場合、コンピュータ・システムのサービス・ノード内にあるメッシュ経路指定機構は、複数のノードをトーラス・ネットワークからメッシュ・ネットワークに構成する。メッシュ経路指定機構は、各ノード内のカットオフ・レジスタを使用して、障害ノード又は障害ネットワーク接続を通過することなく、ノード間のデータ転送を経路指定する。【選択図】  図６
2010525434.tif 000002
【特許請求の範囲】
【請求項１】
並列コンピュータ・システムであって、
トーラス・ネットワークによって相互接続された複数の計算ノードと、
前記トーラス・ネットワーク内のリンクにおいて障害が生じる場合、前記トーラス・ネットワークをメッシュ・ネットワークに変換するメッシュ経路指定機構とを備えた、並列コンピュータ・システム。
【請求項２】
前記複数の計算ノードの各々に設けられたＸ次元用のＸ−カットオフ・レジスタ及びＸ＋カットオフ・レジスタをさらに備え、
前記メッシュ経路指定機構が、前記トーラス・ネットワーク内の前記障害に関して前記Ｘ−カットオフ・レジスタ及び前記Ｘ＋カットオフ・レジスタの各々に対する値を割り当てることにより、前記障害を通過することなく前記メッシュ・ネットワーク内の隣接ノードと通信するように各計算ノードに指示する、請求項１に記載の並列コンピュータ・システム。
【請求項３】
前記メッシュ経路指定機構が、前記コンピュータ・システムのサービス・ノード内に存在する、請求項１又は請求項２に記載の並列コンピュータ・システム。
【請求項４】
各ノードを３次元内のその６個の最近隣ノードと接続するように、前記複数の計算ノードが前記トーラス・ネットワークと相互接続される、請求項１ないし請求項３の何れか１項に記載の並列コンピュータ・システム。
【請求項５】
前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項４に記載の並列コンピュータ・システム。
【請求項６】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項１ないし請求項５の何れか１項に記載の並列コンピュータ・システム。
【請求項７】
並列コンピュータ・システム内の障害回復のためのコンピュータ実装方法であって、
複数の計算ノードを相互接続するトーラス・ネットワーク内の障害を検出するステップと、
前記障害を回避するための、前記複数の計算ノード内に設けられたカットオフ・レジスタ用の新しい値を決定するステップと、
前記カットオフ・レジスタ内に前記新しい値を設定するステップと、
前記カットオフ・レジスタ内の前記新しい値を使用して、前記障害を回避して前記トーラス・ネットワーク上でデータを経路指定するように、ハードウェア及びソフトウェアをリセットするステップとを含む、コンピュータ実装方法。
【請求項８】
前記カットオフ・レジスタ用の新しい値を決定する前記ステップが、前記コンピュータ・システムのサービス・ノード内に設けられたメッシュ経路指定機構によって実施される、請求項７に記載のコンピュータ実装方法。
【請求項９】
各ノードを３次元内のその６個の最近隣ノードと接続するように、前記複数の計算ノードが前記トーラス・ネットワークと相互接続される、請求項７又は請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記コンピュータ・システムが、前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項７ないし請求項１０の何れか１項に記載のコンピュータ実装方法。
【請求項１２】
製品であって、
並列コンピュータ・システム内の複数の計算ノードを相互接続するトーラス・ネットワークと、
前記トーラス・ネットワークを開くために障害が生じる場合、前記トーラス・ネットワークをメッシュ・ネットワークに変換するメッシュ経路指定機構と、
前記メッシュ経路指定機構を担持するコンピュータ可読記録媒体とを備えた、製品。
【請求項１３】
前記メッシュ経路指定機構が、前記トーラス・ネットワーク内の前記障害に関して前記複数の計算ノードの各々に設けられたＸ次元用のＸ−カットオフ・レジスタ及びＸ＋カットオフ・レジスタに対する値を割り当てることにより、前記障害を通過することなく前記メッシュ・ネットワーク内の隣接ノードと通信するように各計算ノードに指示する、請求項１２記載の製品。
【請求項１４】
前記メッシュ経路指定機構が、前記コンピュータ・システムのサービス・ノード内に存在する、請求項１２又は請求項１３に記載の製品。
【請求項１５】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項１２ないし請求項１４の何れか１項に記載の製品。
【請求項１６】
前記コンピュータ・システムが、前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項１３に記載の製品。
【請求項１７】
請求項７ないし請求項１１の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列コンピュータ・システム内の障害回復に係り、さらに詳細に説明すれば、超並列コンピュータ内のトーラス・ネットワークの障害部分から障害を回復するための装置に係る。
【背景技術】
【０００２】
高性能のコンピュータ・システムについては、故障時間及び修理コストを減少させるために、効率的な障害回復が重要である。多数の計算ノードを有する並列コンピュータ・システムでは、単一コンポーネントの障害が生じる結果として、大きな部分又はコンピュータ全体が、修理のためにオフラインに強制されることがある。
【０００３】
超並列コンピュータ・システムは、相互接続された多数の計算ノードを有する、１つのタイプの並列コンピュータ・システムである。かかる超並列コンピュータのファミリは、「ＢｌｕｅＧｅｎｅ」という名前の下で、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ）によって開発中である。ＢｌｕｅＧｅｎｅ／Ｌシステムは、スケーラブル・システムであり、計算ノードの現在の最大数は、６５，５３６である。ＢｌｕｅＧｅｎｅ／Ｌシステムのノードは、２つのＣＰＵ及びメモリを有する単一のＡＳＩＣ（特定用途向け集積回路）から成る。コンピュータ全体は、６４個のラック内に収容され、各ラック内には３２個のノード・ボードがある。
【０００４】
Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムは、幾つかの通信ネットワークを介して通信する。６５，５３６個の計算ノードは、１つの論理ツリー・ネットワーク及び１つの３次元トーラス・ネットワークの両方に配列される。論理ツリー・ネットワークは、各計算ノードが１つの親ノード及び１つ又は２つの子ノードと通信するように、計算ノードをツリー構造状に接続する。トーラス・ネットワークは、各計算ノードがコンピュータの１つのセクション内でその６個の最近隣ノードと通信するように、計算ノードを３次元の格子構造状に接続する。計算ノードが、隣接ノードとの通信を必要とするトーラス及びツリー・ネットワーク内で配列されるので、単一ノードのハードウェア障害が生じると、障害ハードウェアを修理することができるまで、システムの大きな部分が停止させられることになる。例えば、単一ノード又はネットワーク接続の障害が生じると、トーラス・ネットワークの１つの区画内にあるトーラス・ネットワークの１つの次元が作動不能になることがある。さらに、障害が修正されるまで、障害を有する区画に割り当てられた全てのハードウェアをオフラインにする必要があろう。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
トーラス・ネットワークを有する従来技術のシステムでは、単一のノード又はネットワーク接続の障害が生じると、コンピュータを修理のためにオフラインにすることをしばしば必要とする。トーラス・ネットワークの障害が生じる場合、かかる障害をできるだけ速やかに且つ効率的に克服できるようにすることが有利である。トーラス・ネットワーク障害を一層効果的に克服する方法がなければ、並列コンピュータ・システムは、潜在的なコンピュータ処理時間を浪費し続け、その結果、運用及び保守コストが増大するであろう。
【課題を解決するための手段】
【０００６】
並列コンピュータ・システム内のトーラス・ネットワーク障害を克服するための装置及び方法が開示される。トーラス・ネットワーク内で障害が生じる場合、コンピュータ・システムのサービス・ノード内にあるメッシュ経路指定機構は、複数のノードをトーラス・ネットワークからメッシュ・ネットワークに構成する。メッシュ経路指定機構は、各ノード内のカットオフ・レジスタを使用して、障害ノード又は障害ネットワーク接続を通過することなく、ノード間のデータ転送を経路指定する。
【０００７】
本明細書に開示する複数の例及び説明は、ＢｌｕｅＧｅｎｅアーキテクチャに向けられているが、これらの例及び説明は、ノード・ハードウェアが他のノードからのカットスルー・トラフィックを処理する、ネットワーク構造状に配列された複数のプロセッサを有する任意の並列コンピュータ・システムまで及ぶ。
【発明の効果】
【０００８】
本発明は、各ノード内のカットオフ・レジスタを使用して、障害ノード又は障害ネットワーク接続を迂回するように、ノード間のデータ転送を経路指定することにより、コンピュータ・システムの故障時間の量を減少させることができ、その結果、コンピュータ・システムの効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】好ましい実施形態に従った、超並列コンピュータ・システムのブロック図である。
【図２】超並列コンピュータ・システム内の計算ノードの入出力接続を示すブロック図である。
【図３】超並列コンピュータ・システム内の計算ノードのブロック図である。
【図４】超並列コンピュータ・システム内のミッドプレーンのブロック図である。
【図５】超並列コンピュータ・システムのような高度に相互接続されたコンピュータ・システムの区画を表すブロック図である。
【図６】トーラス・ネットワークと接続された一連のノードのブロック図である。
【図７】カットオフ・レジスタを使用してネットワーク・トラフィックを経路指定する、ノード通信の１例を示すブロック図である。
【図８】カットオフ・レジスタを使用してネットワーク・トラフィックを経路指定する、ノード通信の他の例を示すブロック図である。
【図９】カットオフ・レジスタを使用してネットワーク・トラフィックを経路指定するための方法のフローチャートである。
【発明を実施するための形態】
【００１０】
本発明は、並列コンピュータ・システム内のトーラス・ネットワーク障害を克服するための装置及び方法に向けられている。コンピュータ・システムのサービス・ノード内にあるメッシュ経路指定機構は、各ノード内のカットオフ・レジスタを使用して、複数のノードをトーラス・ネットワークからメッシュ・ネットワークに構成することにより、障害ノード又は障害ネットワーク接続を迂回するようにノード間のデータ転送を経路指定する。以下、インターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ）によって開発中のＢｌｕｅＧｅｎｅ／Ｌシステムに関連して、好ましい実施形態を説明する。
【００１１】
図１は、Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのような超並列コンピュータ・システム１００を表すブロック図である。ＢｌｕｅＧｅｎｅ／Ｌシステムは、スケーラブル・システムであり、その計算ノードの最大数は６５，５３６である。各計算ノード１１０は、「ＢｌｕｅＧｅｎｅ／Ｌ」計算チップとも呼ばれる、１つの特定用途向け集積回路（ＡＳＩＣ）１１２を有する。計算チップ１１２は、２つのプロセッサ又は中央処理装置（ＣＰＵ）を有する。一般に、計算ノード１１０は、５１２メガバイトのローカル・メモリ（図示せず）を有する。１つのノード計算カード１１４には、１つの計算チップ及び２つのノード用のメモリが取り付けられる。１つのノード・ボード１２０は、１６個のノード計算カード１１４を収容し、各ノード計算カード１１４は、２つの計算ノード１１０を有する。従って、各ノード・ボード１２０は、３２個の計算ノード１１０を有し、各計算ノード１１０は、２つのプロセッサ及び各プロセッサに関連するメモリを有する。ラック１３０は、３２個のノード・ボード１２０を収容するハウジングである。各ノード・ボード１２０は、ミッドプレーン・コネクタ１３４を介して、ミッドプレーン１３２に接続する。ミッドプレーン１３２は、ラックの内部にあり、図１には示されていない。ＢｌｕｅＧｅｎｅ／Ｌシステムの全体は、各々が３２個のノード・ボード１２０を有する、６４個のラック１３０内に収容されるであろう。従って、システムの全体は、６５，５３６個の計算ノード１１０及び１３１，０７２個のＣＰＵ（６４ラック×３２ノード・ボード×３２ノード×２ＣＰＵ）を有するであろう。
【００１２】
Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムの構造は、１つのＩ／Ｏノード面を有する、１つの計算ノード・コアとして記述することができる。すなわち、１，０２４個の計算ノード１１０への通信が、サービス・ノード１４０に接続されたＩ／Ｏプロセッサ１７０を有する、各Ｉ／Ｏノードによって処理される。これらのＩ／Ｏノードは、ローカル・ストレージを有していない。これらのＩ／Ｏノードは、論理ツリー・ネットワークを通して計算ノード１１０に接続され、また機能的なネットワーク（図示せず）を通して機能的な広域ネットワーク能力を有する。この機能的なネットワークは、サービス・ノード１４０から多数の計算ノード１１０への通信を処理するための１つのノード・ボード１２０上に位置する、１つのＩ／Ｏプロセッサ（又は「Ｇｅｎｅ／Ｌ」リンク・チップ）１７０に接続される。ＢｌｕｅＧｅｎｅ／Ｌシステムは、ノード・ボード１２０に接続された１つのＩ／Ｏボード（図示せず）上に、１つ以上のＩ／Ｏプロセッサ１７０を有する。これらのＩ／Ｏプロセッサ１７０は、８個、３２個又は６４個の計算ノード１１０と通信するように構成することができる。複数のＩ／Ｏノードへの接続は、当該Ｉ／Ｏノードがトーラス・ネットワークに接続されないことを除けば、計算ノード１１０への接続に類似する。
【００１３】
コンピュータ・システム１００に含まれるサービス・ノード１４０は、ノードへのソフトウェアのローディングを処理するとともに、システム全体の動作を制御する。一般に、サービス・ノード１４０は、リナックス（登録商標）を実行する、制御コンソール（図示せず）付きの「ＩＢＭ  ｐＳｅｒｉｅｓ」サーバのようなミニコンピュータ・システムである。サービス・ノード１４０は、制御システム・ネットワーク１５０を介して、計算ノード１１０のラック１３０に接続される。制御システム・ネットワーク１５０は、ＢｌｕｅＧｅｎｅ／Ｌシステム用の制御、テスト及び立ち上げインフラストラクチャを提供する。制御システム・ネットワーク１５０は、超並列コンピュータ・システムに必要な通信を提供する、種々のネットワーク・インタフェースを含む。これらのネットワーク・インタフェースについては、後述する。
【００１４】
サービス・ノード１４０は、システム管理専用の制御システム・ネットワーク１５０を管理する。制御システム・ネットワーク１５０に含まれる１００Ｍｂｐｓの専用イーサネット（登録商標）・リンクは、サービス・ノード１４０から多数のノードへの通信を処理するノード・ボード１２０上に位置する、Ｉｄｏチップ１８０に接続される。このネットワークがＪＴＡＧネットワークとも呼ばれるのは、これがＪＴＡＧプロトコルを使用して通信するためである。ノード・ボード１２０上にある計算ノード１１０の制御、テスト及び立ち上げの全ては、サービス・ノード１４０と通信するＪＴＡＧポートを通して管理される。さらに、サービス・ノード１４０に含まれるメッシュ経路指定機構１４２は、トーラス・ネットワーク内に障害が存在する場合に、トーラス・ネットワークをメッシュ・ネットワークに構成する。メッシュ経路指定機構は、トーラス・ネットワーク内の障害を迂回してノード・トラフィックを経路指定するように、ノード内のカットオフ・レジスタにそれぞれの値を割り当てる。メッシュ経路指定機構１４２は、サービス・ノード１４０内のソフトウェアから成るが、システムのノード上で実行中のオペレーティング・システムによって支援されることがある。
【００１５】
Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムは、幾つかの通信ネットワークを介して通信する。図２は、ＢｌｕｅＧｅｎｅ／Ｌシステム内の１つの計算ノードのＩ／Ｏ接続を示すブロック図である。６５，５３６個の計算ノード１１０及び１，０２４個のＩ／Ｏプロセッサ１７０は、論理ツリー・ネットワーク及び論理的な３次元トーラス・ネットワークの両方に配列される。トーラス・ネットワークは、各計算ノード１１０がその６個の最近隣ノードと通信するように、計算ノードを３次元の格子構造状に接続する。図２では、トーラス・ネットワークは、当該ノードを６個の隣接ノードにそれぞれ接続するネットワーク接続Ｘ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋及びＺ−によって例示される。一方、ツリー・ネットワークは、図２のＴｒｅｅ０、Ｔｒｅｅ１及びＴｒｅｅ２接続によって表される。当該ノードに接続される他の通信ネットワークは、１つのＪＴＡＧネットワーク及び１つのグローバル割り込みネットワークを含む。ＪＴＡＧネットワークは、サービス・ノード１４０から図１の制御システム・ネットワーク１５０を介して、テスト及び制御用の通信を提供する。グローバル割り込みネットワークは、或るタスクの完了時に異なる処理段階に移動するように、複数の計算ノード上の同様のプロセスを同期化するためのソフトウェア・バリアを実装するために使用される。従って、このグローバル割り込みネットワークは、ノードの１つの区画で実行中のアプリケーションを始動、停止又は一時停止させるために使用することができる。さらに、各計算ノード１１０に対するクロック及び電力信号がある。
【００１６】
Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのトーラス・ネットワークは、論理的な３次元デカルト配列内で、各ノードをその６個の最近隣ノード（Ｘ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋及びＺ−）に接続する。６個の最近隣ノードへの接続は、ノード・レベル及びミッドプレーン・レベルで行われる。各ミッドプレーンは、８×８×８ノードの配列である。ミッドプレーン内のノード配列の６個の面（Ｘ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋及びＺ−）の各々は、８Ｈ８＝６４ノードのサイズを有する。６個の面の各々にある６４ノードからの各トーラス・ネットワーク信号は、当該ミッドプレーンに接続されたリンク・カード（図示せず）を通して、隣接ミッドプレーン内の対応するノードに通信される。当該ミッドプレーンが、任意の次元において１ミッドプレーンの深さを有する区画内で使用される場合、各面の信号は、対向面上にある同じミッドプレーンの入力に戻されることがある。
【００１７】
図３は、Ｂｌｕｅ Ｇｅｎｅ／Ｌシステム内の計算ノード１１０のブロック図である。計算ノード１１０は、ノード計算チップ１１２を有し、当該チップは、２つの処理ユニット３１０Ａ、３１０Ｂを有する。各処理ユニット３１０Ａ、３１０Ｂは、それぞれ処理コア３１２を有する。これらの処理ユニットは、レベル３のメモリ・キャッシュ（Ｌ３キャッシュ）３２０及びスタティックＲＡＭ（ＳＲＡＭ）３３０に接続される。Ｌ３キャッシュ３２０からのデータは、ダブル・データ・レート（ＤＤＲ）メモリ・コントローラ３５０を介して、ＤＤＲ同期型ダイナミックＲＡＭ（ＳＤＲＡＭ）３４０にロードされる。
【００１８】
ＳＲＡＭ ３３０は、計算チップ１１２からのデータをＩｄｏチップ１８０に通信する、ＪＴＡＧインタフェース３６０に接続される。サービス・ノード（図１）は、Ｉｄｏチップ１８０及び制御システム・ネットワーク１５０（図１）の一部であるイーサネット（登録商標）・リンクを通して、計算ノード１１０と通信する。ＢｌｕｅＧｅｎｅ／Ｌシステムでは、ノード・ボード１２０当たり１つのＩｄｏチップが存在し、各ミッドプレーン１３２（図１）内のボード上に他のものが存在する。Ｉｄｏチップ１８０は、信頼のおける１００Ｍｂｐｓの専用イーサネット（登録商標）制御ネットワーク上の生のＵＤＰパケットを使用して、サービス・ノードからコマンドを受信する。Ｉｄｏチップは、計算ノードとの通信のために、種々のシリアル・プロトコルをサポートする。ＪＴＡＧプロトコルは、サービス・ノード１４０（図１）から計算ノード１１０内のＳＲＡＭ ３３０の任意のアドレスを対象とする読み取り及び書き込みを行うために使用され、またシステム初期化及びブート・プロセスのために使用される。
【００１９】
また、図３のノード計算チップ１１２は、ネットワーク・ハードウェア３９０を含む。ネットワーク・ハードウェア３９０は、トーラス・ネットワーク・ハードウェア３９２、ツリー・ネットワーク・ハードウェア３９４及びグローバル割り込みネットワーク・ハードウェア３９６を含む。前述のように、ＢｌｕｅＧｅｎｅ／Ｌシステムのこれらのネットワークは、計算ノード１１０がシステム内の他のノードと通信するために使用される。ネットワーク・ハードウェア３９０は、計算ノード１１０がトーラス・ネットワークを介してデータ・パケットを受信し且つこれを受け渡すことを可能にする。ネットワーク・ハードウェア３９０は、ネットワーク・データのトラフィックを独立的に処理し、その結果、計算ノード１１０のプロセッサ３１０Ａ、３１０Ｂは、トーラス・ネットワーク上を流れるデータの量によって負担を負わされることはない。
【００２０】
図３に示すように、ＳＲＡＭ ３３０は、パーソナリティ３３５を含む。ブート・プロセスの間に、サービス・ノードは、個々のノードに特有の情報をパーソナリティ３３５内に格納する。パーソナリティ３３５は、トーラス・ネットワーク・ハードウェア３９２の一部である、Ｘ−、Ｘ＋、Ｙ−、Ｙ＋、Ｚ−及びＺ＋カットオフ・レジスタ３９８（後述）のためのカットオフ・データ３３６を含む。ノードが初期化される場合、初期化ソフトウェアは、パーソナリティ３３５内のカットオフ・データ３３６を使用して、カットオフ・レジスタ３９８を構成する。サービス・ノードは、Ｘ、Ｙ、Ｚカットオフ・データ３３６を変更するとともに、当該ノードに対しカットオフ・レジスタ３９８を更新するように指示することができる。従来技術では、これらのカットオフ・レジスタ３９８は、トーラス・ネットワークを幾つかのタイプのアプリケーションに適したメッシュ・ネットワークに変更するために使用された。後述するように、メッシュ経路指定機構１４２（図１）は、ノード障害又はネットワーク障害を克服するために、カットオフ・レジスタ３９８の特徴を新規な態様で使用する。
【００２１】
図４は、Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのミッドプレーン１３２を示す。前述のように、ノードの各ラックは、２つのミッドプレーンに分割される。各ミッドプレーン１３２は、当該ミッドプレーンの各面からの矢印によって示すように、トーラス・ネットワーク内のその６個の近隣ミッドプレーンに接続される。各ミッドプレーン１３２は、各々が３２個の計算ノードを有する１６個のノード・カードに加えて、４つのリンク・カード４１０を有する。各リンク・カード４１０には、６つのリンク・チップが存在するので、ミッドプレーン当たり合計２４個のリンク・チップが存在する。ミッドプレーン境界では、ＢｌｕｅＧｅｎｅ／Ｌシステムの全てのネットワークが、リンク・チップを通過する。リンク・チップは、２つの機能を奏する。第１に、リンク・チップは、ミッドプレーン間のケーブル上の信号を再駆動し、異なるミッドプレーン上にある計算ＡＳＩＣの間の長く且つ損失の多いｔｒａｃｅＢｃａｂｌｅＢｔｒａｃｅ接続の途中で、高速信号の形状及び振幅を復元する。第２に、リンク・チップは、その異なるポート間で信号をリダイレクトすることができる。このリダイレクト機能は、ＢｌｕｅＧｅｎｅ／Ｌシステムを、論理的に別個の複数のシステムに区画化することを可能にする。
【００２２】
各ミッドプレーン１３２は、トーラス・ネットワーク上のその６個の近隣ミッドプレーンと通信する。６個の近隣ミッドプレーンへの接続は、当該ミッドプレーンに関するそれらのデカルト座標によって指定され、従ってＸ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋及びＺ−方向内にある（図４を参照）。さらに、Ｘ軸方向には、Ｘスプリット・ケーブルと呼ばれる、追加の１組の接続がある。Ｘスプリット・ケーブルは、Ｘ＋スプリット・ケーブル４２０及びＸ−スプリット・ケーブル４２２を含む。Ｘスプリット・ケーブルは、Ｘ次元内でトーラス・ネットワークを接続するための追加の経路を提供することにより、区画の機能性を向上させるための方法を提供する。ＢｌｕｅＧｅｎｅ／Ｌシステムでは、リンク・カードは、トーラス・ネットワーク信号を１つのミッドプレーンから他のミッドプレーンに経路指定することをサポートする、多数のリンク・チップ（図示せず）を有する。この経路指定は、当該区画が作成される時点でホストによって設定され、他の区画が作成されるか又は再構成されるまでスタティックである。各リンク・チップ・ポートは、２１個の差動対（１６個のデータ信号、給電されていないチップが当該ケーブルの他端からのドライバ出力によって駆動されるのを防止する１つのセンス信号、１つのスペア信号、１つのパリティ信号及び２つの非同期的グローバル割り込み信号）をサポートする。
【００２３】
Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのトーラス・ネットワークは、論理的な３次元デカルト配列内で、各ノードをその６個の最近隣ノード（Ｘ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋、Ｚ）に接続することを必要とする。６個の最近隣ノードへの接続は、ノード・レベル及びミッドプレーン・レベルで行われる。各ミッドプレーンは、８×８×８ノードの配列である。ミッドプレーン内のノード配列の６個の面（Ｘ＋、Ｘ−、Ｙ＋、Ｙ−、Ｚ＋及びＺ−）の各々は、８Ｈ８＝６４ノードのサイズを有する。６個の面の各々にある６４ノードからの各トーラス・ネットワーク信号は、リンク・チップを通して、隣接ミッドプレーン内の対応するノードに通信される。当該ミッドプレーンが、任意の次元において１ミッドプレーンの深さを有する区画内で使用される場合、各面の信号は、対向面上にある同じミッドプレーンの入力に戻されることがある。各リンク・チップ・ポートは、各ポートを通して２１対のデータ信号を使用することにより、当該ミッドプレーンに出入りする１６個の単方向性トーラス・リンクにサービスする。各ミッドプレーンは、２つのポートを有する２４個のリンク・チップによってサービスされ、当該各リンク・チップの各ポートは、１６個のデータ信号をサポートする。従って、６４個のノードを有する６個の面は、２４個のリンク・チップ上の２つのポートによって供給される、３８４個の入力及び３８４個の出力データ信号を必要とする（入力については１６×２４＝３８４、出力については３８４）。
【００２４】
図５は、Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのような超並列コンピュータ・システムの複数のラック５１０Ａ〜５１０Ｈの組５００を示す。ラック５１０Ａ〜５１０Ｈは、ミッドプレーン５１２Ａ〜５１２Ｐを有し、Ｘ次元内の１つの区画に配列されている。各ラック５１０Ａ〜５１０Ｈは、図１に示すようなラック１３０を表し、各ミッドプレーン５１２Ａ〜５１２Ｐは、図１に示すようなミッドプレーン１３２である。各ミッドプレーン５１２Ａ〜５１２Ｐは、複数のノードを１つの８×８×８トーラスとして接続するように配列され、そして当該トーラスの座標は、Ｘ、Ｙ及びＺである。各ラックは、１つの８×８×１６トーラスとして配列される。というのは、各ラックの２つのミッドプレーンがＺ次元内に配列されるからである。最初のラック５１０Ａは、ラック０（Ｒ０）であり、２つのミッドプレーンＲ００ ５１２Ａ及びＲ０１ ５１２Ｂを有する。同様に、ラックＲ１は、２つのミッドプレーンＲ１０５１２Ｃ及びＲ１１ ５１２Ｄを有する。同様に、残りのミッドプレーン５１２Ｅ〜５１２Ｐには、ラックＲ２〜Ｒ７においてＲ２０〜Ｒ７１という番号がそれぞれ付されている。図示の区画では、Ｘケーブル５２０は、８個のラックをＸ次元内で接続し、Ｙ次元及びＺ次元は、単一のミッドプレーンで折り返される。すなわち、当該ラックの当該面上にあるＹ次元及びＺ次元内のノードが、当該トーラスを完成するために、同じラックの対向面上のノードに接続されるということである。この例では、Ｘスプリット・ケーブルは図示されていない。従って、図５に示す区画は、１つの１２８×８×８トーラスである。Ｘケーブル５２０は、その方向に沿って１つのラックに入り且つ当該ラックを離れて次のラックに入るということが分かる。すなわち、Ｘケーブル５２０は、Ｒ０、Ｒ１、Ｒ３、Ｒ５、Ｒ７、Ｒ６、Ｒ４、Ｒ２の順序で、これらのラックを接続する。
【００２５】
図６は、Ｂｌｕｅ Ｇｅｎｅ／Ｌシステムのような超並列コンピュータ・システムの１つの区画において、トーラス・ネットワーク６１２によって接続された複数のノード１１０の組６００を示す。図６は、トーラスとして接続された図５のシステム内の諸ノードの論理的な表現を示す。ノードの数は、最後のノード６１４内の可変数Ｎによって示されるように、当該区画内に含まれるラックの数に依存して変わることがある。説明中の例では、Ｘ＋次元は左から右であり、Ｘ−次元は右から左である。図６の論理的な表現は、Ｘ次元のみに配列されたノードを表す。トーラス・ネットワークの他の次元は、同じ態様で配列される。前述のメッシュ経路指定機構１４２は、図６のトーラス・ネットワークを１つのメッシュ・ネットワークに変換することができる。このメッシュ・ネットワークは、本質的に開いたトーラス、すなわち１つ以上の次元内で諸ノードを線形接続したネットワークである。メッシュ経路指定機構１４２は、ノード内の障害又はノード間の接続内の障害を迂回するように、全てのトーラス・トラフィックを経路指定することにより、当該障害を克服することができる。
【００２６】
トーラス内の各方向（Ｘ＋、Ｘ−、Ｙ＋、Ｙ-、Ｚ＋、Ｚ−）ごとに、図３を参照して説明したカットオフ・レジスタ３９８と呼ばれる特殊レジスタが、各ノード内に存在する。メッシュ経路指定機構１４２は、これらのカットオフ・レジスタを使用して、それぞれのノードに対し、ネットワーク・トラフィックをどのように経路指定するかを通知することにより、ノード内の障害又はノード間の接続内の障害を通過することなく、当該ネットワーク・トラフィックを経路指定する。カットオフ・レジスタは、トーラス・ネットワークの障害を生じさせた障害ノード又は障害ネットワークを通過することなく、メッシュ・ネットワーク上でデータを経路指定するために、後述するような値を割り当てられる。従来技術では、Ｘ＋次元内のカットオフ・・レジスタをＸ次元内のノードの数に設定し且つＸ−次元内のカットオフ・レジスタをゼロに設定することにより、トーラス・ネットワークは、メッシュ・ネットワークとしてプログラムされた。かかる従来技術とは対照的に、本明細書に開示するメッシュ経路指定機構１４２は、任意の障害ノード又は障害ネットワークがトーラス・ネットワークから除去され且つ残りのメッシュ・ネットワークが依然として使用され得るように、これらのカットオフ・レジスタを設定する。
【００２７】
メッシュ経路指定機構１４２は、並列コンピュータ・システムの障害検出ハードウェア及びソフトウェアから、障害ノード又は障害ネットワークの位置を与えられる。次に、メッシュ経路指定機構は、障害ノード又は障害ネットワーク接続を通過することなく、開いたトーラス（メッシュ・ネットワーク）上でデータを経路指定するために、カットオフ・レジスタをどのように割り当てるかを決定する。カットオフ・レジスタをどのように割り当てるかという例については、以下で説明する。次に、図３を参照して説明したように、カットオフ・レジスタの値が、カットオフ・データとして、ノードのパーソナリティにロードされる。ノードがリセットされる場合、ノード・リセット・ソフトウェアは、ノードのパーソナリティからのカットオフ・データを使用して、カットオフ・レジスタを設定する。その後、メッシュ・ネットワークは、並列コンピュータ・システム上で実行するように初期化されたアプリケーションによって使用することができる。
【００２８】
各カットオフ・レジスタ内の値、すなわち障害ノードを迂回してデータを経路指定するために使用すべき値は、メッシュ経路指定機構（図１の１４２）によって割り当てられる。トーラス・ネットワーク内に１つの切断がある場合、２つのノード間の当該切断は、１つのノードのＸ＋リンク内及び当該ネットワーク内の次のノードのＸ−リンク内にあるであろう。メッシュ経路指定機構は、障害ノードを迂回して経路指定するために、各カットオフ・レジスタを次のように割り当てることができる。
【００２９】
break_plus が、Ｘ＋リンクの切断箇所にあるノードであり；
break_minus が、Ｘ−リンクの切断箇所にあるノードであり；そして
node_coord が、決定されているカットオフ・レジスタ用のノードの値０〜Ｎ（Node0〜NodeN に対応）である場合；
If (node_coord <= break_plus）
Then assign x- cutoff=0, and
x+ cutoff=break_plus;
Else
assign x- cutoff=break_minus, and
x+cutoff=max node in X dimension
【００３０】
カットオフ・レジスタが前述のようにを割り当てられた場合、後述する経路指定方法を使用して、ネットワーク内の障害リンクを迂回するようにデータが経路指定される。
【００３１】
データ・パケットがトーラス・ネットワーク上を送信される場合、送信ノード及び宛先ノードの座標をカットオフ・レジスタと共に使用することにより、後述する方法に従って、Ｘ次元のどの方向にデータ・パケットを送信すべきかを決定することができる。Ｙ次元及びＺ次元についても、同様の方法が使用される。
【００３２】
Ｘ次元において、
If (sending node > destination node) // これはＸ−方向を暗示する
and if (destination node >= cutoff for x- direction send in X-direction
else send in X+ direction
If (sending node < destination node) // これはＸ+方向を暗示する
and if (destination node <= cutoff for x+ direction send in X+direction
else send in X- direction
【００３３】
次に、図７を参照して、メッシュ経路指定機構１４２によって、障害を克服する１つの例を説明する。図７は、図６に示すものと同様の、１組のノード７１１〜７１５の論理的な表現を示す。各ノード７１１〜７１５は、トーラス・ネットワーク７１６によって、Ｘ次元内のその２つの隣接ノードに接続される。さらに、各ノード７１１〜７１５は、Ｘ−カットオフ・レジスタ７１８及びＸ＋カットオフ・レジスタ７２０を有する。これらのレジスタの内容は、括弧内に示されている。図７の例については、ノード１ ７１２とノード２ ７１３の間のトーラス・ネットワーク内に１つのリンク切断７２０が存在するものと仮定する。前述のように、カットオフ・レジスタ内の値が割り当てられる。この例については、ネットワーク内の切断がノード１のＸ＋側にあるので、break_plus はＡ１”である。同様に、ネットワーク内の切断がノード２のＸ−側にあるので、break_minus はＡ２”である。break_plus に等しいか又はこれより小さなノード（ノード０及びノード１は＜＝１）については、x- cutoff はＡ０”に設定され、x+ cutoff はＡ１”に設定される。同様に、break_plus より大きなノードについては、x- cutoff はＡ２”に設定され、x+ cutoff はＸ（４）内の最大ノードに設定される。
【００３４】
カットオフ・レジスタは、図７に示す値を前述のように割り当てられているものとする。次に、ノード２７１３がノード１ ７１２に対しデータを送信することを必要とするものと仮定し、このシナリオを前述の方法に適用する。この場合、送信ノードが宛先ノードより大きいので、このことは、例外が適用されない限り、Ｘ−方向内の送信が行われることを暗示する。宛先ノード（１）は、x- cutoff(0)より大きくないか又はこれに等しくないので、例外が適用されて、Ｘ＋方向内の送信が行われる。同様に、ノード４ ７１５がノード２７１３に対しデータを送信することを必要とするものと仮定し、このシナリオを前述の方法に適用する。この場合、送信ノード（ノード４）が宛先ノード（ノード２）より大きいので、このことは、Ｘ−方向内の送信が行われることを暗示する。宛先ノード（ノード２）が cutoff(2)と等しいので、Ｘ−方向内の送信が行われる。従って、トーラス・ネットワークは、ノード１ ７１２とノード２ ７１３との間の接続において「開いた」トーラスを有する、メッシュ・ネットワークに変換された。
【００３５】
次に、図８を参照して、メッシュ経路指定機構１４２によって、障害を克服する他の例を説明する。図８は、図７に示すものと同様の、トーラス・ネットワーク８１６によって接続された、１組のノード８１１〜８１５の論理的な表現を示す。各ノード８１１〜８１５は、Ｘ−カットオフ・レジスタ８１８及びＸ＋カットオフ・レジスタ８２０を有する。これらのレジスタの内容は、括弧内に示されている。この例については、ノード３８１４とノード４ ８１５の間のトーラス・ネットワーク内に１つの切断８１０が存在するものと仮定する。前述のように、カットオフ・レジスタ内の値が割り当てられる。この例については、ネットワーク内の切断がノード３のＸ＋側にあるので、break_plus はＡ３”である。同様に、ネットワーク内の切断がノード４のＸ−側にあるので、break_minus はＡ４”である。break_plus に等しいか又はこれより小さなノード（ノード０〜ノード３は＜＝３）については、x- cutoff はＡ０”に設定され、x+ cutoff はＡ３”に設定される。同様に、break_plus （ノード４）より大きなノードについては、x- cutoff はＡ４”に設定され、x+ cutoff はＸ（４）内の最大ノードに設定される。
【００３６】
カットオフ・レジスタは、図８に示す値を前述のように割り当てられているものとする。次に、ノード２がノード１に対しデータを送信することを必要とするものと仮定し、このシナリオを前述の方法に適用する。この場合、送信ノードが宛先ノードより大きいので、このことは、例外が適用されない限り、Ｘ−方向内の送信が行われることを暗示する。宛先ノード（１）は、x- cutoff(0)より大きいか又はこれに等しいので、Ｘ−方向内の送信が行われる。同様に、ノード４８１５がノード２ ８１２に対しデータを送信することを必要とするものと仮定し、このシナリオを前述の方法に適用する。この場合、送信ノード（ノード４）が宛先ノード（ノード２）より大きいので、このことは、Ｘ−方向内の送信が行われることを暗示する。宛先ノード（ノード２）は、cutoff（ノード４）より小さくないか又はこれに等しくないので、Ｘ＋方向内の送信が行われる。
【００３７】
図９は、並列コンピュータ・システム上の障害ノード又は障害ネットワーク接続を迂回して経路指定する、メッシュ経路指定機構１４２のための方法９００を示す。最初に、ノード又はトーラス・ネットワーク接続内の障害を検出する（ステップ９１０）。次に、当該障害ノード又は障害ネットワーク接続を迂回して経路指定するためのカットオフ・レジスタ用の値を決定する（ステップ９２０）。次に、カットオフ・レジスタを新しい値で設定する（ステップ９３０）。次に、ハードウェアをリセットし、当該区画上にアプリケーション・ソフトウェアを再ロードする（ステップ９４０）。その後、この方法が終了する。
【００３８】
本明細書は、並列コンピュータ・システム内のトーラス・ネットワーク障害を克服する方法及び装置を開示する。メッシュ経路指定機構は、各ノード内のカットオフ・レジスタを使用して、障害ノード又は障害ネットワーク接続を迂回するように、ノード間のデータ転送を経路指定する。その結果、コンピュータ・システムの故障時間の量を減少させることができ、ひいては、コンピュータ・システムの効率を向上させることができる。
【００３９】
当業者には明らかなように、本発明の範囲内で多数の変形が可能である。本発明は特定の実施形態を参照して説明されたが、本発明の精神及び範囲から逸脱することなく、形式及び詳細に関する種々の変更を施し得ることは明らかであろう。
【符号の説明】
【００４０】
１００・・・超並列コンピュータ・システム
１１０・・・計算ノード
１３０・・・ラック
１３２・・・ミッドプレーン
１４０・・・サービス・ノード
１４２・・・メッシュ経路指定機構
１５０・・・制御システム・ネットワーク
３３６・・・カットオフ・データ
３９２・・・トーラス・ネットワーク・ハードウェア
３９４・・・ツリー・ネットワーク・ハードウェア
３９６・・・グローバル割り込みネットワーク・ハードウェア
３９８・・・カットオフ・レジスタ
【図１】
2010525434.tif 000003
【図２】
2010525434.tif 000004
【図３】
2010525434.tif 000005
【図４】
2010525434.tif 000006
【図５】
2010525434.tif 000007
【図６】
2010525434.tif 000008
【図７】
2010525434.tif 000009
2010525434.tif 000010
【図８】
2010525434.tif 000011
2010525434.tif 000012
【図９】
2010525434.tif 000013
【手続補正書】
【提出日】平成21年11月9日(2009.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列コンピュータ・システムであって、
トーラス・ネットワークによって相互接続された複数の計算ノードと、
前記トーラス・ネットワーク内のリンクにおいて障害が生じる場合、前記トーラス・ネットワークをメッシュ・ネットワークに変換するメッシュ経路指定機構とを備えた、並列コンピュータ・システム。
【請求項２】
前記複数の計算ノードの各々に設けられたＸ次元用のＸ−カットオフ・レジスタ及びＸ＋カットオフ・レジスタをさらに備え、
前記メッシュ経路指定機構が、前記トーラス・ネットワーク内の前記障害に関して前記Ｘ−カットオフ・レジスタ及び前記Ｘ＋カットオフ・レジスタの各々に対する値を割り当てることにより、前記障害を通過することなく前記メッシュ・ネットワーク内の隣接ノードと通信するように各計算ノードに指示する、請求項１に記載の並列コンピュータ・システム。
【請求項３】
前記メッシュ経路指定機構が、前記コンピュータ・システムのサービス・ノード内に存在する、請求項１又は請求項２に記載の並列コンピュータ・システム。
【請求項４】
各ノードを３次元内のその６個の最近隣ノードと接続するように、前記複数の計算ノードが前記トーラス・ネットワークと相互接続される、請求項１ないし請求項３の何れか１項に記載の並列コンピュータ・システム。
【請求項５】
前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項４に記載の並列コンピュータ・システム。
【請求項６】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項１ないし請求項５の何れか１項に記載の並列コンピュータ・システム。
【請求項７】
並列コンピュータ・システム内の障害回復のためのコンピュータ実装方法であって、
複数の計算ノードを相互接続するトーラス・ネットワーク内の障害を検出するステップと、
前記障害を回避するための、前記複数の計算ノード内に設けられたカットオフ・レジスタ用の新しい値を決定するステップと、
前記カットオフ・レジスタ内に前記新しい値を設定するステップと、
前記カットオフ・レジスタ内の前記新しい値を使用して、前記障害を回避して前記トーラス・ネットワーク上でデータを経路指定するように、ハードウェア及びソフトウェアをリセットするステップとを含む、コンピュータ実装方法。
【請求項８】
前記カットオフ・レジスタ用の新しい値を決定する前記ステップが、前記コンピュータ・システムのサービス・ノード内に設けられたメッシュ経路指定機構によって実施される、請求項７に記載のコンピュータ実装方法。
【請求項９】
各ノードを３次元内のその６個の最近隣ノードと接続するように、前記複数の計算ノードが前記トーラス・ネットワークと相互接続される、請求項７又は請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記コンピュータ・システムが、前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項７ないし請求項１０の何れか１項に記載のコンピュータ実装方法。
【請求項１２】
コンピュータ・システムにおいて実行されるコンピュータ・プログラムであって、
並列コンピュータ・システム内の複数の計算ノードを相互接続するトーラス・ネットワークを開くために障害が生じる場合、前記トーラス・ネットワークをメッシュ・ネットワークに変換するメッシュ経路指定機構を備えた、コンピュータ・プログラム。
【請求項１３】
前記メッシュ経路指定機構が、前記トーラス・ネットワーク内の前記障害に関して前記複数の計算ノードの各々に設けられたＸ次元用のＸ−カットオフ・レジスタ及びＸ＋カットオフ・レジスタに対する値を割り当てることにより、前記障害を通過することなく前記メッシュ・ネットワーク内の隣接ノードと通信するように各計算ノードに指示する、請求項１２記載のコンピュータ・プログラム。
【請求項１４】
前記メッシュ経路指定機構が、前記コンピュータ・システムのサービス・ノード内に存在する、請求項１２又は請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記コンピュータ・システムが、超並列コンピュータ・システムである、請求項１２ないし請求項１４の何れか１項に記載のコンピュータ・プログラム。
【請求項１６】
前記コンピュータ・システムが、前記複数の計算ノードの各々に設けられたＹ次元及びＺ次元用のＹ＋、Ｙ−、Ｚ＋及びＺ−カットオフ・レジスタをさらに備えた、請求項１３に記載のコンピュータ・プログラム。
【請求項１７】
請求項７ないし請求項１１の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【国際調査報告】
2010525434.tif 000014
2010525434.tif 000015
2010525434.tif 000016