(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
ネットワークについてのリンク接続情報を前記ネットワーク中の各ノードに配布するステップと、
各ノードを前記ネットワーク中の別のノードとペアにしてペア・ノードを提供するステップと、
指数バックオフ・アルゴリズムに従って前記ペア・ノードについて性能メトリックをテストするステップであって、前記指数バックオフ・アルゴリズムが前記ペア・ノード間での性能メトリック・テストの発生を遅延させ、再テストで許容可能な性能メトリック測定値が生じた後はもはやペアがテストを開始しないステップと、
前記ネットワークについての性能報告を生成するステップとを含む方法。
【請求項２】
前記ネットワークについての前記リンク接続情報を受け取るステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記リンク接続情報に基づいて接続性グラフを構築するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記接続性グラフが、リンクによって前記ネットワーク中のどのノードが接続されておりそれらのノードをどのタイプのリンクが接続しているかを指定する、請求項３に記載の方法。
【請求項５】
前記性能報告が、前記ネットワーク中の前記ペア・ノードについての前記テストされた性能メトリックに関する情報を含む、請求項１に記載の方法。
【請求項６】
前記性能メトリックが帯域幅またはレイテンシを含む、請求項１に記載の方法。
【請求項７】
各ノードを異なるノードと再度ペアにして新しいペア・ノードを提供し、前記新しいペア・ノードについて前記性能メトリックをテストするステップをさらに含む、請求項１に記載の方法。
【請求項８】
性能メトリックを分析するためのコンピュータ・プログラムであって、コンピュータに、
ネットワークについてのリンク接続情報を前記ネットワーク中の各ノードに配布するステップと、
各ノードを前記ネットワーク中の別のノードとペアにするステップと、
指数バックオフ・アルゴリズムに従って前記ネットワーク中の各ノード・ペアについて性能メトリックをテストするステップであって、前記指数バックオフ・アルゴリズムが前記ペア・ノード間での性能メトリック・テストの発生を遅延させ、再テストで許容可能な性能メトリック測定値が生じた後はもはやペアがテストを開始しない前記ステップと、
前記ネットワークについての性能報告を生成するステップと、を実行させる、コンピュータ・プログラム。
【請求項９】
前記コンピュータに、前記ネットワークについての前記リンク接続情報を受け取るステップを実行させる、請求項８に記載のコンピュータ・プログラム。
【請求項１０】
前記コンピュータに、前記リンク接続情報に基づいて接続性グラフを構築するステップを実行させる、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
前記性能報告が、前記ネットワーク中の各ノード・ペアについての前記テストされた性能メトリックに関する情報を含む、請求項８に記載のコンピュータ・プログラム。
【請求項１２】
前記性能メトリックが帯域幅またはレイテンシを含む、請求項８に記載のコンピュータ・プログラム。
【請求項１３】
コンピュータ・システムであって、
１つまたは複数のコンピュータ・プロセッサと、
１つまたは複数のコンピュータ可読記憶媒体と、
前記コンピュータ・プロセッサのうちの少なくとも１つによって実行されるように前記コンピュータ可読記憶媒体に記憶されたプログラム命令とを備え、前記コンピュータ・システムが前記プログラム命令を実施するように構成され、前記プログラム命令が、
ネットワークについてのリンク接続情報を前記ネットワーク中の各ノードに配布するための命令と、
各ノードを前記ネットワーク中の別のノードとペアにするための命令と、
指数バックオフ・アルゴリズムに従って前記ネットワーク中の各ノード・ペアについて性能メトリックをテストするための命令であって、前記指数バックオフ・アルゴリズムが前記ペア・ノード間での性能メトリック・テストの発生を遅延させ、再テストで許容可能な性能メトリック測定値が生じた後はもはやペアがテストを開始しない前記命令と、
前記ネットワークについての性能報告を生成するための命令とを含む、コンピュータ・システム。
【請求項１４】
前記プログラム命令が、前記ネットワークについての前記リンク接続情報を受け取るための命令を含む、請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記プログラム命令が、前記リンク接続情報に基づいて接続性グラフを構築するための命令を含む、請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記性能報告が、前記ネットワーク中の各ノード・ペアについての前記テストされた性能メトリックに関する情報を含む、請求項１３に記載のコンピュータ・システム。
【請求項１７】
前記性能メトリックが帯域幅またはレイテンシを含む、請求項１３に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーク性能の分野に関し、より詳細には、非同種ネットワーク内でリンク性能をテストすることに関する。
【背景技術】
【０００２】
コンピュータ・ネットワークに依拠して扱われるクリティカルなタスクの全てを考えると、これらのネットワークを効率的かつ効果的にテストできることは重要な機能である。ネットワーキング・ニーズが増加し続けるのに伴い、コンピューティング環境におけるネットワーク接続は、ますます複雑化し非同種になりつつある。ネットワーク性能メトリックを分析するための既存のネットワーク・テスト方法としては、Ｉｎｔｅｌ  ＭＰＩ  Ｂｅｎｃｈｍａｒｋｓなどの標準的なベンチマーク・スイートがある。これらの方法は、リンク性能を非同種ネットワーキング環境のフレームワーク中で特徴付けようとしない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、非同種ネットワーク内でリンク性能をテストするための方法、コンピュータ・プログラム、およびコンピュータ・システムを提供する。
【課題を解決するための手段】
【０００４】
本明細書で開示されるように、性能メトリックを分析するための、コンピュータによって実行される方法は、リンク接続情報をネットワーク中の各ノードに配布するステップと、各ノードをネットワーク中の別のノードとペアにしてペア・ノードを提供するステップと、ペア・ノードについて性能メトリックをテストするステップと、ネットワークについての性能報告を生成するステップとを含む。この方法はさらに、ネットワークについてのリンク接続情報を受け取るステップも含み得る。この方法はさらに、受け取られたリンク接続情報に基づいて接続性グラフを構築するステップも含み得る。この方法を使用して、非同種ネットワーク内でリンク性能をテストすることができる。対応するコンピュータ・システムおよびコンピュータ・プログラムもまた、本明細書で開示される。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態による、ネットワーク・システム環境を示す機能ブロック図である。
【図２】本発明の一実施形態による、ネットワーク・システム環境を示す機能ブロック図である。
【図３】本発明の一実施形態による、ネットワーク・システム環境を示す機能ブロック図である。
【図４】本発明の一実施形態による、ネットワーク性能テスト方法を描くフローチャートである。
【図５】本発明の一実施形態による、リンク・テスト方法を描く流れ図である。
【図６】本明細書に開示される方法を実行するのに適したコンピューティング装置（すなわちコンピュータ）の一例を描くブロック図である。
【発明を実施するための形態】
【０００６】
図１〜３は、本発明の一実施形態による、コンピューティング・サーバ１００を示す機能ブロック図である。描かれるコンピューティング・サーバ１００は、本明細書で開示されるネットワーク性能テスト方法を使用してテストできるネットワーキング環境の例である。
【０００７】
図１は、２つのスーパーノード１０５を含むコンピューティング・サーバ１００の一部を描く機能ブロック図である。コンピューティング・サーバは複数のスーパーノードを含むことができるが、スーパーノードにわたる接続を例示するには、２つで十分である。描かれるように、各スーパーノード１０５は４つのドロワ１１０からなり、各ドロワ１１０は８つのノード１２０を含む。本明細書において、用語「ノード」は、メモリ／ＣＰＵおよびネットワーク・インタフェース・リソースの、含まれるセットを指す。１３０ａの符号が付いた図１中の点線は、スーパーノード１０５ａ中のノードとスーパーノード１０５ｂ中のノードとの間のリンクを表す。異なるスーパーノード中のノード間のリンクは、Ｄリンクと呼ぶことができる。
【０００８】
図２は、コンピューティング・サーバ１００内のスーパーノード１０５を描く機能ブロック図である。スーパーノードは４つのドロワ１１０を含み、各ドロワは８つのノード１２０を含む。１３０ｂの符号が付いた図２中の点線は、あるドロワ１１０ａ中のノード１２０と、別のドロワ１１０ｂ、１１０ｃ、または１１０ｄ中のノード１２０との間のリンクを表す。これらのリンクは、同じスーパーノード内にあるが同じドロワ内にない２つのノードを接続する。同じスーパーノード内の異なるドロワ中のノード間のリンクは、Ｌリモート・リンクと呼ぶことができる。
【０００９】
図３は、スーパーノード１０５内のドロワ１１０の機能ブロック図である。ドロワは、８つのノード１２０を含む。１３０ｃの符号が付いた図３中の点線は、同じドロワ内のノード間のリンクを表す。描かれるように、ドロワ中の各ノードは、同じドロワ中の他の全てのノードに接続される。同じドロワ中のノード間のリンクは、Ｌローカル・リンクと呼ぶことができる。
【００１０】
コンピューティング・サーバ１００は、非同種接続を含むシステムを表す。前述のＬローカル・リンク、Ｌリモート・リンク、およびＤリンクは全て、異なる特性を有する接続であり、これらの異なる特性は、異なるレイテンシ特性および帯域幅特性につながる。加えて、各ノード・ペアは、それらの間に専用のＤリンクを有しない場合があり、したがって、共有されることが多い可能性のあるこれらのＤリンクは、同時にテストしようとする複数のノード・ペアからの競合のせいで、テストするのが特に困難である可能性がある。本明細書で開示される方法は、可変遅延に関するアルゴリズムを使用してリンク競合をなくす。リンク競合は、リンクが共有される可能性のあるどのような非同種システムにおいても関係する問題であり、したがって、この方法は、描かれるコンピューティング・サーバ１００の域を超えたシステムのテストにも適用可能である。
【００１１】
図４は、本発明の一実施形態による、ネットワーク性能テスト方法２００を描くフローチャートである。描かれるように、この方法は、リンク接続情報を受け取るステップ（２１０）と、リンク接続情報をネットワーク中の各ノードに配布するステップ（２２０）と、各ノードをネットワーク中の別のノードとペアにする（２３０）ステップとそれに続いて各ノード・ペアについて性能メトリックをテストするステップ（２４０）の反復と、ネットワークについての性能報告を生成するステップ（２５０）とを含む。この方法を使用して、非同種ネットワーク内でリンク性能をテストすることができる。
【００１２】
リンク接続情報を受け取るステップ（２１０）は、ネットワーク内のノードがどのように接続されているかに関する情報を受け取るステップを含み得る。このリンク接続情報は、リンクごとのエンドポイントＩＤの形でもたらされる可能性があり、エンドポイントＩＤは、そのリンクによってどのノードが接続されているかを識別する。いくつかの実施形態では、リンク接続情報はまた、どのタイプのリンクがノードを接続しているかに関する情報も含む。例えば、図１〜３のコンピューティング・サーバの場合、リンク接続情報は、各リンクがＬローカル・リンクであるかＬリモート・リンクであるかＤリンクであるかを含むことができる。いくつかの実施形態では、リンク接続情報を受け取ることと共に、接続性グラフが構築されてリンク接続情報が反映される。接続性グラフは、どのノードがどの種類のリンクを介して相互に接続されているかを示すことができる。
【００１３】
リンク接続情報をネットワーク中の各ノードに配布するステップ（２２０）は、リンク接続情報をネットワーク中の個々のノードに送るステップを含み得る。各ノードがリンク接続情報を有するようになると、各ノードは、それ自体がネットワーク中のどのノードにどのリンクを介して接続されているかに関する情報を有する。ここから、リンク性能テスト・ステップに向けてノードをペアにすることができる。接続性グラフが構築された場合は、接続性グラフがネットワーク中の個々のノードに配布されてよい。
【００１４】
各ノードをネットワーク中の別のノードとペアにするステップ（２３０）は、テストのために共にペアにされるノードを選択するステップを含み得る。ノードがペアにされると、各ノード・ペアを接続するリンクに対して接続性能テストを実施することができる。ペアにするステップは、複数回行うことができ（言い換えれば、一連のペアにするステップを完全に反復して、あり得る全てのペアのテストを可能にすることができる）、最後には、各ノードが、接続され得る全ての他のノードとペアにされる。各ノードを他のあらゆるノードとペアにするこの方法は、ネットワーク内の全てのリンクの包括的なテストを確実にする。
【００１５】
各ノード・ペアについて性能メトリックをテストするステップ（２４０）は、ペアにされた２つのノード間の各接続の性能に影響を与える可能性のある特性をテストするステップを含み得る。性能メトリックは、システム内の全ての可能なノード・ペアについてテストされてよい。図５に、テスト動作２４０の一例に関する追加の詳細を示す。いくつかの実施形態では、最初のノード・ペアがテストされると、プロセスはペアにするステップ２３０に戻り、したがって、各ノードを異なるノードと再度ペアにすることができ、新しいノード・ペアをテストして、ネットワーク中のリンクの包括的なテストを確実にすることができる。
【００１６】
ネットワークについての性能報告を生成するステップ（２５０）は、リンクごとの性能メトリック測定値を収集してまとめるステップを含み得る。これらの性能メトリック測定値は全て、データセットの形でユーザに提示することができる。一実施形態では、性能報告は、性能測定値に基づいて不適当と見なされたリンクのみについての情報を含む。この報告は、性能基準未満で動作していると識別されたリンクに対処できるように、ユーザまたはシステムが消費することができる。
【００１７】
図５は、本発明の一実施形態による、ネットワークについてのリンク・テスト方法３００の動作ステップを描く流れ図である。描かれるように、この方法は、各ノードに対するパートナーを選択するステップ（３１０）と、２つのノードを接続するリンクにわたって性能メトリックを測定するステップ（３２０）と、追加の測定を行う必要があるかどうか判定するステップ（３３０）と、最初の測定が不十分であった場合に、バックオフ遅延を実施（３４０）して性能メトリックを再測定するステップと、テストされるべきノード・ペアが他にもあるかどうか判定するステップ（３５０）とを含む。リンク・テスト方法３００は、ネットワーク内の全ての接続に対して包括的なテストが実施されることを確実にする。
【００１８】
各ノードに対するパートナーを選択するステップ（３１０）は、ノードを別のノードとペアにするステップを含み得る。このペアにするステップは、テストされるべき特定のリンク、すなわちペア・ノードを接続するリンクを、隔離するために実行される。ペアにするステップは、ノード・ペアのテストが終了するたびに繰り返され、前にペアにされた２つのノードは、テストに向けて異なるリンクを隔離するために、異なるノードとペアにされる必要がある。いくつかの実施形態では、より効率的なテストを促進するためにリンクを特定の順序でテストするように、ノードをペアにすることができる。例えば、図１〜３のコンピューティング・サーバ１００の場合、全てのＬローカル・リンクを最初にテストし、それに続いてＬリモート・リンク、次いでＤリンクをテストすることができる。
【００１９】
ペア・ノードを接続するリンクにわたって性能メトリックを測定するステップ（３２０）は、標準的な帯域幅またはレイテンシ測定方法を使用してリンクの性能をテストするステップを含み得る。例えば、帯域幅測定を実施する典型的な一手法は、「大きい」ファイル、または割り振られたメモリの領域の内容を、あるノードから別のノードに転送し、ファイルの転送またはコピーを完了するのに要した時間を測定するものである。次いで、ファイル・サイズを転送の継続時間で割ることによって帯域幅が計算されて、１秒当たりのメガビット、キロビット、またはビットで表されたスループットが得られる。同様に、標準的なレイテンシ測定方法を使用してレイテンシを測定することができる。これらの性能測定値は、閲覧または分析されるように、記録されてよい。
【００２０】
追加の測定を行う必要があるかどうか判定するステップ（３３０）は、リンクについての測定された性能メトリックを最小許容値と比較するステップを含み得る。例えば、帯域幅についてのこの最小許容値は、ネットワークが遭遇する可能性の高いデータフローを扱える最小帯域幅を表すことができ、事前設定済みの値とすることができる。いくつかの実施形態では、異なる種類のリンク（コンピューティング・サーバ１００の場合のＬリモート・リンクおよびＬローカル・リンクなど）が、満たす必要のある異なるベンチマーク値を有する場合がある。リンクについての性能メトリックが十分である場合は、方法は、テストされるべきノード・ペアが他にもあるかどうか判定するステップ（３５０）に進む。リンクについての性能メトリックが不十分である場合は、方法は、バックオフ遅延を実施するステップ（３４０）に進む。追加の測定を行う必要があるかどうか判定するステップはまた、リンクが所定の最大回数テストされたかどうか判定するステップことも含み得る。最大値は値「Ｘ」に設定することができ、したがって、リンクの性能がＸ回測定されて毎回不十分な測定値を生じた場合は、リンクが接続するペア・ノードはテストの開始を停止し、リンクは障害ありとして報告される。
【００２１】
最初の測定値が不十分であった場合にバックオフ遅延を実施（３４０）して性能メトリックを再測定するステップは、指数バックオフ・アルゴリズムを使用して可変遅延を実施して、性能メトリック・テストの実施（occurrences）をずらすステップを含み得る。指数バックオフは、許容可能なレートを段階的に見つけるために、フィードバックを使用して何らかのプロセスのレートを乗法的に低減するアルゴリズムである。指数バックオフを実行して、各ノード・ペアが再びテストされるまでに各ノード・ペアが遅延する時間量が決定される。一実施形態では、このアルゴリズムは、リンクがテストされた回数に直接関係するものであってよい。リンクがテストされた回数が多いほど、次の（another）テストが開始されるまでの遅延が長くなる。いくつかの実施形態では、ランダムな要素をアルゴリズムに導入して、同時にテストされるリンクの数が最小化されるように遅延時間がずらされることを確実にすることができる。バックオフ遅延が実施された後、描かれる方法は、測定動作３２０に戻り、許容可能な性能メトリックが満たされるまで継続する。許容可能な性能メトリックが満たされると、ノード・ペアはもはやテストを開始せず、方法は、テストされるべきノード・ペアが他にもあるかどうか判定するステップ（３５０）に進む。
【００２２】
テストされるべきノード・ペアが他にもあるかどうか判定するステップ（３５０）は、ノード・ペアがテストを完了し、ペアにわたる性能メトリックが最小許容値を超えた後で、行われる。テストされるべきノード・ペアが他にもあるかどうか判定するステップは、ペアにされる２つのノードがテストのためにまだペアにされていないようなノードがあるかどうか識別するステップを含み得る。テストされるべきノード・ペアが他にもある場合は、方法は、選択動作３１０にループバックする。テストされるべきノード・ペアがそれ以上ない場合は、テスト方法３００は終了する。
【００２３】
図６に、本発明の例示的な一実施形態による、コンピュータ４００のコンポーネントのブロック図を示す。図６は、一実装形態の例示のみを提供するものであり、種々の実施形態を実現できる環境に関するどのような限定も含意しないことを理解されたい。描かれる環境に対して多くの修正を加えることができる。
【００２４】
描かれるように、コンピュータ４００は通信ファブリック４０２を備え、通信ファブリック４０２は、コンピュータ・プロセッサ４０４、メモリ４０６、永続的記憶装置４０８、通信ユニット４１２、および入出力（Ｉ／Ｏ）インタフェース４１４の間の通信を提供する。通信ファブリック４０２は、プロセッサ（マイクロプロセッサ、通信およびネットワーク・プロセッサなど）、システム・メモリ、周辺デバイス、ならびにシステム内の他の任意のハードウェア・コンポーネントの間でデータまたは制御情報あるいはその両方を渡すように設計された、任意のアーキテクチャを用いて実現されてよい。例えば、通信ファブリック４０２は、１つまたは複数のバスを用いて実現されてよい。
【００２５】
メモリ４０６および永続的記憶装置４０８は、コンピュータ可読記憶媒体である。この実施形態では、メモリ４０６は、ランダム・アクセス・メモリ（ＲＡＭ）４１６およびキャッシュ・メモリ４１８を含む。一般に、メモリ４０６は、任意の適切な揮発性または不揮発性コンピュータ可読記憶媒体を含むことができる。
【００２６】
永続的記憶装置４０８には、メモリ４０６のうちの１つまたは複数のメモリを介してそれぞれのコンピュータ・プロセッサ４０４のうちの１つまたは複数によってアクセスまたは実行されるかあるいはその両方がなされるように、１つまたは複数のプログラムが記憶されてよい。この実施形態では、永続的記憶装置４０８は、磁気ハード・ディスク・ドライブを含む。別法として、または磁気ハード・ディスク・ドライブに加えて、永続的記憶装置４０８は、固体ハード・ドライブ、半導体記憶デバイス、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能な読取専用メモリ（ＥＰＲＯＭ）、フラッシュ・メモリ、または、プログラム命令もしくはディジタル情報を記憶できる他の任意のコンピュータ可読記憶媒体を含むことができる。
【００２７】
永続的記憶装置４０８によって使用される媒体はまた、取外し可能であってもよい。例えば、取外し可能ハード・ドライブを永続的記憶装置４０８に使用することができる。他の例としては、光学および磁気ディスク、サム・ドライブ、ならびにスマート・カードがあるが、これらは、やはり永続的記憶装置４０８の一部である別のコンピュータ可読記憶媒体に転送されるように、ドライブに挿入される。
【００２８】
通信ユニット４１２は、これらの例では、他のデータ処理システムまたはデバイスとの通信を可能にする。これらの例では、通信ユニット４１２は、１つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット４１２は、物理通信リンクとワイヤレス通信リンクとのいずれかまたは両方の使用を介して、通信を提供することができる。
【００２９】
Ｉ／Ｏインタフェース４１４は、コンピュータ４００に接続され得る他のデバイスとの間で、データの入出力を可能にする。例えば、Ｉ／Ｏインタフェース４１４は、キーボード、キーパッド、タッチ・スクリーン、または他の何らかの適切な入力デバイス、あるいはそれらの全てなど、外部デバイス４２０への接続を提供することができる。外部デバイス４２０はまた、例えば、サム・ドライブ、ポータブル光学または磁気ディスク、およびメモリ・カードなど、ポータブル・コンピュータ可読記憶媒体も含むことができる。本発明の実施形態を実践するのに使用されるソフトウェアおよびデータは、このようなポータブル・コンピュータ可読記憶媒体に記憶されてよく、Ｉ／Ｏインタフェース４１４を介して永続的記憶装置４０８にロードされてよい。Ｉ／Ｏインタフェース４１４はまた、表示装置４２２にも接続する。
【００３０】
表示装置４２２は、データをユーザに対して表示するためのメカニズムを提供し、例えばコンピュータ・モニタであってよい。
【００３１】
本明細書に記載のプログラムは、本発明の特定の実施形態でそれらが実装される応用例に基づいて識別される。しかし、本明細書におけるどのような特定のプログラム術語も便宜的に使用されるにすぎず、よって、本発明は、そのような術語によって識別または含意されるかあるいはその両方がなされるいずれか特定の応用例のみでの使用に限定されるべきでないことを理解されたい。
【００３２】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、これは、指定される論理機能を実現するための１つまたは複数の実行可能命令を含む。また、いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合があることにも留意されたい。例えば、関係する機能に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施するかまたは専用ハードウェアおよびコンピュータ命令の組合せを実施する、専用ハードウェアベースのシステムによって実現できることにも気付くであろう。
【００３３】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの全てとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【００３４】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持および記憶できる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、以下のものに限定されないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能な読取専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、ディジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、機械的にエンコードされるデバイス（命令が記録された、パンチカード、または溝の中の隆起構造など）、およびこれらの任意の適切な組合せを含む。コンピュータ可読記憶媒体は、本明細書においては、電波もしくは他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、またはワイヤを介して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
【００３５】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスにダウンロードされてよく、あるいは、ネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの全て）を介して外部コンピュータまたは外部記憶デバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの全てを含むことができる。各コンピューティング／処理デバイス中の、ネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
【００３６】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データであってよく、または、Ｓｍａｌｌｔａｌｋ（Ｒ）やＣ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、１つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードとオブジェクト・コードとのいずれかであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されるか、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネット経由で）行われてもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含めた電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【００３７】
本明細書では、本発明の態様を、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の、フローチャート説明またはブロック図あるいはその両方に関して述べている。フローチャート説明またはブロック図あるいはその両方の各ブロック、ならびに、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ可読プログラム命令によって実現できることは理解されるであろう。
【００３８】
コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現する手段をもたらすように、これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、マシンを生み出すことができる。また、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為の態様を実現する命令を含む製造品を構成するように、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの全てに、特定の方式で機能するよう指示することができる。
【００３９】
また、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実現するように、コンピュータ実装プロセスを生み出すべく、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させることができる。
【００４０】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、モジュール、セグメント、または命令の一部を表すことができ、これは、指定される論理機能を実現するための１つまたは複数の実行可能命令を含む。いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合がある。例えば、関係する機能に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施するかまたは専用ハードウェアおよびコンピュータ命令の組合せを実行する、専用ハードウェアベースのシステムによって実現できることにも気付くであろう。
【００４１】
本発明の様々な実施形態についての記述を例示のために提示したが、これらの記述は、網羅的なものとはせず、また、開示される実施形態に限定されるものともしない。本発明の範囲および主旨を逸脱することなく、多くの変更および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に勝る技術的改善を、最もよく説明するために、または、本明細書に開示される実施形態を他の当業者が理解できるようにするために、選ばれたものである。
【符号の説明】
【００４２】
１００  コンピューティング・サーバ
１０５ａ  スーパーノード
１０５ｂ  スーパーノード
１１０ａ  ドロワ
１１０ｂ  ドロワ
１１０ｃ  ドロワ
１１０ｄ  ドロワ
１１０ｅ  ドロワ
１１０ｆ  ドロワ
１１０ｇ  ドロワ
１１０ｈ  ドロワ
１２０  ノード
１３０ａ  Ｄリンク
１３０ｂ  Ｌリモート・リンク
１３０ｃ  Ｌローカル・リンク
４００  コンピュータ
４０２  通信ファブリック
４０４  コンピュータ・プロセッサ
４０６  メモリ
４０８  永続的記憶装置
４１２  通信ユニット
４１４  入出力（Ｉ／Ｏ）インタフェース
４１６  ランダム・アクセス・メモリ（ＲＡＭ）
４１８  キャッシュ・メモリ
４２０  外部デバイス
４２２  表示装置
【図１】
0006608689.tif 000002
【図２】
0006608689.tif 000003
【図３】
0006608689.tif 000004
【図４】
0006608689.tif 000005
【図５】
0006608689.tif 000006
【図６】
0006608689.tif 000007