(57)【要約】      （修正有）【課題】コンピュータクラスタのノード間の通信経路を、通信リンクがバランスよく使用されるように設定することができる方法、当該方法に対応するコンピュータプログラム及びコンピュータクラスタを提供する。【解決手段】コンピュータクラスタ１００において、ノード１０６０〜１０６６３にそれぞれ第１のグローバル番号を割り当てたのち、選択されたノードに対しては、第１のグローバル番号と異なり、通信リンク１１４の少なくとも一部のそれぞれの周期とは異なる値によって連続的に分離される番号を割り当てた、第２のグローバル番号を割り当てる。第２のグローバル番号とコンピュータクラスタのトポロジに基づいて、第１ノードと第２ノード間の経路をアルゴリズムを実行して決定する。該アルゴリズムは、第１ノード又は第２ノードが１より大きい周期に従う周期的な番号を有する、同一の通信リンク１１４を経由する通信経路を提供する。【選択図】図１
2019169135.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータクラスタ（１００）のノード（１０６0〜１０６63）の間の通信経路を確立する方法（２００，３００）であって、当該コンピュータクラスタ（１００）は、
ノード（１０６0〜１０６63）と、
前記ノード（１０６0〜１０６63）の相互接続ネットワーク（１１０）と、
を含み、前記相互接続ネットワーク（１１０）は、
一部が前記ノード（１０６0〜１０６63）に接続されたスイッチ（１１２1〜１１２14）と、
前記スイッチ（１１２1〜１１２14）の間の通信リンク（１１４）と、
を含み、
前記コンピュータクラスタ（１００）は、前記ノード（１０６0〜１０６63）、前記スイッチ（１１２1〜１１２14）、および前記通信リンク（１１４）の相対配置を定義する特定のトポロジを有し、
前記方法（２００，３００）は、
第１のグローバル番号が前記ノード（１０６0〜１０６63）にそれぞれ割り当てられた前記コンピュータクラスタ（１００）の前記トポロジを取得する工程（２０４）と、
前記ノード（１０６0〜１０６63）のうちの１対のノードの各組み合わせについて、当該１対ノードのうちの第１ノード及び第２ノードの間の通信経路を提供するように設計されたアルゴリズムを、これらのノードのそれぞれの番号及び前記コンピュータクラスタ（１００）の前記トポロジに基づいて実行する工程（２１０）であって、前記アルゴリズムは、前記第１ノード又は前記第２ノードが１より大きい周期に従う周期的な番号を有する、同一の通信リンク（１１４）を経由する通信経路を提供するように設計された、工程（２１０）と、
を備え、
前記方法（２００，３００）はさらに、
ノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）を選択する工程（２０６）と、
前記ノード（１０６0〜１０６63）に対して第２のグローバル番号を割り当てるべく番号付けする工程（２０８）であって、当該第２のグローバル番号は前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）のうちの少なくとも一部の前記第１のグローバル番号と異なり、前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）の前記第２のグローバル番号は、前記通信リンク（１１４）の少なくとも一部のそれぞれの周期とは異なる値によって連続的に分離される、工程（２０８）と、
を備え、
前記アルゴリズムを実行するために、前記ノード（１０６0〜１０６63）が前記第２のグローバル番号によって識別されることを特徴とする方法（２００，３００）。
【請求項２】
前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）は、他のノードにはない共通の特徴を有する、請求項１に記載の方法（２００，３００）。
【請求項３】
前記共通の特徴は、前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）が光ネットワークインターフェースであることである、請求項２に記載の方法（２００，３００）。
【請求項４】
前記共通の特徴は、前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）がストレージコンピュータ（１０４）に属することである、請求項２または３に記載の方法（２００，３００）。
【請求項５】
前記共通の特徴は、前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）がグラフィック処理装置を備えるコンピュータプロセッサ（１０２）に属することである、請求項２に記載の方法（２００，３００）。
【請求項６】
前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）の前記第２のグローバル番号が連続的である、請求項１から５のいずれか１項に記載の方法（２００）。
【請求項７】
前記通信リンク（１１４）の少なくとも一部のそれぞれの周期を決定する工程（３０２）と、
前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）の前記第２のグローバル番号を連続的に分離するための値を決定する工程（３０４）であって、決定された値のそれぞれは決定された前記周期と異なる、工程（３０４）と、
をさらに備える、請求項１から６のいずれか１項に記載の方法（３００）。
【請求項８】
前記ノード（１０６0〜１０６63）は前記スイッチの一部の接続ポートに接続され、当該接続ポートは、当該接続ポートが属する前記スイッチ内のローカル番号を有し、当該ローカル番号から前記第１のグローバル番号が取得される、請求項１から７のいずれか１項に記載の方法（２００，３００）。
【請求項９】
スイッチの接続ポートに接続された前記ノード（１０６0〜１０６63）の前記第１のグローバル番号は、当該ノード（１０６0〜１０６63）がそれぞれ接続された前記接続ポートのローカル番号と同じ順序で、規則的に連続するように互いに継続する、請求項８に記載の方法（２００，３００）。
【請求項１０】
前記コンピュータクラスタ（１００）のトポロジを決定するべく前記コンピュータクラスタ（１００）に対してディスカバリ機能を実行する工程（２０２）であって、当該ディスカバリ機能の実行中に前記第１のグローバルナンバリングシステムに従って前記ノード（１０６0〜１０６63）に番号付けを行う工程（２０２）をさらに備える、請求項１から９のいずれか１項に記載の方法（２００，３００）。
【請求項１１】
前記コンピュータクラスタ（１００）は、前記選択されたノード以外のノードが互いにデータを交換する第１のフェーズと、前記選択されたノード以外のノードが前記選択されたノードとデータを交換する第２のフェーズとを交互に繰り返すように設計された、請求項１から１０のいずれか１項に記載の方法（２００，３００）。
【請求項１２】
通信ネットワークからダウンロードし、及び／又はコンピュータ可読媒体に保存し、及び／又はプロセッサによって実行することが可能なコンピュータプログラムであって、当該コンピュータプログラムは、コンピュータ上で実行されたときに、請求項１から１１のいずれか１項に記載のコンピュータクラスタ（１００）のノード（１０６0〜１０６63）の間の通信経路を確立する方法（２００，３００）の各工程を実行するための命令を含む、コンピュータプログラム。
【請求項１３】
コンピュータクラスタ（１００）であって、
ノード（１０６0〜１０６63）と、
前記ノード（１０６0〜１０６63）の相互接続ネットワーク（１１０）と、
を含み、前記相互接続ネットワーク（１１０）は、
一部が前記ノード（１０６0〜１０６63）に接続されたスイッチ（１１２1〜１１２14）と、
前記スイッチ（１１２1〜１１２14）の間の通信リンク（１１４）と、
を含み、
前記コンピュータクラスタ（１００）は、前記ノード（１０６0〜１０６63）、前記スイッチ（１１２1〜１１２14）、および前記通信リンク（１１４）の相対配置を定義する特定のトポロジを有し、
前記コンピュータクラスタ（１００）は、
第１のグローバル番号が前記ノード（１０６0〜１０６63）にそれぞれ割り当てられた前記コンピュータクラスタ（１００）の前記トポロジを取得するための手段と、
前記ノード（１０６0〜１０６63）のうちの１対のノードの各組み合わせについて、当該１対のノードのうちの第１ノード及び第２ノードの間の通信経路を提供するように設計されたアルゴリズムを、これらのノードのそれぞれの番号及び前記コンピュータクラスタ（１００）の前記トポロジに基づいて実行するための手段であって、前記アルゴリズムは、前記第１ノード又は前記第２ノードが１より大きい周期に従う周期的な番号を有する、同一の通信リンク（１１４）を経由する通信経路を提供するように設計された、手段と、
を備え、
前記コンピュータクラスタ（１００）はさらに、
ノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）を選択するための手段と、
前記ノード（１０６0〜１０６63）に対して第２のグローバル番号を割り当てるべく番号付けするための手段であって、当該第２のグローバル番号は前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）のうちの少なくとも一部の前記第１のグローバル番号と異なり、前記選択されたノード（１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63）の前記第２のグローバル番号は、前記通信リンク（１１４）の少なくとも一部のそれぞれの周期とは異なる値によって連続的に分離される、手段と、
を備え、
前記アルゴリズムを実行するために、前記ノード（１０６0〜１０６63）が前記第２のグローバル番号によって識別されることを特徴とするコンピュータクラスタ（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータクラスタのノード間の通信経路を確立する方法、当該方法に対応するコンピュータプログラム、及びコンピュータクラスタに関する。
【発明の概要】
【０００２】
特に、本発明は以下の種類のコンピュータクラスタのノード間の通信経路を確立する方法に適応できる。すなわち、ノードと、前記ノードの相互接続ネットワークと、を含み、前記相互接続ネットワークは、一部が前記ノードに接続されたスイッチと、前記スイッチの間の通信リンクと、を含み、前記ノード、前記スイッチ、および前記通信リンクの相対配置を定義する特定のトポロジを有するコンピュータクラスタである。前記方法は、第１のグローバル番号が前記ノードにそれぞれ割り当てられた前記コンピュータクラスタの前記トポロジを取得する工程と、前記ノードのうちの１対のノードの各組み合わせについて、当該１対のノードのうちの第１ノード及び第２ノードの間の通信経路を提供するように設計されたアルゴリズムを、これらのノードのそれぞれの番号及び前記コンピュータクラスタの前記トポロジに基づいて実行する工程（２１０）であって、前記アルゴリズムは、前記第１ノード又は前記第２ノードが１より大きい周期に従う周期的な番号を有する、同一の通信リンクを経由する通信経路を提供するように設計された、工程と、を備える方法である。
【０００３】
上記の種類の方法は、コンピュータクラスタのパフォーマンスレベルを向上させるのに有利である。
【０００４】
よって、本発明は上記の種類のコンピュータクラスタのノード間の通信経路を確立する方法に関し、当該方法はさらに、ノードを選択する工程と、前記ノードに対して第２のグローバル番号を割り当てるべく番号付けする工程であって、当該第２のグローバル番号は前記選択されたノードのうちの少なくとも一部の前記第１のグローバル番号と異なり、前記選択されたノードの前記第２のグローバル番号は、前記通信リンクの少なくとも一部のそれぞれの周期とは異なる値によって連続的に分離される、工程と、を備え、前記アルゴリズムを実行するために、前記ノードが前記第２のグローバル番号によって識別されることを特徴とする方法である。
【０００５】
本発明により、選択されたノードの番号が通信リンクの少なくとも一部の周期を有さないように付与されたノードの番号に基づいて、アルゴリズムが実装される。これにより、これらの通信リンクの１つが、選択されたノードを結合する経路のすべてによって経由されることを防ぐことができる。こうして、選択されたノードについて通信リンクがバランスよく使用されることになる。大量のデータを交換するノードを選択して上記のようにバランスよく使用することによって、多数の選択されたノードについて同一の通信リンクが使用される可能性が低減され、よってこの通信リンクが混雑する可能性が低減される。
【０００６】
前記選択されたノードは、他のノードにはない共通の特徴を有してもよい。
【０００７】
また、前記共通の特徴は、前記選択されたノードが光ネットワークインターフェースであることであってもよい。
【０００８】
また、前記共通の特徴は、前記選択されたノードがストレージコンピュータに属することであってもよい。
【０００９】
また、前記共通の特徴は、前記選択されたノードがグラフィック処理装置を備えるコンピュータプロセッサに属することであってもよい。
【００１０】
また、前記選択されたノードの前記第２のグローバル番号が連続的であってもよい。
【００１１】
また、前記方法はさらに、前記通信リンクの少なくとも一部のそれぞれの周期を決定する工程と、前記選択されたノードの前記第２のグローバル番号を連続的に分離するための値を決定する工程であって、決定された値のそれぞれは決定された前記周期と異なる、工程と、を備えてもよい。
【００１２】
また、前記ノードは前記スイッチの一部の接続ポートに接続され、当該接続ポートは、当該接続ポートが属する前記スイッチ内のローカル番号を有し、当該ローカル番号から前記第１のグローバル番号が取得されてもよい。
【００１３】
また、スイッチの接続ポートに接続された前記ノードの前記第１のグローバル番号は、当該ノードがそれぞれ接続された前記接続ポートのローカル番号と同じ順序で、規則的に連続するように互いに継続してもよい。
【００１４】
また、前記方法はさらに、前記コンピュータクラスタのトポロジを決定するべく前記コンピュータクラスタに対してディスカバリ機能を実行する工程であって、当該ディスカバリ機能の実行中に前記第１のグローバルナンバリングシステムに従って前記ノードに番号付けを行う工程を備えてもよい。
【００１５】
また、前記コンピュータクラスタは、前記選択されたノード以外のノードが互いにデータを交換する第１のフェーズと、前記選択されたノード以外のノードが前記選択されたノードとデータを交換する第２のフェーズとを交互に繰り返すように設計されてもよい。
【００１６】
本発明はさらに、通信ネットワークからダウンロードし、及び／又はコンピュータ可読媒体に保存し、及び／又はプロセッサによって実行することが可能なコンピュータプログラムに関し、当該コンピュータプログラムは、コンピュータ上で実行されたときに、上述のコンピュータクラスタのノード間の通信経路を確立する方法の各工程を実行するための命令を含む。
【００１７】
本発明はさらに、ノードと、前記ノードの相互接続ネットワークと、を含み、前記相互接続ネットワークは、一部が前記ノードに接続されたスイッチと、前記スイッチの間の通信リンクと、を含み、前記ノード、前記スイッチ、および前記通信リンクの相対配置を定義する特定のトポロジを有するコンピュータクラスタに関し、前記コンピュータクラスタは、第１のグローバル番号が前記ノードにそれぞれ割り当てられた前記コンピュータクラスタの前記トポロジを取得するための手段と、前記ノードのうちの１対のノードの各組み合わせについて、当該１対のノードのうちの第１ノード及び第２ノードの間の通信経路を提供するように設計されたアルゴリズムを、これらのノードのそれぞれの番号及び前記コンピュータクラスタの前記トポロジに基づいて実行するための手段であって、前記アルゴリズムは、前記第１ノード又は前記第２ノードが１より大きい周期に従う周期的な番号を有する、同一の通信リンクを経由する通信経路を提供するように設計された、手段と、を備え、前記コンピュータクラスタはさらに、ノードを選択するための手段と、前記ノードに対して第２のグローバル番号を割り当てるべく番号付けするための手段であって、当該第２のグローバル番号は前記選択されたノードのうちの少なくとも一部の前記第１のグローバル番号と異なり、前記選択されたノードの前記第２のグローバル番号は、前記通信リンクの少なくとも一部のそれぞれの周期とは異なる値によって連続的に分離される、手段と、を備え、前記アルゴリズムを実行するために、前記ノードが前記第２のグローバル番号によって識別されることを特徴とする。
【００１８】
以下の説明により、本発明はよりよく理解されるであろう。この説明は例示のみを目的としたものであり、また、添付の図面を参照する。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるコンピュータクラスタの全体構造を示す図である。
【図２】本発明の一実施形態による図１のコンピュータクラスタのノード間の通信経路を確立する方法に含まれる連続する工程を示す図である。
【図３】本発明の他の実施形態による図１のコンピュータクラスタのノード間の通信経路を確立する方法に含まれる連続する工程を示す図である。
【発明を実施するための形態】
【００２０】
図１を参照して、本発明を実装するコンピュータクラスタ１００を説明する。
【００２１】
コンピュータクラスタ１００は独立したコンピュータ１０２，１０４をグループ化したものであり、外部から見れば非常に計算能力の高い単一のコンピュータとなる。こうしたコンピュータはＨＰＣ（高性能コンピュータ）と称する。各コンピュータ１０２，１０４はそれぞれ、中央演算処理装置（ＣＰＵ）、当該ＣＰＵで処理される命令が記録されるメインメモリ、及び少なくとも１つのネットワークインターフェースを含む。
【００２２】
各ネットワークインターフェースはそれぞれコンピュータクラスタ１００のノード１０６0〜１０６63を形成する。複数のネットワークインターフェース（すなわち複数のノード１０６0〜１０６63）は同一のコンピュータ１０２，１０４に属してもよく、あるいは、説明される例においては、各コンピュータ１０２，１０４はノード１０６0〜１０６63の１つを形成する単一のネットワークインターフェースのみを含んでもよい。
【００２３】
また、説明される例においては、コンピュータクラスタ１００のコンピュータ１０２，１０４は、コンピュータプロセッサ１０２及びストレージコンピュータ１０４を含み、後者はコンピュータプロセッサ１０２によって使用及び／又は生成されるデータを保存するためのハードディスクなどの打容量メモリを含む。
【００２４】
コンピュータクラスタ１００はさらに、管理サーバ１０８を含む。管理サーバ１０８は特にコンピュータクラスタ１００の使用を望むクライアントとの対話を行うように設計されており、コンピュータクラスタ１００はクライアントによって単一のマシンと見なされる。管理サーバ１０８はさらに、クライアントから受けたタスクをコンピュータプロセッサ１０２の間でスケジューリングするように設計されている。以下に説明するように、管理サーバ１０８はさらに、コンピュータクラスタのノード１０６0〜１０６63の間の通信経路を確立する方法を実装するように設計されている。この目的のために、管理サーバ１０８は以下に説明する工程を実行するための手段を備える。説明する例において、管理サーバ１０８は、中央演算処理装置（ＣＰＵ）及び当該ＣＰＵで処理される命令が記録されるメインメモリを備える。したがって、説明する例において、上記手段は、通信ネットワークからダウンロードすることができ、及び／又はコンピュータ可読媒体に保存することができ、及び／又はプロセッサによって実行することができるコンピュータプログラムの形態のソフトウェア手段であり、当該ソフトウェア手段は、上記コンピュータプログラムが管理サーバ上で実行されるときに上記方法の各工程を実行するための命令を含む。あるいは、これらの手段の全部または一部は、専用集積回路内のマイクロプログラム式（ｍｉｃｒｏ−ｐｒｏｇｒａｍｍｅｄ）またはマイクロワイヤ式（ｍｉｃｒｏ−ｗｉｒｅｄ）ハードウェア手段であり得る。したがって、別の形態として、管理サーバ１０８は、同様の動作を実行するためのデジタル回路からのみ構成される（コンピュータプログラムなしの）電子装置であり得る。
【００２５】
本発明の他の実施形態では、管理サーバ１０８の異なる機能を複数の装置間、例えば複数のコンピュータ間で分担することができる。
【００２６】
そのようなコンピュータクラスタ１００は、複雑な処理動作及び／又は並列計算が複数のコンピュータプロセッサ１０２の少なくとも一部分にわたって分散されることを可能にする。
【００２７】
以下の段落では、「計算ノード」および「ストレージノード」という用語はそれぞれ、コンピュータプロセッサ１０２およびストレージコンピュータ１０４に属するネットワークインターフェースによって形成されたノードを示すためにそれぞれ使用される。
【００２８】
説明する例において、ストレージコンピュータ１０４のネットワークインターフェースは光ネットワークインターフェースであり、コンピュータプロセッサ１０２のネットワークインターフェースは光ネットワークインターフェースの帯域幅より小さい帯域幅を有する電気的ネットワークインターフェースである。実際、ストレージコンピュータ１０４は一般に、コンピュータプロセッサ１０２よりも多くのデータを交換する。
【００２９】
コンピュータクラスタ１００はさらに、ノード１０６0〜１０６63の相互接続ネットワーク１１０を含む。
【００３０】
ネットワーク１１０は、スイッチ１１２1〜１１２14と、スイッチ１１２1〜１１２14の間の通信リンク１１４とを含む。各スイッチ１１２1〜１１２14は複数の接続ポート（図１では小さな正方形の形で示される）を有し、各通信リンク１１４はそれぞれ２つのスイッチ１１２1〜１１２14の２つの接続ポート間に接続される。
【００３１】
ノード１０６0〜１０６63は、それぞれ以下で外部スイッチ１１２1〜１１２4、１１２11〜１１２14と称する、スイッチ１１２1〜１１２14の一部の接続ポートに接続されている。他のスイッチ１１２5〜１１２10は、以下では内部スイッチと称する。
【００３２】
コンピュータクラスタ１００は、ノード１０６0〜１０６63、スイッチ１１２1〜１１２14および通信リンク１１４の相対配置を定義する特定のトポロジを有する。説明する例において、このトポロジは並列一般化ファットツリー（ＰＧＦＴ）のトポロジである。ＰＧＦＴのトポロジは、一般に次の表記で定義される。ＰＧＦＴ（ｎ；  ｍ1…ｍn；  ｗ1…ｗn；  ｐ1…ｐn）。ここで、ｎはスイッチ１１２1〜１１２14を分類するレベルの数であり、ｍnはレベルｎの各スイッチに接続されているレベルｎ−１のスイッチ（すなわち第１レベルのノード）の数であり、ｗnはレベルｎ−１の各スイッチ（すなわち第１レベルの各ノード）に接続されているレベルｎのスイッチの数であり、ｐnはレベルｎとレベルｎ−１の間（すなわちレベルｎと第１レベルのノードとの間）で使用される並列通信リンクの数である。
【００３３】
したがって、ノード１０６0〜１０６63が接続されている外部スイッチ１１２1〜１１２4、１１２11〜１１２14は、第１レベルのスイッチを形成する。さらに、ＰＧＦＴトポロジでは、各通信リンク１１４は連続する階層レベルの２つのスイッチ間に接続されている。
【００３４】
各スイッチ１１２1〜１１２14について、下位レベル（すなわち外部スイッチ１１２1〜１１２4、１１２11〜１１２14の場合にはノード１０６0〜１０６63）に通じる接続ポートは、以下で「下位接続ポート」と称する。一方、上位レベルに通じる接続ポートは、以下で「上位接続ポート」と称する。
【００３５】
説明する例では、ＰＧＦＴは、ＰＧＦＴ（３；８，４，２；１，２，１；１，１，４）という表記によって定義される。したがって、８つのノードが各外部スイッチ１１２1〜１１２4、１１２11〜１１２14に接続されるため、後者は８つの下位接続ポートを備える。
【００３６】
各スイッチ１１２1〜１１２14の下位接続ポートおよび上位接続ポートは、このスイッチ１１２1〜１１２14内でのローカルナンバリングに従って番号付けされている。下位接続ポートのローカル番号および上位接続ポートのローカル番号は、図１において小さな四角の中に示されている。具体的には、各外部スイッチ１１２1〜１１２4、１１２11〜１１２14の下位接続ポートは、説明する例において、０から７までのローカル番号を割り当てるローカルナンバリングシステムに従って都度番号付けされる。
【００３７】
なお説明する例では、外部スイッチ１１２1〜１１２4、１１２11〜１１２14は、少なくともその下位接続ポートに関しては全て同一である。さらに、説明する例では、ローカル番号７を割り当てられた外部スイッチ１１２1〜１１２4、１１２11〜１１２14の下位接続ポートは、ストレージコンピュータ１０４の（ストレージノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63を形成する）光ネットワークインターフェースが接続される光ポートである。外部スイッチ１１２1〜１１２4、１１２11〜１１２14の他の下位接続ポートは、計算ノードが接続される電気接続ポートである。説明する例では、内部スイッチ１１２5〜１１２10の接続ポート（下位および上位接続ポート）も電気接続ポートである。
【００３８】
管理サーバ１０８は、ノード間の通信経路を確立するためのアルゴリズムを実装するように設計されている。より具体的には、このアルゴリズムは、これらのノード１０６0〜１０６63の番号およびコンピュータクラスタ１００のトポロジに基づいて、第１のノード１０６0〜１０６63と第２のノード１０６0〜１０６63との間の通信経路を提供するように設計される。
【００３９】
説明する例では、使用されるアルゴリズムはＤ‐ｍｏｄ‐ｋアルゴリズムであり、このアルゴリズムにおいては、出発ノードと称する第１のノードの番号（ｓと表記する）と、目的ノードと称する第２のノードの番号（ｄと表記する）とを用いて、これら２つのノード間の通信経路を定義する。
【００４０】
通信経路は出発ノードから開始して、出発ノードが接続されている外部スイッチ１１２1〜１１２4、１１２11〜１１２14を最初に経由する。
【００４１】
テスト工程中に、目的ノードに到達するために上位レベルのスイッチを経由する必要があるかが判定される。
【００４２】
必要と判定された場合、次の公式を使用して上位接続ポート（すなわち、経由する上位レベルのスイッチ）を選択する。
［ｄ  ／  （ｗ0  ＊  ｐ0）  ／  （ｗ1  ＊  ｐ1）  ／  …  ／  （ｗx-1  ＊  ｐx-1）］  ｍｏｄ  （ｗx  ＊  ｐx）
ここで、［］は整数部を表し、ｍｏｄは法を表す。
【００４３】
必要と判定されない場合、目的ノードへの最短経路上の下位レベルのスイッチが選択され、複数の並列リンクが選択された下位レベルのスイッチにつながる場合、次の公式を使用して下位接続ポートを選択する。
［  ｄ  ／  （  ｗ0＊  …  ＊ｗx-1  ）  ］  ｍｏｄ  （ｐx-1）
ここで、［］は整数部を表し、ｍｏｄは法を表す。
【００４４】
その後、このアルゴリズムはテスト工程に戻る。
【００４５】
例えば、説明する例では、第１レベルのスイッチ１１２1〜１１２4、１１２11〜１１２14から第２レベルのスイッチ１１２5、１１２6、１１２9、１１２10まで経由する必要があるとき、アルゴリズムＤ−ｍｏｄ−ｋは式［ｄ］  ｍｏｄ  ２を与える。これは周期２で周期的である。第２レベルのスイッチ１１２5、１１２6、１１２9、１１２10から第３レベルのスイッチ１１２7、１１２8まで経由するには、アルゴリズムＤ−ｍｏｄ−ｋは式［ｄ／２］  ｍｏｄ  ４を与える。これは周期８で周期的である。
【００４６】
したがって、このアルゴリズムは、経路が同じ通信リンクを経由するように設計されており、その経路の目的ノードは、１より大きい（「厳密により大きい」ことを意味すると理解される）周期による周期的な番号を有する。
【００４７】
あるいは、アルゴリズムＳ‐ｍｏｄ‐ｋが使用されてもよい。その場合には、アルゴリズムＤ‐ｍｏｄ‐ｋによるものと同様の式が、番号ｄを番号ｓで置き換えて使用される。したがって、アルゴリズムＳ‐ｍｏｄ‐ｋも経路が同じ通信リンクを経由するように設計されており、その経路の出発ノードは、１より大きい（やはり「厳密により大きい」を意味すると理解される）周期による周期的な番号を有する。
【００４８】
図２を参照して、コンピュータクラスタ１００のノード１０６0〜１０６63の間の通信経路を確立し使用するための第１の方法２００について説明する。
【００４９】
工程２０２において、管理サーバ１０８はコンピュータクラスタ１００上でディスカバリ機能を実行する。ディスカバリ機能は、コンピュータクラスタ１００のトポロジを決定するために使用される。さらに、ディスカバリ機能の実行中に、発見されたノード１０６0〜１０６63は第１のグローバルナンバリングシステムに従って番号付けされる。第１のグローバルナンバリングシステムは、ノード１０６0〜１０６63にそれぞれの第１のグローバル番号を割り当てる。説明する例では、第１のグローバル番号はローカル番号から取得される。より具体的には、外部スイッチ１１２1〜１１２4、１１２11〜１１２14が発見されるたびに、それに接続されているノードは、これらのノードが接続されている下位接続ポートのローカルナンバリングシステムの順序で、必要に応じて既に割り当てられている第１のグローバル番号から連続的に番号付けされる。
【００５０】
例えば、外部スイッチ１１２1が最初に発見された場合、第１のグローバル番号０〜７がそれぞれノード１０６0〜１０６7に割り当てられる。その後、外部スイッチ１１２2が発見されると、第１のグローバル番号８〜１５がそれぞれノード１０６8〜１０６15に割り当てられる。これ以降は同様である。したがって、説明する例のトポロジの範囲内では、ストレージノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63の第１のグローバル番号は周期８で周期的であることが分かる。
【００５１】
しかし、上述したように、第２レベルから第３レベルまで経由するための上位接続ポートを選択するための式［ｄ／２］  ｍｏｄ  ４もまた、周期８で周期的である。したがって、アルゴリズムが第１のグローバル番号に基づいて使用された場合、第１のグローバル番号が０〜３１であるいずれかのノードから出てストレージノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63に至るすべての経路は、第２レベルと第３レベルとの間をつなぐ同じ通信リンク１１４を経由することになる。したがって、この通信リンク１１４は、４つのストレージノード１０６39、１０６47、１０６55、１０６63までのすべての経路をサポートしなければならない。しかしながら、ストレージノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63は、一般に計算ノードよりも需要が大きいので、この通信リンク１１４は非常に混雑する恐れがある。さらに、タスクを実行するためのコンピュータクラスタ１００の機能は、一般に、計算ノード間でデータを交換する計算フェーズと、ストレージノード内にデータを保存する及び／又はそこからデータを読み取るために、計算ノードがストレージノードとデータを交換するデータバックアップ及び／又はリカバリフェーズとを交互に繰り返す。したがって、データバックアップ及び／又はリカバリフェーズ中に、計算ノードをストレージノードにそれぞれ接続する複数の経路によって使用される各通信リンク１１４は、非常に需要が大きく、非常に混雑する恐れがある。
【００５２】
ディスカバリ工程２０２の後、管理サーバ１０８は、工程２０４において、このように第１のグローバル番号がノード１０６0〜１０６63にそれぞれ割り当てられたコンピュータクラスタ１００のトポロジを取得する。
【００５３】
工程２０６において、管理サーバ１０８はノードを選択する。説明する例では、ストレージノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63が選択される。選択されるノードは、例えば、人間のユーザによってマンマシンインターフェースを介して管理サーバ１０８に伝達される。あるいは、管理サーバ１０８は、ノード１０６0〜１０６63のどれが光接続ポートに接続されているかを自動的に判定するように設計することができる。
【００５４】
一般に、選択されたノードは、好ましくは各々が共通の特徴（例えば自動的に検出され得る特徴）を有するものであり、一方他のノードはこの特徴を欠いている。説明する例では、この特徴は、選択されたノードを形成するネットワークインターフェースが光ネットワークインターフェースであるということである。あるいは、他の特徴を考慮に入れることができる。例えば、共通の機能として、ノードがストレージコンピュータに属していることが考えられる。別の例では、共通の特徴は、コンピュータプロセッサ内のグラフィック処理装置の存在であってもよい。
【００５５】
工程２０８において、管理サーバ１０８は、第１のグローバルナンバリングとは異なる第２のグローバルナンバリングに従って、ノード１０６0〜１０６63に対して、あるいは少なくとも選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63の一部に対して、番号付けを行う。この第２のナンバリングでは、選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47の第２のグローバル番号が、通信リンク１１４の少なくとも一部、好ましくは全ての通信リンク１１４のそれぞれの周期とは異なる値によって連続的に分離されるように、第２のグローバル番号がノード１０６0〜１０６63の各々に割り当てられる。
【００５６】
説明される例では、選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47の第２のグローバル番号は規則的に連続するように選択され、それらを分離する値はすべて１に等しく、したがってすべての通信リンク１１４の周期と必然的に異なる。
【００５７】
例えば、以下のアルゴリズム（工程ＡからＦを含む）を使用して、第１のグローバルナンバリングシステムから第２のグローバルナンバリングシステムに移行することができる。
Ａ：カウンタをゼロに設定する。
Ｂ：未選択のノードの種類を選択する。すべてのノードの種類が選択済の場合、アルゴリズムは終了する。
Ｃ：選択された種類のノードのうち、第１のナンバリングシステムの順序で最初のノードを現在のノードとする。
Ｄ：カウンタの値を第２のグローバル番号として現在のノードに割り当てる。
Ｅ：カウンタをインクリメントする。
Ｆ：選択された種類のノードのうち、第１のナンバリングシステムの順序で次のノードを現在のノードとし、処理は工程Ｄに戻る。選択された種類のすべてのノードが処理された場合、アルゴリズムは工程Ｂに戻る。
【００５８】
このアルゴリズムは、少なくとも２つのノードの種類、すなわち選択されたノードによって形成された第１のノードの種類と未選択のノードによって形成された第２のノードの種類と共に使用される。
【００５９】
したがって、説明する例では、第２のグローバルナンバリングシステムにおいて、計算ノードに０から５５までの番号が付けられ、ストレージノードに５６から６３までの番号が付けられる。
【００６０】
工程２１０において、管理サーバ１０８は、１対のノードの各組み合わせに対して、その第２のグローバル番号によって識別されたノードを実行することによってアルゴリズムを実行する。
【００６１】
工程２１２において、管理サーバ１０８は、工程２１０のアルゴリズムによって提供された経路をネットワーク１１０において実行する。説明する例では、この経路は各スイッチ１１２1〜１１２14に送信されるルーティングテーブルに記録される。
【００６２】
工程２１４において、管理サーバ１０８はクライアントからタスク実行要求を受信する。
【００６３】
工程２１６において、コンピュータ１０２，１０４の少なくとも一部は、工程２１０で確立された通信経路を使用してネットワーク１１０を介して互いに通信することによって、要求されたタスクを実行する。
【００６４】
図３を参照して、コンピュータクラスタ１００のノード１０６0〜１０６63の間の通信経路を確立し使用するための第２の方法３００について説明する。
【００６５】
第２の方法３００は、第１の方法２００と同様に工程２０２、２０４、２０６を含む。
【００６６】
工程２０６の後、第２の方法３００は以下の工程３０２から３０６を含む。
【００６７】
工程３０２において、管理サーバ１０８は、通信リンク１１４の少なくとも一部、好ましくはその全てのそれぞれの周期を決定する。例えば、この周期は使用されるアルゴリズムの公式から決定される。
【００６８】
工程３０４において、管理サーバ１０８は、選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63の第２のグローバル番号を連続的に分離するための値を決定するが、決定された値はそれぞれ決定された周期と異なる。
【００６９】
例えば、説明する例では、第１レベルと第２レベルとの間に延びる通信リンク１１４は２の周期を有し、第２レベルと第３レベルとの間に延びる通信リンク１１４は８の周期を有する。したがって、選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47、１０６55、１０６63の第２のグローバル番号を連続的に分離するための値は、いずれも２及び８とは異なる。例えば、方法２００の場合のように、それぞれ１に等しい値をとることができ、または２および８と異なる限り、互いに異なる値をとることができる。
【００７０】
工程３０６において、管理サーバ１０８は、第１のグローバルナンバリングとは異なる第２のグローバルナンバリングに従って、ノード１０６0〜１０６63に対して、あるいは少なくとも選択されたノードの一部に対して、番号付けを行う。この第２のナンバリングシステムでは、選択されたノード１０６7、１０６15、１０６23、１０６31、１０６39、１０６47の第２のグローバル番号は、工程３０４で決定された値によって連続的に分離される。
【００７１】
その後に、第２の方法３００は、上述の工程２１０から２１６を含む。
【００７２】
上述したような方法により、選択されたノードについて通信リンクがバランスよく使用されることは明らかである。
【００７３】
本発明は上述の実施形態に限定されないことにも留意されたい。より具体的には、本明細書に開示された情報を使用して、上記の実施形態に様々な修正を加えることができることを当業者は理解するであろう。上記の本発明の詳細な説明では、使用される用語は本発明をこの説明に提示された実施形態に限定するものとして解釈されるべきではなく、すべての均等物を含むものとして解釈されるべきであり、当業者が自身の一般的な知識を用いて本明細書に開示されている情報を実施する際に、それら均等物に想到することができる。
【図１】
2019169135.tif 000003
【図２】
2019169135.tif 000004
【図３】
2019169135.tif 000005
【外国語明細書】
2019169135000001.pdf