(57)【要約】  コンピュータリソースのスケジューラは、定期的に実行中のジョブを分析して、ジョブをより速く終了させるのに役立つために、付加的なリソースがジョブに割り当てられるかどうかを判定でき、最小限のリソースが待機中のジョブを開始するのに利用可能かどうかもチェックできる。ジョブは、タスク間の並列関係または直列関係を用いて定義される多くのタスクで構成できる。実行時のさまざまな時点で、アクティブジョブのリソース割り当てを調整して、優先システムに応じてリソースを付加または除去できる。ジョブを、最小限のリソースから開始でき、リソースを、ジョブの期間にわたって増加および減少させることができる。
2010533924.tif 000002
【特許請求の範囲】
【請求項１】
複数のリソース上で動作する第１のジョブを分析して、前記第１のジョブに割り当てられることができる最大限のリソースを判定するステップ（３０６）であって、前記第１のジョブは複数のタスクから成る、ステップと、
複数のリソースを分析して、未使用のリソースである第１のリソースのセットおよび前記第１のジョブに割り当てられるリソースである第２のリソースのセットを判定するステップ（３１２）と、
前記第２のリソースのセットが前記最大限のリソースのセットよりも少なく、および前記第１のリソースのセットが空でない場合、前記第１のリソースのセットの少なくとも一部を前記第１のジョブに割り当てるステップ（３２２）と
を含むことを特徴とする方法。
【請求項２】
前記複数のタスクは、並列で実行されることができる少なくとも２つを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のタスクの１つは連続的であり、前記複数のタスクの別のタスクに依存することを特徴とする請求項１に記載の方法。
【請求項４】
前記リソースは、
プロセッサと、
コンピュータと、
メモリと、
ネットワーク回線容量と、
ネットワーク接続と、
入力デバイスと、
出力デバイスと、および
ライセンスと
で構成されるグループの少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項５】
第３のリソースのセット上で動作する第２のジョブを分析して、前記第２のジョブに割り当てられることができる最小限のリソースを判定するステップと、
前記第１のジョブが前記第２のジョブよりも高い優先度を有することを判定するステップと、
前記最小限のリソースが前記第３のリソースのセットよりも少ないことを判定するステップと、
少なくとも前記第３のリソースのセットを前記第１のジョブに割り当てるステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記タスクの１つの完了によって開始されることを特徴とする請求項１に記載の方法。
【請求項７】
請求項１に記載の方法を行うよう構成されるコンピュータ実行可能命令を含むことを特徴とするコンピュータ読み取り可能媒体。
【請求項８】
第１のジョブに対する最大限のリソース要求を判定するよう構成される現在のジョブアナライザ（１１４）であって、前記第１のジョブが、部分的に実行され、および複数のタスクを含む、現在のジョブアナライザ（１１４）と、
複数のリソースに対する現在の状態を判定するよう構成されるリソースマネージャ（１１８）であって、前記現在の状態が、割り当てられたリソースおよび使用中のリソースを含む、リソースマネージャ（１１８）と、
前記現在の状態および前記最大限のリソース要求に基づいて、前記第１のジョブに割り当てられたリソースを変更するよう構成されるスケジューラ（１１２）と
を備えることを特徴とするシステム。
【請求項９】
リソースを変更することは、付加的なリソースを前記第１のジョブに割り当てることを含むことを特徴とする請求項８に記載のシステム。
【請求項１０】
リソースを変更することは、より少ないリソースを前記第１のジョブに割り当てることを含むことを特徴とする請求項８に記載のシステム。
【請求項１１】
複数のジョブを受信するよう構成されるジョブキューであって、前記複数のジョブのそれぞれが、複数のタスクで構成される、ジョブキューと、
優先度を、前記ジョブキュー内の前記複数のジョブのそれぞれに割り当てるよう構成される優先システムと、
第２のジョブに対する最小限のリソース要求を判定するよう構成される、入力ジョブアナライザと
をさらに備え、
前記スケジューラが、前記最小限のリソース要求を前記第２のジョブに割り当てることができる場合、前記第２のジョブを開始するようさらに構成されることを特徴とする請求項８に記載のシステム。
【請求項１２】
前記優先度は、ジョブがサブミットされてからの期間を含む公式によって判定されることを特徴とする請求項１１に記載のシステム。
【請求項１３】
公式によって判定される前記優先度は、前記ジョブキュー内の前記複数のジョブのそれぞれに対して設定される優先度を含むことを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記複数のタスクは、並列で実行されることができる少なくとも２つのタスクを含むことを特徴とする請求項８に記載のシステム。
【請求項１５】
前記複数のタスクの１つは連続的であり、前記複数のタスクの別のタスクに依存することを特徴とする請求項８に記載のシステム。
【請求項１６】
前記リソースは、
プロセッサと、
コンピュータと、
メモリと、
ネットワーク回線容量と、
ネットワーク接続と、
入力デバイスと、
出力デバイスと、および
ライセンスと
で構成されるグループの少なくとも１つを含むことを特徴とする請求項８に記載のシステム。
【請求項１７】
ジョブキューを分析して、前記ジョブキュー内の複数のジョブに対して優先度を判定するステップ（３２８）であって、前記ジョブのそれぞれが複数のタスクから成る、ステップと、
前記優先度から、実行される次のジョブである第１のジョブを判定するステップ（３３０）と、
前記第１のジョブの実行を開始する最小限のリソースのセットを判定するステップ（３３２）と、
複数のリソース上で動作する第２のジョブを分析して、前記第２のジョブに割り当てられることができる最大限のリソースを判定するステップ（３０６）と、
複数のリソースを分析して、未使用のリソースである第１のリソースのセットおよび前記第２のジョブに割り当てられるリソースである第２のリソースのセットを判定するステップ（３１２）と、
前記第２のリソースのセットが前記最大限のリソースのセットよりも少なく、および前記第１のリソースのセットが空でない場合、前記第１のリソースのセットの少なくとも一部を前記第２のジョブに割り当てるステップ（３２２）と、
前記最小限のリソースのセットが利用可能な場合に、前記第１のジョブを開始するステップ（３３８）と
を含むことを特徴とする方法。
【請求項１８】
前記第２のジョブを分析して、前記第２のジョブに割り当てられることができる最小限のリソースを判定するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記タスクの１つの完了に応じて開始されることを特徴とする請求項１７に記載の方法。
【請求項２０】
請求項１７の方法を行うよう構成されるコンピュータ実行可能命令を含むことを特徴とするコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース割り当てを拡大および縮小することによるスケジューリングに関する。
【背景技術】
【０００２】
大型コンピュータ環境におけるリソースは、スケジューリングシステムによって管理されることが多い。このようなリソースは、コンピュータまたはプロセッサのクラスタであるかもしれないし、あるいは他のリソースを含むかもしれない。大型コンピュータのタスクを、スケジューリング機構によってリソースブロック全体に割り当てることができる。多くの場合、大型コンピュータのリソースは大きな需要があるので、効率的なスケジューリングにより、このようなリソースをよりよく利用することができる。
【発明の概要】
【０００３】
コンピュータリソースのスケジューラは、定期的に実行中のジョブを分析して、ジョブを速く終了させるのを促すために付加的なリソースをジョブに割り当てることができるかどうかを判定し、待機中のジョブを開始させるために最小限のリソースが利用可能であるかどうかもチェックできる。ジョブは、タスク間の並列関係または直列関係を用いて定義される多くのタスクで構成できる。実行時のさまざまなポイントにおいて、アクティブジョブのリソース割り当てを調整して、優先システムに応じてリソースを付加または除去できる。ジョブを、最小限のリソースから開始でき、リソースを、ジョブの期間にわたって増加および減少させることができる。
【０００４】
本概要は、以下の発明の詳細な説明でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、限定として使用することを目的とするものでもない。
【図面の簡単な説明】
【０００５】
【図１】ジョブを管理およびスケジューリングするシステムを示す実施形態を説明する図である。
【図２】ジョブおよびジョブに対するリソースの読み込みを示す実施形態を説明する図である。
【図３】リソースを実行中のジョブおよび待機中のジョブに割り当てる方法を示す実施形態を説明するフローチャートである。
【発明を実施するための形態】
【０００６】
スケジューリングシステムを用いて、共用のコンピュータリソースをさまざまなジョブに割り当てることができる。スケジューリングシステムは、優先システムが次にどのジョブを開始するかを判定できる新しいジョブのキューを含むことができる。アナライザは、実行するジョブを定期的に評価して活用されていないリソースを特定でき、新しいジョブを開始するか、または付加的なリソースを既存のジョブに割り当てることを判定できる。
【０００７】
各ジョブは、一連のタスクとして定義できる。あるタスクを、直列または並列の形式でリンクすることができ、各タスクは、リソースの範囲を使用できる。実行時のあるポイントにおいて、複数のタスクを、並列で実行できる一方、他のポイントにおいて、タスクは、実行する前に他のタスクが完了するのを待つことができる。並列タスクが行われる期間に、ジョブを、付加的なリソースを適用することによってより速く完了することができ、他の期間に、同じリソースを、他のジョブに割り当てることができる。
【０００８】
ある場合、ジョブを開始するのに使用される最小限のリソースを判定することによって新しいジョブを開始できる。それらのリソースが利用可能になった時、新しいジョブを開始できる。他のリソースが解放されると、それらを新しいジョブに割り当てて、新しいジョブが速く完了できるようにすることができる。
【０００９】
リソース割り当ての定期的な分析時に、アリゴリズムを使用して、リソースを実行するジョブに割り当て、新しいジョブが開始されるかどうかを決定できる。異なる実施形態は、異なるアルゴリズムを使用してよい。例えば、一実施形態は、できるだけ速く既存のジョブを完了することを支持し、一方、別の実施形態は、できるだけ速く新しいジョブを開始することを支持できる。ある場合、ジョブとリソース間の個別の優先度は、動作の手順を選択する際に考慮されることがある。
【００１０】
本発明の主題事項の特定の実施形態を使用して、特定の発明の態様を説明する。実施形態は、単なる一例であり、さまざまな変更および代替形式を受け入れる余地がある。添付の特許請求の範囲は、特許請求の範囲によって定義されるように本発明の精神および範囲内においてすべての変更、等価、および代替を網羅するように意図される。
【００１１】
本明細書の同様の参照数字は、図面の説明全体にわたって、同様の要素を指定するのに使用される。
【００１２】
要素が、「接続された」または「結合された」と表現される場合、要素を、直接相互に接続もしくは結合することができ、または１または複数の介在要素を存在させることもできる。対照的に、要素が、「直接接続された」または「直接結合された」と表現される場合、介在要素は存在しない。
【００１３】
本発明の主題事項を、デバイス、システム、方法、および／またはコンピュータプログラム製品として実施できる。従って、一部またはすべての主題事項を、ハードウェアおよび／または（ファームウェア、常駐ソフトウェア、マイクロコード、ステートマシン、ゲートアレイなどの）ソフトウェアに実施できる。さらに、主題事項は、命令実行システムが使用または関連する媒体において実施されるコンピュータ使用可能プログラムコードを有するコンピュータ使用可能記憶媒体上またはコンピュータ読み取り可能プログラコードを有するコンピュータ読み取り可能記憶媒体上で、コンピュータプログラム製品の形態をとることができる。本明細書の状況において、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスが使用または関連するプログラムを含み、格納し、伝え、伝播し、または転送することができる任意の媒体とすることができる。
【００１４】
コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、例えば、電気、磁気、光、電磁気、紫外線、または半導体システム、装置、デバイス、または伝播媒体とすることができるが、これに限定されない。一例として、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を備えることができるが、これに限定されない。
【００１５】
コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報を格納する任意の方法または技術において実装される揮発性および不揮発性媒体、取り外し可能および取り外し不能媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ(Digital Versatile Disk)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を記憶するのに使用することができ、および命令実行システムによってアクセスすることができる任意の他の媒体を含むが、これに限らない。プログラムを、例えば、用紙または他の媒体を光走査した後、コンパイルし、翻訳し、必要に応じて、適切な方法で処理された他のものを光走査した後、コンピュータメモリに格納することによって電気的に獲得することができるので、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、プログラムが印刷される用紙または別の適切な媒体になり得ることに留意されたい。
【００１６】
通信媒体は、典型的には、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波または他の転送機構などの変調データ信号として具現化したものであり、また、任意の情報配信媒体を含む。用語「変調データ信号」は、その特性の１つまたは複数が、その信号中の情報を符号化するように設定または変更された信号を意味する。通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音響、ＲＦ、赤外線および他の無線媒体などの無線媒体が含まれるが、これらに限定されない。上記の任意の組合せも、コンピュータ読み取り可能媒体の範囲内に含まれるものとする。
【００１７】
本発明の主題事項を、１または複数のシステム、コンピュータ、または他のデバイスによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的なコンテクストに即して実施することができる。一般的に、プログラムモジュールは、特定のタスクを行い、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。一般的に、プログラムモジュールの機能性を、さまざまな実施形態において所望通りに組み合わせまたは分散することができる。
【００１８】
図１は、ジョブを管理およびスケジューリングするシステムを示す実施形態１００の図である。実施形態１００を使用して、多くのコンピュータリソースを使用できるジョブを制御することができる。例えば、コンピュータのクラスタを組織して、クラスタを構成するさまざまなコンピュータ全体に分散できる大型コンピュータのジョブを行うことができる。
【００１９】
多くの異なる種類のコンピュータリソースを管理できる。例えば、コンピュータのクラスタ内またはマルチプロセッサコンピュータ上の個別のプロセッサを、コンピュータジョブを構成する個別のタスクに割り当てることができる。別の場合、メモリリソースを、ランダムアクセスメモリとデータストレージメモリとの両方に割り当てることができる。ネットワークリソースを、ソフトウェアライセンス、コンピュータリソース、およびコンテンションでも可能な他のリソースと同様に割り当てることができる。実施形態１００を使用して、複数のジョブで共有できる任意のコンピュータリソースを管理し、割り当てることができる。
【００２０】
各ジョブ１０２を、複数のタスクで構成できる。タスクは、行われる実行可能なコードまたは機能の離散ブロックとすることができる。各タスクは、タスクが使用できる別々に定義されたリソースを有することができる。例えば、プロセッサのクラスタ上で行われるジョブの一般的な場合、個別のタスクを、単一のプロセッサ上で行うことができ、または個別のタスクは、単一のソフトウェアライセンスを使用できる。ある実施形態において、各タスクは、複数のリソースを使用できる。例えば、タスクを、４つのプロセッサを使用するよう、または最小限の２つのプロセッサおよび最大限の８つのプロセッサを用いて実行するように定義することができる。
【００２１】
ジョブ１０２を、複数のタスクを用いて定義することができるので、ジョブは、実行の過程で異なるレベルのリソースを使用できる。例えば、ジョブは、並列で実行されるいくつかのタスクを有することができる。各タスクを別々のプロセッサに割り当てることによってジョブを行い、ジョブを速く終了させることができる。ジョブは、各タスクを単一のプロセッサ上で連続して実行することによって行うこともできる。
【００２２】
ジョブ１０２を、実行される前にジョブキュー１０４に配置することができる。プライオリタイザ１０６は、ジョブキュー１０４においてジョブを評価して、どのジョブが次に実行されるかを判定できる。
【００２３】
プライオリタイザ１０６は、どのジョブを次に実行するかを判定するために異なる機構およびアルゴリズムを使用できる。ある実施形態において、各ジョブは、低い、中位の、および高いなどの、一般的な優先度を有することができる。ある実施形態は、別の要因として、ジョブがサブミットされてからの期間使用できる。アルゴリズムを使用して、各未決定のジョブに対する優先度を計算して、キューをソートし、実行される次のジョブを特定できる。
【００２４】
プライオリタイザ１０６によって選択される新しいジョブ１０８を、新しいジョブアナライザ１１０によって分析できる。新しいジョブアナライザ１１０は、新しいジョブ１０８を開始するために使用される最小限のリソースを判定できる。最小限のリソースが利用可能になった場合、新しいジョブ１０８を開始できる。
【００２５】
スケジューラ１１２は、さまざまなジョブのリソースの割り当てを判定できる。ある場合、スケジューラ１１２は、リソースを実行するジョブに付加でき、他の例では、スケジューラ１１２は、リソースをジョブから除去できる。実行時に、現在のジョブアナライザ１１４は、現在のまたは実行中のジョブを分析して、ジョブがそれに割り当てられたすべてのリソースを使用しているかどうか、または付加的なリソースをジョブに割り当て得るかどうかを判定できる。
【００２６】
多くの場合、ジョブは、並列で動作される複数のタスクを有することができ、複数のタスクが並列で実行される期間に付加的なリソースを使用できる。他の場合、ジョブは、直列または連続的に依存するタスクを有して、別のタスクが完了した後にタスクが行われるようにすることができる。並列および連続的に依存する多くのタスクを有するジョブにおいて、ジョブは、実行時に、異なる量のリソースを使用できる。大規模なタスクの並列実行期間に、最大限のリソースをジョブに割り当てることができる。期間が経過して、ジョブが、多くのタスクが連続的に依存している期間に入ると、ジョブは、ジョブが使用することができるよりも多くの割り当てられたリソースを有することができる。
【００２７】
ジョブの実行時に、現在のジョブアナライザ１１４は、ジョブに割り当てることができる最大限のリソースを判定できる。最大限のリソースを使用して、例えば、いくつのリソースをジョブに適用させて、できるだけ速くジョブを終了できるかを判定できる。現在のジョブアナライザ１１４は、同じジョブに対して割り当てられる最小限のリソースを判定できる。最小限のリソースをスケジューラ１１２が使用してリソースを除去して、例えば、高い優先度のジョブがリソースを使用できるようにする。このまたは他の場合、最小限のリソースを判定して、不十分なリソースが原因でデッドロックを生じさせることなく、ジョブを実行できるようにする。
【００２８】
リソースマネージャ１１８は、リソース１２０を監視して分析し、さまざまなリソース１２０の現在の状態を判定できる。多くの場合、割り当てられたリソースは、クラスタコンピュータアプリケーション用のプロセッサを含むことができる。他の場合、割り当てられたリソースは、個別のコンピュータ、さまざまな種類のメモリデバイス、ネットワーク接続およびネットワーク回線容量、さまざまな入力デバイスまたは出力デバイス、ならびにソフトウェアライセンスまたは他のコンピュータリソースを含むことができる。本明細書において、クラスタコンピュータの任意の参照およびプロセッサまたはコンピュータリソースの割り当ては、一例であり、これに限定されない。
【００２９】
スケジューラ１１２は、多くの異なる種類のアルゴリズムを有することができ、いつ新しいジョブを開始して、さまざまなジョブを通じてどのようにリソースを割り当てるまたは分配するかを判定する際のさまざまな因子を使用できる。各実施形態は、リソースを割り当てるための異なる論理および／または公式を使用できる。ある実施形態において、できるだけ多くのリソースを使用して、できるだけ速く実行しているジョブを完了させることを重視する論理を定義できる。他の論理は、実行ジョブの優先度を考慮して、低い優先度のジョブに対して高い優先度のジョブに有利に、リソースを割り当てることができる。さらに他の実施形態は、実行ジョブの代わりに新しいジョブにリソースを割り当てることによって、できるだけ速くジョブを開始するように設計できる。
【００３０】
ある実施形態において、スケジューラ１１２は、実行中のジョブを評価し、実行中のジョブにおいてリソースを割り当てた後に、未使用のリソースを任意の新しいジョブに割り当てることができる。他の実施形態は、さまざまなアルゴリズムおよび重み付けスキーマを使用して、実行中のジョブおよび未決定のジョブを一緒に優先度付けを行うことができる。
【００３１】
図２は、ジョブおよびジョブのリソース読み込みの一例を示す実施形態２００の説明図である。ジョブを、並列タスクまたは依存タスクもしくは連続タスクと同じ数を一緒にリンクできる個別のタスクとして定義できる。クラスタコンピュータアプリケーションの例において、各タスクを、個別のプロセッサ上で動作できる、別々の実行可能な項目とすることができる。他の実施形態は、他の基準を使用してジョブをタスクに分割できる。タスクは、あるタスク間で共有される特定の入力データまたは出力データを有することができ、タスク間の関係の基礎とすることができる。
【００３２】
ジョブに対するタスクシーケンス２０２のグラフィカル表示を左側に示し、リソース読み込み２０４の表を右側に示す。
【００３３】
ブロック２０６において、タスクシーケンス２０２が開始される。第１のタスクを使用して、ジョブを初期化できる。第１のタスク２０８に対応して、表２０４の第１行は、リソース読み込みが、最大限の１つと最小限の１つを有することを示す。リソース読み込みの最大限および最小限は、その期間にジョブを割り当てることができるリソースの量とすることができる。タスク２０８が動作できる１つのタスクであるため、１つのリソースを割り当てることができる。
【００３４】
簡単な例を目的として、各タスクを定義して、任意の種類のコンピュータリソースとすることができる単一のリソースを使用できる。他の例において、各タスクは、リソースの異なるカテゴリを範囲とする複数のリソースを使用してもよい。例えば、単一のタスクは、２つから１６までのプロセッサ、ネットワークアクセス、およびソフトウェアライセンスを使用でき、一方、別のタスクは単一のプロセッサ、特定の出力デバイスを使用し、およびソフトウェアライセンスを用いないことができる。図２の例において、各タスクを単一のリソースに対応させて、概念を説明できる。
【００３５】
タスク２０８が完了された後に、タスク２１０、２１２および２１４を、並列で行うことができる。タスク２１０、２１２および２１４が行われる間、リソース読み込みは、最大限で３つおよび最小限で１つのリソースを有する。リソース読み込みが１つの場合、タスク２１０、２１２および２１４のそれぞれを、単一のリソースを使用して連続して行うことができる。より多くのリソースがジョブに割り当てられる場合、２つまたは３つ以上のタスクを同時に行うことができる。例えば、２つのリソースがジョブ２０２に割り当てられる場合、タスク２１０および２１２を同時に行うことができ、３つのリソースが割り当てられる場合、タスク２１０、２１２および２１４を並列して行うことができる。
【００３６】
優先度に基づいてジョブスケジューラをさまざまなリソースに割り当てることができる。例えば、ジョブ２０２が実行されている他のジョブよりも高い優先度を有する場合、付加的なリソースをリソース読み込みの最大限まで割り当てて、ジョブ２０２をより速く完了させることができる。反対に、ジョブ２０２が他のジョブ、実行ジョブまたは未決定のジョブのいずれかよりも低い優先度を有する場合、リソースを他のジョブに割り当てることができるが、ジョブ２０２を続けて実行できるように、最小限のリソース読み込みをジョブ２０２に対して維持することができる。
【００３７】
タスク２１６、２１８および２２０は、タスク２１０に依存し、並列タスクである。同様に、タスク２２２および２２４は、並列タスクであり、タスク２１４に依存する。この期間に、リソース読み込みは、最大限で５および最小限で１とすることができる。
【００３８】
タスク２２６は、タスク２１６、２１８、２２０、２２２、２２４および２１２に依存する。他のタスクへのタスク２２６の依存性を定義して、タスク２２６が他のすべてのタスクが完了されるまで開始できないようにすることができる。タスク２２６の期間に、最大限のリソース読み込みと最小限のリソース読み込みは、１つとすることができる。タスク２２６が依存するさまざまなタスクを完了する間、残りのタスクの前に１または複数のタスクを完了できる。例えば、５つのリソースがジョブに割り当てられて、残りのタスクの前にタスクの２つが完了する場合、３つのリソースを、残りのタスクによってアクティブに使用できるが、２つのリソースは過剰になり、ジョブ２０２は使用できない。これらの過剰なリソースは、リソースを使用するタスクが完了すると、ジョブスケジューラによって回復されて、他のジョブに割り当てられることができる。
【００３９】
タスク２２８は、タスク２２６に依存でき、１つのタスクで最大限および最小限のリソース読み込みを有することができる。タスク２２８が完了した後、ブロック２３０においてジョブ２０２を終了できる。
【００４０】
スケジューラは、さまざまなアルゴリズムまたは論理を使用して、リソースをジョブに割り当てることができる。例えば、ジョブ２０２の開始時に、スケジューラは、最大限で５つのリソースをジョブ２０２に割り当て、たとえ第１のほとんどのタスクが最大限のリソースを使用せずには完了できないとしても、ジョブ２０２が速く完了できるようにする。他の実施形態において、スケジューラは、最初に１つのリソースを割り当てて、タスク２１６から２２４までの間に、５つのリソースまで増加することができる。
【００４１】
スケジューラは、ジョブに割り当てられるリソースを除去して、それらのリソースを別のジョブに割り当てることができる。例えば、５つのリソースがジョブ２０２に割り当てられていて、タスク２１６および２１８が完了されていて、タスク２２０、２２２および２２４が進行中である場合、ジョブ２０２は、３つのリソースを利用できるが、５つすべてを利用できない。
【００４２】
多くの場合、スケジューラは、ジョブに割り当てることができる今後のリソース読み込みを評価して、ジョブ間のリソースの割り当てを判定できる。例えば、スケジューラは、ジョブ２０２を評価して、タスク２１６からタスク２２４までが行われるまで、５つのリソースが完全には利用されないとしても、最大限のリソース読み込みが５つで、５つのリソースをジョブ２０２に割り当てることを判定できる。
【００４３】
ある実施形態において、スケジューラは、ジョブ実行のさまざまなステージにおいてリソースを割り当てることができる。例えば、スケジューラは、単一のリソースをジョブ２０２に割り当てることができ、タスク２１４が完了されるまで単一のリソースの使用を継続できる。その時点において、より多くのリソースが利用可能になり、スケジューラは、付加的なリソースを最大限で５つのリソースまで割り当てることができる。
【００４４】
ある場合、リソースが利用可能になり、スケジューラは、リソースをその最大限以下で動作するジョブに割り当てることができる。これらの割り当てを作成する際に、ジョブの優先度、ジョブに対する現在のリソース割り当てと最大限のリソース割り当てとの間の差異、ジョブに対する最大と最小の最大限のリソースとの間の差異、または他の因子を含む、さまざまな因子を評価できる。
【００４５】
リソースが利用可能な場合、スケジューラは、新しいジョブを開始できるかどうかを評価できる。各スケジューラは、いつジョブを開始してどのようにリソースを割り当てるかを判定する異なる論理またはアルゴリズムを有することができる。ある実施形態において、スケジューラは、リソースを新しいジョブに割り当てようと試みる前に、実行ジョブにおいてリソースを割り当てようと試みることができる。他の実施形態において、スケジューラは、既存のジョブおよび未決定のジョブの優先度を評価するアルゴリズムまたは論理を使用でき、たとえ、既存のジョブがそれらのリソースを使用することができるとしても、リソースを新しいジョブに割り当てることができる。
【００４６】
図２の例は、シーケンス２０２に対してリソース読み込みを判定できる一つの方法を示す。異なるリソース読み込みを用いて、シーケンス２０２を異なるステップに分割できる。例えば、タスク２１６および２１８がグループ化されて、タスク２２０、２２２および２２４がグループ化された場合、タスク読み込みは、最大限で３つのリソース読み込みを有することができる。ある実施形態において、最適化されたリソース読み込みを、グループ化したさまざまなタスクを分析することによって判定して、さまざまなタスクとジョブ間の最適化されたリソース読み込みを判定することができる。
【００４７】
図３は、ジョブに対してリソースを割り当てる方法の例である実施形態３００のフローチャートの説明である。実施形態３００は、リソースを、実行しているジョブ、および実行を待つジョブキュー内にあるジョブに割り当てることができるアルゴリズムまたは論理の単なる一例である。
【００４８】
他の実施形態は、リソースを割り当てるための異なる論理または方法を使用できるが、実施形態３００は、実行ジョブの優先度に基づいて利用可能なリソースを実行ジョブに割り当てるように設計される。すべてのリソースが実行ジョブに割り当てられると、最小限のリソースを待機ジョブに対して利用できる場合、最も優先度の高い待機ジョブを開始できる。
【００４９】
実施形態３００は、１つのアルゴリズムの例である。特定の実装に基づいて異なる結果を出すために、実施形態３００に対して変更を行うことができることを当業者は認識できる。さらに、実施形態３００を、さまざまなタスクが使用できる異なる種類のリソースのリソース割り当てに適用できる。ある実施形態において、異なる種類のリソースを、スケジューラが管理でき、各ジョブは、それぞれの種類のリソースの異なる量を使用できる。これらの実施形態は、同じまたは異なる論理またはアルゴリズムを使用して、ジョブにおいてさまざまな種類のリソースを割り当てることができる。
【００５０】
ブロック３０２において、現在のリソースを分析する。多くの実施形態において、リソースアナライザは、リソースがいくつ存在するか、どのリソースを割り当てるか、どのリソースが利用されているか、または現在のリソースについての他の情報を判定できる。ある状況において、リソースは、場合によってオンラインまたはオフラインの状態になり得、永続的に利用されない。
【００５１】
ブロック３０４において各実行ジョブに対して、ブロック３０６において最大限のリソース読み込みが判定され、ブロック３０８において最小限のリソース読み込みが判定され、ブロック３１０においてジョブの優先度が判定される。ジョブのすべての長さに対して、または次に来るいくつかのタスクなどの短い区切りのジョブに対して最大限と最小限のリソース読み込みを判定できる。
【００５２】
ある場合、実施形態３００または同じアルゴリズムをジョブの実行時に何度も行うことができ、リソースを割り当てて、実行の経過にわたって数回ジョブから除去できるようにする。このような場合、ジョブに対する最大限および最小限のリソース読み込みを、ジョブ実行の期間以外の短い期間で評価できる。例えば、リソースを、１０分おきなどの一定期間に基づいて割り当てることができる場合、ジョブに対する最大限および最小限のリソース読み込みを、次の実行の１０分間また２０分間に対して評価できる。
【００５３】
ある場合、リソース読み込みがジョブ間で大幅に変更する場合、最大限および最小限のリソース読み込みを再計算できる。例えば、タスクの完了またはいくつかのタスクの完了がリソース読み込みを大幅に増加または減少させる場合に、再計算を実行できる。このような実施形態を使用して、既存の読み込みを大幅に変更しないリソース読み込みの再計算を最小限にできる。
【００５４】
ブロック３１２において、ジョブに割り当てられたリソースが、ジョブに対する最大限度を超える場合、ブロック３１４において、過剰なリソースを、未使用として定義できる。アルゴリズムの後のステップにおいて、過剰なリソースを、他のジョブに割り当てることができる。
【００５５】
ブロック３１６において、実行ジョブを、優先度によってソートできる。各実施形態は、ジョブに対して優先度を判定する異なる機構を有することができる。ある場合、ユーザは、サブミットする前に、ジョブに対する優先度を判定できる。他の場合において、実行している最も古いジョブに、新しいジョブよりも高い優先度を与えることができる。さらに他の場合では、優先度を判定する他の基準または公式を使用できる。
【００５６】
ブロック３１８において、降順の優先度の各ジョブに対して、ブロック３２０において、割り当てられたリソースが最大以下である場合、ブロック３２２において、未使用のリソースを、ジョブに対する最大限のジョブまで割り当てることができる。ブロック３１８、３２０および３２２のステップでは、さまざまな未使用のリソースを既存のジョブに割り当てて、優先度に基づいて既存のジョブが速く完了できるようにする。
【００５７】
ブロック３２４において、入力キューを分析する。入力キューは、まだ実行されていないジョブを含むことができる。ブロック３２６において入力キュー内の各ジョブに対して、ブロック３２８において優先度が判定される。入ってくるジョブに対する優先度を、入力キューにいる期間、全体の優先度、または他の因子を含む、任意の基準または因子を使用して判定できる。
【００５８】
入力キューは、ブロック３３０においてソートされて、開始される次のジョブを判定する。次のジョブを開始する最小限のジョブは、ブロック３３２において判定される。
【００５９】
ブロック３３４において任意の未使用のリソースが利用可能で、ブロック３３６において新しいジョブを開始するための十分な未使用のリソースが利用可能な場合、ブロック３３８において新しいジョブが開始される。プロセスは、継続する前にブロック３４０においてタスクが終了するのを待つ。
【００６０】
ブロック３３４においてリソースが残っていない場合、またはブロック３３６において残っているリソースが新しいジョブを開始するのに十分でない場合、プロセスは、タスクが終了するまでブロック３４０において待つ。
【００６１】
実施形態３００は、新しいジョブを開始する前に、利用可能なリソースを既存のジョブに割り当てるように設計されたアルゴリズムである。他の実施形態は、利用可能なリソースを実行中または実行ジョブに割り当て得る場合でも、ジョブキュー内の高い優先度のジョブが開始できるよう設計され得る。
【００６２】
実施形態３００では、タスクが完了する度に実行されるように設計される。これらの実施形態は、タスクが完了するのに比較的長時間かかる状況において有効である。タスクが短い実施形態において、実施形態３００の分析は、大量のオーバーヘッドを消費することがあり、扱いにくくなることがある。このような場合、実施形態は、ジョブが実行を完了する時、タスクの一定数が完了された時、または一定期間に基づいて実行されるアルゴリズムを有することができる。
【００６３】
本発明の主題事項の上述の説明は、例示および説明を目的として提示されている。本発明の主題事項を網羅するものでも、開示された正確な形態に限定するものでもなく、他の変更および変形は、上記の教示に照らして実現可能にできる。実施形態は、本発明の原理およびその実用化を最良に説明するために選択され、説明されて、それによって、当業者がさまざまな実施形態およびさまざまな変更において、予期される特定の使用に合うように本発明を最良に利用できるようにする。添付の特許請求の範囲は、先行技術によって限定される範囲を除いて、他の代替的実施形態を含むように解釈されることを目的とする。
【図１】
2010533924.tif 000003
【図２】
2010533924.tif 000004
【図３】
2010533924.tif 000005
【国際調査報告】
2010533924.tif 000006
2010533924.tif 000007