(57)【要約】  本発明は、特に、複数のノードと、複数のノードのノードを接続する静的な通信リンクとを備えるクラスタにおいて、通信リンクに関する負荷レベルにもとづくルーティングの最適化に関する。特定されたクラスタの少なくとも２つのノードの間の接続を確立する（５０５）ために、通信リンクによって特定されたノードを接続する少なくとも１つの経路が、特定されたノード、通信リンク、および各々の通信リンクに関する少なくとも１つの負荷レベルに従って割り出される（５１０）。割り出された経路が選択される。その後に、選択された経路に関する重みの値が推定され（５２０）、選択された経路の各々の通信リンクに関する負荷レベルが増やされる（５２５）。
2013526809.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、前記複数のノードのノードを接続する静的な通信リンクとを備えるクラスタにおいて、前記通信リンクに関する負荷レベルにもとづくルーティングを最適化するためのコンピュータにおける方法であって、
前記クラスタのノードであって、間に接続を確立すべき少なくとも２つのノードを特定するステップ（５０５）と、
前記通信リンクによって前記特定された少なくとも２つのノードを接続する少なくとも１つの経路を、前記特定された少なくとも２つのノード、前記通信リンクのうちの複数の通信リンク、および前記複数の通信リンクの各々の通信リンクに関する少なくとも１つの負荷レベルに従って割り出し、所定の経路を選択するステップ（５１０）と、
前記選択された経路に関する重みの値を推定するステップ（５２０）と、
前記選択された経路の各々の通信リンクに関する負荷レベルを増やすステップ（５２５）と
を含むことを特徴とする、方法。
【請求項２】
前記特定された少なくとも２つのノードのうちの少なくとも１つのノードについて、ノードの種類を取得するステップ（５１５）をさらに含んでおり、前記重みの前記推定による値が、前記取得されるノードの種類に少なくとも部分的に従って推定される、請求項１に記載の方法。
【請求項３】
前記特定された少なくとも２つのノードのうちの少なくとも１つのノードが属するグループの参照を取得するステップ（５１５）をさらに含んでおり、前記重みの前記推定による値が、前記取得される前記グループの参照に少なくとも部分的に従って推定される、請求項１または２に記載の方法。
【請求項４】
ノードの種類および／またはグループが、該当のノードの性質に従って決定される、請求項３に記載の方法。
【請求項５】
重み配列を定めるステップ（５００）をさらに含んでおり、前記重み配列が、ノードの識別子、種類、および／またはノードのグループに応じて経路の重みを表わしており、前記重みの値を推定するステップが、前記重み配列を使用する、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記特定された少なくとも２つのノードの間に前記選択された経路を確立させるステップをさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
少なくとも１つの静的なルーティング表を更新するステップをさらに含んでおり、前記少なくとも１つの静的なルーティング表は、前記クラスタの少なくとも１つのスイッチに関連付けられ、前記少なくとも１つのスイッチは、少なくとも前記少なくとも２つのノードを接続している、請求項１から６のいずれか一項に記載の方法。
【請求項８】
経路が、各経路に関する重みの値の順にて選択される、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記通信リンクが、Ｉｎｆｉｎｉｂａｎｄ方式の通信リンクである、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
コンピュータ上で実行されたときに請求項１から９のいずれか一項に記載の方法の各ステップを実行するように構成されたインストラクションを含んでいるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタにおけるルーティング、すなわちクラスタのノード群の間の通信経路の決定に関し、さらに詳しくは、静的な通信リンクを備えるクラスタにおけるルーティングの最適化方法およびこの方法を実行するコンピュータプログラムに関する。
【背景技術】
【０００２】
高性能計算（ＨＰＣ）が、特に航空、エネルギー、気候、および生命科学などの技術分野において、大学および産業界における研究などのために開発されている。モデル化およびシミュレーションが、特により信頼できかつ消費するエネルギーも少ない革新的な製品の開発コストの削減および迅速な商品化を可能にする。研究技術者にとって、高性能計算は、不可欠の研究手段となっている。
【０００３】
この計算は、一般に、クラスタと呼ばれるデータ処理システムにおいて実行される。クラスタは、典型的には、相互接続されたノードの組を備えている。いくつかのノード（計算ノード）は、計算タスクの実行に使用され、別のノード（ストレージノード）は、データの記憶に使用され、他の１つ以上のノード（管理ノード）が、クラスタを管理する。各々のノードは、例えばＬｉｎｕｘ（登録商標）などのオペレーティングシステムを実行するサーバである。ノード間の接続は、例えばＥｔｈｅｒｎｅｔ（登録商標）またはＩｎｆｉｎｉｂａｎｄの通信リンク（Ｉｎｆｉｎｉｂａｎｄは商標である）を使用して行なわれる。
【０００４】
図１が、ファットツリー（ｆａｔ−ｔｒｅｅ）形式のクラスタの接続形態１００の一例の概略図である。クラスタが、ノード（大まかに１０５で指し示されている）の組を備えている。組１１０に属するノードが、ここでは計算ノードである一方で、組１１５のノードは、サービスノード（ストレージノードおよび管理ノード）である。計算ノードを、計算アイランドと称される下位の組１２０にグループ化でき、組１１５は、サービスアイランドと称される。
【０００５】
ノードは、スイッチによって例えば階層的に接続される。図１に示した例では、ノードが第１のレベルのスイッチ１２５へと接続され、第１のレベルのスイッチ１２５が、第２のレベルのスイッチ１３０へと接続され、次いで第２のレベルのスイッチ１３０が、第３のレベルのスイッチ１３５へと接続されている。
【０００６】
図２に示されるように、各々のノードは、通常は１つ以上のマイクロプロセッサ、ローカルメモリ、および通信インターフェイスを備えている。より具体的には、ここでは、ノード２００が通信バス２０２を備えており、
中央演算ユニット（ＣＰＵ）またはマイクロプロセッサ２０４、
プログラムの実行時に生成および変更される変数およびパラメータを記録するように構成されたレジスタを備えるランダムアクセスメモリ（ＲＡＭ）２０６の構成要素（図示のように、各々のランダムアクセスメモリ構成要素をマイクロプロセッサに組み合わせることができる）、ならびに
データの送信および受信を行なうように構成された通信インターフェイス２０８  が、通信バス２０２へと接続されている。
【０００７】
ノード２００は、ここでは、特にプログラムの実行可能コードを収容することができるハードディスクなどの内部ストレージ手段２１２をさらに有している。
【０００８】
通信バスが、ノード２００に含まれ、あるいはノード２００へと接続される種々の構成要素の間の通信および相互運用を可能にしている。マイクロプロセッサ２０４が、１つ以上のプログラムのソフトウェアコードの各部のインストラクションの実行を制御および指揮する。起動時に、例えばハードディスクなどの不揮発メモリに保存された１つ以上のプログラムが、ランダムアクセスメモリ２０６へと転送される。
【０００９】
ここで、クラスタの性能が、通信リンクを介して確立されてノード間のデータの転送を可能にする経路の品質に直接的に関係することが、明らかになっている。一般に、物理的な通信リンクが、クラスタのハードウェアの構成時にノードおよびスイッチの間に確立され、通信経路そのものは、ノード間に確立させるべき接続の定義にもとづいて、初期化段階において決定される。実装される通信技術に応じて、経路の設定は、静的であっても、動的であってもよい。
【００１０】
例として、Ｉｎｆｉｎｉｂａｎｄ技術は、クラスタにおいて経路の静的な設定を可能にする。この設定は、各々のスイッチにおいてリニア転送テーブル（ＬＦＴ）として知られる静的なルーティング表を使用する。この技術が実装される場合、ＦＴｒｅｅ、ＭＩＮＨＯＰ、ＵＰＤＮ、およびＬＡＳＨという名称で知られるアルゴリズムなどのルーティングアルゴリズムを使用することができる。
【００１１】
簡単化された方法で、ＦＴｒｅｅアルゴリズムは、存在する通信リンクの全体に可能なかぎり分散するように経路を決定する。これらの目的のために、全体がＦＴｒｅｅ形式のアーキテクチャに従って接続された通信ネットワークのルーティングの際には、ネットワークの各々のノードが、同じ重要性を有するものと考えられる。したがって、経路が同じリンクの２つのノードの間に確立されるとき、そのリンクを使用する経路の数（リンクの負荷と呼ばれる）が、１だけ増加する。ルーティングアルゴリズムは、新たな経路を確立させようとするとき、そこにいくつかの可能性が存在する場合、それらの可能性のあるリンクに関する負荷レベルを比較し、負荷レベルが最も低いリンクに係る経路を選択する。
【００１２】
ルーティングの品質を、リンク当たりの経路の数に関して表現することができる。
【００１３】
図３ａ〜図３ｅが、スイッチ３００を含むクラスタの初期化段階の際のスイッチ３００におけるこのルーティングの原理を示している。
【００１４】
ここで、スイッチ３００が、スイッチ３００を入力３０５−１〜３０５−４へと接続する４つの入力通信リンク（３１０−１〜３１０−４で指し示されている）と、スイッチ３００を出力３１５−１および３１５−２へと接続する２つの出力通信リンク（３２０−１および３２０−２で指し示されている）を有している。初期化の前は、リンク３１０−１〜３１０−４、３２０−１、および３２０−２のいずれも、経路を含んでいない。したがって、これらのリンクに関する負荷レベルは、図３ａにおいて各々のリンクの傍らに示されているようにゼロである。次いで、スイッチ３００の入力３０５−１と出力との間に経路を確立すべき場合、リンク３１０−１（使用できる唯一のリンク）が選択され、さらにリンク３２０−１が選択される（ここではリンク３２０−１および３２０−２に関する負荷レベルがゼロに等しいため、第１のリンクが選択される）。次いで、図３ｂに示されるように、リンク３１０−１および３２０−１に関する負荷レベルが、これらのリンクが追加の経路を提供していることを示すために、１だけ増やされる。
【００１５】
同じ方法で、スイッチ３００の入力３０５−２と出力との間に経路を確立すべき場合、リンク３１０−２（使用できる唯一のリンク）が選択され、さらにリンク３２０−２が選択される（リンク３２０−１に関する負荷レベルが１に等しく、リンク３２０−２に関する負荷レベルがゼロに等しいため、後者のリンクが選択される）。次いで、図３ｃに示されるように、リンク３１０−２および３２０−２に関する負荷レベルが、これらのリンクが追加の経路を提供していることを示すために、１だけ増やされる。同様の方法で、スイッチ３００の入力３０５−３と出力との間に経路を確立すべき場合、リンク３１０−３（使用できる唯一のリンク）が選択され、さらにリンク３２０−１が選択される（リンク３２０−１および３２０−２に関する負荷レベルが等しいため、第１のリンクが選択される）。次いで、図３ｄに示されるように、リンク３１０−３および３２０−１に関する負荷レベルが、これらのリンクが追加の経路を提供していることを示すために、１だけ増やされる。
【００１６】
最後に、スイッチ３００の入力３０５−４と出力との間に経路を確立すべき場合、リンク３１０−４（使用できる唯一のリンク）が選択され、さらにリンク３２０−２が選択される（リンク３２０−１に関する負荷レベルが２に等しく、リンク３２０−２に関する負荷レベルが１に等しいため、後者のリンクが選択される）。次いで、図３ｅに示されるように、リンク３１０−４および３２０−２に関する負荷レベルが、これらのリンクが追加の経路を提供していることを示すために、１だけ増やされる。ノード間のすべての経路が確立されたとき、スイッチの静的なルーティング表が更新される。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上述のルーティングアルゴリズムは、良好な結果をもたらすが、最適ではない。
【００１８】
本発明は、上述した問題のうちの少なくとも１つを解決できるようにする。
【課題を解決するための手段】
【００１９】
本発明は、複数のノードと、前記複数のノードのノードを接続する静的な通信リンクとを備えるクラスタにおいて、前記通信リンクに関する負荷レベルにもとづくルーティングを最適化するためのコンピュータにおける方法であって、
前記クラスタのノードであって、間に接続を確立すべき少なくとも２つのノードを特定するステップと、
前記通信リンクによって前記特定された少なくとも２つのノードを接続する少なくとも１つの経路を、前記特定された少なくとも２つのノード、前記通信リンクのうちの複数の通信リンク、および前記複数の通信リンクの各々の通信リンクに関する少なくとも１つの負荷レベルに従って割り出し、所定の経路を選択するステップと、
前記選択された経路に関する重みの値を推定するステップと、
前記選択された経路の各々の通信リンクに関する負荷レベルを増やすステップとを含む方法に関する。
【００２０】
このようにして、本発明による方法は、クラスタおよび関係するノードの特徴に応じて特定の経路が他の経路よりも優先または回避されるように経路に重みを組み合わせることによって、クラスタのルーティングを最適にすることを可能にする。
【００２１】
好都合には、この方法が、前記特定された少なくとも２つのノードのうちの少なくとも１つのノードについて、ノードの種類を取得するステップをさらに含み、前記重みの前記推定による値が、前記取得されるノードの種類に少なくとも部分的に従って推定される。このようにして、本発明による方法は、ノードの種類に応じたクラスタのルーティングの最適化を可能にする。
【００２２】
特定の実施の形態によれば、この方法が、前記特定された少なくとも２つのノードのうちの少なくとも１つのノードが属するグループの参照を取得するステップをさらに含み、前記重みの前記推定による値が、前記取得されるグループの参照に少なくとも部分的に従って推定される。このようにして、本発明による方法は、各々のノードの特徴を個別に明らかにする必要なく、ノードの種類に応じたクラスタのルーティングの最適化を可能にする。ノードの種類および／またはグループは、好ましくは該当のノードの性質に応じて決定される。
【００２３】
さらに特定の実施の形態によれば、この方法が、重み配列を定めるステップをさらに含み、前記重み配列が、ノードの識別子、種類、および／またはノードのグループに応じて経路の重みを表わしており、前記重みの値を推定するステップが、前記重み配列を使用する。このようにして、ノードの特徴に応じた重みの管理が、きわめて簡単に実行される。
【００２４】
好都合には、この方法が、前記特定された少なくとも２つのノードの間に前記選択された経路を確立させるステップをさらに含む。
【００２５】
さらに特定の実施の形態によれば、この方法が、少なくとも１つの静的なルーティング表を更新するステップをさらに含み、前記少なくとも１つの静的なルーティング表は、前記クラスタの少なくとも１つのスイッチに関連付けられ、前記少なくとも１つのスイッチは、少なくとも前記少なくとも２つのノードを接続している。このようにして、本発明による方法を、特に静的なルーティングテーブルを備えるスイッチを使用する従来からのアーキテクチャにおいて、容易に実行することができる。
【００２６】
経路は、好都合には、ルーティングを簡単にするために各経路に関する重みの値の順にて選択される（重みの軽い経路は、重みの大きい経路よりも容易に定めることができる）。
【００２７】
使用される通信リンクは、特にＩｎｆｉｎｉｂａｎｄ方式の通信リンクであってもよい。
【００２８】
さらに本発明は、コンピュータ上で実行されたときに上述の方法の各ステップを実行するように構成されたインストラクションを含んでいるコンピュータプログラムに関する。このコンピュータプログラムによってもたらされる利点は、上述した利点と同様である。
【００２９】
本発明の他の利点、目的、および特徴が、あくまでも本発明を限定するものではない例として添付の図面に関連して提示される以下の詳細な説明から、明らかになるであろう。
【図面の簡単な説明】
【００３０】
【図１】クラスタの接続形態の例を示している。
【図２】クラスタのノードのアーキテクチャの例を示している。
【図３ａ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおけるＦＴｒｅｅ方式のアルゴリズムによるルーティングの原理を示している。
【図３ｂ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおけるＦＴｒｅｅ方式のアルゴリズムによるルーティングの原理を示している。
【図３ｃ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおけるＦＴｒｅｅ方式のアルゴリズムによるルーティングの原理を示している。
【図３ｄ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおけるＦＴｒｅｅ方式のアルゴリズムによるルーティングの原理を示している。
【図３ｅ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおけるＦＴｒｅｅ方式のアルゴリズムによるルーティングの原理を示している。
【図４ａ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおける本発明による重みを用いたルーティングの例を示している。
【図４ｂ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおける本発明による重みを用いたルーティングの例を示している。
【図４ｃ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおける本発明による重みを用いたルーティングの例を示している。
【図４ｄ】スイッチを備えるクラスタの初期化段階の際のこのスイッチにおける本発明による重みを用いたルーティングの例を示している。
【図５】静的な通信リンクを使用する通信ネットワークのルーティングの段階において２つのノードを接続する経路を決定および選択し、さらには経路の選択後の通信リンクの負荷レベルを決定するために実行される典型的なアルゴリズムの概略図である。
【発明を実施するための形態】
【００３１】
クラスタ内の通信ネットワークの経路が同じ性質である場合、それらの経路によって接続されるノードの性質が、交換されるデータの量に関し、したがって使用される帯域幅に関して、ある役割を果たすことが明らかになっている。すなわち、例えば、２つの計算ノードを接続する経路は、一般に、計算ノードをストレージノードへと接続する経路と比べ、あまり帯域幅を使用しない。
【００３２】
したがって、本発明は、ルーティングの際に、クラスタのノードの性質を使用して、それらのノードを接続する経路に重みまたは重み付け係数を与える。クラスタの特定の種類のノードを接続する経路に重みを割り当てることで、使用されるルーティングアルゴリズムを特定の経路へと傾けることが可能になり、結果として使用される通信リンクの各々の経路への帯域幅の割り当てを最適化することが可能になる。
【００３３】
従来からの方法においては、使用されるルーティングアルゴリズムが、２つのノードの間の経路を確立するときに複数の選択肢が存在する場合、それらの選択肢に関する負荷レベル（すなわち典型的には、それらの選択肢に対応するリンクを使用している経路の数）を比較し、負荷レベルが最も低い選択肢を選択する。しかしながら、本発明によれば、２つのノードの間に経路が確立されるとき、その経路をサポートする通信リンクの負荷レベルが、当該２つのノードの種類に関係した値を有する重みに応じて増やされる。
【００３４】
特定の種類の経路に所与の重みを割り当てることによって、ルーティングを、帯域幅に関して特定のニーズを有する特定の経路を優先するように偏らせることが可能になる。すなわち、２つのノードを接続する経路に大きな値を有する重みを使用することによって、それらのノードの間のデータ通信により広い帯域幅を割り当てることができる。
【００３５】
ルーティング段階における経路への重みの割り当てを、アプリケーションプログラムインターフェイス（ＡＰＩ）を通じて実行することができる。
【００３６】
特定の実施の形態によれば、ｗｅｉｇｈｔ＿ｆｉｌｅと称される重みファイルが、Ｉｎｆｉｎｉｂａｎｄ方式の通信ネットワークにおいてポートＧＵＩＤ（グローバル一意識別子（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）の略）と称されるポート識別子によって定められる経路へと重みを割り当てるために使用される。
【００３７】
そのようなファイルが、ルーティング段階に先立って分析される。そのようなファイルは、種類によってグループ分けされた通信ネットワークの通信要素（典型的には、ノード）のリスト、ならびにそれらのグループ間に形成されるペアについての重みのリストを含んでいる。それらの分析の際に、それらの重みを、ルーティング段階において各々の通信リンクについて使用すべき負荷の増分を記述する配列を満たすために使用することができる。初期値として、ある２種類のノードを接続する経路について重みの値が定義されていない場合には、その値は１に等しい。
【００３８】
ルーティング段階において経路が一連のリンクを通じて確立されるとき、それらのリンクの各々に関する負荷レベルが、確立された経路の両端のノードの種類に関連付けられた重みの値だけ増やされる。
【００３９】
図４ａ〜図４ｄが、スイッチ４００を含むクラスタの初期化段階の際のスイッチ４００におけるこのルーティングの原理を示している。
【００４０】
図３ａ〜図３ｅに示したスイッチ３００と同様に、ここではスイッチ４００が、スイッチ４００を入力４０５−１〜４０５−４へと接続する４つの入力通信リンク（４１０−１〜４１０−４で指し示されている）と、スイッチ４００を出力４１５−１および４１５−２へと接続する２つの出力通信リンク（４２０−１および４２０−２で指し示されている）を有している。入力は、例えばネットワークのノードからの出力または他のスイッチの出力である。
【００４１】
初期化以前は、リンク４１０−１〜４１０−４、４２０−１、および４２０−２のいずれも、経路を含んでいない。したがって、これらのリンクの各々に関する負荷レベルは、図４ａにおいて各々のリンクの傍らに示されているとおり、ゼロである。次いで、スイッチ４００の入力４０５−１と出力との間に経路を確立すべき場合、リンク４１０−１（使用できる唯一のリンク）が選択され、さらにリンク４２０−１が選択される（リンク４２０−１および４２０−２に関する負荷レベルが同じゼロであるため、第１のリンクが選択される）。ここで、今まさに確立されたリンク４１０−１および４２０−１を使用する経路の目的が、計算ノードをストレージノードへと接続することであると仮定する。したがって、計算タイプのノードとストレージタイプのノードとを接続する経路の重みの値が２００である場合、この値が、図４ｂに示されるようにリンク４１０−１および４２０−１の負荷レベルを増やすために使用される。
【００４２】
同じ方法で、スイッチ４００の入力４０５−２と出力との間に経路を確立すべき場合、リンク４０−２（使用できる唯一のリンク）が選択され、さらにリンク４２０−２が選択される（リンク４２０−１に関する負荷レベルが２００に等しく、リンク４２０に関する負荷レベルがゼロであるため、負荷レベルの値が最も小さい後者が選択される）。
【００４３】
ここで、今まさに確立されたリンク４１０−２および４２０−２を使用する経路の目的が、サービスノードを計算ノードへと接続することであると仮定し、サービスタイプのノードと計算タイプのノードとを接続する経路の重みの値が９９であると仮定すると、この値が、図４ｃに示されるようにリンク４１０−２および４２０−２の負荷を増やすために使用される。
【００４４】
同様の方法で、スイッチ４００の入力４０５−３と出力との間に経路を確立すべき場合、リンク４１０−３（使用できる唯一のリンク）が選択され、さらにリンク４２０−２が選択される（リンク４２０−１に関する負荷レベルが２００に等しく、リンク４２０−２に関する負荷レベルが９９に等しいため、負荷レベルの値が最も小さい後者が選択される）。今まさに確立されたリンク４１０−３および４２０−２を使用する経路の目的が、２つの計算ノードを接続することであると仮定し、計算タイプのノードを接続する経路の重みの値が１であると仮定すると、この値が、図４ｄに示されるようにリンク４１０−３および４２０−２の負荷を増やすために使用される。
【００４５】
この方法は、クラスタの初期化時にクラスタのすべての経路を決定するために好都合に適用される。
【００４６】
さらに、ルーティング段階において、経路は、好ましくはルーティングを最適にするために、順序付けられた方式で決定され、すなわち他の経路の重みの値よりも大きい値の重みが組み合わせられた経路が、当該他の経路よりも先に決定される。この順序を、重みの配列ならびにノードの種類にもとづくノードの特定を可能にするノードのグループから決定することができる。
【００４７】
重みファイルの抜粋が、別表（抜粋１）に示されている。別表は、通信ネットワークのノードのグループ分けの例（ここでは、各々のグループが別々の種類のノードに相当している）、ならびにノードの種類の組に対する重みの割り当てを示している。
【００４８】
この例によれば、ポートＧＵＩＤとして値０ｘ１００９０１、０ｘ１０１２０１、０ｘ１００９０３、０ｘ１１０１２０３、０ｘ１０１２０７、０ｘ１００９０９、および０ｘ１０１２０９を有するノードが、「ストレージ（ｓｔｏｒａｇｅ）」タイプのノードである。ここで、ノードのタイプ（種類）の定義は、ＤＥＦという表示を使用して行なわれ、ＤＥＦという表示の後ろにグループそのものの名称が続けられ、その後に中括弧の間に配置された該当するポートＧＵＩＤの列挙が続けられる。同様に、ポートＧＵＩＤとして０ｘ１００９０５、０ｘ１０１２０５、および０ｘ１００９０７を有するノードは、「管理（ａｄｍｉｎ）」タイプのノードであり、すなわち管理ノードである。同様に、ポートＧＵＩＤとして０ｘ１００９０ｂ、０ｘ０１０１２０ｂ、０ｘ１００９０ｄ、０ｘ１０１２０ｄ、０ｘ１００９０ｆ、０ｘ１０１２０ｆ、０ｘ１００９１１、０ｘ１０１２１１、０ｘ１００９１３、０ｘ１０１２１３、０ｘ１００９１５、０ｘ１００９１７、０ｘ１０１２１７、および０ｘ１００９１９を有するノードは、「計算（ｃｏｍｐｕｔｅ）」タイプのノードである。さらに、「サービス（ｓｅｒｖｉｃｅ）」と呼ばれるノードのタイプは、「ストレージ（ｓｔｏｒａｇｅ）」および「管理（ａｄｍｉｎ）」タイプのノードの集合である。
【００４９】
ここで、重みは、ファイルの末尾において与えられる。ここで、２つのノードを接続する経路の重みを定義するための文法は、「ＩＤ１＝＞ＩＤ２  重み」という構文を使用し、ここでＩＤ１がポートＧＵＩＤまたは送信ノードのグループであり、ＩＤ２がポートＧＵＩＤまたは受信ノードのグループであり、重みが、リンクの負荷レベルの計算において使用すべき値である。この例によれば、２００に等しい重みの値が、計算ノード（すなわち、「計算（ｃｏｍｐｕｔｅ）」タイプのノード）からストレージノード（すなわち、「ストレージ（ｓｔｏｒａｇｅ）」タイプのノード）へのすべての経路に加えられる（≪ｃｏｍｐｕｔｅ＝＞ｓｔｏｒａｇｅ  ２００≫）。同様に、９９に等しい重みの値が、サービスノード（すなわち、「サービス（ｓｅｒｖｉｃｅ）」タイプのノード）から計算ノード（すなわち、「計算（ｃｏｍｐｕｔｅ）」タイプのノード）へのすべての経路に加えられる（≪ｓｅｒｖｉｃｅ＝＞ｃｏｍｐｕｔｅ  ９９≫）。同じ方法で、２００に等しい重みの値が、管理ノード（すなわち、「管理（ａｄｍｉｎ）」タイプのノード）からストレージノード（すなわち、「ストレージ（ｓｔｏｒａｇｅ）」タイプのノード）へのすべての経路に加えられる（≪ａｄｍｉｎ＝＞ｓｔｏｒａｇｅ  ２００≫）。
【００５０】
特定の実施の形態によれば、２つの種類のノードを接続する経路に関する重みが、重み設定ファイルに複数回現れる場合に、その経路に関する重みが、指定された重みの累積値に等しい。
【００５１】
当然ながら、他の重みを定めることができる。同様に、別の文法を使用することができる。さらに、上述の例に従い、経路に方向性があると考えられる場合に、経路に関する負荷のレベルは、あたかも経路が双方向性であるかのように、逆の経路に関する負荷のレベルと同じであってもよい。
【００５２】
図５が、静的な通信リンクを使用する通信ネットワークのルーティングの段階において２つのノードを接続する経路を決定および選択し、さらには経路の選択後の通信リンクの負荷レベルを決定するために実行される典型的なアルゴリズムの概略図である。
【００５３】
第１のステップ（ステップ５００）は、２つのノードから形成されるノードペアに重み（経路の方向にかかわらず同じ重み）を関連付け、あるいは別表（表１）に示されるように送信ノードおよび受信ノードから形成されるノードペアに重み（経路の方向に関連した重み）を関連付けることを可能にする重み配列の初期化に関する。この配列を、特に別表（抜粋１）に示した重みファイルなどの重みファイルから確立することができる。このステップは、ノードの識別子とノードの種類および／またはノードが属する１つ以上のグループとの間の対応関係を保存することも可能にする。あるいは、重み配列が、別表（表２）に部分的に示されているように、各々のノードペアに関する重みを直接定めてもよい。
【００５４】
表１が、送信側のノードタイプを受信側のノードタイプへと接続する経路に与えるべき重みを示している一方で、表２は、送信ノードを受信ノードへと接続する経路に与えるべき重みを示している。
【００５５】
続くステップ（ステップ５０５）において、確立すべき経路の両端のノードのペアが特定される。ここでは、ノードのペアが、送信ノードおよび受信ノードからなる。このステップは、確立すべき経路の定義を可能にするためのルーティングアルゴリズムの基本的なステップである。例えば、ノードが、ポートＧＵＩＤによって特定される。
【００５６】
次いで、それら特定されたノードを接続するための経路の選択肢を割り出し、最良の経路を選択するステップが、標準的なアルゴリズム（例えば、ＦＴｒｅｅアルゴリズム）に従って実行される（ステップ５１０）。
【００５７】
続くステップ（ステップ５１５）において、特定されたノードのタイプあるいはそれらが属する１つ以上のグループが、初期化のステップにおいて得られた情報に従って取得される。破線の使用によって示唆されているとおり、このステップは随意である。なぜならば、特に初期化の段階において決定される重み配列が、重みをノードの識別子に直接関連付けている場合に、この段階においてノードの種類および／またはノードが属する１つ以上のグループを割り出す必要がないからである。
【００５８】
次いで、ノードの種類、ノードが属する１つ以上のグループ、および／またはノードの識別子（例えば、ポートＧＵＩＤ）が、これらのノードを接続する経路の重みを推定するために使用される（ステップ５２０）。重みは、好ましくは、前もって決定された重み配列を読み取ることによって直接与えられる。あるいは、重みを、所定の関数または表に従い、重み配列に保存された参照値に従って推定することができる。重み配列からの重みを、例えばクラスタの接続形態または当該経路によって実現されるリンクの位置に関する特定の状況に応じて、増減させてもよい。
【００５９】
次いで、選択された経路について推定された重みが、当該経路によって実現される通信リンクに関する負荷レベルを更新するために使用される（ステップ５２５）。すでに述べたように、推定された重みの値を、当該経路が使用する通信リンクの負荷レベルの値へと加算することができる。
【００６０】
破線の矢印によって示唆されるとおり、ステップ５０５〜５２５を、新たな経路の確立のために繰り返すことができる。典型的には、ステップ５０５〜５２５が、図５に示したアルゴリズムが実行されるクラスタにおいて確立すべきすべての経路について繰り返される。
【００６１】
ここで、このアルゴリズムを、例えば図２に関して説明したアーキテクチャと同様のアーキテクチャを有する装置において実行できることが、明らかになっている。
【００６２】
このアルゴリズムは、管理ノード上で動作するネットワークマネージャにおいて実行される。
【００６３】
さらに、ルーティングアルゴリズムにおける重みの使用が、クオリティオブサービス（ＱｏＳ）の管理アルゴリズムと矛盾しないことが明らかになっている。ここで、クオリティオブサービスの管理が、典型的には仮想リンクの考え方に従って各々の経路に関するサービスおよび信用のレベルにもとづいて、ネットワークの争いの場合に特定の経路を優先できるようにすることを、思い出すべきである。したがって、この管理は、本質的にルーティングとは無関係である。したがって、これら２つの手法は、クラスタにおけるデータの伝送を改善し、したがってクラスタの性能を向上させるうえで、相補的である。
【００６４】
当然ながら、個々のニーズを満たすために、当業者であれば以上の説明に変更を加えることができるであろう。
【００６５】
【表１】
2013526809.tif 000003
2013526809.tif 000004
【００６６】
【表２】
2013526809.tif 000005
【図１】
2013526809.tif 000006
【図２】
2013526809.tif 000007
【図３ａ】
2013526809.tif 000008
【図３ｂ】
2013526809.tif 000009
【図３ｃ】
2013526809.tif 000010
【図３ｄ】
2013526809.tif 000011
【図３ｅ】
2013526809.tif 000012
【図４ａ】
2013526809.tif 000013
【図４ｂ】
2013526809.tif 000014
【図４ｃ】
2013526809.tif 000015
【図４ｄ】
2013526809.tif 000016
【図５】
2013526809.tif 000017
【国際調査報告】
2013526809.tif 000018
2013526809.tif 000019
2013526809.tif 000020
2013526809.tif 000021
2013526809.tif 000022
2013526809.tif 000023