(57)【要約】  高性能計算（ＨＰＣ）環境においてグラフィカル・ユーザ・インタフェースを備える方法は、複数のＨＰＣノードに関する情報の収集を含む。各ノードは統合ファブリックを備える。複数のグラフィカル・エレメントが、収集情報に少なくとも部分的に基づいて生成される。グラフィカル・エレメントの少なくとも一部分がユーザに提示される。
2007533034.tif 000002
【特許請求の範囲】
【請求項１】
高性能計算（ＨＰＣ）環境においてグラフィカル・ユーザ・インタフェースを備える方法であって、
複数のＨＰＣノードに関する情報を収集する工程であって、各ノードが統合ファブリックを備える工程と、
前記収集された情報に少なくとも部分的に基づいて複数のグラフィカル・エレメントを生成する工程と、
前記グラフィカル・エレメントの少なくとも一部分をユーザに提示する工程とを備えることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記収集情報が、各ＨＰＣノードに関する物理データを備えることを特徴とする方法。
【請求項３】
請求項２記載の方法であって、前記物理データは、
プロセッサ利用率、
メモリ利用率、
物理位置、
ＩＰアドレス及び
帯域幅のうちの１つ又は複数を備えることを特徴とする方法。
【請求項４】
請求項１記載の方法であって、前記グラフィカル・エレメントのうちの１つが、前記複数のＨＰＣノードのトポロジの表示を備え、前記トポロジが、各ノードの前記統合ファブリックによってイネーブルされることを特徴とする方法。
【請求項５】
請求項４記載の方法であって、
ユーザからジョブ投入を受信する工程であって、前記ジョブ投入が少なくとも１つのパラメータを備える工程と、
前記複数のＨＰＣノードの第２の部分集合の動的割り当てのために前記ジョブ投入をジョブ・スケジューラに通信する工程と、
前記第２の部分集合の前記動的割り当てに基づいて前記トポロジの前記表示を更新する工程とを更に備えることを特徴とする方法。
【請求項６】
請求項５記載の方法であって、
前記第２の部分集合のサイズの増加のために、前記ジョブ・スケジューラに対話型コマンドを通信する工程と、
前記増加されたサイズの動的割り当てに基づいて前記トポロジの前記表示を更新する工程とを更に備えることを特徴とする方法。
【請求項７】
請求項４記載の方法であって、
前記複数のＨＰＣノードのうちの１つの障害の通知を受信する工程と、
前記通知に基づいて前記トポロジの前記表示を更新する工程とを備えることを特徴とする方法。
【請求項８】
高性能計算（ＨＰＣ）環境におけるグラフィカル・ユーザ・インタフェース（ＧＵＩ）であって、
複数のＨＰＣノードに関する情報を収集するよう動作可能であり、各ノードが統合ファブリックを備え、
更に、前記収集された情報に少なくとも部分的に基づいて複数のグラフィカル・エレメントを生成し、前記グラフィカル・エレメントの少なくとも一部分をユーザに提示するよう動作可能であることを特徴とするＧＵＩ。
【請求項９】
請求項８記載のＧＵＩであって、前記収集情報が、各ＨＰＣノードに関する物理データを備えることを特徴とするＧＵＩ。
【請求項１０】
請求項９記載のＧＵＩであって、前記物理データは、
プロセッサ利用率、
メモリ利用率、
物理位置、
ＩＰアドレス及び
帯域幅のうちの１つ又は複数を備えることを特徴とするＧＵＩ。
【請求項１１】
請求項８記載のＧＵＩであって、前記グラフィカル・エレメントのうちの１つが、前記複数のＨＰＣノードのトポロジの表示を備え、前記トポロジが、各ノードの前記統合ファブリックによってイネーブルされることを特徴とするＧＵＩ。
【請求項１２】
請求項１１記載のＧＵＩであって、
ユーザからジョブ投入を受信するよう更に動作可能であり、前記ジョブ投入が少なくとも１つのパラメータを備え、
更に、前記複数のＨＰＣノードの第２の部分集合の動的割り当てのために前記ジョブ投入をジョブ・スケジューラに通信するよう更に動作可能であり、前記第２の部分集合は第１の部分集合と実質的に同様なノード組を備え、更に、
前記第２の部分集合の前記動的割り当てに基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするＧＵＩ。
【請求項１３】
請求項１２記載のＧＵＩであって、
前記第２の部分集合のサイズの増加のために、前記ジョブ・スケジューラに対話型コマンドを通信し、
前記増加されたサイズの動的割り当てに基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするＧＵＩ。
【請求項１４】
請求項１１記載のＧＵＩであって、
前記複数のＨＰＣノードのうちの１つの障害の通知を受信し、
前記通知に基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするＧＵＩ。
【請求項１５】
高性能計算（ＨＰＣ）環境においてグラフィカル・ユーザ・インタフェースを備えるシステムであって、
複数のＨＰＣノードであって、それぞれのノードが統合ファブリックを含むＨＰＣノードと、
クライアントとを備え、該クライアントは、
前記複数のＨＰＣノードの少なくとも部分集合に関する情報を収集し、
前記収集された情報に少なくとも部分的に基づいて複数のグラフィカル・エレメントを生成し、
前記グラフィカル・エレメントの少なくとも一部分をユーザに提示するよう動作可能であることを特徴とするシステム。
【請求項１６】
請求項１５記載のシステムであって、前記収集情報が、各ＨＰＣノードに関する物理データを備えることを特徴とするシステム。
【請求項１７】
請求項１６記載のシステムであって、前記物理データは、
プロセッサ利用率、
メモリ利用率、
物理位置、
ＩＰアドレス及び
帯域幅のうちの１つ又は複数を備えることを特徴とするシステム。
【請求項１８】
請求項１５記載のシステムであって、前記グラフィカル・エレメントのうちの１つが、前記複数のＨＰＣノードのトポロジの表示を備え、前記トポロジが、各ノードの前記統合ファブリックによってイネーブルされることを特徴とするシステム。
【請求項１９】
請求項１８記載のシステムであって、前記クライアントは、
ユーザからジョブ投入を受信するよう動作可能であり、前記ジョブ投入が少なくとも１つのパラメータを備え、
更に、前記複数のＨＰＣノードの第２の部分集合の動的割り当てのために前記ジョブ投入をジョブ・スケジューラに通信し、
前記第２の部分集合の前記動的割り当てに基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするシステム。
【請求項２０】
請求項１９記載のシステムであって、前記クライアントは、
前記第２の部分集合のサイズの増加のために、前記ジョブ・スケジューラに対話型コマンドを通信し、
前記増加されたサイズの動的割り当てに基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするシステム。
【請求項２１】
請求項１８記載のシステムであって、前記クライアントは、
前記複数のＨＰＣノードのうちの１つの障害の通知を受信し、
前記通知に基づいて前記トポロジの前記表示を更新するよう更に動作可能であることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ処理の分野に関し、特に、ＨＰＣクラスタを管理するためのグラフィカル・ユーザ・インタフェースに関する。
【背景技術】
【０００２】
高性能計算（ＨＰＣ）は多くの場合、複雑な物理的現象又はアルゴリズム現象をモデリングし、シミュレーションし、解析する科学者及び技術者によって用いられる計算システムによって特徴付けられる。現在、ＨＰＣマシンは通常、ノードと呼ばれる数多くの、１つ又は複数のプロセッサから成るＨＰＣクラスタを用いて設計されている。大半の大規模の科学アプリケーション及び工学アプリケーションの場合、性能は、個々のノードの速度ではなく、個々のノードの並列スケーラビリティによって主に判定される。したがって、スケーラビリティは多くの場合、そのような高性能クラスタを構築するか購入するうえでの制約要因である。スケーラビリティは通常、ｉ）ハードウェア、ｉｉ）メモリ帯域幅、Ｉ／Ｏ帯域幅、及び通信帯域幅、ｉｉｉ）ソフトウェア、ｉｖ）アーキテクチャ、並びにｖ）アプリケーションに基づいたものとみなされる。従来の大半のＨＰＣ環境における処理帯域幅、メモリ帯域幅、及びＩ／Ｏ帯域幅は通常、うまくバランスがとれておらず、したがって、うまくスケーリングされていない。多くのＨＰＣ環境は、ハイエンドのデータ処理要件を満たすＩ／Ｏ帯域幅を有していないか、インストールされている不必要な構成部分が多すぎるブレードによって構築されており、このことはシステムの信頼度を劇的に低減する傾向にある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
よって、多くのＨＰＣ環境は、生産指向環境における効率的な処理を行ううえでの頑健なクラスタ管理ソフトウェアを備えていない場合がある。
【課題を解決するための手段】
【０００４】
本発明は、複数のＨＰＣノードに関する情報の収集を含む、高性能計算（ＨＰＣ）環境においてグラフィカル・ユーザ・インタフェースを備えるシステム及び方法を提供する。各ノードは統合ファブリックを備える。複数のグラフィカル・エレメントが、収集情報に少なくとも部分的に基づいて生成される。次いで、グラフィカル・エレメントの少なくとも一部分がユーザに提示される。  
本発明は、重要な技術上の利点をいくつか有する。例えば、本発明の考えられる１つの効果は、集中スイッチング機能を少なくとも部分的に、削減するか、分散させるか、除去することによって、本発明が、通常のＨＰＣ帯域幅の、場合によっては、４倍乃至８倍の、より大きな入出力（Ｉ／Ｏ）性能を提供することができることである。実際に、特定の実施例では、Ｉ／Ｏ性能はプロセッサ性能にほぼ等しい場合がある。このうまくバランスがとれた手法が通信オーバヘッドから受ける影響はより少ない場合がある。したがって、本発明によって、ブレード性能及び全体システム性能が向上し得る。考えられる更なる利点は、相互接続レーテンシの低減である。更に、本発明は、通常のブレードよりも、容易にスケーリング可能であり、信頼度が高く、フォールト・トレランスが高い場合がある。なお別の効果としては、大学や技術研究所に転嫁される場合がある、ＨＰＣサーバの製造に係わるコスト及び／又は、ＨＰＣ処理を行うことに係わるコストの削減があり得る。本発明は、少なくとも一部分は、バランスされているアーキテクチャに基づいて、より頑健でかつ効率的な管理ソフトウェアを更に可能にすることができる。本発明の種々の実施例は、これらの効果を何ら有しない場合があり、これらの効果の一部又は全部を有する場合もある。本発明の他の技術上の利点は、当業者に容易に明らかとなるであろう。
【発明を実施するための最良の形態】
【０００５】
本明細書及び特許請求の範囲、並びにその利点がより徹底的に分かるために、次に、下記明細書を添付図面とともに参照する。
【実施例】
【０００６】
図１は、ソフトウェアのアプリケーション及び処理、例えば、大気シミュレーション、気象シミュレーションや衝撃シミュレーションを、ＨＰＣ手法を用いて実行する高性能計算（ＨＰＣ）システム１００を示す構成図である。システム１００は、処理性能に実質的に同様なＩ／Ｏ性能を備えている、種々の計算ノード１１５間で動的に割り当てられるＨＰＣ機能をユーザに提供する。一般に、これらのノード１１５は、とりわけ、この、入出力（Ｉ／Ｏ）性能の増加とファブリック・レーテンシの低減が理由で容易にスケーリング可能である。例えば、分散アークテクチャにおけるノード１１５のスケーラビリティは、
Ｓ（Ｎ）＝１／（（ＦＰ／Ｎ）＋ＦＳ）＊（１−Ｆｃ＊（１−ＲＲ／Ｌ））
である、アムダールの法則の派生形によって表すことができる。ここで、Ｓ（Ｎ）＝Ｎ個のプロセッサに対する高速化であり、Ｆｐ＝並列コードの割合であり、Ｆｓ＝非並列コードの割合であり、Ｆｃ＝通信に充てられる処理の割合であり、ＲＲ／Ｌ＝遠隔メモリ帯域幅の局所メモリ帯域幅に対する比である。したがって、ＨＰＣシステム１００が、処理性能にほぼ等しいか、ほぼ近づいているＩ／Ｏ性能を提供することによって、ＨＰＣシステム１００はＨＰＣアプリケーションの全体効率を向上させ、システム管理の容易化を可能にする。
【０００７】
ＨＰＣシステム１００は、（科学者や技術者などの）ユーザがジョブ１５０を投入してＨＰＣサーバ１０２上で処理することを可能にする分散クライアント／サーバ・システムである。例えば、システム１００は、１つ又は複数の管理ワークステーション又は局所クライアント１２０にネットワーク１０６を介して接続されるＨＰＣサーバ１０２を含み得る。しかし、システム１００は、スタンドアロン型計算環境又は何れかの別の適切な環境であり得る。要約すれば、システム１００は、スケーラビリティの高いノード１１５を含み、かつ、ユーザが、ジョブ１５０を投入し、スケーラブルなノード１５０をジョブ１５０に動的に割り当て、割り当てられたノード１１５を用いてジョブ１５０を自動的に実行することを可能にする何れかのＨＰＣ計算環境である。ジョブ１５０は、ＨＰＣ手法を用いて処理され、何れかの適切なユーザによって投入されるよう処理可能な何れかのバッチ・ジョブ又はオンライン・ジョブであり得る。例えば、ジョブ１５０は、シミュレーション、モデル、又は何れかの別の高性能要件に対する要求であり得る。ジョブ１５０は、クラスタ化データベース、オンライン・トランザクション処理システムやクラスタ化アプリケーション・サーバなどのデータ・センター・アプリケーションを実行する要求であってもよい。本明細書及び特許請求の範囲に記載の「ｄｙｎａｍｉｃａｌｌｙ」の語は一般に、特定の処理が少なくとも部分的に、実行時に１つ又は複数の変数に基づいて判定されることを表す。本明細書及び特許請求の範囲に記載の「ａｕｔｏｍａｔｉｃａｌｌｙ」の語は一般に、適切な処理が実質的に、ＨＰＣシステム１００の少なくとも一部によって行われるということを表す。この「ａｕｔｏｍａｔｉｃａｌｌｙ」の語が更に、何れかの適切なユーザ又は管理者による、システム１００との相互作用を、本願の開示の範囲から逸脱することなく想定していることが分かる。
【０００８】
ＨＰＣサーバ１０２は、複数の、バランスされたノード１１５及びクラスタ管理ノード１３０を用いてジョブ１５０を処理するよう動作可能な何れかの、局所コンピュータ又は遠隔コンピュータを備える。一般に、ＨＰＣサーバ１０２は、ブレード・サーバや別の分散サーバなどの分散コンピュータを備える。サーバ１０２は、その構成がどんなものであっても、複数のノード１１５を含む。ノード１１５は、例えば、ブレード、汎用パーソナル・コンピュータ（ＰＣ）、マッキントッシュ、ワークステーション、ユニックス（Ｕｎｉｘ（登録商標））ベースのコンピュータや何れかの別の適切な装置などの何れかのコンピュータ装置又は処理装置を備える。一般に、図１は、本願の開示とともに用い得るコンピュータの一例に過ぎないものを備える。例えば、図１は本願開示とともに用い得る一サーバ１０２を示すが、システム１００は、サーバ以外のコンピュータ、並びにサーバ・プールを用いて実施することが可能である。すなわち、本願の開示は、汎用コンピュータ以外のコンピュータ、並びに、通常のオペレーティング・システムなしのコンピュータを想定している。本明細書及び特許請求の範囲に記載の「ｃｏｍｐｕｔｅｒ」の語は、パソコン、ワークステーション、ネットワーク・コンピュータや、何れかの別の適切な処理装置を包含することが意図されている。ＨＰＣサーバ１０２又はコンポーネント・ノード１１５は、リナックス（Ｌｉｎｕｘ）、ユニックス（Ｕｎｉｘ（登録商標））、ウィンドウズ（登録商標）・サーバや、何れかの別の適切なオペレーティング・システムを含む何れかのオペレーティング・システムを実行するよう形成し得る。一実施例によれば、ＨＰＣサーバ１０２は、遠隔ウェブ・サーバを含んでいてもよく、遠隔ウェブ・サーバに通信可能に結合されていてもよい。したがって、サーバ１０２は、ノード１１５を動的に割り当ててＨＰＣジョブ１５０を処理するのに適した何れかの組み合わせでソフトウェア及び／又はハードウェアを備えている何れかのコンピュータを備え得る。
【０００９】
概略を述べれば、ＨＰＣサーバ１０２は、管理ノード１０５、複数のノード１１５を備えるグリッド１１０、及びクラスタ管理エンジン１３０を含む。特に、サーバ１０２は、ｉ）デュアル・プロセッサ、ｉｉ）大容量の、高帯域幅のメモリ、ｉｉｉ）デュアル・ホスト・チャネル・アダプタ（ＨＣＡ）、ｉｖ）統合ファブリック・スイッチング、ｖ）ＦＰＧＡサポート、及びｖｉ）冗長な電源入力すなわちＮ＋１個の電源の構成部分の一部又は全部を備えている複数のブレード（ノード１１５）を含む標準の１９インチ（４８．２６ｃｍ）のラックであり得る。これらの種々の構成部分によって、障害がノード・レベルに限定されることが可能になる。しかし、ＨＰＣサーバ１０２及びノード１１５がこれらの構成部分を全部含まない場合があることが分かる。
【００１０】
管理ノード１０５は、実質的に専ら、管理者を管理するか支援する少なくとも１つのブレードを備える。例えば、管理ノード１０５は２つのブレードを備える場合があり、２つのブレードのうちの１つは（アクティブ構成／パッシブ構成などの）冗長性を有する。一実施例では、管理ノード１０５は、ＨＰＣノード１１５と同じタイプのブレード又は計算装置であり得る。しかし、管理ノード１０５は、少なくとも部分的にグリッド１１０を管理するよう動作可能な状態にとどまっている限り、何れかの数の回路を含み、何れかの適切な方法で構成される何れかのノードであり得る。多くの場合、管理ノード１０５は、グリッド１１０に併せて表している複数のＨＰＣノード１１５から物理的又は論理的に分離されている。図示する実施例では、管理ノード１０５は、グリッド１１０にリンク１０８を介して通信可能に結合し得る。リンク１０８は、何れかの適切な通信プロトコルを実施する何れかの通信管路を備え得る。一実施例では、リンク１０８は管理ノード１０５とグリッド１１０との間の、ギガビット又は１０ギガビットのイーサネット（登録商標）通信を備える。
【００１１】
グリッド１１０は、処理能力を向上させるよう相互接続されるノード群１１５である。通常、グリッド１１０は、３次元トーラスであるが、本願の開示の範囲から逸脱することなく、メッシュ、超立方体や、何れかの別の形状若しくは構成であり得る。グリッド１１０におけるノード１１５間のリンクは、例えばファイバや銅などの、電気信号又は電磁気信号を伝達することが可能な、直列又は並列の、アナログ・リンク、ディジタル・リンクや、何れかの別のタイプのリンクであり得る。各ノード１１５は統合スイッチによって構成される。このことによって、ノード１１５が３次元トーラスの基本的な構成体により容易になることを可能にし、別のノード１１５間のＸＹＺ距離を最小にすることに寄与する。更に、このことは、最大でギガビット・レベルの速度での大容量システムで銅線を機能させる場合があり、一部の実施例では、最長のケーブルは５メートル未満である。要約すれば、ノード１１５は、一般に、最近傍通信、及びＩ／Ｏ帯域幅の増加に最適化される。
【００１２】
各ノード１１５は、クラスタ管理エンジン１３０と通信可能に結合されるクラスタ・エージェント１３２を含み得る。一般に、エージェント１３２は要求又はコマンドを管理ノード１０５及び／又はクラスタ管理エンジン１３０から受信する。エージェント１３２は、ノード１１５の物理ステータスを判定し、処理データを「ハートビート（ｈｅａｒｔｂｅａｔ）」などによって管理ノード１０５に通信するよう動作可能な何れかのハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを含み得る。別の実施例では、管理ノード１０５は、エージェント１３２を周期的にポーリングして関連ノード１１５のステータスを判定し得る。エージェント１３２は、クラスタ管理エンジン１３０の少なくとも一部分と互換である状態のままである限り、例えば、Ｃ、Ｃ＋＋、アセンブラ、ジャバ（Ｊａｖａ（登録商標））、ビジュアル・ベーシック（Ｖｉｓｕａｌ  Ｂａｓｉｃ）や他の言語又はそれらの組み合わせなどの何れかの適切なコンピュータ言語で記述される場合がある。
【００１３】
クラスタ管理エンジン１３０は、ノード１１５を動的に、割り当て、管理し、ノード１１５を用いてジョブ１５０を実行するよう動作可能な、何れかのハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを含み得る。例えば、クラスタ管理エンジン１３０は、Ｃ、Ｃ＋＋、ジャバ、ビジュアル・ベーシック、アセンブラ、４ＧＬの何れかの適切なバージョン、及びその他の言語又はそれらの何れかの組み合わせを含む何れかの適切なコンピュータ言語で作成又は記述される場合がある。クラスタ管理エンジン１３０を図１に単一のマルチタスク・モジュールとして示しているが、このエンジンによって行われる特徴と機能は、（図５に更に詳細に表すように）例えば、物理層モジュール、仮想層モジュール、ジョブ・スケジューラや、プレゼンテーション・エンジンなどの、複数のモジュールによって行うことができることが分かる。更に、管理ノード１０５の外に示すが、管理ノード１０５は通常、クラスタ管理エンジン１３０に関連した１つ又は複数の処理を実行し、クラスタ管理エンジン１３０を記憶させ得る。更に、クラスタ管理エンジン１３０は、本願の開示の範囲から逸脱することなく、別のソフトウェア・モジュールの子モジュール又はサブモジュールであり得る。よって、クラスタ管理エンジン１３０は、ノード１１５及びジョブ１５０をインテリジェントに管理するよう動作可能な１つ又は複数のソフトウェア・モジュールを備える。
【００１４】
サーバ１０２は、クライアント・サーバ環境や別の分散環境においてネットワーク１０６を介してクライアント１２０などの別のコンピュータ・システムと通信するインタフェース１０４を含み得る。特定の実施例では、サーバ１０２はジョブ１５０又はジョブ・ポリシーをネットワーク１０６から受信してディスク・ファーム１４０に記憶させる。ディスク・ファーム１４０は、ノードを相互接続するものと同じ広帯域インタフェースを用いて計算アレイに直接接続することもできる。一般に、インタフェース１０４は、適切な組み合わせにおけるものであり、かつ、ネットワーク１０６と通信するよう動作可能な、ソフトウェア及び／又はハードウェアにコード化された論理を備える。特に、インタフェース１０４は、物理信号を通信するよう動作可能な通信ネットワーク１０６又はハードウェアに関連した１つ又は複数の通信プロトコルをサポートするソフトウェアを備え得る。
【００１５】
ネットワーク１０６は、コンピュータ・サーバ１０２と、クライアント１２０などの何れかの別のコンピュータとの間の無線通信又は有線通信を容易にする。実際に、サーバ１０２とクライアント１２０との間に存在するものとして図示しているが、ネットワーク１０６は、本願の開示の範囲から逸脱することなく、種々のノード１１５間に存在する場合もある。すなわち、ネットワーク１０６は、種々の計算構成部分間での通信を容易にするよう動作可能な何れかの１つ若しくは複数のネットワーク、又はサブネットワークに及ぶ。ネットワーク１０６は、例えば、インターネット・プロトコル（ＩＰ）パケット、フレーム・リレイ・フレーム、非同期転送モード（ＡＴＭ）・セル、音声、ビデオ、データ、及び別の適切な情報をネットワーク・アドレス間で通信することができる。ネットワーク１０６は、１つ又は複数の場所での、１つ又は複数の、ローカル・エリア・ネットワーク（ＬＡＮ）、無線アクセス・ネットワーク（ＲＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネットとして知られるグローバル・コンピュータ・ネットワークの全部若しくは一部分、及び／又はいずれかの別の１つ又は複数の通信システムを含み得る。
【００１６】
一般に、ディスク・ファーム１４０は、ジョブ１５０、プロファイル、ブート画像、又は別のＨＰＣ情報を記憶させる何れかのメモリ、データベース又はストレージ・エリア・ネットワーク（ＳＡＮ）である。図示する実施例によれば、ディスク・ファーム１４０は、１つ又は複数のストレージ・クライアント１４２を含む。ディスク・ファーム１４０は、いくつかの通信プロトコル、例えば、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）（ＩＢ）、ギガビット（Ｇｉｇａｂｉｔ）・イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標）（ＧＥ）又はファイバチャネル（ＦｉｂｒｅＣｈａｎｎｅｌ）（ＦＣ）のうちの何れかによってデータ・パケットを処理し、ルーティングすることができる。データ・パケットは通常、ディスク・ファーム１４０内のデータを伝送するのに用いられる。データ・パケットは、発信元識別子及び宛て先識別子を有するヘッダを含み得る。発信元識別子、例えば、発信元アドレスは情報の発信元を識別し、宛て先識別子、例えば宛て先アドレスは情報の受信先を識別する。
【００１７】
クライアント１２０は、ジョブ投入画面又は管理手続き（ａｄｍｉｎｉｓｔｒａｔｉｏｎ）がユーザにグラフィカル・ユーザ・インタフェース（ＧＵＩ）１２６を介して提示されるよう動作可能な何れかの装置である。概略を述べれば、図示するクライアント１２０は、少なくともＧＵＩ１２６を含み、システム１００に関連した何れかの適切なデータを受信し、送信し、処理し、記憶するよう動作可能な電子計算機装置を備える。通信可能にサーバ１０２に結合される何れかの数のクライアント１２０が存在し得ることが分かる。更に、「ｃｌｉｅｎｔ  １２０」及び「ｕｓｅｒ  ｏｆ  ｃｌｉｅｎｔ  １２０」は、本願の開示の範囲から逸脱することなく、適宜、同義で用い得る。更に、図示を容易にするよう、各クライアントは１つのユーザによって用いられるという点で表している。しかし、多くのユーザが１つのコンピュータを用いて、ジョブ１５０を同じＧＵＩ１２６を用いて通信することができることを本明細書は想定している。
【００１８】
本明細書記載の通り、クライアント１２０は、パソコン、タッチ画面端末、ワークステーション、ネットワーク・コンピュータ、キオスク、無線データ・ポート、携帯電話機、携帯情報端末（ＰＤＡ）、これら若しくは別の装置内の１つか複数のプロセッサ、又は何れかの別の適切な処理装置を包含することが意図されている。例えば、クライアント１２０は、情報を受け入れることが可能な、キーパッド、タッチ画面、マウスや、別の装置などの入力装置、ディジタル・データ、視覚情報を含む、サーバ１０２若しくはクライアント１２０の処理に関連した情報を伝える出力装置、又はＧＵＩ１２６を含むコンピュータを備え得る。入力装置も出力装置も、磁気コンピュータ・ディスク、ＣＤ−ＲＯＭや別の適切な媒体などの固定記憶媒体又は取り外し可能記憶媒体を含んで、管理手続き及びジョブ投入画面、すなわちＧＵＩ１２６を介してクライアント１２０のユーザからの入力を受信し、出力をそのユーザに備え得る。
【００１９】
ＧＵＩ１２６は、ｉ）クライアント１２０のユーザがシステム１００とインタフェースをとって１つ又は複数のジョブ１５０を投入する工程；及び／又はｉｉ）システム管理者（若しくはネットワーク管理者）がクライアント１２０を用いて、何れかの適切な監視目的でシステム１００とインタフェースをとる工程；を可能にするよう動作可能なグラフィカル・ユーザ・インタフェースを備える。一般に、ＧＵＩ１２６は、ＨＰＣシステム１００によって備えられるデータの効率的でかつユーザ・フレンドリな提示をクライアント１２０のユーザに備える。ＧＵＩ１２６は、ユーザによって操作される相互作用フィールド、プルダウン・リスト、及びボタンを有する複数のカスタム化可能なフレーム又は表示を備えることができる。一実施例では、ＧＵＩ１２６は、種々のジョブ・パラメータ・フィールドを表示し、クライアント１２０のユーザからのコマンドを入力装置のうちの１つを介して受信するジョブ投入ディスプレイ（表示）を表示させる。あるいは、又は組み合わせにおいて、ＧＵＩ１２６は、ノード１１５の物理ステータス及び論理ステータスを図４Ａ乃至４Ｂに示すようにシステム管理者に提示し、種々のコマンドを管理者から受信することができる。管理者コマンドは、ノードを利用可能（不能）なものとしてマーキングするコマンド、保守のためにノードをシャットダウンさせるコマンド、ノードを再ブートするコマンドや、何れかの別の適切なコマンドを含み得る。更に、グラフィカル・ユーザ・インタフェース（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）の語を単数形又は複数形で用いて、１つ又は複数のグラフィカル・ユーザ・インタフェースと、特定のグラフィカル・ユーザ・インタフェースの表示のそれぞれを表すことができることが分かる。したがって、ＧＵＩ１２６には、情報をシステム１００において処理し、結果をユーザに効率的に提示する、汎用ウェブ・ブラウザなどの何れかのグラフィカル・ユーザ・インタフェースを想定している。サーバ１０２は、クライアント１２０からのデータをウェブ・ブラウザ（例えば、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）社のインターネット・エクスプローラ（Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ）又はネットスケープ（Ｎｅｔｓｃａｐｅ）社のナビゲータ（Ｎａｖｉｇａｔｏｒ））を介して受け入れ、ネットワーク１０６を用いて適切なＨＴＭＬ応答又はＸＭＬ応答を戻すことが可能である。
【００２０】
処理の一局面では、ＨＰＣサーバ１０２はまず、初期化又はブートされる。この処理中に、クラスタ管理エンジン１３０は、グリッド１１０におけるノード１１５の存在、状態、位置、及び／又は別の特性を判定する。上記のように、このことは、各ノードが初期化されるか、又は管理ノード１０５によってほぼ即時にポーリングされると通信される「ハートビート」に基づく場合がある。次に、クラスタ管理エンジン１３０は、グリッド１１０の種々の部分を１つ又は複数の仮想クラスタ２２０に、例えば、所定のポリシーに基づいて動的に割り当てることができる。一実施例では、クラスタ管理エンジン１３０は、考えられる障害についてノード１１５を継続して監視し、ノード１１５のうちの１つに障害が発生したことを判定すると、種々の回復手法のうちの何れかを用いて障害を効果的に管理する。クラスタ管理エンジン１３０は、一意の実行環境を仮想クラスタ２２０の割り当てノード毎に管理し、備える場合もある。実行環境は、ホスト名、ＩＰアドレス、オペレーティング・システム、構成サービス、局所ファイル・システム及び共有ファイル・システム、並びにインストールされているアプリケーション群並びにデータ群を含み得る。クラスタ管理エンジン１３０は、関連ポリシーによって、かつ優先度などのクラスタ間ポリシーによってノードを仮想クラスタ２２０から動的に加えるか又は減らすことができる。
【００２１】
ユーザは、クライアント１２０にログオンすると、ＧＵＩ１２６を介してジョブ投入画面が提示される場合がある。ユーザがジョブ・パラメータを入力し、ジョブ１５０を投入すると、クラスタ管理エンジン１３０はジョブ投入、関連パラメータ、及び、ジョブ１５０、ユーザ又はユーザ群に関連した何れかの所定のポリシーを処理する。クラスタ管理エンジン１３０は更に、適切な仮想クラスタ２２０を、少なくとも部分的にはこの情報に基づいて判定する。エンジン１３０は次いで、ジョブ空間２３０を仮想クラスタ２２０内に割り当て、ジョブ１５０を割り当てノード１１５にわたってＨＰＣ手法を用いて実行する。少なくとも部分的にはこの向上したＩ／Ｏ性能に基づいて、ＨＰＣサーバ１０２はジョブ１５０の処理をよりすばやく完了し得る。完了すると、クラスタ管理エンジンは結果１６０をユーザに通信する。
【００２２】
図２Ａ乃至図２Ｄは、システム１００におけるグリッド２１０とその利用又はトポロジの種々の実施例を示す。図２Ａは、複数のノード・タイプを用いたグリッド２１０の一構成、すなわち３次元トーラスを示す。例えば、図示するノード・タイプは外部Ｉ／Ｏノード、ＦＳサーバ、ＦＳメタデータ・サーバ、データベース・サーバ、及び計算ノードである。図２Ｂは、グリッド２１０の「フォールディング（折り畳むこと）」の例を示す。フォールディングは一般に、グリッド２１５の物理的な一エッジが、対応する軸方向のエッジと接続し、それによってより頑健なトポロジすなわちエッジレス・トポロジを備えることが可能になる。この実施例では、ノード２１５をラップアラウンドして、ノード・ライン２１６によるほぼシームレスなトポロジ接続を備える。ノード・ライン２１６は、２つ以上のノード２１５を相互接続する何れかの通信プロトコルを実施する何れかの適切なハードウェアであり得る。例えば、ノード・ライン２１６はギガビット・イーサネット（登録商標）を実施する銅線ケーブル又は光ファイバ・ケーブルであり得る。
【００２３】
図２Ｃは、中に割り当てられた１つの仮想クラスタ２２０を備えるグリッド２１０を示す。１つの仮想クラスタ２２０しか示していないが、グリッド２１０における仮想クラスタ２２０は、本願の開示の範囲から逸脱することなく、（ゼロを含む）何れかの数、存在し得る。仮想クラスタ２２０は、関連ジョブ１５０を処理する論理的なノード群２１５である。例えば、仮想クラスタ２２０は、同様なジョブ１５０を投入すると思われる、１つの研究グループ、部署、研究所、又は何れかの別のユーザ群に関連し得る。仮想クラスタ２２０は、何れかの形状であり得るものであり、グリッド２１０内に何れかの数のノード２１５を含み得る。実際に、図示する仮想クラスタ２２０は物理的に隣接している複数のノード２１５を含んでいるが、クラスタ２２０は、ジョブ１５０を処理するよう動作可能な論理的に関連したノード２１５の分散クラスタであり得る。
【００２４】
仮想クラスタ２２０は、何れかの適切な時点で割り当てることができる。例えば、クラスタ２２０は、システム１００が初期化されると、例えば起動パラメータに基づいて割り当ててもよく、例えば、変動する、サーバ１０２のニーズに基づいて動的に割り当ててもよい。更に、仮想クラスタ２２０は経時的にその形状及びサイズを変えて、変動する要求、デマンド、及び状況にすばやく対応することができる。例えば、仮想クラスタ２２０は、先行時点ではクラスタ２２０の一部であった第２ノード２１５の障害に応じて、自動的に割り当てられる第１ノード２１５を含むよう動的に変えることができる。特定の実施例では、クラスタ２２０は、ノード２１５を処理の要求に応じて共有することができる。
【００２５】
図２Ｄは、仮想クラスタ２２０例内に割り当てられる種々のジョブ空間２３０ａ及び２３０ｂそれぞれを示す。一般には、ジョブ空間２３０は、受信ジョブ１５０を完了するよう動的に割り当てられる仮想クラスタ２２０内のノード２１５の群である。通常、実行ジョブ１５０毎に１つのジョブ空間２３０が存在し、逆も同様であるが、ジョブ空間２３０は、本願の開示の範囲から逸脱することなくノード２１５を共有することができる。ジョブ空間２３０の寸法は、ユーザ又は管理者によって手作業で入力してもよく、ジョブ・パラメータ、ポリシー、及び／又は何れかの別の適切な特性に基づいて動的に判定してもよい。
【００２６】
図３Ａ乃至図３Ｃは、グリッド１１０における個々のノード１１５の種々の実施例を示す。これらの図の実施例は、例であるが、ノード１１５はブレード３１５によって表す。ブレード３１５は、ジョブ１５０の、スレッドや処理などの、全部又は一部分を処理するよう動作可能な何れかの向きにおける何れかの計算装置を備える。例えば、ブレード３１５は、標準的なＸｅｏｎ（ゼオン）６４（商標）マザーボード、標準的なＰＣＩ−Ｅｘｐｒｅｓｓ  Ｏｐｔｅｒｏｎ（ＰＣＩ−エクスプレス・オプテロン）（商標）マザーボード、又は何れかの別の適切な計算カードであり得る。
【００２７】
ブレード３１５は、ファブリック・スイッチング構成部分をグリッド１１０におけるノード１１５にわたって一様に分散させ、それによって場合によっては、何れかの集中スイッチング機能を削減するか又は除去し、フォールト・トレランスを向上させ、メッセージが並列に進むことを可能にする統合ファブリック・アーキテクチャである。特に、ブレード３１５は、統合スイッチ３４５を含む。スイッチ３４５は、種々のトポロジを可能にし得る何れかの数のポートを含む。例えば、スイッチ３４５は、３次元メッシュ又は３次元トーラスのトポロジの高密度化を可能にする８ポートのスイッチであり得る。これらの８つのポートは、Ｘ軸に沿って隣接ノード１１５にリンクする２つの「Ｘ」接続、Ｙ軸に沿って隣接ノード１１５にリンクする２つの「Ｙ」接続、Ｚ軸に沿って隣接ノード１１５にリンクする２つの「Ｚ」接続、及び管理ノード１０５にリンクする２つの接続を含む。一実施例では、スイッチ３４５は、標準的な８ポートのインフィニバンド４ｘスイッチＩＣであり、それによって内蔵ファブリック・スイッチングを容易に備える場合がある。スイッチ３４５は、４次元トーラスなどの多次元トポロジ、又は４次元以上の別の非伝統的なトポロジを可能にする２４のポート・スイッチを備える場合もある。更に、ノード１１５は、対角線軸に沿って更に相互接続され、それによって比較的遠隔な場所にあるノード１１５間での通信のジャンプ又はホップを削減する場合がある。例えば、第１ノード１１５は、北東方向の軸に沿っていくつかの３次元「ジャンプ（ｊｕｍｐｓ）」離れた場所に物理的に存在する第２ノード１１５と接続し得る。
【００２８】
図３Ａは、概略を述べれば、少なくとも２つの、プロセッサ３２０ａ並びに３２０ｂ、局所メモリ若しくは遠隔メモリ３４０、及び統合スイッチ（又は統合ファブリック）３４５を含むブレード３１５を示す。プロセッサ３２０は、命令を実行し、データを操作して、例えば中央処理装置（ＣＰＵ）などのブレード３１５の処理を行う。プロセッサ３２０への言及は、該当する場合、複数のプロセッサ３２０を含むことを表す。一実施例では、プロセッサ３２０は、ゼオン６４プロセッサ若しくはイタニウム（Ｉｔａｎｉｕｍ）（商標）プロセッサ、又は別の同様なプロセッサ若しくはその派生物を備え得る。例えば、ゼオン６４プロセッサは、２ＭＢのキャッシュとハイパスレッディングとを備えている３．４ＧＨｚチップであり得る。この実施例では、デュアル・プロセッサ・モジュールは、効率を向上させるネーティブなＰＣＩ／エクスプレスを含み得る。よって、プロセッサ３２０は、効率的なメモリ帯域幅を有し、通常、プロセッサ・チップに内蔵されているメモリ・コントローラを有する。
【００２９】
ブレード３１５は、ノースブリッジ（Ｎｏｒｔｈｂｒｉｄｇｅ）３２１、サウスブリッジ（Ｓｏｕｔｈｂｒｉｄｇｅ）３２２、ＰＣＩチャネル３２５、ＨＣＡ３３５、及びメモリ３４０を含む場合もある。ノースブリッジ３２１はプロセッサ３２０と通信し、メモリ３４０、ＰＣＩバス、レベル２キャッシュ、及び何れかの別の関連構成部分との通信を制御する。一実施例では、ノースブリッジ３２１は、フロントサイド・バス（ＦＳＢ）を用いてプロセッサ３２０と通信する。サウスブリッジ３２２は、ブレード３１５の入出力（Ｉ／Ｏ）機能の多くを管理する。別の実施例では、ブレード３１５は、グラフィックス及びＡＧＰメモリ・コントローラ・ハブ（ＧＭＣＨ）及びＩ／Ｏコントローラ・ハブ（ＩＣＨ）を含むインテル（Ｉｎｔｅｌ）社ハブ・アーキテクチャ（Ｈｕｂ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＩＨＡ）（商標）を実施し得る。
【００３０】
ＰＣＩチャネル３２５は、統合構成部分間の通信速度を増加させるよう企図された何れかの高速で低レーテンシのリンクを備える。このことは、ブレード３１５におけるバス数の削減に役立ち、それによってシステムのボトルネックを削減することが可能になる。ＨＣＡ３３５は、サーバ１０２内にチャネル・ベースのＩ／Ｏを備えている何れかの構成部分を備える。各ＨＣＡ３３５は、２．６５ＧＢ／ｓｅｃの合計帯域幅を備え、それによって、スイッチ３４５に対してＰＥ毎に１．８５ＧＢ／秒を可能にし、例えば、ＢＩＯＳ（基本入出力システム）、イーサネット（登録商標）管理インタフェース他などのＩ／Ｏに対してＰＥ毎に８００ＭＢ／秒を可能にすることができる。これによって、更に、スイッチ３４５の合計帯域幅が１３．６Ｇｉｇａｆｌｏｐｓ／秒のピーク値に対して３．７ＧＢ／秒になることが可能になる、すなわち、０．２７Ｂｙｔｅｓ／ＦｌｏｐのＩ／Ｏ速度は、Ｇｉｇａｆｌｏｐｓ毎５０ＭＢ／秒である。
【００３１】
メモリ３４０は、何れかのメモリ・モジュール又はデータベース・モジュールを含み、かつ、磁気媒体、光媒体、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、取り外し可能媒体、又は何れかの別の適切な、局所メモリ構成部分若しくは遠隔メモリ構成部分を、限定なく含む揮発性メモリ若しくは不揮発性メモリの形態をとり得る。図示する実施例では、メモリ３４０は、少なくとも６．４ＧＢ／秒で動作する８ＧＢのデュアル・ダブル・データ・レート（ＤＤＲ）メモリ構成部分から構成される。メモリ３４０は、本願の開示から逸脱することなく、ＨＰＣジョブ１５０を管理又は実行する何れかの適切なデータを含み得る。
【００３２】
図３Ｂは、２つのプロセッサ３２０ａ及び３２０ｂ、メモリ３４０、ハイパ・トランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ）／周辺機器構成部分相互接続（ＨＴ／ＰＣＩ）ブリッジ３３０ａ及び３３０ｂ、並びに２つのＨＣＡ３３５ａ及び３３５ｂを含むブレード３１５を示す。
【００３３】
例示的ブレード３１５は、少なくとも２つのプロセッサ３２０を含む。プロセッサ３２０は、例えば中央処理装置（ＣＰＵ）などのブレード３１５の処理を行うよう、命令を実行し、データを操作する。図示する実施例では、プロセッサ３２０は、オプテロン（Ｏｐｔｅｒｏｎ）・プロセッサ、又は別の同様なプロセッサ若しくは派生物を備え得る。この実施例では、オプテロン・プロセッサの設計は、グリッド１１０を構築する、うまくバランスされたブロックの形成をサポートする。とにかく、デュアル・プロセッサ・モジュールは、４乃至５ギガフロップを利用可能な性能を備え、次世代技術はメモリ帯域幅の制約の解決に寄与することができる。しかし、ブレード３１５は、本願の開示の範囲から逸脱することなく、３つ以上のプロセッサ３２０を含み得る。よって、プロセッサ３２０は、効率的なメモリ帯域幅を有し、通常、プロセッサ・チップに内蔵されているメモリ・コントローラを有する。この実施例では、各プロセッサ３２０は、１つ又は複数のハイパ・トランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ）（商標）（又は同様な管路のタイプ）のリンク３２５を有する。
【００３４】
一般に、ＨＴリンク３２５は、統合構成部分間の通信速度を増加させるよう企図される何れかの高速で低レーテンシのリンクを備える。このことは、ブレード３１５におけるバス数の削減に役立ち、それによってシステムのボトルネックを削減することが可能になる。ＨＴリンク３２５は、キャッシュ・コヒーレント・マルチプロセッサ・ブレード３１５のプロセッサ間通信をサポートする。ＨＴリンク３２５を用いて、最大８つのプロセッサ３２０をブレード３１５上に配置させ得る。利用される場合、ハイパ・トランスポートは、６．４ＧＢ／秒、１２．８ＧＢ／秒又はそれを上回る帯域幅を備え、それによって、レガシー型ＰＣＩバスに対して４０倍を上回るデータ・スループット増加を備えることができる。更に、ハイパ・トランスポート技術は、ＰＣＩなどのレガシー型Ｉ／Ｏ標準及びＰＣＩ−Ｘなどの他の技術と互換であり得る。
【００３５】
ブレード３１５は、ＨＴ／ＰＣＩブリッジ３３０及びＨＣＡ３３５を更に含む。ＰＣＩブリッジ３３０は、ＰＣＩ局所バス標準第２．２版あるいは第３．０版、若しくはＰＣＩエクスプレス標準１．０ａ、又はその何れかの派生物に準拠して企図し得る。ＨＣＡ３３５は、サーバ１０２内にチャネル・ベースのＩ／Ｏを備える何れかの構成部分を備える。一実施例では、ＨＣＡ３３５は、インフィニバンドＨＣＡを備える。インフィニバンド・チャネルは通常、ホスト・チャネル・アダプタ及びターゲット・チャネル・アダプタを接続することによって形成され、これによって、図３Ｂに更に詳細に示すインフィニバンド・ファブリックへの遠隔記憶及びネットワーク接続性が可能になる。ハイパ・トランスポート３２５から、ＰＣＩ−エクスプレス・ブリッジ３３０及びＨＣＡ３３５までによって、プロセッサ３２０毎に全２重の２ＧＢ／秒のＩ／Ｏチャネルが形成され得る。特定の実施例では、これは、分散ＨＰＣ環境１００におけるプロセッサ間通信をサポートするうえで十分な帯域幅を備える。更に、これは、プロセッサ３２０の性能とほぼ又はかなりバランスされているＩ／Ｏ性能をブレード３１５に備える。
【００３６】
図３Ｃは、ドーター・ボードを含むブレード３１５の別の実施例を示す。この実施例では、ドーター・ボードは、３．２ＧＢ／秒以上のキャッシュ・コヒーレント・インタフェースをサポートすることができる。ドーター・ボードは、フィールドでプログラム可能な１つ又は複数のゲート・アレイ（ＦＰＧＡ）３５０を含むよう動作可能である。例えば、図示するドーター・ボードは、それぞれ３５０ａ及び３５０ｂによって表す２つのＦＰＧＡ３５０を含む。一般に、ＦＰＧＡ３５０は、非標準インタフェースと、カスタム・アルゴリズムを処理する機能と、信号処理アプリケーション、画像処理アプリケーション、又は暗号化／復号処理アプリケーション用のベクタ・プロセッサと、高帯域幅とをブレード３１５に備える。例えばＦＰＧＡは、例えば、低精度の高速フーリエ変換（ＦＦＴ）関数や行列算術関数などの特定の関数用の汎用プロセッサの性能の１０乃至２０倍の加速倍率を備えることによってブレード３１５の機能を補完することができる。
【００３７】
前述の図及びその説明は、（ブレード３１５の例として示す）種々のスケーラブルなノード１１５を実施することを例証する図を備える。しかし、これらの図は例証的なものに過ぎず、システム１００には、種々のスケーラビリティ手法を実施する構成要素の何れかの適切な組み合わせ及び配置を用いることが想定されている。本発明は、部分的にはブレード・サーバ１０２に関して図示し、説明したが、当業者は、本発明の教示を何れかのクラスタ化ＨＰＣサーバ環境に適用できることが分かる。よって、本明細書及び特許請求の範囲記載の手法を組み入れた前述のクラスタ化サーバ１０２は、本願の開示の範囲から逸脱することなく、局所のものでも分散のものでもよい。よって、これらのサーバ１０２は、高性能計算能力を、Ｉ／Ｏレーテンシを削減する一方で備える、構成要素の何れかの適切な組み合わせ及び配置を組み入れたＨＰＣモジュール（又はノード１１５）を含み得る。更に、図示した種々のＨＰＣモジュールの処理の組み合わせ及び／又は分離を適宜、行うことができる。例えば、グリッド１１０は、実質的に同様な複数のノード１１５、又は異なるハードウェア・アーキテクチャ若しくはファブリック・アーキテクチャを実施する種々のノード１１５を含み得る。
【００３８】
図４Ａ及び図４Ｂは、システム１００による、管理グラフィカル・ユーザ・インタフェース４００の種々の実施例を示す。多くの場合、管理ＧＵＩ４００は、クライアント１２０にＧＵＩ１２６を用いて提示される。一般に、管理ＧＵＩ４００は、システム管理者への種々の管理用対話画面若しくは管理用対話ディスプレイ、及び／又はユーザへの種々のジョブ投入画面若しくはジョブ・プロファイル画面を提示する。これらの画面又はディスプレイは、種々の収集情報表示に組み立てられるグラフィカル構成要素から成る。例えば、ＧＵＩ４００は、（図４Ａに示す）グリッド１１０の物理的状態の表示、又は（図４Ｂに示す）グリッド１１０におけるノード１１５の論理的な、割り当てすなわちトポロジの表示を提示することができる。
【００３９】
図４Ａは、例示的なディスプレイ４００ａを示す。ディスプレイ４００ａは、ノード１１５を効果的に管理するために管理者に提示される情報を含み得る。例証的な実施例は、グリッド１１０の論理的な「ピクチャ」すなわちスクリーンショットを備えている標準的なウェブ・ブラウザを含む。例えば、このピクチャは、グリッド１１０及び構成ノード１１５の物理的状態を備えることができる。各ノード１１５は、何れかの数の色のうちの１つであり、各色が種々の状態を表す場合がある。例えば、障害ノード１１５は赤色であり得るものであり、利用ノード又は割り当てノード１１５は黒色であり得るものであり、非割り当てノード１１５は濃く塗られたものであり得る。更に、ディスプレイ４００ａは、管理者が、ノード１１５のうちの１つの上にポインタを移動させ、その種々の物理的属性を視ることを可能にし得る。例えば、管理者には、「ノード」、「利用可能性」、「プロセッサ利用率」、「メモリ利用率」、「温度」、「物理位置」、及び「アドレス」を含む情報を提示することができる。当然、これらは例示的なデータ・フィールドに過ぎず、何れかの適切な物理ノード情報又は論理ノード情報を管理者に表示することができる。ディスプレイ４００ａは、管理者が、グリッド１１０の表示を回転させるか、又は何れかの別の適切な関数を行うことを可能にする場合もある。
【００４０】
図４Ｂは、例示的なディスプレイ４００ｂを示す。ディスプレイ４００ｂは、グリッド１００の論理的状態の表示すなわちピクチャを提示する。図示する実施例は、グリッド１１０内に割り当てられる仮想クラスタ２２０を提示する。ディスプレイ４００ｂは更に、１つ又は複数のジョブ１５０を実行するためにクラスタ２２０内に割り当てられる２つの例示的なジョブ空間２３０を表示する。ディスプレイ４００ｂは、管理者が、ポインタをグラフィカル仮想クラスタ２２０上で移動させて、（割り当て又は非割り当てなどの）種々の状態によってグループ化されるノード１１５の数を視ることを可能にし得る。更に、管理者は、適切なジョブ情報が提示されるようにジョブ空間２３０のうちの１つの上にポインタを移動させることができる。例えば、管理者は、ジョブ名、開始時間、ノード数、推定終了時間、プロセッサ利用度、Ｉ／Ｏ利用度他を視ることができる場合がある。
【００４１】
（例示的なディスプレイ４００ａ及び４００ｂそれぞれによって上記に表す）管理ＧＵＩ１２６が例証な目的のためのものにすぎず、図示するグラフィカル構成要素、並びに、図示しない更なる管理構成要素を何ら含まない場合があり、それらの構成要素の一部又は全部を含む場合もあることが分かる。
【００４２】
図５は、システム１００による、エンジン５００として図中に示すクラスタ管理エンジン１３０の一実施例を示す。この実施例では、クラスタ管理エンジン５００は、複数のサブモジュール又は構成部分、すなわち、物理マネージャ５０５、仮想マネージャ５１０、ジョブ・スケジューラ５１５、及び局所のメモリ又は変数５２０を含む。
【００４３】
物理マネージャ５０５は、種々のノード１１５の物理的状態を判定し、この判定状態に基づいてノード１１５を効果的に管理するよう動作可能な何れかのソフトウェア、論理、ファームウェア、又は別のモジュールである。物理マネージャはこのデータを用いて、ノード１１５の障害を効率的に判定し、この障害に効率的に応答することができる。一実施例では、物理マネージャ５０５は複数のエージェント１３２に通信可能に結合され、各エージェントは１つのノード１１５上に存在する。上記のように、エージェント１３２は、少なくとも物理情報を収集し、マネージャ５０５に通信する。物理マネージャ５０５は、クライアント１２０のある場所にいるシステム管理者にネットワーク１０６を介して警告を通信するよう更に動作可能であり得る。
【００４４】
仮想マネージャ５１０は、仮想クラスタ２２０と、ノード１１５の論理的状態とを管理するよう動作可能な何れかのソフトウェア、論理、ファームウェア、又は別のモジュールである。一般に、仮想マネージャ５１０は、ノード１１５の論理的表現をノード１１５の物理的状態とリンクする。こうしたリンクに基づいて、仮想マネージャ５１０は、ノード障害や、ＨＰＣ処理を増加させる（システム又はユーザの）要求に応じる場合などに、仮想クラスタ２２０を生成し、こうしたクラスタ２２０に対する種々の変更を処理することができる。仮想マネージャ５１０は、非割り当てノード１１５などの仮想クラスタ２２０の状態をジョブ・スケジューラ５１５に通信して、非実行状態又は待ち行列に入っている状態のＨＰＣ処理及びＨＰＣジョブ１５０の動的バックフィルを可能にすることもできる。仮想マネージャ５１０は更に、ジョブ１５０の特定ノード１１５との互換性を判定し、この情報をジョブ・スケジューラ５１５に通信することができる。特定の実施例では、仮想マネージャ５１０は、個々の仮想クラスタ２２０を表すオブジェクトであり得る。
【００４５】
クラスタ管理エンジン５００は、ジョブ・スケジューラ５１５を含む場合もある。ジョブ・スケジューラ・サブモジュール５１５は、システムの資源の特徴を、プロセッサ及び時間割り当てとともに処理して、最適なジョブ空間２３０及び時間を判定する、トポロジを意識したモジュールである。多くの場合に考慮される要因として、プロセッサ、処理、メモリ、相互接続、ディスク、視覚化エンジン他を含む。すなわち、ジョブ・スケジューラ５１５は通常、ジョブ１５０を受信するようＧＵＩ１２６と相互作用し、種々のノード１１５の状態を維持するよう物理マネージャ５０５と相互作用し、特定の仮想クラスタ２２０内にジョブ空間２３０を動的に割り当てるよう仮想マネージャ５１０と相互作用する。この動的割り当ては、多くの場合、グリッド１１０の現在のトポロジの知識を組み入れ、適宜、仮想クラスタ２２０の現在のトポロジの知識を組み入れる種々のアルゴリズムによって実現される。ジョブ・スケジューラ５１５は、シリアル・プログラム及びパラレル・プログラムのバッチ実行及び対話型実行を処理する。スケジューラ５１５は、ジョブ１５０によって提示される種々の課題の選択及び実行に関するポリシー５０２を実施する方法も備えるものである。
【００４６】
クラスタ管理エンジン５００は、ジョブ・スケジューラ５１５などによって、効率的なチェック・ポインティングを行うよう更に動作可能であり得る。再起動ダンプは通常、ディスクに書き込まれるデータの７５％を超えるデータを備える。このＩ／Ｏは、多くの場合、処理がプラットフォーム障害によって喪失されないように行われる。このことに基づいて、ファイル・システムのＩ／Ｏは、プロダクティブＩ／Ｏ及びディフェンシブＩ／Ｏの２つの部分に分離することが可能である。プロダクティブＩ／Ｏは、例えば、視覚化ダンプ、主要物理変数の経時的なトレーシング他などの科学的方法を行ううえでユーザが要求する、データの書き込みである。ディフェンシブＩ／Ｏは、かなりの期間にわたって実行される大規模シミュレーションを管理するよう行われる。よって、Ｉ／Ｏ帯域幅の増加によって、チェック・ポインティングに係わる時間及びリスクが大いに削減される。
【００４７】
エンジン５００に戻れば、局所メモリ５２０は、システム１００の複数の特徴の論理的な記述（すなわちデータ構造）を備える。局所メモリ５２０は、互換コードによって定義、処理、又は取り出しを行うよう動作可能な何れかの物理データ記憶機構又は論理データ記憶機構に記憶させることができる。例えば、局所メモリ５２０は、１つ又は複数の拡張マーク付け言語（ＸＭＬ）のテーブル又は文書を備え得る。種々の構成要素は、ＳＱＬステートメント若しくはＳＱＬスクリプト、仮想記憶アクセス方法（ＶＳＡＭ）ファイル、フラット・ファイル、２進データ・ファイル、ビートリーブ（Ｂｔｒｉｅｖｅ）・ファイル、データベース・ファイル、又はコンマで区切られた値（ＣＳＶ）ファイルによって記述することができる。各構成要素が変数、テーブル、又は何れかの別の適切なデータ構造を備え得ることが分かる。局所メモリ５２０は１つのサーバ１０２上に記憶されているか、複数のサーバ又はノードにわたって記憶されている複数のテーブル若しくはファイルを備える場合もある。更に、エンジン５００内に存在しているように示されているが、局所メモリ５２０の一部又は全部は、本願の開示の範囲から逸脱することなく内部のものか外部のものであり得る。
【００４８】
図示する局所メモリ５２０は、物理リスト５２１、仮想リスト５２２、グループ・ファイル５２３、ポリシー・テーブル５２４、及びジョブ・キュー５２５を含む。しかし、図示していないが、局所メモリ５２０は、本願の開示の範囲から逸脱することなく、ジョブ・テーブル及び監査ログを含む別のデータ構造を含み得る。図示された構造に戻れば、物理リスト５２１はノード１１５についての識別管理情報及び物理的な管理情報を記憶させるよう動作可能である。物理リスト５２１は、ノード１１５毎に少なくとも１つのレコードを含む多次元のデータ構造であり得る。例えば、物理レコードは、「ノード」、「利用可能性」、「プロセッサ利用率」、「メモリ利用率」、「温度」、「物理位置」、「アドレス」、「ブート画像」他などのフィールドを含み得る。各レコードが上記例示的フィールドを全く含まない場合があり、上記例示的フィールドの一部又は全部を含む場合もあることが分かる。一実施例では、物理レコードは、例えば仮想リスト５２２などの別のテーブルへの外部キーを備え得る。
【００４９】
仮想リスト５２２は、ノード１１５についての論理管理情報又は仮想管理情報を記憶するよう動作可能である。仮想リスト５２２は、ノード１１５毎に少なくとも１つのレコードを含む多次元データ構造であり得る。例えば、仮想レコードは、「ノード」、「利用可能性」、「ジョブ」、「仮想クラスタ」、「２次ノード」、「論理位置」、「互換性」他などのフィールドを含み得る。各レコードが、上記例示的なフィールドを何ら含まない場合があり、上記例示的なフィールドの一部又は全部を含む場合もあることが分かる。一実施例では、仮想レコードは、例えばグループ・ファイル５２３などの別のテーブルへのリンクを含み得る。
【００５０】
グループ・ファイル５２３は、アクセス・コントロール・リスト（すなわちＡＣＬ）などの、ユーザ・グループ情報及びセキュリティ情報を記憶させるよう動作可能な１つ又は複数のテーブル若しくはレコードを備える。例えば、各グループ・レコードは、ユーザが利用可能なサービス、ノード１１５、又はジョブのリストを含み得る。各論理グループは、ジョブ１５０を投入するか、システム１００の少なくとも一部を管理することができる１つ又は複数のユーザの事業グループ若しくは事業単位、部署、プロジェクト、セキュリティ・グループ、又は何れかの別の集合と関連し得る。この情報に基づいて、クラスタ管理エンジン５００は、ジョブ１５０を投入するユーザが有効なユーザであるかを判定し、判定結果が肯定の場合、ジョブを実行するうえで最適なパラメータを判定することができる。更に、グループ・テーブル５２３は、各ユーザ・グループを、仮想クラスタ２００と関連させるか、特定のグループの領域内に存在するノードなどの１つ又は複数の物理ノード１１５と関連付けることができる。これによって、各グループが、資源をめぐって競合することなく個々の処理空間を有することが可能になる。しかし、上記のように、仮想クラスタ２２０の形状及びサイズは、動的である場合があり、必要性、時間、又は何れかの別のパラメータによって変動し得る。
【００５１】
ポリシー・テーブル５２４は、１つ又は複数のポリシーを含む。ポリシー・テーブル５２４及びポリシー５２４を適宜、同義に用い得ることが分かる。ポリシー５２４は一般に、ジョブ１５０及び／又は仮想クラスタ２２０についての処理情報及び管理情報を記憶している。例えば、ポリシー５２４は、問題サイズ、問題実行時間、時間スロット、強制排除、ノード１１５又は仮想クラスタ２２０のユーザ割り当て率、及び同様なものを含む何れかの数のパラメータ又は変数を含み得る。
【００５２】
ジョブ・キュー５２５は、実行を待つ１つ又は複数の、ジョブ１５０のストリームを表す。一般に、キュー５２５は、（ゼロを含む）何れかの数のジョブ１５０又は、それに対する参照を記憶させる、バブル・アレイ、データベース・テーブルや、ポインタ・アレイなどの何れかの適切なデータ構造を備える。グリッド１１０又は複数のキュー５２５と関連する１つのキュー５２５が存在し、各キュー５２５が、グリッド１１０内の一意の仮想クラスタ２２０の１つと関連付けられる場合がある。
【００５３】
動作の一局面では、クラスタ管理エンジン５００は、計算を行い、情報を交換することによって問題を協調して解決するＮ個のタスクから成るジョブ１５０を受信する。クラスタ管理エンジン５００は、Ｎ個のノード１１５を割り当て、Ｎ個のタスクそれぞれを１つの特定のノード５１５に何れかの適切な手法を用いて割り当て、それによって問題が効率的に解決されることが可能になる。例えば、クラスタ管理エンジン５００は、ユーザによって供給される、ジョブ・タスク配置ストラテジなどのジョブ・パラメータを利用し得る。とにかく、クラスタ管理エンジン５００は、サーバ１０２のアーキテクチャを駆使しようとし、同様に、ユーザにとってより高速なターンアラウンドを備え、システム１００の全体スループットを向上させると思われる。
【００５４】
一実施例では、クラスタ管理エンジン５００は更に、次の例のトポロジの何れかによって、ノード１１５を選択し、割り当てる。
【００５５】
特定された２次元（ｘ，ｙ）又は３次元（ｘ，ｙ，ｚ）。ノード１１５を割り当て、タスクを特定の次元で順序付けし、それによって、効率的な近傍間通信を確保することができる。特定されたトポロジは、物理的な通信トポロジが問題トポロジに一致し、それによって、ジョブ１５０の協調タスクが近傍タスクと頻繁に通信することが可能になることが望ましい種々のジョブ１５０を管理する。例えば、２ｘ２ｘ２次元（２，２，２）における８つのタスクの要求は立方体に割り当てられることになる。最善のフィットの目的では、２Ｄの割り当ては、効率的な近傍間通信を確保する一方で（図２Ｄに記載するように）３次元に「フォールディング」することが可能である。クラスタ管理エンジン５００は、特定された次元の形状を何れかの向きで自由に割り当てることができる場合がある。例えば、２ｘ２ｘ８のボックスは、垂直方向又は水平方向に、利用可能な物理ノード内に割り当てることができる。
【００５６】
最善のフィットの立方体。クラスタ管理エンジン５００は、Ｎ個のノード１１５を立方体の体積において割り当てる。このトポロジはジョブ１５０を効率的に処理し、それにより、何れかの２つのノード１１５間の距離を最小にすることによって、協調タスクが何れかの他のタスクとデータを交換することが可能になる。
【００５７】
最善のフィットの球体。クラスタ管理エンジン５００は、Ｎ個のノード１１５を球体の体積において割り当てる。例えば、第１タスクが球体の中心ノード１１５に配置され、残りのタスクが中央ノード１１５を取り囲むノード１１５上に配置される場合がある。残りのタスクの配置順序は通常、重要でないことが分かる。このトポロジは、第１タスクと全ての他のタスクとの間の距離を最小にすることができる。このことによって、タスク２乃至Ｎが第１タスクと通信するが、互いには通信しない大規模の問題クラスが効率的に処理される。
【００５８】
任意。クラスタ管理エンジン５００がＮ個のノード１１５を割り当てるが、ノード１１５が論理的に位置特定されるか物理的に位置特定されることに対する考慮の度合いは低くなっている。一実施例では、このトポロジはバックフィル目的でのグリッド１１０の積極的な利用を奨励し、別のジョブ１５０への影響はわずかなものである。
【００５９】
上記トポロジと、付随する説明は例証する目的に過ぎず、使用される実際のトポロジもそうしたトポロジを割り当てる手法も表さない場合があることが分かる。
【００６０】
クラスタ管理エンジン５００は、ジョブ１５０のパラメータ又はポリシー５２４のパラメータとして記憶される配置重みを利用し得る。一実施例では、配置重みは０と１との間のモディファイア（ｍｏｄｉｆｉｅｒ）値であり、この値は、要求されるタスク配置ストラテジ（又は処理配置ストラテジ）によってクラスタ管理エンジン５００がどれだけ積極的にノード１１５を配置させようとするものであるかを表す。この例では、０の値は最適なストラテジ（又は次元）が考えられる場合にのみノード１１５を配置させることを表し、１の値は、要求を処理するのに十分な、空き状態のノード１１５が存在するか、別のかたちで利用可能なノード１１５が存在する限り、直ちにノード１１５を配置させることを表す。通常、配置重みは、大規模のジョブ１５０の枯渇を妨げ、ＨＰＣシステム１００のジョブ・スループットを確保するために、資源予約などの管理ポリシー５２４をオーバライドするものでない。
【００６１】
上記図示と、付随する説明は、ノード１１５及びジョブ１５０を管理する論理的な手法を実施するエンジン５００の例示的なモジュール図を備える。しかし、この図は例証的なものに過ぎず、システム１００には、これら並びにその他のアルゴリズムを実施する論理構成要素の何れかの適切な組み合わせ及び配置を用いることが想定されている。よって、これらのソフトウェア・モジュールは、ノード１１５及びジョブ１５０を効果的に管理する構成要素の何れかの適切な組み合わせ及び配置を含み得る。更に、種々の図示モジュールの処理は、適宜、組み合わせ、かつ／又は分離することができる。
【００６２】
図６は、本願の開示の一実施例による、ジョブ投入を動的に処理する方法６００の例を示す流れ図である。概括的に、図６は、バッチ・ジョブ投入を受信し、ジョブ・パラメータ及び関連ポリシー５２４に基づいてノード１１５をジョブ空間２３０に動的に割り当て、割り当て空間を用いてジョブ１５０を実行する方法６００を表す。以下の説明は、方法６００を行ううえでのクラスタ管理モジュール１３０の処理に焦点を当てる。しかし、システム１００には、機能が適切な状態のままである限り、記載機能の一部又は全てを実施する論理構成要素の何れかの適切な組み合わせ及び配置を用いることを想定している。
【００６３】
方法６００は、工程６０５から始まり、ＨＰＣサーバ１０２はジョブ投入１５０をユーザから受信する。上記のように、一実施例では、ユーザはジョブ１５０を、クライアント１２０を用いて投入し得る。別の実施例では、ユーザは、ＨＰＣサーバ１０２を用いてジョブ１５０を直接投入し得る。次に、工程６１０で、クラスタ管理エンジン１３０は、ユーザに基づいてグループ５２３を選択する。ユーザが検証されると、クラスタ管理エンジン１３０は、工程６１５で、ユーザをグループ・アクセス制御リスト（ＡＣＬ）と比較する。しかし、クラスタ管理エンジン１３０が何れかの適切なセキュリティ手法を用いてユーザを検証することができることが分かる。判定グループ５２３に基づいて、クラスタ管理エンジン１３０は、ユーザが要求サービスに対するアクセスを有するかを判定する。要求されるサービス及びホスト名に基づいて、クラスタ管理エンジン１３０は、工程６２０で、仮想クラスタ２２０を選択する。通常、仮想クラスタ２２０を、ジョブ１５０の投入前に識別し、割り当て得る。しかし、仮想クラスタ２２０が確立されていない場合、クラスタ管理エンジン１３０は上記手法のうちの何れかを用いて仮想クラスタ２２０を自動的に割り当て得る。次に、工程６２５で、クラスタ管理エンジン１３０は、ジョブ１５０の投入に基づいてポリシー５２４を取り出す。一実施例では、クラスタ管理エンジン１３０は、ユーザ、ジョブ１５０、又は何れかの別の適切な基準に関連した適切なポリシー５２４を判定し得る。クラスタ管理エンジン１３０は更に、工程６３０で、ジョブ１５０の寸法を判定するか別の方法で計算する。適切な寸法が長さ、幅、高さ、又は何れかの別の適切なパラメータ若しくは特性を含み得ることが分かる。上記のように、これらの寸法は仮想クラスタ２２０内の適切なジョブ空間２３０（又はノード１１５の部分集合）を判定するのに用いられる。初期パラメータが確立された後、クラスタ管理１３０は、工程６３５乃至６６５で、ＨＰＣサーバ１０２上でジョブ１５０を実行しようとする。
【００６４】
判定工程６３５では、クラスタ管理エンジン１３０は、既に確立されているパラメータを用いて、所望のジョブ空間２３０を割り当てるのに十分利用可能なノードが存在しているかを判定する。ノード１１５が十分存在していない場合には、工程６４０で、クラスタ管理エンジン１３０が、仮想クラスタ２２０におけるノード１１５の最も早く利用可能な部分集合２３０を判定する。次いで、クラスタ管理エンジン１３０が、工程６４５で、部分集合２３０が利用可能であるまでジョブ・キュー１２５にジョブ１５０を追加する。処理は次いで判定工程６３５に戻る。利用可能なノード１１５が十分になると、クラスタ管理エンジン１３０は、工程６５０で、利用可能なノード１１５から最適な部分集合２３０を動的に判定する。最適な部分集合２３０は、最速処理時間、最高信頼度のノード１１５、物理位置若しくは仮想位置、又は最初に利用可能なノード１１５を含む何れかの適切な基準を用いて判定し得ることが分かる。工程６５５では、クラスタ管理エンジン１３０は判定部分集合２３０を選択仮想クラスタ２２０から選択する。次に、工程６６０で、クラスタ管理エンジン１３０は、選択部分集合２３０を用いてジョブ１５０に選択ノード１１５を割り当てる。一実施例によれば、クラスタ管理エンジン１３０は、仮想ノード・リスト５２２におけるノード１１５の状態を「非割り当て」から「割り当て」に変更し得る。部分集合２３０が適切に割り当てられると、クラスタ管理エンジン１３０は工程６６５で、ジョブ・パラメータ、取り出したポリシー５２４、及び何れかの他の適切なパラメータに基づいて割り当て空間を用いてジョブ１５０を実行する。何れかの適切な時点では、クラスタ管理エンジン１３０は、ジョブ結果１６０をユーザに通信するか、又は別の方法で提示することができる。例えば、結果１６０をフォーマット化し、ＧＵＩ１２６を介してユーザに提示することができる。
【００６５】
図７は、本願の開示の一実施例による、グリッド１１０における仮想クラスタ２２０の動的バックフィルを行う方法７００の例を示す流れ図である。概略を述べれば、方法７００は、仮想クラスタ２２０において利用可能な空間を判定する工程、その空間と互換の最適ジョブ１５０を判定する工程、及びその利用可能空間において判定ジョブ１５０を実行する工程を表す。以下の説明は、この方法を行ううえでのクラスタ管理モジュール１３０の処理に焦点を当てる。しかし、上記流れ図と同様に、システム１００には、上記機能の一部又は全部を実施する論理構成要素の何れかの適切な組み合わせ及び配置を用いることが想定されている。
【００６６】
方法７００は工程７０５から開始し、クラスタ管理エンジン１３０は、ジョブ・キュー５２５をソートする。図示する実施例では、クラスタ管理エンジン１３０は、キュー５２５に記憶されているジョブ１５０の優先度に基づいてキュー５２５をソートする。しかし、クラスタ管理エンジン１３０が、適切又は最適なジョブ１５０が実行されることになるように何れかの適切な特性を用いてキュー５２５をソートすることができることが分かる。次に、工程７１０で、クラスタ管理エンジン１３０は、仮想クラスタ２２０のうちの１つにおける利用可能ノード１１５の数を判定する。当然、クラスタ管理エンジン１３０がグリッド１１０又は、仮想クラスタ２２０のうちの何れか１つ又は複数のものにおける、利用可能なノード１１５の数を判定する場合もある。工程７１５では、クラスタ管理エンジン１３０は第１ジョブ１５０を、ソートされるジョブ・キュー５２５から選択する。次に、７２０で、クラスタ管理エンジン１３０は、選択ジョブ１５０の最適な形状（又は他の寸法）を動的に判定する。選択ジョブ１５０の最適な形状又は寸法が判定されると、クラスタ管理エンジン１３０が、工程７２５乃至７４５で、適切な仮想クラスタ２２０においてジョブ１５０のバックフィルを行うことが可能かを判定する。
【００６７】
判定工程７２５では、選択ジョブ１５０に利用可能なノード１１５が十分に存在するかをクラスタ管理エンジン１３０が判定する。利用可能なノード１１５が十分に存在する場合、工程７３０で、クラスタ管理エンジン１３０が何れかの適切な手法を用いて、選択ジョブ１５０にノード１１５を動的に割り当てる。例えば、クラスタ管理エンジン１３０は、図６に表す手法を用い得る。次に、工程７３５で、クラスタ管理エンジン１３０は、仮想クラスタ２２０における利用可能なノードの数を再計算する。工程７４０で、クラスタ管理エンジン１３０は割り当てノード１１５のジョブ１５０を実行する。ジョブ１５０が実行されることによって（、又は、選択ジョブ１５０に十分なノード１１５が存在しなかった場合）、クラスタ管理エンジン１３０は工程７４５で、ソートされるジョブ・キュー５２５における次のジョブ１５０を選択し、処理は工程７２０に戻る。ループとして図示したが、クラスタ管理エンジン１３０が、何れかの適切な時点で方法７００に示す手法を開始し、実行し、終結する場合があることが分かる。
【００６８】
図８は、本願の開示の一実施例による、グリッド１１０におけるノード１１５の障害を動的に管理する方法８００の例を示す流れ図である。概略を述べれば、方法８００は、ノード１１５に障害が起きたということを判定する工程、ジョブの回復及び管理を自動的に行う工程、及び障害ノード１１５を２次ノード１１５と置き換える工程を表す。以下の説明は、この方法を行ううえでのクラスタ管理モジュール１３０の処理に焦点を当てる。しかし、上記流れ図と同様に、システム１００には、上記機能の一部又は全部を実施する論理構成要素の何れかの適切な組み合わせ及び配置を用いることが想定されている。
【００６９】
方法８００は工程８０５から始まり、クラスタ管理エンジン１３０は、ノード１１５に障害が起こったことを判定する。上記のように、クラスタ管理エンジン１３０は、何れかの適切な手法を用いて、ノード１１５に障害が起こったということを判定し得る。例えば、クラスタ管理エンジン１３０は、種々の時点でノード１１５（又はエージェント１３２）を取り出し得るものであり、ノード１１５から応答がないことに基づいてノード１１５に障害が起こったということを判定し得る。別の例では、ノード１１５上に存在しているエージェント１３２は「ハートビート」を通信し得るものであり、この「ハートビート」がないことはノード１１５の障害を示し得る。次に、工程８１０で、クラスタ管理エンジン１３０は障害ノード１１５を仮想クラスタ２２０から取り除く。一実施例では、クラスタ管理エンジン１３０は仮想リスト５２２におけるノード１１５の状態を「割り当て」から「障害」に変更し得る。クラスタ管理エンジン１３０は次いで、判定工程８１５で、ジョブ１５０が障害ノード１１５に関連しているかを判定する。ノード１１５と関連しているジョブ１５０が何らない場合には、処理は終了する。上記のように、処理が終了する前に、クラスタ管理エンジン１３０は、管理者にエラー・メッセージを通信してもよく、置き換えノード１１５を自動的に判定してもよく、何れかの別の適切な処理を行ってもよい。障害ノード１１５に関連したジョブ１５０が存在する場合、クラスタ管理エンジン１３０は、工程８２０で、ジョブ１５０と関連した別のノード１１５を判定する。次に、工程８２５では、クラスタ管理エンジン１３０は全ての適切なノード１１５のジョブ１５０を強制終了する。例えば、クラスタ管理エンジン１３０は、ジョブ１５０を終了するよう、強制終了ジョブ・コマンドを実行するか、又は何れかの別の適切な手法を用いる場合がある。次に、工程８３０では、クラスタ管理エンジン１３０は、仮想リスト５２２を用いてノード１１５の割り当て解除を行う。例えば、クラスタ管理エンジン１３０は、仮想リスト５２２におけるノード１１５の状態を「割り当て」から「利用可能」に変更し得る。ジョブが終結され、全ての適切なノード１１５の割り当て解除が行われると、工程８３５乃至８５０で、クラスタ管理エンジン１３０は利用可能ノード１１５を用いてジョブ１５０を再実行しようとする。
【００７０】
工程８３５では、クラスタ管理エンジン１３０は、ポリシー５２４と、工程８２５での強制終了ジョブ１５０のパラメータとを取り出す。クラスタ管理エンジン１３０は次いで、工程８４０で、取り出したポリシー５２４及びジョブ・パラメータに基づいて、仮想クラスタ２２０におけるノード１１５の最適部分集合２３０を判定する。ノード１１５の部分集合２３０が判定されると、工程８４５で、クラスタ管理エンジン１３０はノード１１５の部分集合２３０を動的に割り当てる。例えば、クラスタ管理エンジン１３０は、仮想リスト５２２におけるノード１１５のステータスを「非割り当て」から「割り当て」に変更し得る。このノード１１５の部分集合が、ジョブ１５０が実行していた元のノード部分集合とは異なり得るということが分かる。例えば、クラスタ管理エンジン１３０は、この実行をプロンプトしたノード障害が理由で別のノード部分集合が最適であるということを判定し得る。別の例では、２次ノード１１５が障害ノード１１５を置き換えるよう動作可能であり、新たな部分集合２３０が旧ジョブ空間２３０と実質的に同様であるということをクラスタ管理エンジン１３０が判定した場合がある。割り当て部分集合２３０が判定され、割り当てられると、工程８５０で、クラスタ管理エンジン１３０はジョブ１５０を実行する。
【００７１】
上記流れ図と、付随する説明は、例証的方法６００、７００及び８００を示す。要約すれば、システム１００には、これらやその他のタスクを行うのに適切な何れかの手法を用いることを想定している。よって、この流れ図における工程の多くは、表しているものと同時に行われる場合及び／又は表しているものとは異なる順序で行われる場合がある。更に、システム１００は、当該方法が適切な状態のままである限り、工程を追加して方法を用いる場合、工程を少なくして方法を用いる場合、及び／又は別の工程を備えている方法を用いる場合がある。
【００７２】
本願の開示は、特定の実施例、及び概括的に関連している方法によって表したが、これらの実施例並びに方法の改変及び置換は当業者に明らかである。よって、例示的実施例の上記説明は本願の開示を規定するものでも制約するものでもない。他の変更、置換及び改変も、本願の開示の趣旨及び範囲から逸脱することなく可能である。  
【図面の簡単な説明】
【００７３】
【図１】本明細書の一実施例による、高性能計算システム例を示す図である。
【図２Ａ】図１のシステムにおけるグリッドとその利用との種々の実施例を示す図である。
【図２Ｂ】図１のシステムにおけるグリッドとその利用との種々の実施例を示す図である。
【図２Ｃ】図１のシステムにおけるグリッドとその利用との種々の実施例を示す図である。
【図２Ｄ】図１のシステムにおけるグリッドとその利用との種々の実施例を示す図である。
【図３Ａ】図１のシステムにおける個々のノードの種々の実施例を示す図である。
【図３Ｂ】図１のシステムにおける個々のノードの種々の実施例を示す図である。
【図３Ｃ】図１のシステムにおける個々のノードの種々の実施例を示す図である。
【図４Ａ】図１のシステムによる、グラフィカル・ユーザ・インタフェースの種々の実施例を示す図である。
【図４Ｂ】図１のシステムによる、グラフィカル・ユーザ・インタフェースの種々の実施例を示す図である。
【図５】図１におけるシステムによる、クラスタ管理ソフトウェアの一実施例を示す図である。
【図６】図１の高性能計算システムによる、バッチ・ジョブを投入する方法を示す流れ図である。
【図７】図１の高性能計算システムによる、グリッドの動的なバックフィルを行う方法を示す流れ図である。
【図８】図１の高性能計算システムによる、ノード障害を動的に管理する方法を示す流れ図である。
【図１】
2007533034.tif 000003
【図２Ａ】
2007533034.tif 000004
【図２Ｂ】
2007533034.tif 000005
【図２Ｃ】
2007533034.tif 000006
【図２Ｄ】
2007533034.tif 000007
【図３Ａ】
2007533034.tif 000008
【図３Ｂ】
2007533034.tif 000009
【図３Ｃ】
2007533034.tif 000010
【図４Ａ】
2007533034.tif 000011
【図４Ｂ】
2007533034.tif 000012
【図５】
2007533034.tif 000013
【図６】
2007533034.tif 000014
【図７】
2007533034.tif 000015
【図８】
2007533034.tif 000016
【国際調査報告】
2007533034.tif 000017
2007533034.tif 000018
2007533034.tif 000019