(57)【要約】【課題】グリッド・コンピューティング・システムを、異なる計算リソースおよび異なるスケジューリング・ポリシを必要とするさまざまなジョブにあまねく効果的に適応できるようにする、プラグ可能スケジューリング・ポリシのフレームワークを提供すること。【解決手段】本発明は、ジョブをスケジューリングする方法およびスケジューリング・システムであって、ジョブが、少なくとも１つのジョブ要件を有し、少なくとも第１および第２のスケジューリング・ポリシのスケジューリング・ポリシを示し、方法が、  ・少なくとも１つのジョブ要件に一致するデータ処理リソースを識別するために照会を実行し、選択されたスケジューリング・ポリシの入力データを入手するステップと、  ・入力データに基づいて、選択されたスケジューリング・ポリシによって一致するリソースの１つを選択するステップと  を含む、方法およびスケジューリング・システムに関する。【選択図】図３
2005108214.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ（１００；２００；３００）をスケジューリングする方法であって、前記ジョブが、少なくとも１つのジョブ要件を有し、少なくとも第１および第２のスケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）のスケジューリング・ポリシ（１０２；３０２；４０８）を示し、前記方法が、
前記少なくとも１つのジョブ要件に一致するデータ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）を識別するために照会を実行し、前記選択されたスケジューリング・ポリシ（１０２；３０２；４０８）の入力データを入手するステップと、
前記入力データに基づいて、前記選択されたスケジューリング・ポリシによって、前記一致するリソースの１つを選択するステップと
を含む方法。
【請求項２】
前記ジョブ要件が、記憶容量（４０４）、計算能力、オペレーティング・システム（４０２）、またはスケジューリング・ポリシ（４０８）、あるいはこれらの組合せを含む、請求項１に記載の方法。
【請求項３】
前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）が、記憶容量、計算能力、オペレーティング・システム、またはリソース可用性、あるいはこれらの組合せの仕様を含む、請求項１または２のいずれかに記載の方法。
【請求項４】
前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）の前記仕様が、少なくとも１つのデータベース（１１６）によって供給される、請求項３に記載の方法。
【請求項５】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）が、プラグ可能プログラム・モジュールである、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
複数のデータベース（３１６、３１８、３２０；４２４、４２６）が、前記データ処理リソースの仕様を供給し、前記データベースが、プラグ可能である、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）または前記データベース（３１６、３１８、３２０；４２４、４２６）あるいはこの両方が、動的にプラグ可能である、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
追加の照会が、前記選択されたスケジューリング・ポリシによって要求される追加入力データを入手するために実行される、請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
ジョブ（１００、３００、４００）をスケジューリングするスケジューラであって、前記ジョブが、少なくとも１つのジョブ要件を有し、少なくとも第１および第２のスケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）のスケジューリング・ポリシ（１０２；３０２；４０８）を示し、前記スケジューラが、
前記少なくとも１つのジョブ要件に一致するデータ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）を識別するために照会を実行し、選択されたスケジューリング・ポリシ（１０２；３０２；４０８）の入力データを入手する手段と、
前記入力データに基づいて、前記選択されたスケジューリング・ポリシ（１０２；３０２；４０８）によって、前記一致するリソースの１つを選択する手段と
を含むスケジューラ。
【請求項１０】
前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）の前記仕様が、少なくとも１つのデータベース（１１６）によって供給される、請求項９に記載のスケジューラ。
【請求項１１】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）が、プラグ可能プログラム・モジュールであることをさらに含む、請求項９または１０のいずれに記載のスケジューラ。
【請求項１２】
複数のデータベース（３１６、３１８、３２０；４２４、４２６）が、前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）の仕様を供給し、前記データベース（３１６、３１８、３２０；４２４、４２６）が、前記スケジューラにプラグ可能である、請求項１０または１１のいずれかに記載のスケジューラ。
【請求項１３】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）または前記データベース（３１６、３１８、３２０；４２４、４２６）あるいはこの両方が、動的にプラグ可能である、請求項９ないし１２のいずれか一項に記載のスケジューラ。
【請求項１４】
ジョブ（１００、３００、４００）をスケジューリングする手段を有する複数のデータ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）を含むネットワーク・コンピュータ・システムであって、前記ジョブが、少なくとも１つのジョブ要件を有し、少なくとも第１および第２のスケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）のスケジューリング・ポリシ（１０２；３０２；４０８）を示し、前記ネットワーク・コンピュータ・システムが、
前記少なくとも１つのジョブ要件に一致するデータ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）を識別するために照会を実行し、選択されたスケジューリング・ポリシ（１０２；３０２；４０８）の入力データを入手する手段と、
前記入力データに基づいて、選択されたスケジューリング・ポリシ（１０２；３０２；４０８）によって、前記一致するリソースの１つを選択する手段と
を含む、ネットワーク・コンピュータ・システム。
【請求項１５】
前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）の前記仕様が、複数のプラグ可能データベースによって供給される、請求項１４に記載のネットワーク・コンピュータ・システム。
【請求項１６】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）が、プラグ可能プログラム・モジュールであることをさらに含む、請求項１４または１５のいずれに記載のネットワーク・コンピュータ・システム。
【請求項１７】
前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）および前記データベース（３１６、３１８、３２０；４２４、４２６）が、動的にプラグ可能であることをさらに含む、請求項１５または１６のいずれかに記載のネットワーク・コンピュータ・システム。
【請求項１８】
ジョブをスケジューリングするコンピュータ・プログラムであって、前記ジョブが、少なくとも１つのジョブ要件を有し、少なくとも第１および第２のスケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）のスケジューリング・ポリシ（１０２；３０２；４０８）を示し、前記コンピュータ・プログラムが、
前記少なくとも１つのジョブ要件に一致するデータ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）を識別するために照会を実行し、選択されたスケジューリング・ポリシ（１０２；３０２；４０８）の入力データを入手するコンピュータ実行ステップと、
前記入力データに基づいて、選択されたスケジューリング・ポリシ（１０２、３０２、４０８）によって、前記一致するリソースの１つを選択するコンピュータ実行ステップと
を含むコンピュータ・プログラム。
【請求項１９】
前記データ処理リソース（１１０、１１２、１１４；３１０、３１２、３１４；４１６）の前記仕様が、複数のプラグ可能データベース（３１６、３１８、３２０；４２４、４２６）によって供給される、請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
プラグ可能プログラム・モジュールである前記スケジューリング・ポリシ（１０２、１０４、１０６；３０２、３０４、３０６；４０８、４１０、４１２）を含み、前記スケジューリング・ポリシおよび前記データベース（３１６、３１８、３２０；４２４、４２６）が、動的にプラグ可能である、請求項１８または１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算容量（computational capacity）が、複数のデータ処理装置のリソース（資源）および容量を組み合わせるグリッドによってオンデマンドで提供される、分散コンピューティングの分野に関する。
【背景技術】
【０００２】
分散コンピューティングは、いわゆるグリッドを形成し、したがって、スーパー・コンピュータに匹敵する、膨大な計算能力および巨大な記憶容量を提供する多数のコンピュータの組合せに基づく。長い処理時間を必要とする計算集中型（computationally intensive）のジョブを、効果的にセグメント化し、グリッドに属する多数のコンピュータに分配することができる。単一のコンピュータが、計算集中型のジョブの一部を同時に処理するので、ジョブの総合的な処理時間は、ある倍率で減る。一般に、処理時間は、グリッド内のコンピュータの数が増えるに連れて減る。
【０００３】
グリッド内の計算リソースを組み合わせる際に、たとえば素粒子物理学、ディジタル天空観測、または地球外生命の探索などのフレームワークでの、非常に時間がかかり、非常にリソースを必要とする計算ジョブを、比較的短い時間でコスト効率のよい形で実行することができる。
【０００４】
計算グリッドを実施するアイデアの１つが、動作時間のほとんどの間アイドルである数百万台のパーソナル・コンピュータを接続するインターネットに基づく。したがって、大量の計算リソースが、浪費されている。分散コンピューティングによって、アイドルのコンピュータを、全世界で、たとえば科学研究のフレームワークで、時間がかかり計算集中型のジョブに適用することができる。この形で、分散コンピューティングによって、グローバル・ネットワークのアイドル計算リソースが活用され、グローバル・スーパー・コンピュータがもたらされる。
【０００５】
さらなるステップで、分散コンピューティングの原理によって、仮想化されたコンピューティング（virtualized computing）という展望に動機が与えられる。それ自体のコンピューティング・システムの構成および性能と無関係に、ユーザは、グリッドを形成する複数のサプライヤ（supplier）から組み立てられる計算リソースに頼ることができる。サプライヤは、通常は、グリッドに参加する他のユーザのコンピュータ・システムである。単一のユーザがグリッドに貢献するのと同一の形で、ユーザは、グリッドの計算能力を活用する。グリッドの巨大な組み立てられた計算能力を、単一のユーザが、そのユーザの需要に応じて動的に共用（シェア）することができる。
【０００６】
グリッドのさまざまなコンピュータへの計算集中型ジョブの分散は、通常は、スケジューラによって処理される。スケジューラは、グリッドの主要な機能である。というのは、スケジューラが、計算ジョブの処理にアイドル・システム・リソースを割当てるまたは割り振る（アロケート）からである。さらに、スケジューラは、いつ、あるジョブが別個の処理リソースによって処理されるかを決定する。一方で、スケジューリングは、各ジョブの実行時間をできる限り短くする形で実行されなければならず、その一方で、計算作業は、グリッドの単一処理リソースの間で均等に分配（ディストリビュート）される。
【０００７】
スケジューリングの非常に重要な作業は、通常は３ステップに分割される。第１ステップで、スケジューラは、あるジョブを処理できるグリッドの潜在的なリソースを見つけなければならない。第２ステップで、スケジューラは、グリッドの計算容量が最も効果的に使用される形で、ジョブを処理する１つまたは複数の処理リソースを決定する。第３ステップで、ジョブが、そのジョブを処理するために、決定された処理リソースにサブミットされる。
【０００８】
グリッドの総合性能は、スケジューリング・ポリシに基づくジョブのスケジューリングに強く依存する。異なるタイプの計算ジョブに指定されたさまざまなスケジューリング・ポリシが存在する。
【０００９】
たとえば、IBM Corporation社によって開発されたLoadLeveler（LOADLEVELERは、IBMCorporationの登録商標）デフォルト・スケジューリング・ポリシでは、必ずジョブ・キューの最初のジョブが処理される。ジョブのリソース要件がグリッドによって満たされると、すぐに、そのジョブが、適当な計算リソースにサブミットされる。たとえば、ジョブが、複数のリソースを同時に必要とする、すなわち、ジョブが、並列実行を必要とする場合に、スケジューラは、ある数の計算リソースを割り振らなければならない。ジョブの実行は、スケジューラが必要な数のリソースを割り振るや否や、開始される。
【００１０】
このスケジューリング・ポリシは、並列計算ジョブがグリッドによって処理されなければならなくなるや否や、グリッドの負荷が減ることである。さらに、ジョブが、別個の時間の期間にわたってのみリソースを割り振られ得るという問題が生じる。この時間の期間が、必要な数のリソースを割り振るのに必要な時間より長い時に、潜在的な問題が生じる。
【００１１】
ＢＡＣＫＦＩＬＬスケジューラは、異なるスケジューリング・ポリシに基づく。このスケジューリング・ポリシでは、ジョブを実行するためにあるリソースが必要とする時間を判定する。このスケジューリング・ポリシは、単一ジョブの実行時間の知識を有するので、将来に適当なジョブを実行するある数の計算リソースを予約することができる。したがって、実行タイムテーブル内のギャップを、そのギャップにおさまる実行時間を必要とするジョブの実行によって効果的に埋めることができる。
【００１２】
これらの先行するジョブが、実行タイムテーブル内のある時間期間を予約するジョブとオーバーラップしないようにするために、注意する必要がある。
【００１３】
ＧＡＮＧスケジューリング・ポリシは、計算リソースのある組で複数のジョブを同時に実行する可能性を提供する。実行時間が、単一のタイム・スロットに分割される。タイム・スロットが経過した後に、単一のリソースが、割り当てられたジョブを交換する。この形で、動的な挙動（behavior）が、グリッド内で実施される。ユーザは、ラン・タイム中にあるジョブを優先するか取り消す可能性を有する。
【００１４】
分散コンピューティングまたはグリッド・コンピューティングの原理は、異なるプロパティおよび実行リソースに関する異なる要件を有する複数の異なるジョブに適用される。たとえば、地球外知能の探索（The Search for Extraterrestrial Intelligence）に関するSETI@HOMEプロジェクト（ＵＲＬは、http://setiathome.ssl.berkeley.edu/）は、分散スーパー・コンピューティングを必要とする。ジョブが、高い計算容量だけを必要とする複数のサブジョブにセグメント化される。
【００１５】
たとえば、暗号（cryptographical）問題も、異なるタイプのグリッドまたは異なるタイプのスケジューリング・ポリシを必要とする、高データ転送レートを必要とする。オンデマンドで計算リソースを供給するグリッドに、異なるシステム・アーキテクチャならびに異なるスケジューリング・ポリシを含めることができる。
【００１６】
現在、分散コンピューティング・システムまたはグリッド・コンピューティング・システムは、あるタイプのジョブを実行するように設計されている。したがって、これらは、別個のシステム・アーキテクチャならびに単一の別個のスケジューリング・ポリシに基づく。これらは、あるタイプのジョブだけを処理するように最適化される。異なる要件を有する異なるジョブにあまねく適用される場合に、これらのグリッドは、どちらかといえば非効率的になる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、グリッド・コンピューティング・システムを、異なる計算リソースおよび異なるスケジューリング・ポリシを必要とするさまざまなジョブにあまねく効果的に適応できるようにする、プラグ可能（pluggable）スケジューリング・ポリシのフレームワークを提供することである。
【課題を解決するための手段】
【００１８】
本発明は、分散コンピューティング・システムのプラグ可能スケジューリング・ポリシのフレームワークを提供する。膨大なさまざまな異なるジョブの要件に応じて、異なるプラグ可能スケジューリング・ポリシを、システム内に実施して、所与のシステム・リソースの最も効率的な使用を提供することができる。
【００１９】
本発明の好ましい実施形態によれば、処理リソースのグリッド内のある処理リソースへのジョブの割当が、スケジューラ・フレームワークによって処理される。スケジューリング・フレームワークは、さまざまな異なるスケジューリング・ポリシにアクセスできる。ジョブ要件および選択されたスケジューリング・ポリシに従って、スケジューリング・ポリシによって、実行のためにジョブが送られる単一のまたは複数の処理リソースが決定される。
【００２０】
単一のデータ処理リソースは、そのシステム状況および構成に関する必要な情報をデータベースに送る。スケジューラは、まず、ジョブ要件に一致するデータ処理リソースを識別するために、グリッドのデータ処理リソースのデータベース照会（query）を実行する。
【００２１】
次のステップで、スケジューラは、別個のジョブ要件に一致するデータ処理リソースを含むリストを作成する。ジョブ要件には、一致するデータ処理リソースの作成されるリストに適用されなければならない、あるスケジューリング・ポリシに関する情報も含まれる。
【００２２】
選択されたスケジューリング・ポリシを一致するデータ処理リソースのリストに適用することによって、次のステップでジョブがサブミットされる単一のまたは複数のデータ処理リソースが決定される。この形で、別個のジョブの効果的な処理ならびにグリッド内の処理作業の効果的な分配が保証される。ジョブ要件によって別個のスケジューリング・ポリシが指定されない場合には、スケジューリング・フレームワークは、デフォルト・スケジューリング・ポリシを利用する。
【００２３】
本発明の好ましい実施形態によれば、ジョブ要件によって、グリッドのデータ処理リソースが、ジョブを処理できるようになるために提供しなければならないプロパティが指定される。ジョブ要件では、通常は、別個のデータ処理リソースが提供しなければならない記憶容量または計算能力が記述される。ジョブは、さらに、別個のオペレーティング・システムを必要とする場合があり、ジョブは、さらに、別個のソフトウェア製品、ソフトウェアまたはプログラムについて指定される場合がある。
【００２４】
ジョブ要件では、さらに、ジョブが、計算能力または高データ転送レートを要求することが好ましいかどうか、または、ジョブが、ある計算能力を一時的にまたは常時必要とするかどうかが記述される。異なるタイプのジョブのこの分類を考慮に入れるために、ジョブ要件によって、さらに、ジョブの実行データ処理リソースを判定するためにスケジューラによって適用されなければならない別個のスケジューリング・ポリシが示される。
【００２５】
本発明のもう１つの好ましい実施形態によれば、グリッドの単一のデータ処理リソースが、適当なシステム仕様をデータベースに供給する。データ処理リソースのシステム仕様およびジョブ要件は、スケジューラによって直接に比較されなければならないので、システム仕様に、計算容量、記憶容量、オペレーティング・システム、ソフトウェア構成に関する情報、または別個のリソースの可用性に関するスケジューラの追加情報あるいはこの両方が含まれる。
【００２６】
本発明のもう１つの好ましい実施形態によれば、グリッドの各データ処理リソースの単一のシステム仕様が、中央データベースに収集される。中央データベースは、必要な情報をスケジューラに提供する。この形で、中央データベースに、グリッド全体のシステム仕様が保管される。
【００２７】
本発明のもう１つの好ましい実施形態によれば、スケジューリング・ポリシが、プラグ可能プログラム・モジュールによって表される。これによって、異なるスケジューリング・ポリシを、スケジューリング・フレームワークに追加し、除去することができるようになる。この形で、スケジューラ・フレームワークおよびスケジューリング・ポリシを、異なる種類のスケジューリング要件にあまねく適用することができる。
【００２８】
本発明のもう１つの好ましい実施形態によれば、グリッドの単一のデータ処理リソースのシステム仕様の情報が、必ずしも１つの中央データベースに保管されず、それぞれがスケジューリング・フレームワークに接続されるデータベースの組に保管される。各単一のデータベースは、単一のデータ処理リソースまたは複数のデータ処理リソースのグループの完全なシステム仕様を提供する。
【００２９】
さらに、単一のデータベースによって、データ処理リソースのグループの別個のシステム仕様だけを提供することができる。この形で、単一のデータベースに、グリッドのすべてのデータ処理リソースの１つの仕様だけを含めることができる。たとえば、ジョブが、別個のオペレーティング・システムだけを必要とする時に、スケジューラは、グリッドの単一のデータ処理リソースのオペレーティング・システムに関する情報だけを必要とする。この必要な情報を、たとえば、単一のデータベースによって提供することができる。この形で、スケジューラは、データベースから必要な情報だけを受け取り、不要な情報を受け取らない。
【００３０】
本発明のもう１つの好ましい実施形態によれば、単一のデータベースが、スケジューリング・フレームワークにプラグ可能である。特定のジョブ要件およびデータベースの情報内容に応じて、追加データベースをスケジューリング・フレームワークに付加できるのと同一の形で、不要な情報を含むデータベースをシステムから除去することができる。
【００３１】
本発明のもう１つの好ましい実施形態によれば、異なるスケジューリング・ポリシならびに異なるデータベースを、動的に、システムから除去するか、システムに付加することができる。動的な除去（removal）または動的な付加（attachment）を、ラン・タイム中に実行することができる。
【００３２】
本発明のもう１つの好ましい実施形態によれば、ジョブが、グリッドのデータ処理リソースに関する追加情報を必要とする別個のスケジューリング・ポリシを必要とする時に、スケジューラは、データ処理リソースに対する追加照会を実行する。通常、異なるスケジューリング・ポリシは、データ処理リソースのシステム仕様に関する異なる情報を必要とする。データ処理リソースに関する欠けているシステム仕様が、追加照会を介して入手される。
【００３３】
以下では、図面を参照することによって、本発明の好ましい実施形態を詳細に説明する。
【発明を実施するための最良の形態】
【００３４】
図１に、スケジューリング・フレームワーク１０８に渡されるジョブ１００を概略的に示す。スケジューリング・フレームワーク１０８は、スケジューリング・ポリシＡ１０２、スケジューリング・ポリシＢ１０４、およびスケジューリング・ポリシＣ１０６にアクセスできる。データ処理リソース１１０、１１２、および１１４は、中央データベース１１６にリンクされ、中央データベース１１６は、スケジューリング・フレームワーク１０８に接続される。
【００３５】
たとえば、複数のジョブ要件を有するジョブ１００が、スケジューリング・フレームワーク１０８に入る時に、スケジューラは、そのシステム仕様がジョブ要件と一致する少なくとも１つのデータ処理リソース１１０、１１２、および１１４を識別するために、照会を実行する。データ処理リソース１１０、１１２、および１１４は、定期的な時間間隔または要求時のいずれかに（プッシュまたはプル）、そのめいめいのシステム仕様を中央データベース１１６に送る。所望のシステム仕様が、中央データベース１１６に保管され、照会に基づいてスケジューリング・フレームワーク１０８にサブミットされる。
【００３６】
スケジューリング・フレームワーク１０８は、データベース１１６によって供給される情報を、ジョブ要件と比較する。さらに、スケジューリング・フレームワーク１０８は、そのシステム仕様がジョブ１００の要件と一致するデータ処理リソースのリストを作成する。たとえば、ジョブ１００によって、スケジューリング・ポリシＡ１０２も指定される時に、スケジューリング・フレームワーク１０８は、そのスケジューリング・ポリシＡ１０２が必要とする情報を収集し、その情報および一致するデータ処理リソースのリストを、スケジューリング・ポリシＡ１０２にサブミットする。
【００３７】
スケジューリング・ポリシＡ１０２が、一致するデータ処理リソースのリストに適用される時に、スケジューリング・ポリシ１０２によって、ジョブ１００がスケジューリング・ポリシ１０２によってサブミットされなければならない単一のまたは複数のデータ処理リソース１１０、１１２、および１１４が決定される。その後、ジョブ１００は、決定されたデータ処理リソースによって処理されまたは実行される。
【００３８】
単一のスケジューリング・ポリシ１０２、１０４、および１０６を、スケジューリング・フレームワーク１０８に動的に付加することができ、スケジューリング・フレームワーク１０８から動的に除去することができる。さらに、図１に示されていない追加のスケジューリング・ポリシが、ジョブ１００のジョブ要件によって指定される時に、追加のスケジューリング・ポリシを、スケジューリング・フレームワーク１０８に動的に付加することができる。
【００３９】
図２は、本発明のスケジューリング方法を表す流れ図の例である。ステップ２００で、スケジューラが、オペレーティング・システム、メモリ、ソフトウェア仕様、および別個のスケジューリング・ポリシなどのジョブ要件と共にジョブを受け取る。ステップ２０２で、スケジューラが、グリッドのすべてのデータベース・リソースへの照会を実行する。照会に応答して、スケジューリング・フレームワークが、すべてのデータ処理リソースのシステム仕様を入手する。ステップ２０４で、スケジューラが、データ処理リソースの入手された仕様を、ジョブの要件と比較する。その結果、スケジューラが、ジョブ要件と一致する処理リソースのリストを作成する。
【００４０】
ステップ２０６で、スケジューラが、ジョブによって指定されたスケジューリング・ポリシを、一致するリソースのリストに適用する。この形で、別個のデータ処理リソースが、一致するリソースのリストから選択される。最後に、ステップ２０８で、ジョブを、スケジューリング・ポリシから、選択されたデータ処理リソースへサブミットする。その後、選択されたデータ処理リソースが、ジョブを実行する。
【００４１】
図３に、本発明の好ましい実施形態のブロック図を示す。図３のブロック図は、図１の中央データベース１１６が、図３では複数のデータベース３１６、３１８、および３２０に置換されているという事実以外は、図１のブロック図に類似する。
【００４２】
複数のジョブ要件によって指定されるジョブ３００が、スケジューリング・フレームワーク３０８に渡される。スケジューリング・フレームワーク３０８は、スケジューリング・ポリシＡ３０２、スケジューリング・ポリシＢ３０４、およびスケジューリング・ポリシＣ３０６にアクセできる。スケジューリング・ポリシ３０２は、さらに、さまざまなデータ処理リソース３１０、３１２、および３１４にアクセスできる。各データ処理リソース３１０、３１２、および３１４は、そのシステム仕様をデータベース３１６、３１８、および３２０に送る。図示の実施形態では、データ処理リソース３１０が、そのシステム仕様をデータベース３１６に送り、データ処理リソース３１２が、そのシステム仕様をデータベース３１８に送り、データ処理リソース３１４が、そのシステム仕様をデータベース３２０に送る。
【００４３】
データベース３１６、３１８、および３２０のそれぞれは、単一のデータ処理リソース３１０、３１２、および３１４の保管されたシステム仕様を、スケジューリング・フレームワーク３０８に供給する。
【００４４】
ジョブ３００が、スケジューリング・フレームワーク３０８に入る時に、スケジューリング・フレームワーク３０８が、適当なデータベースに対する要求を実行する。必要な情報が、データ処理リソース３１０、３１２、および３１４から適当なデータベース３１６、３１８、および３２０に送られる。データベース３１６、３１８、および３２０は、最終的に、要求された情報をスケジューリング・フレームワーク３０８に供給する。ジョブ３００の要件ならびに選択されたスケジューリング・ポリシおよびデータベース３１６、３１８、および３２０によって供給される情報に応じて、スケジューリング・フレームワーク３０８は、ジョブ３００がサブミットされなければならない単一のまたは複数のデータ処理リソース３１０、３１２、および３１４を決定する。データ処理リソースの決定の後に、スケジューリング・フレームワーク３０８は、この情報および追加情報をスケジューリング・ポリシ３０２、３０４、または３０６に伝え、スケジューリング・ポリシ３０２、３０４、または３０６は、決定されたデータ処理リソースにジョブ３００をサブミットし、このデータ処理リソースでジョブ３００が処理される。
【００４５】
図４に、本発明のもう１つの好ましい実施形態の詳細なブロック図を示す。オペレーティング・システム４０２、メモリ４０４、ソフトウェア４０６、およびスケジューリング・ポリシ４０８などのさまざまなジョブ要件によって指定されるジョブ４００が、スケジューリング・フレームワーク４２８にサブミットされる。スケジューリング・フレームワーク４２８は、さまざまなスケジューリング・ポリシ４１０、４１２、および４１４にアクセスできる。
【００４６】
リソース１  ４１６は、オペレーティング・システム４１８、メモリ４２０、およびソフトウェア構成４２２によって指定される。リソース１  ４１６は、さらに、データベース４２６に接続されるが、リソース２およびリソース３は、データベース４２４に接続される。データベース４２４および４２６のそれぞれが、スケジューリング・フレームワーク４２８に別々に接続される。
【００４７】
データベース４２４および４２６ならびに追加データベースを、スケジューリング・フレームワーク４２８に動的に付加することができ、スケジューリング・フレームワーク４２８から動的に切り離すことができる。ジョブ要件に応じて、スケジューリング・フレームワーク４２８は、データベース４２４、４２６、…への照会を実行し、データベース４２４、４２６、…のうちの単一のまたは複数のデータベースから、必要な情報を入手する。
【００４８】
たとえば、ジョブ４００が、スケジューリング・ポリシＡ４１０に対応するスケジューリング・ポリシ４０８によって指定される時に、スケジューリング・フレームワーク４２８は、ジョブ４００のスケジューリングを実行するために、潜在的なスケジューリング・ポリシ４１０、４１２、および４１４のリストからスケジューリング・ポリシＡ４１０を選択する。
【００４９】
たとえば、ジョブ４００の必要なオペレーティング・システム４０２が、リソース４１６のオペレーティング・システム４１８およびリソース２のオペレーティング・システムと一致し、ジョブ４００の必要なソフトウェア４０６が、リソース１  ４１６のソフトウェア４２２およびリソース２のソフトウェアと一致し、ジョブ４００の必要なメモリ４０４が、リソース１  ４１６のメモリ４２０およびリソース２のメモリと一致する時に、スケジューリング・フレームワークは、一致するリソースのリスト４３０を作成する。ここで検討する例では、リソースのリスト４３０に、リソース１およびリソース２が含まれる。リソースのリスト４３０を選択されたスケジューリング・ポリシ４１０にサブミットすることによって、ジョブ４００をサブミットされなければならない別個のリソースが、リソースのリスト４３０から決定される。別個のリソースの決定は、スケジューリング・ポリシ、リソースのリスト、およびデータベース４２４、４２６、…によって供給される単一リソースのシステム仕様に依存する。その後、このジョブが、選択されたスケジューリング・ポリシ４１０から、決定されたリソース４１６にサブミットされる。
【００５０】
この形で、所与の計算グリッドの計算容量をできる限り効果的に使用し、活用するために、計算グリッドの別個のデータ処理リソースへのジョブ４００の割当を、さまざまなジョブ要件に従ってあまねく適合させることができる。
【図面の簡単な説明】
【００５１】
【図１】プラグ可能スケジューリング・ポリシを有するスケジューリング・システムを示すブロック図である。
【図２】スケジューリング方法を示す流れ図である。
【図３】本発明の好ましい実施形態を示すブロック図である。
【図４】本発明の好ましい実施形態を示す詳細なブロック図である。
【符号の説明】
【００５２】
１００  ジョブ
１０２  スケジューリング・ポリシＡ
１０４  スケジューリング・ポリシＢ
１０６  スケジューリング・ポリシＣ
１０８  スケジューリング・フレームワーク
１１０  データ処理リソース
１１２  データ処理リソース
１１４  データ処理リソース
１１６  中央データベース
３００  ジョブ
３０２  スケジューリング・ポリシＡ
３０４  スケジューリング・ポリシＢ
３０６  スケジューリング・ポリシＣ
３０８  スケジューリング・フレームワーク
３１０  データ処理リソース
３１２  データ処理リソース
３１４  データ処理リソース
３１６  データベース
３１８  データベース
３２０  データベース
４００  ジョブ
４０２  オペレーティング・システム
４０４  メモリ
４０６  ソフトウェア
４０８  スケジューリング・ポリシ
４１０  スケジューリング・ポリシ
４１２  スケジューリング・ポリシ
４１４  スケジューリング・ポリシ
４１６  リソース１
４１８  オペレーティング・システム
４２０  メモリ
４２２  ソフトウェア構成
４２４  データベース
４２６  データベース
４２８  スケジューリング・フレームワーク
４３０  一致するリソースのリスト
【図１】
2005108214.tif 000003
【図２】
2005108214.tif 000004
【図３】
2005108214.tif 000005
【図４】
2005108214.tif 000006