JP4387174B2 - 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法 - Google Patents

複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法 Download PDF

Info

Publication number
JP4387174B2
JP4387174B2 JP2003413411A JP2003413411A JP4387174B2 JP 4387174 B2 JP4387174 B2 JP 4387174B2 JP 2003413411 A JP2003413411 A JP 2003413411A JP 2003413411 A JP2003413411 A JP 2003413411A JP 4387174 B2 JP4387174 B2 JP 4387174B2
Authority
JP
Japan
Prior art keywords
priority
group
resource
resources
priority group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003413411A
Other languages
English (en)
Other versions
JP2004199674A (ja
Inventor
スコット・アラン・ライン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004199674A publication Critical patent/JP2004199674A/ja
Application granted granted Critical
Publication of JP4387174B2 publication Critical patent/JP4387174B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Description

コンピュータシステムがより強力になるにつれて、より多くのリソースが、絶えず増加し続けている多くのコンピュータジョブおよびコンピュータプロセスを処理するようになってきている。一例として、数百ものプロセッサ(CPU)、複数のデータベース接続、複数のディスクチャネル・多数のネットワークリンクを備えたコンピュータシステム(スタンドアロンシステム・ネットワーク化システム)が存在する。これらのコンピュータシステムは、現代の企業の計算ニーズに対処するように要求される。この現代の企業の計算ニーズは、多数のプロセスを同時に処理することを伴うことがある。
一般に、複数のプロセスが存在すると、これらの複数のプロセスは、これらのリソースを求めて互いに競争し、これに対応して、利用可能なリソース上で実行するためにプロセスをスケジューリングする必要がある。例えば、CPUリソースの場合を取り上げる。本明細書の議論は、議論を簡単にするためにCPUリソースに集中しているが、本明細書で議論される問題および提供される解決策は、CPUに限定されるものではなく、異なるプロセスによって共有される必要がある任意のリソースに適用可能であることは、留意されるべきである。
スケジューリングを実施する最も簡単な方法の1つは、単一のグローバルキューを使用して、ある予め定められた公平な割り当て規則を満たすことができる任意のCPUに次のプロセスをディスパッチすることである。しかしながら、単一のグローバルなアクセスポイントは、特に、多数のCPUを有する大規模コンピュータシステムにとって論点となる可能性があり、性能が悪化することがある。また、単一のグローバルキューのアプローチは、変更されたグローバルデータをシステム内のすべてのCPUに伝達しなければならないので、スケールを変更することが特に難しくもある。CPUの個数またはプロセスの個数が増加するにつれて、性能の不利益が、単一のグローバルキューのアプローチの使用の妨げになってくる。
単一のグローバルキューのアプローチに関連した性能の不利益を回避する1つの方法は、例えば、各CPUにローカルキューを提供することにより、複数のローカルキューを使用し、各ローカルキューを独立に管理することである。この分離型アプローチは、低い処理オーバヘッドの点で、より効率的になる傾向があるが、公平性が悪化することが多い。
1つの分離型スケジューリングアプローチは、ラウンドロビンスケジューリング方式である。純粋なラウンドロビンスケジューリング方式では、プロセスは、巡回形式で次のCPUキューに割り当てられる。したがって、10個のCPUが存在する場合、1番目のプロセスは、1番目のCPUに割り当てられ、2番目のプロセスは、2番目のCPUに割り当てられ、以下同様の割り当てが行われる。10番目のプロセスに対する最後のCPUに到達すると、1番目のCPUが、11番目のプロセスに再び割り当てられる。このようなことから、その名前がラウンドロビンと呼ばれる。
優先順位グループは、共にグループ化することができ、実行目的で同様に優先させることができるような、所定の共通性を有する複数のプロセスのことをいう。優先順位グループ化を行う機能は、多くの供給業者のスケジューラによって提供され、多くの顧客は、この機能を要求する。リソースグループを有することによって、複雑さの次元がさらに追加される。各CPUキューの各グループに1つの構成要素を有する場合、公平にすることは容易である。各CPUを完全に独立に処理することができ、各CPUは、完全な公平性を達成する。グループが、各CPUキューに少なくとも1つの代表を有する限り、このアルゴリズムは、そのグループの観点から公平である。しかし、CPU数の多いマシンでは、あらゆる優先順位グループが、全てのCPUを満たせる程に十分なプロセスはない。より一般性のあるこのサブケースは、アンダーコミットされている(under-committed)と呼ばれる。優先順位グループがアンダーコミットされていると、ラウンドロビンアプローチは、公平性を大幅に欠く傾向にある。
例えば、あるグループに、100のCPUシステムの5%の使用資格(entitlement)が与えられているが、このグループは、5つの実行ジョブしか有しない場合、5%は物理的に可能であるので、そのグループは、5%を受け取ることを期待する。修正されていないラウンドロビン方式では、あらゆるグループは、同じCPU0に構成要素の分散を開始し、その後、番号の大きなCPUに順次分散を行っていく。したがって、アンダーコミットの場合であっても、最初の数個のCPUが、あらゆるグループの構成要素を有する可能性があり、後のCPUは、非常にまばらにしか、構成要素の設定を受けないことになる。このことは完全に分離されたキュー方式において、全体的な効果として、そのグループが、それらの5個のCPUの5%すなわち0.25%しか取得しないということになる。十分に負荷を与えられたCPU上のジョブは、公平性の規則に従う一方、自身のCPU上ですべてジョブが行われる。いくつかのCPUは、完全にアイドルになる可能性がある。すべてのグループでは、目標を達成しないことになる。
さらに別の例として、最小のグループを5%に制限する理由が、そのグループが取得しすぎであり抑制する必要があること、またはシステムを支配することであると仮定する。そのグループが、すべてのCPUを占有するのに十分なプロセスを有する場合、制限されると仮定されるこのグループで、システム全体の53%を支配することができる。多くのコーナーケースが、分離された純粋なラウンドロビンの解決法が公平でないことを実証している。
バッチスケジューリング方式、定期的リバランス(periodic rebalancing)方式、クレジット/デビット方式、アイドルスチール、またはロビンフッドスケジューリングといった他のアプローチがある。この場合、公平性や性能にさまざまな不備がある。特に、優先順位グループが含まれる場合がそうである。これらのアプローチの多くは、オペレーティングシステム(OS)による積極的な補償・管理が必要である。これにより、スケジューリングのコストが増加傾向になり、これらのアプローチを、多数のリソース・多数の優先順位グループ・多数のプロセスを有するコンピュータシステムのニーズに合うように拡張することが困難になる。特に、あるCPUから別のCPUがプロセスをスティールすることに頼るいかなる方式を用いても、キャッシュ性能が崩壊し、含まれるすべてのCPU上の作業が一時的に停止する。
個々のプロセスにCPUを親和させ介入を最小にすることは、性能において重要である。しかし、これらの方式のほとんどは、基本的にすべてのプロセスが等しいということを前提とし、これは、グループ間の公平性の要求に直接矛盾する。個々のキューの長さは、そのプロセスの相対的な優先順位と関連性がないことがある。公平性および性能の双方の軸で同時に考察することが必要であり、従って新しい解決法が必要になる。
本発明は、一実施の形態において、複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散するコンピュータで実施される方法に関する。この方法は、複数の優先順位グループの第1の優先順位グループが密(rich)であるかどうかを確認することを含む。複数の優先順位グループの第1の優先順位グループが、複数のリソースの少なくとも1つの全部について使用資格を有する場合には、この第1の優先順位グループは、密であるとみなされ、複数の優先順位グループの第1の優先順位グループが、複数のリソースの1つの全部についての使用資格よりも少ない使用資格を有する場合には、この第1の優先順位グループは、粗(poor)であるとみなされる。また、この方法は、第1の優先順位グループが、密であるとみなされる場合には、第1のコンピュータで実施される手法に従って、第1の優先順位グループのプロセスを、複数のリソースの少なくとも第1のサブセット間に分散することをも含む。さらに、この方法は、第1の優先順位グループが、粗であるとみなされる場合には、第1のコンピュータで実施される手法とは異なる第2のコンピュータで実施される手法に従って、第1の優先順位グループのプロセスを、複数のリソースの少なくとも第2のサブセット間に分散することを含む。
別の実施の形態では、本発明は、当該実施の形態に具現化されたコンピュータ読み取り可能コードを有するプログラム記憶媒体を備える製品に関する。このコンピュータ読み取り可能コードは、複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散するように構成される。このコンピュータ読み取り可能コードは、複数の優先順位グループの第1の優先順位グループが密であるかどうかを確認するコンピュータ読み取り可能コードを含む。複数の優先順位グループの第1の優先順位グループが、複数のリソースの少なくとも1つの全部について使用資格を有する場合には、この第1の優先順位グループは、密であるとみなされる。複数の優先順位グループの第1の優先順位グループが、複数のリソースの1つの全部についての使用資格よりも少ない使用資格を有する場合には、この第1の優先順位グループは、粗であるとみなされる。第1の優先順位グループが、密であるとみなされる場合には、第1の手法に従って、第1の優先順位グループのプロセスを、複数のリソースの少なくとも第1のサブセット間に分散するコンピュータ読み取り可能コードが含まれる。また、第1の優先順位グループが、粗であるとみなされる場合には、第1の手法とは異なる第2の手法に従って、第1の優先順位グループのプロセスを、複数のリソースの少なくとも第2のサブセット間に分散するコンピュータ読み取り可能コードも含まれる。
さらに別の実施の形態では、本発明は、複数のプロセスによって共有される複数のリソースをその内部に有するコンピュータシステムに関する。複数のプロセス内のプロセスは、より少数の複数の優先順位グループと関連付けられる。複数の優先順位グループの第1の優先順位グループのプロセスは、複数のリソースの少なくとも第1のリソースのグループによってサービスを提供される。第1の優先順位グループのプロセスは、第1のリソースのグループのリソース間に、ラウンドロビン形式で分散される。この分散は、第1のリソースのグループの第1の開始リソースから開始される。複数の優先順位グループの第2の優先順位グループのプロセスは、複数のリソースの少なくとも第2のリソースのグループによってサービスを提供される。第2の優先順位グループのプロセスは、第2のリソースのグループのリソース間に、ラウンドロビン形式で分散される。この分散は、第1のリソースのグループの第2の開始リソースから開始される。第1の優先順位グループは、複数のリソースに関して、第2の優先順位グループよりも高い優先順位を有する。第2の開始リソースは、第1の開始リソースとは異なる。
本発明のこれらの特徴および他の特徴は、本発明の詳細な説明において図面と共に以下にさらに詳細に説明される。
本発明を、添付図面の図の例によって説明するが、この例は、本発明を限定するものではない。添付図面において、同じ参照符号は、同様の構成要素を参照する。
次に、本発明を、添付図面に示すような本発明のいくつかの好ましい実施の形態を参照して詳細に説明する。以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細を述べる。しかしながら本発明については、これらの具体的な詳細のいくつかまたはすべてがなくても実践できることが、当業者には明らかである。他の例では、周知のプロセスのステップ・構造を詳細に説明していないが、本発明を不必要に分かりにくくすることがないようにするためである。
本発明の一実施の形態によると、さまざまな優先順位グループに関連付けられたプロセス(すなわちジョブ)をコンピュータシステムリソースに、高度な公平性および効率性で分散する斬新な分散技法が提供される。この文脈において、公平性は、優先順位グループの優先順位付けの目標を可能な限り達成する分散技法の能力に関係する。他方、効率性は、最小の時間および最小のリソースオーバヘッドで、プロセスをリソースに分散する分散技法の能力に関係する。本発明は、公平性および効率性の双方を同時に改善することを目的としている。
さらに、独創的分散アルゴリズムは、任意の個数の優先順位グループの任意の個数のプロセスを、任意の組のリソースに分散するように設計される。このリソースは、オペレーティングシステムによって使用されるスケジューリングメカニズム(もしあれば)から独立している。ほとんどの場合、仕事負荷の分散を独創的分散アルゴリズムによって達成することにより、OSは、もし少しでもあれば、非常に単純なスケジューリング・補償を実行することができる。それにより、さまざまな優先順位グループによって達成される実際の優先順位付けを、予想される優先順位でインラインに実行することができる。この点において、スケジューリング自体は受動的なものとなり、プロセスが独創的分散アルゴリズムに従ってリソースに分散される時に、公平性を補償した作業が実行される。
興味のあることには、リソースの個数(例えばCPUの個数など)・優先順位グループの個数が増加するにつれて、独創的な分散技法によって達成される公平性の程度は、従来技術のスケジューリング技法では減少すると予想されるが、これに反し増大する。この意味で独創的分散技法は、多数のリソースを有し、多数の優先順位グループ・多数のプロセスを処理する大規模システムへの拡張可能性が高い。
本発明の一実施の形態では、所与の優先順位グループが、優先順位グループのプロセスのラウンドロビン分散を開始できる開始リソースを知的に決定することによって、公平性が本来的に達成される。先に述べたように、純粋なラウンドロビンスケジューリング方式(すなわち、常に1番目のリソースから割り当てを開始する)では、統計的に見て、所定のリソースを過負荷にする傾向がある。10個のCPUからなるグループが存在し、かつ、優先順位グループXが、システムのCPU処理能力の50%の使用資格を与えられているとすると、公平性をより向上させることができるのは、従来技術の純粋なラウンドロビンアプローチで行われていたように自動的に1番目のCPUから分散することではなく、5番目のCPUから、優先順位グループXのプロセスのラウンドロビン分散を開始することである。
周知のように、個々の優先順位グループに関連付けられた優先順位付けは、さまざまな方法で指定することができる。優先順位付けを指定する多くの方法が存在するが、本明細書の議論は、議論を簡単にするために、使用資格比率(entitlement percentage)を使用して、優先順位付けを指定する。本発明は、優先順位グループの任意の優先順位付け方式に適用することができ、使用資格比率により優先順位付けを指定する方式に限定されるものではないことに留意すべきである。さらに、与えた例および図面では、議論は、CPUに集中しているが、本発明は、多くの優先順位グループおよび/または多くのプロセス間で共有される必要のある任意のタイプのリソースに適用可能である。
本発明の一態様によると、優先順位グループは、最低1つのリソース全部の分の使用資格(例えば1つのCPU分の使用資格)を有するという使用資格基準を満たす場合、密優先順位グループとみなされる。例えば、システムが10個のCPUを有し、かつ、特定の優先順位グループが、システムのCPU処理能力の30%の使用資格を与えられているとすると、その優先順位グループは、3つのCPU分の使用資格があるので、密である。優先順位グループが、上述した使用資格基準(すなわち、少なくとも1つのリソース全部の分の使用資格を有するという基準)を満たさない場合には、その優先順位グループは、粗優先順位グループとみなされる。10個のCPUシステムの例を使用すると、ある優先順位グループが、システムのCPU処理能力の5%の使用資格を与えられている場合、その優先順位グループは、1つのCPU分の使用資格の半分しか使用資格を持たないので、粗である。
密優先順位グループと粗優先順位グループとを区別することは意味がある。これらの優先順位グループが、本発明の一実施の形態による異なる方法で分散されるからである。密優先順位グループは、使用資格の大きさに基づいたサイズを有するリソースの集合をブロックオフすることを交替で行うことによって、1番目の最良のものを最も豊富に選択する。粗優先順位グループには、そのプロセスが、異なる方法でリソースに割り当てられる。この異なる方法とは、例えば、密優先順位グループへの割り当てが完了した後に残っているリソースへの最適適合方式である。実質的に、密優先順位グループは、さまざまなリソースの所有を許可されるが、他の優先順位グループとリソースを共有しなければならない機会が比較的少ない。粗優先順位グループは、残ったリソースを獲得するための競合が生じたままとなる。
各優先順位グループのプロセスを異なるリソースにどのように分散するかを事前に決定することにより、分散用のロードマップが作成される。なおこのロードマップによって、分散アルゴリズムの実行と実行の間の時間にオペレーティングシステムが、アクティブに介入する必要はほとんどない。分散アルゴリズムを最後に実行することで、ある密優先順位グループが、その予想される優先順位、例えばその予想されるリソースの使用資格を達成できなかったことが判明すると、是正する動作を分散アルゴリズムの現在の実行において行うことができる。是正する動作とは例えば、あるリソース(例えばあるCPU)を、ある密優先順位グループからのプロセスのみの専用サービスとし、その密優先順位グループが、その予想されるリソースの使用資格をより良く達成できるようにすることがある。ある意味で、分散アルゴリズムの一実行から次の実行へのフィードバックメカニズムが存在し、それにより公平性が、時間が経つにつれて改善される。
効率性を考慮し、分散アルゴリズムは、頻繁には実行しないことで性能への影響を最小にするように設計される。プロセス分散用に作成されたロードマップは、期間中、公平性を維持するために、プロセスの分散を継続的に完全に再バランス(rebalance)させる必要がないようになっている。グループの構成要素または構成の変更はあまりないので、一度確立されたこのバランスを崩す可能性のあるこれら2つのオペレーションは、新しいプロセスフォークであり、既存のプロセスを終了する。終了は、統計的に、すべてのCPUにわたってバランスされるので、プロセス終了にあまりにも多く取り組む必要はないかもしれない。しかしながら、このモデルでは、新しくフォークされたプロセスは、可能な限り長い期間、優先順位グループ間で公平性を維持するような方法で管理される。
さらに、独創的分散アルゴリズムは、リソース間にプロセスを分散するのにグローバルキューに頼らない。これにより、グローバルキューを使用することに関連した性能の不利益が回避される。たとえ、分散がリソース自体の分離キューを使用した分離形式で実行されて、効率性が改善されても、公平性は、過度には犠牲にされない。これらのキューは、実際の分散プロセス中は全体的にロックされる一方、分散プロセス自体は、全体的なロックに費やされる時間が最小になるように効率的に動作するよう設計される。本発明のさまざまな実施の形態のこれらの機能および他の機能ならびにこれらの利点および他の利点は、図面および以下の議論を参照することにより、より良く理解できる。
図1は、本発明の一実施の形態による独創的分散アルゴリズムの主要なステップを示している。一般に、この分散アルゴリズムは、例えば図に関連付けられた例では毎秒ごとに、周期的に実行するように設計される。このアルゴリズムは、その入力として、優先順位グループの一覧、構成連続番号、およびプロセスの一覧を取り込む。構成連続番号は、優先順位グループの構成が変化するごとに割り当てられる識別子を表す。例えば、ある優先順位グループの追加または削除は、構成の変化の代表であり、新しい構成連続番号が、その新しい構成を識別するために割り当てられる。別の例として、既存の優先順位グループの使用資格の比率が変化することがあり、この変化によって、新しい構成連続番号が割り当てられる。
このアルゴリズムは、優先順位グループの一覧をソートすることから開始する。優先順位グループの一覧は、例えば使用資格比率などの何らかの優先順位付け指定に基づいて降順にソートされる。しかしながら、前回の分散アルゴリズムの実行以降に構成が変化した場合、優先順位グループを、再びソートすることができる(ブロック102およびブロック104)。一般に、任意の適切なソートアルゴリズムを使用することができる(例えば、バブルソートやバイナリソートを含む)。以下の実施例の節の実施例Aを参照すると、ソートされた例示的な一覧が表1に示され、この表1では、優先順位グループ1〜4が、使用資格に基づいて降順にソートされている。
ブロック106では、変数SHARES(共有)の値が、すべての使用資格の総和に等しくなるように設定される。優先順位グループに関連付けられた優先順位付けを指定するのに、使用資格比率が使用される場合には、SHARESは、100となる(ただし、相対的な優先順位付けが他の方法で指定される場合には、100である必要はない)。
ブロック108では、前回の分散アルゴリズムの実行の結果得られる性能データが、フィードバックとして使用される。それにより、現在の分散が、リソースへのプロセスのその分散において、より公平になるようにする。本明細書の図2から分かるように、特定の優先順位グループ専用になる必要のあるCPUがある場合、フィードバックデータは、このCPU数を確認するために使用されて、その優先順位グループが、期待使用資格により近い実際の使用資格を得るようにする。
ブロック110では、リソースについてのLOAD(負荷)の配列が初期化される。この配列は、さまざまなCPUの負荷を追跡するために使用される。特に、すべての粗優先順位グループによるCPUの共有、および、場合によっては、最低順位の密優先順位グループから残された一CPUの一部の共有を容易にするために使用されることになる。
ブロック112では、使用資格に基づいて、優先順位グループの開始CPUの配列が確認される。従来技術のラウンドロビンスケジューリング方式と異なり、本発明は、優先順位グループが、指定されたさまざまなリソースでラウンドロビン分散を開始できるようにする。したがって、ブロック112では、各優先順位グループは、システムのCPUの中から、そのプロセスのラウンドロビン分散用の開始CPUを割り当てられる。ブロック112は、本明細書の図3において、より詳細に論述される。
ブロック114は、特定の優先順位グループ専用になる必要があるCPUを指定し、それにより、それらの優先順位グループが、分散アルゴリズムの前回の実行から受け取った実際の使用資格と、期待使用資格との間の差を縮めるようにする。専用CPUは、その優先順位グループの開始CPUのデータ(図1/図3のブロック112で得られる)だけでなく、フィードバックデータ(図1/図2のブロック108で得られる)にも基づいて確認される。ブロック114は、本明細書の図4において、より詳細に議論される。
ブロック116では、グローバルスケジュールロックが取得される。グローバルスケジュールロックとは、さまざまな優先順位グループに関連付けられたプロセスが、独創的分散アルゴリズムに従って分散されるとき、CPUキューにおけるどのプロセスについても、スケジューリングまたは分散の衝突がないようにするものである。グローバルロックは、本質的に高いオーバヘッドを有する高価なオペレーションであるので、システム性能に対する影響を最小にするために、グローバルスケジュールロックだけは、分散(ブロック118)が完了し、ブロック120ですぐに解放されるまで継続する。
分散ブロック118は、自身を最適化することにより、分散・分離された形式でローカルCPUキュー間に、公平であるが効率的なプロセスを分散できるようにする。ブロック118では、優先順位グループに関連付けられたプロセスが、CPU間に分散される。各優先順位グループについて、分散プロセスは、その優先順位グループに割り当てられたCPUから開始し、分散は、他の優先順位グループ専用のCPUを飛ばしながら、ラウンドロビン形式で行われる。最後のCPUに到達すると、分散は、再び最初のCPU(CPU0)から開始する。例示的な分散は、本明細書の実施例Aの表4に示されている。
図2は、本発明の一実施の形態による、必要な専用CPUの個数を決定する主要なステップを示している。このステップにより、優先順位グループの実際の使用資格を、期待される使用資格に近づける。図2は、各優先順位グループを順に進み(ブロック202〜206)。そして、問題となる優先順位グループが、期待される使用資格を前回の分散アルゴリズムの実行後に得ていなかった場合に(ブロック208で判定)、ブロック210で、この優先順位グループを援助してその期待使用資格を達成するために必要とされる、専用CPUの個数が計算される。実施例Aでは、表3において、グループ1が、分散アルゴリズムの最初の実行後、その期待使用資格を達成していなかった(50%の期待使用資格に対して、40%の実際の使用資格)ことを示す。図2では、実施例Aのグループ1がその予想される50%の使用資格を達成するに当たり、グループ1で(599/100)−1または4つの、専用となる共有されないCPUが必要であることを出す。一形態では、この計算で小数部の値を切り捨てる。その理由は、整数のリソースの単位にのみ興味があるからである。これらの4つの専用CPUは、実施例Aの表4に示されている。
オプションとして、ブロック210では、特定の優先順位グループ専用となるCPUの最大数が、その優先順位グループのプロセス数を越えないようにする。効率性を改善するためである。その理由は、特定の優先順位グループに対して、その優先順位グループに存在するプロセスよりも多くのCPUが専用になると、専用CPUの少なくとも1つが使用されず、したがって無駄に浪費されるからである。
図3は、本発明の一実施の形態による、開始CPUを各優先順位グループについて確認する主要なステップを示している。この開始CPUにおいて、優先順位グループは、そのプロセスのそのラウンドロビン分散を開始することができる。また図3は、この優先順位グループに割り当てられるCPUの個数(整数部および小数部)も確認する。特定の優先順位グループに割り当てられるCPU数は、各CPUが正確に1つのCPU分の作業を行うことを保証しようとする規則に基づいて確認される。公平に動作している時、システム全体は、各CPUの全使用資格の総和(CPUS*SHARES)に等しい総作業量を行うことになる。したがって、分割不能な基本単位の作業をCPUの配分比率と考える。これらの単位で負荷を表現するとき、他の方式では起こり得るような丸め誤差が起こらない。各グループが、その目標となるCPUの配分比率を達成できる限り、優先順位付けは、達成されることになる。任意のCPUが、1つのCPUより多い作業または1つのCPUより少ない作業を担当すると、公平性に好ましくない影響がでる。この段階において、各CPU上に存在する可能性があるプロセスの量ではなく質が、最大の関心事となる。
一般に、図3のプロセスは、最高序列の密優先順位グループから開始する。このプロセスでは、この優先順位グループに割り当てられるCPU数および開始CPUの番号を確認する。続いて、次に高い序列の密優先順位グループが、適切な個数のCPUおよび適切な開始CPUの番号を割り当てられて、そのプロセスのそのラウンドロビン分散を開始する。図3は、すべての密優先順位グループが割り当てられるまで続く。他方で、粗優先順位グループは、密優先順位グループがすべて割り当てられた後、残されたリソースを得るために競争を行う。
なお図3の場合に、このCPUの所与の優先順位グループへの割り当ては、非排他的な割り当てである点に留意されたい。それは、所与の優先順位グループへのプロセスのラウンドロビン分散が、別の優先順位グループへのそれと重なる場合に、他の優先順位グループに関連付けられたプロセスも、それらのCPUを共有し得る、という意味においてである。実施例Aを参照すると、優先順位グループ1は、CPU5〜9を割り当てられ、優先順位グループ2は、CPU1〜4を割り当てられ、優先順位グループ3は、CPU0を割り当てられている。しかしながら、これらのCPUは、優先順位グループ4のプロセスによって共有される。優先順位グループ4は、示すように、CPU0でそのプロセスの分散を開始し、CPU1、CPU2、CPU3からCPU9までずっとラウンドロビン形式で進む。特定の優先順位グループに割り当てられたCPUが、他の優先順位グループに関連付けられたプロセスによって共有できないことを保証する唯一の方法は、そのCPUをその特定の優先順位グループ専用にすることである。
本発明の一態様によると、密優先順位グループの順位が、ソートされた一覧において高い序列を有するほど、その密優先順位グループは、粗優先順位グループのプロセスからより遠く離れることになる。これは、粗優先順位グループのプロセスが、ラウンドロビン分散によって、より高い序列の密プロセスに割り当てられたCPUに分散される可能性を低くする。実施例Aに関して言うと、優先順位グループ1は、ソートされた一覧において最高序列であるので(表1参照)、優先順位グループ1は、CPU5、CPU6、CPU7、CPU8、およびCPU9に割り当てられ、優先順位グループ1のプロセスは、CPU5で開始するラウンドロビン形式で分散される。他方、粗優先順位グループ4のプロセスは、CPU0でその分散を開始する。したがって、最高序列の密優先順位グループ1に割り当てられたCPUと粗優先順位グループ4のプロセスとを分離する4つのCPU(CPU1、CPU2、CPU3、およびCPU4)からなるバッファが存在する。本発明者らがより多くのCPUを有するほど、この保護バッファは、より大きくなる。
粗優先順位グループ4が、2つのプロセスしか持たない場合(これは、実施例Aの事例ではないが、議論のために仮定する)、粗優先順位グループ4のこの2つのプロセスは、この場合、CPU0およびCPU1に分散されていることになる。その場合、密優先順位グループ1のプロセスは、粗優先順位グループ4のプロセスとCPU5〜9を共有する必要はない。他方、密優先順位グループ1のプロセスのラウンドロビン分散が、密優先順位グループ1に割り当てられたCPU群を使い果たす(すなわち、CPU5〜9を使い果たし、CPU0への折り返しを開始する)まで、密優先順位グループ1に関連付けられたプロセスは、粗優先順位グループ4のプロセスとCPUを共有する必要はない。換言すると、密優先順位グループ1のプロセスは、CPUの共有が必要になる前に、その使用資格の比率(50%)までCPU5〜9に分散することができる。実施例Aでは、密優先順位グループ1には5つのプロセスしかなく、密優先順位グループ1のプロセスのラウンドロビン分散は、CPU0へ折り返さないので、密優先順位グループ1のプロセスによる共有は回避される。
図3のオペレーションは、本明細書の実施例Aを参照することにより、最もよく理解することができる。実施例Aに示すように、最初に、密共有(rich_share)=0および上限(upper_bound)=9に設定される(ブロック302)。続いて、図3は、ソートされた一覧において最高序列の優先順位グループから開始して、すべての優先順位グループが使い果たされるまで、各優先順位グループを順に巡る(ブロック302、ブロック304、およびブロック306)。考慮中の各優先順位グループについて、図3は、変数「積(product)」および変数「SHARES」を使用して、その優先順位グループが密であるか、粗であるかを判定する。優先順位グループ1〜4の判定は、実施例Aに示されている。実施例Aでは、優先順位グループ1、優先順位グループ2、および優先順位グループ3が密優先順位グループと判定され、優先順位グループ4が粗優先順位グループと判定される。
変数LASTRESOURCE(優先順位グループ#)(最後のリソース)は、ラウンドロビン分散方式に従って優先順位グループのプロセスを分散する開始CPUを追跡する。密優先順位グループ1のLASTRESOURCE(優先順位グループ1)の値の計算、密優先順位グループ2のLASTRESOURCE(優先順位グループ2)の値の計算、および密優先順位グループ3のLASTRESOURCE(優先順位グループ3)の値の計算は、ブロック318およびブロック320ならびに実施例Aに示されている。実施例Aに示すように、密優先順位グループ1は、CPU5でそのラウンドロビン分散を開始し、密優先順位グループ2は、CPU1でそのラウンドロビン分散を開始し、密優先順位グループ3は、CPU0でそのラウンドロビン分散を開始する。
粗優先順位グループ4のLASTRESOURCE(優先順位グループ4)の値の計算は、ブロック312およびブロック320に示されている。実施例Aでは、グループ4は、CPU0を共有する。一般に、粗優先順位グループは、最適適合パラダイムを使用して、残りのCPUに適合することができる。この残りのCPUには、最低順位の密優先順位グループに割り当てられたCPUであって、部分的に利用される任意のCPUが含まれる。したがって、最高序列の粗優先順位グループは、密優先順位グループへの割り当て後に残っているCPU(もしあれば)の中で負荷の最も低いCPUで、そのプロセスのそのラウンドロビン分散を開始するように割り当てられる。そして、次に高順位の粗優先順位グループは、最高序列の粗優先順位グループへの最初の割り当て後に残っているCPUの中で次に負荷の低いCPUで、そのプロセスのそのラウンドロビン分散を開始するように割り当てられる。以下同様である。その結果の分散は、実施例Aの表2に示されている。グループに対する真の最適適合アルゴリズムが、より正確なものとなり得るが、より複雑でもあり、時間がかかる。本発明者らのアプローチに関連した誤差は、十分小さく(最悪の場合で、1つのCPUの半分の作業量)、本発明者らが処理しなければならないグループが多くなるほど、本発明者らの近似は良くなる。また、より悪い場合の誤差は、平均的なCPUによって行われる仕事量に基づいているので、誤差の量も、CPUが追加されるごとに低下する。
図4は、本発明の一実施の形態による、専用CPUを作成する主要なステップを示している。本発明は、過去の分散のアンバランスを是正するために、分散アルゴリズムの前回の実行からの性能データの形のフィードバックデータを使用して、CPUを考慮中の特定の優先順位グループの専用にする必要があるかどうか、および、必要があるならば、どれだけのCPUを専用にする必要があるかを判定することを思い出すべきである(図2参照)。高いレベルでは、図4は、(図2によって決定された)専用CPUを必要とする各優先順位グループについて、1+LASTRESOURCE(優先順位グループ#)であるCPUから開始する専用CPUを指定し、専用CPUの個数が、図1のステップ108および図2で先に確認された専用CPUの所望の個数と等しくなるまで、後続のCPUを、専用CPUとして指定し続ける。優先順位グループに割り当てられたCPU群の最初のCPU(例えば、優先順位グループ1のCPU5、優先順位グループ2のCPU1など)は、共有されることがあるので、最初の専用CPUは、1+LASTRESOURCE(優先順位グループ#)になるように設定される。
したがって、実施例Aに関しては、優先順位グループ1が、分散アルゴリズムの最初の実行からその予想された使用資格を達成しなかったので、図2は、その優先順位グループ1が、アルゴリズムの2番目の実行で、4つの専用CPUを必要とすると判定する。この情報が使用され、2番目の実行において、図4のステップを使用して、CPU6、CPU7、CPU8、およびCPU9が優先順位グループ1専用になる(実施例Aの2番目の実行の議論および実施例Aの表4を参照)。
図5は、本発明の一実施形態による、優先順位グループのプロセスをCPU間に分散する主要なステップを示している。この分散は、図1のDISTRIBUTE BLOCK118と同じである。図5では、すべてのプロセスが処理されるまで(ブロック502、ブロック504、およびブロック506)、プロセスが直線的に処理される。各プロセスについて、関連付けられた優先順位グループに対して次に割り当てられるCPU#だけでなく、その関連付けられた優先順位グループも確認される(ブロック508)。ブロック510は、他の優先順位グループ専用のすべてのCPUを飛ばす。ブロック512は、割り当てを実際に実行し、またブロック514は、考慮中の優先順位グループに対して次に割り当てられるCPUを更新する。ブロック510およびブロック514のモジュラス演算(「mod リソースカウント」)は、すべてのCPUが、ラウンドロビン分散中に使い果たされた場合に、次のCPUが、再び1番目のCPU(すなわちCPU0)になることを保証することに留意されたい。したがって、密優先順位グループ1は、CPU5から開始し、その5つのプロセスをCPU5〜9間に分散する。密優先順位グループ2は、CPU1から開始し、その4つのプロセスをCPU1〜4間に分散する。密優先順位グループ3は、CPU0から開始し、その1つのプロセスをCPU0に分散する。粗優先順位グループ4は、CPU0から開始し、その10個のプロセスをCPU1〜9間にラウンドロビン形式で分散する。
上述したように、スケジューリングのグローバルロックが、図5の分散プロセスの継続期間中に作動する。グローバルロックは、システム性能全体を劣化させる可能性を有するので、できるだけ効率的な分散プロセスを有する必要がある。最善の可能な適合として、すべてのプロセスは、優先順位グループによって分割される必要があるが、優先順位グループは、余裕のない空間および時間のオーバヘッドである。このような場合に、プロセスおよび本発明者らの割り当て計画の全体にわたる第2の工程が、次に必要とされる。このアルゴリズムは、非常に良い適合を1つの工程および最小の時間で与える。アルゴリズムはラウンドロビン技法を組み込むので、本発明者らが、CPUよりも多くのプロセスを各優先順位グループに有するいかなる場合(オーバーコミット(over-committed))にも、本発明者らは、修正されていないラウンドロビンと同じ理想的なバランスを達成する。本発明者らが、全体的にアンダーコミットであり、各優先順位グループが、アルゴリズムの使用資格を達成するのに必要なプロセスと全く同数のプロセス(またはそれより少ないプロセス)を有する、という全く正反対の場合にも、このアルゴリズムは理想に到達する。これら一般的な両極端の中間にあるいかなる点においても、このアルゴリズムは、必要に応じて適合できる良好な妥協点を提供する。
例Bは、粗優先順位グループが含まれていない場合にも、分散アルゴリズムが、良好な結果をもたらすことを示すために本明細書に含まれる。
図6は、本発明の一実施形態による、新しくフォークされたプロセスの処理に伴う主要なステップを示している。従来技術で行われているように、新しくフォークされたプロセスを、親のプロセスと同じCPUに自動的に割り当てる代わりに、本発明は、新しくフォークされたプロセスを、親の優先順位グループのまさに別のプロセスとして取り扱う。そして、本発明は、分散アルゴリズムの前回の実行によって作成された同じ分散ロードマップを使用して、この新しくフォークされたプロセスを同じラウンドロビン形式でCPUにわたって分散する。換言すると、新しくフォークされたプロセスは、優先順位グループのプロセスの一覧に追加され、あたかも最初から存在したかのように分散される。従来技術の場合に、このように、プロセスの増加は、この従来技術の場合よりもCPUにわたって均等に分散され、フォークされたプロセスは、親プロセスを実行しているCPUに単に積み重ねられる。
上述から理解できるように、本発明は、各CPUの純粋なプロセス数に基づく分散を含むものから、各CPUの作業負荷を考慮に入れるものへとパラダイムをシフトする。本発明は、各CPUが、作業分散目的のために1つのCPU分の作業を有することを保証する(図3および説明を参照)。このパラダイムシフトの結果、生のプロセス数および優先順位グループの双方を同時にバランスさせる能力が得られ、性能および公平性の双方の制約が満たされる。真に最適化されたスケジューラに対して、従来技術は、優先順位グループ数*プロセス数*リソース数に比例した計算および空間を必要とする。これは指数関数的に増加する。この断面的な視点へと変更することにより、複雑度を、優先順位グループ数+プロセス数+リソース数により近いものへと根本的に削減している。また、このモデルは、CPUの親和性を促進することにより、性能をも改善し、システムで行われるプロセス移動の総数を削減する。
さらに、本発明は、有利なことに、フィードバックメカニズムを含み、このフィードバックメカニズムにおいて、分散アルゴリズムの前回の実行から得られた性能データ(例えば、個々の優先順位グループの実際の使用資格比率など)が、分散アルゴリズムの現在の実行に使用されて、CPUが優先順位グループ専用になる。これにより、優先順位グループの実際の使用資格比率が、期待使用資格比率に近づけられる。
さらに、本発明は、有利なことに、フィードフォワードメカニズムを含み、このフィードフォワードメカニズムにより、是正措置を介入させることなく、さらに長い期間中、バランスを維持するために、同じ分散ポリシーを、新しくフォークされたプロセスの処理に使用することが可能になる。
相対的な優先順位付け(例えば、使用資格比率など)に基づく分散ロードマップまたはポリシーを作成し、それらの分散ロードマップまたはポリシーに従ってプロセスをリソース(例えばCPUなど)に分散することにより、本発明は、優先順位グループの相対的にスケジューリングしての使用を予想された値にかなり近くで行い続ける。仮に、OSが、介入期間中に、容認できる実際の比率を達成するために補償を行う必要があったとしても、その必要はほとんどない。ほとんど場合、分散のみを介して達成された結果は、容認できる範囲内にすでに存在し得るので、OSが、コストの要する複雑な補償方式(例えばクレジット/デビット方式など)を実行して、公平性を保証することは不要である。したがって、プロセスによるリソースの公平な共有を保証することに伴う全体のオーバヘッドは、ほぼ削減される。
より重要なこととして、本発明は、多数のリソース(例えばCPUなど)および多数の優先順位グループを有するシステムへの高い拡張性を有する。実際に、リソース数および/または優先順位グループ数が増加するにつれて、独創的分散技法を使用して達成される公平性は向上する。例Cは、例Aと比較して、多数の優先順位グループを含む場合に達成される結果を示している。優先順位グループ数が増加すると、結果が改善されていることに留意されたい。先に説明したように、これは、グループが多くなることで、各CPUに対する適合がより良好になり、各CPUが正確に1つのCPUで行うはずの作業を担当する、という事実に起因する。本発明は、リソースの増加、プロセスの増加、および優先順位グループの増加に対して、公平性および性能を改善および維持するように設計され、基本的な場合に対しても、同様に最低限のことを行うので、この発明は従来技術よりも優れている。
[実施例A]
本発明者らは、共有されるリソースの組を代表して、10個のCPUを有するコンピュータシステムを有すると仮定する。
リソースカウント(resource_count)=10
連続番号(sequence number)=1
Figure 0004387174
<最初の実行>
図1(100〜110)を通過する。
SHARES(共有)=100
LOAD[0〜9](負荷)=0
構成が変更されていないものと仮定する。これは、最初の通過であるので、次の繰り返しまで、FEEDBACK(フィードバック)を無視する。
(112)で図3に移動する。
密共有(rich_shares)=0
上限(upperbound)=9
G=グループ1
積(product)=500
100以上のものはどれか(which is >=100)
密共有=500
オフセット(offset)=5
上限=5(したがって、CPU5、6、7、8、9がグループ1の対象になる。)
負荷[5]=100
LASTRESOURCE(1)=5
G=グループ2
積=350
100以上のものはどれか
密共有=850
オフセット=9
上限=1(したがって、CPU1の一部、およびCPU2、3、4のすべてがグループ2の対象になる。)
負荷[1]=50
LASTRESOURCE(2)=1
G=グループ3
積=100
100以上のものはどれか
密共有=950
オフセット=10
上限=0
負荷[0]=50
LASTRESOURCE(3)=0
G=グループ4
積=50
本発明者らの最初の粗優先順位グループ
0から0まで探索し、最少の負荷を有するCPUは、50の負荷を有するCPU0である。負荷[0]=100、選択(choice)=0
LASTRESOURCE(4)=0
グループはこれ以上存在しないので、図1に戻る。
(114)CPUSNEEDED(必要とされるCPU)は、すべてゼロであるので、本発明者らは、CREATE DEDICATED(専用CPU作成)を飛ばすことができる。
(118)DISTRIBUTION(分散)は、表2に示される通りである。
Figure 0004387174
たとえ分離キューを有していても、スケジューリングアルゴリズムの最も単純なもの、例えば、OSが、単に各CPUの各ローカルキューを検査し、その優先順位グループの使用資格に比例した各プロセス時間を与えるようなもの、を使用する場合には、使用資格は表3に示すように達成される。CPU9に関して、例えば、優先順位グループ1のプロセスに認められる時間量は、優先順位4のプロセスに認められる時間量の10倍である(優先順位グループ1の50%の使用資格に対して、優先順位グループ4の5%の使用資格)。
Figure 0004387174
<2回目の実行>
グループ1は、その使用資格を満たさなかったので、図2は、CPUSNEEDED(1)=4を作成する。一方、それ以外のすべてのグループのCPUSNEEDEDは、0のままである。図3から、LASTRESOURCE配列は、以前と同じ結果になる。しかしながら、本発明者らは、LASTRESOURCE(1)+1で開始する4つのCPUを必要とするので,CPU6、CPU7、CPU8およびCPU9が、図4のオペレーションによるDEDICATED[6〜9]=1の設定により、グループ1専用になる。
次のDISTRIBUTION(分散)(118)が達成される。
Figure 0004387174
スケジューリングの最も基本的なアルゴリズムを使用すると、2回目のスケジューリングから達成される比率は、次のようになる。
Figure 0004387174
これは、OSからの積極的でコストを要する介入を行うことなく、より一層近づいている。実際の近づけるものを持ってくる必要がある場合、それは、細かなポリシーの部分に対して最小の努力を追加するにより行うことができる。
[実施例B]
実施例Bは、すべての優先順位グループを密にできることを示す例である。再び、共有される10個のCPUが存在するものと仮定する。
Figure 0004387174
アンダーコミット、すなわちCPUよりもプロセスが少ない一般的な場合を仮定すると、現在、最大のグループは、自己用にブロックオフされる最大の余裕を暗に有する。一方、過負荷の場合、すなわちCPUよりもプロセスが多い場合には、分散は、最初の少数のCPUが過負荷になる傾向がほぼ削減される点を除いて、単純なラウンドロビンと同様である。
[実施例C]
実施例Cでは、多数の優先順位グループが存在し、それらの多くは粗である。
Figure 0004387174
この場合も、総SHARES=100
最初の3つのグループは、すべて密である。
グループ1はCPU7から開始し、CPU8およびCPU9をもその範囲に有する。負荷[7]=100
グループ2はCPU4から開始し、CPU5およびCPU6をも有する。負荷[4]=50
グループ3はCPU3から開始し、CPU4の他の半分を取得する。負荷[3]=100
これは、CPU0、CPU1およびCPU2を、7つの粗優先順位グループが分割するように残している。グループ4、グループ5およびグループ6は、それぞれ、最初の未使用のCPUを取得する。
LASTRESOURCE[4]=0、負荷[0]=80
LASTRESOURCE[5]=1、負荷[1]=70
LASTRESOURCE[6]=0、負荷[2]=50
次に、本発明者らは共有を開始する。
LASTRESOURCE[7]=2、負荷[2]=50+40=90
LASTRESOURCE[8]=1、負荷[1]=70+30=100
LASTRESOURCE[9]=0、負荷[1]=80+20=100
LASTRESOURCE[10]=2、負荷[2]=90+10=100
したがって、すべてのCPUが、正確に1つのCPU分の実行作業を有することが分かる。このようなことは、必ずしも当てはまるとは限らないが、このアルゴリズムは、グループが多くなりCPUが多くなるほど、より良く機能する傾向を有する。
単純なOSの分散によって達成される実際の使用資格は、表8に示される。
Figure 0004387174
この発明を、いくつかの好ましい実施の形態の観点から説明してきたが、この発明の範囲内に入る変更形態、置換形態および均等物が存在する。例えば、CPUが、本明細書の例で例示的なリソースとして使用されてきたが、本発明は、任意のOSキューまたはユーザ空間キューに容易に適用される。また、本発明の方法および装置を実施する多くの代替的な方法が存在することにも留意すべきである。したがって、添付の特許請求は、本発明の真の精神および範囲内に入るようなすべての変更形態、置換形態および均等物を含むものとして解釈されることが意図される。
本発明の一実施形態による、新規の分散アルゴリズムの主要なステップ。 本発明の一実施形態による、優先順位グループの実際の使用資格をその期待使用資格に近づけるにあたり、必要とされる専用CPUの個数を決定する主要なステップ。 本発明の一実施形態による、優先順位グループが、そのプロセスのそのラウンドロビン分散を開始することができる開始CPUを各優先順位グループについて確認する主要なステップ。 本発明の一実施形態による、専用CPUを作成する主要なステップ。 本発明の一実施形態による、優先順位グループのプロセスをCPU間に分散する主要なステップ。 本発明の一実施形態による、新しくフォークされたプロセスの処理に伴う主要なステップ。

Claims (10)

  1. 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散するコンピュータで実施される方法であって、
    前記複数の優先順位グループの第1の優先順位グループが、前記複数のリソースの少なくとも1つの全部について使用資格を有する場合には、該第1の優先順位グループを密であるとみなし、前記複数の優先順位グループの前記第1の優先順位グループが、前記複数のリソースの前記1つの全部についての使用資格よりも少ない使用資格を有する場合には、該第1の優先順位グループを粗であるとみなすことにより、前記複数の優先順位グループの第1の優先順位グループが密であるかどうかを確認することと、
    前記第1の優先順位グループが密であるとみなされる場合には、第1のコンピュータで実施される手法に従って、前記第1の優先順位グループのプロセスを、前記複数のリソースの少なくとも第1のサブセット間に分散すること、
    前記第1の優先順位グループが粗であるとみなされる場合には、前記第1のコンピュータで実施される手法とは異なる第2のコンピュータで実施される手法に従って、前記第1の優先順位グループのプロセスを、前記複数のリソースの少なくとも第2のサブセット間に分散すること、
    を含むコンピュータで実施される方法。
  2. 前記確認することに先立って、前記複数のリソースに関する相対的な優先順位に基づいて前記複数の優先順位グループをソートすることをさらに含み、それによって、前記確認することは、最高序列の優先順位グループから開始する優先序列に基づいて、前記複数の優先順位グループのそれぞれに対して実行される、
    請求項1に記載のコンピュータで実施される方法。
  3. 前記第1のコンピュータで実施される方法は、
    前記複数のリソースの中の第1のリソースのグループを確認することを含み、該第1のリソースのグループのサイズは、前記複数の優先順位グループの中の前記第1の優先順位グループの相対的な優先順位に対応し、
    前記第1のリソースのグループを前記第1の優先順位グループに割り当てることを含み、前記第1のリソースのグループは、第1の開始リソースを含み、それによって、前記第1の優先順位グループのプロセスのラウンドロビン分散が前記第1の開始リソースから開始する、請求項2に記載のコンピュータで実施される方法。
  4. 前記複数の優先順位グループの前記第1の優先順位グループが密であるかどうかを確認することの後に、前記複数の優先順位グループの第2の優先順位グループが密であるかどうかを確認することを含み、前記複数の優先順位グループの前記第2の優先順位グループが、前記複数のリソースの少なくとも前記1つの全部について使用資格を有する場合には、該第2の優先順位グループは、密であるとみなされ、前記複数の優先順位グループの前記第2の優先順位グループが、前記複数のリソースの前記1つの全部についての使用資格よりも少ない使用資格を有する場合には、該第2の優先順位グループは、粗であるとみなされ、該第2の優先順位グループは、前記第1の優先順位グループに対して低い序列の優先順位を有し、
    前記第2の優先順位グループが密であるとみなされる場合には、以下のaおよびbのステップ、すなわち
    a)前記第1のリソースのグループとは異なる、前記複数のリソースの中の第2のリソースのグループを確認すること。該第2のリソースのグループのサイズは、前記複数の優先順位グループの中の前記第2の優先順位グループの相対的な優先順位に対応する
    b)前記第2のリソースのグループを前記第2の優先順位グループに割り当てること。前記第2のリソースのグループは、前記第1の開始リソースとは異なる第2の開始リソースを含み、それによって、前記第2の優先順位グループのプロセスのラウンドロビン分散が前記第2の開始リソースから開始する
    のステップを実行することをさらに含む請求項3に記載のコンピュータで実施される方法。
  5. 前記第1の優先順位グループの前記プロセスの前記ラウンドロビン分散、および前記第2の優先順位グループの前記プロセスの前記ラウンドロビン分散は、前記第1の開始リソースから前記第2の開始リソースに向かう方向に沿った分散方向で進行し、前記第2のリソースのグループは、前記分散方向に関して前記第1のリソースのグループよりも先行する、請求項4に記載のコンピュータで実施される方法。
  6. 前記複数のリソースは、前記第1のリソースのグループのリソースでもなく、前記第2のリソースのグループのリソースでもない所与のリソースを含み、該所与のリソースは、前記分散方向に関して、前記第2のリソースのグループおよび前記第1のリソースのグループよりも先行し、前記第1の優先順位グループの前記プロセスの前記ラウンドロビン分散は、前記分散方向に沿って、かつ前記第1の開始リソースから開始する第1のループに沿って進行し、前記所与のリソースを通り、次に、前記第2の開始リソースを通り、前記第2の優先順位グループの前記プロセスの前記ラウンドロビン分散は、前記分散方向に沿って、かつ前記第2の開始リソースから開始する第2のループに沿って進行し、前記第1の開始リソースを通り、次に、前記所与のリソースを通る、請求項5に記載のコンピュータで実施される方法。
  7. 前記第1の優先順位グループのプロセスから発生した発生プロセスが、前記第1の優先順位グループのプロセスの一覧の最後に追加され、前記第1のコンピュータで実施される手法に従って順に実行される、請求項6に記載のコンピュータで実施される方法。
  8. 前記第2の複数のリソースの前記プロセスの前記ラウンドロビン分散は、前記第1の優先順位グループ専用のリソースを飛ばし、前記第1の優先順位グループ専用の該リソースは、前記第1のリソースのグループを前記第1の優先順位グループへ割り当てることの前に達成される前記第1の優先順位グループのプロセスによる性能に関する性能データから確認される、請求項6に記載のコンピュータで実施される方法。
  9. 前記複数の優先順位グループの前記第2の優先順位グループが密であるかどうかを確認することの後に、前記複数の優先順位グループの第3の優先順位グループが密であるかどうかを確認することを含み、前記複数の優先順位グループの前記第3の優先順位グループが、前記複数のリソースの少なくとも前記1つの全部について使用資格を有する場合には、該第3の優先順位グループは、密であるとみなされ、前記複数の優先順位グループの前記第3の優先順位グループが、前記複数のリソースの前記1つの全部についての使用資格よりも少ない使用資格を有する場合には、該第3の優先順位グループは、粗であるとみなされ、該第3の優先順位グループは、前記第2の優先順位グループおよび前記第1の優先順位グループに対して低い序列の優先順位を有し、
    前記第3の優先順位グループが粗であるとみなされる場合には、以下のcおよびdのステップ、すなわち
    c)前記複数のリソースのうちの残っているリソースの中から最も負荷の低いリソースを確認すること。該残っているリソースは、前記第3の優先順位グループに対してより高い序列の優先順位を有する優先順位グループに割り当てられていないリソースを表す
    d)前記最も負荷の低いリソースを前記第3の優先順位グループに割り当てること。前記最も負荷の低いリソースは、前記分散方向に関して、前記第1のリソースのグループおよび前記第2のリソースのグループよりも先行し、それによって、前記第3の優先順位グループのプロセスのラウンドロビン分散が、前記分散方向に沿って、かつ前記最も負荷の低いリソースから開始するループに沿って進行し、前記第2の開始リソースを通り、続いて、前記第1の開始リソースを通る
    のステップを実行することをさらに含む請求項6に記載のコンピュータで実施される方法。
  10. 前記相対的な優先順位は、前記複数のリソースに関する使用資格比率によって指定される、請求項3に記載のコンピュータで実施される方法。
JP2003413411A 2002-12-13 2003-12-11 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法 Expired - Lifetime JP4387174B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/318,822 US7360219B2 (en) 2002-12-13 2002-12-13 Systems and methods for facilitating fair and efficient scheduling of processes among multiple resources in a computer system

Publications (2)

Publication Number Publication Date
JP2004199674A JP2004199674A (ja) 2004-07-15
JP4387174B2 true JP4387174B2 (ja) 2009-12-16

Family

ID=32506471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003413411A Expired - Lifetime JP4387174B2 (ja) 2002-12-13 2003-12-11 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法

Country Status (2)

Country Link
US (1) US7360219B2 (ja)
JP (1) JP4387174B2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349904B2 (en) * 2004-09-02 2008-03-25 International Business Machines Corporation Method and apparatus for managing access to set of converged entitlement resources
JP4606142B2 (ja) * 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US7551617B2 (en) 2005-02-08 2009-06-23 Cisco Technology, Inc. Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US7561589B2 (en) * 2005-02-23 2009-07-14 Cisco Technology, Inc Virtual address storage which may be of particular use in generating fragmented packets
US7606250B2 (en) * 2005-04-05 2009-10-20 Cisco Technology, Inc. Assigning resources to items such as processing contexts for processing packets
US8214836B1 (en) 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US7984447B1 (en) * 2005-05-13 2011-07-19 Oracle America, Inc. Method and apparatus for balancing project shares within job assignment and scheduling
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US7908606B2 (en) * 2005-05-20 2011-03-15 Unisys Corporation Usage metering system
KR100749818B1 (ko) * 2005-09-23 2007-08-17 한국전자통신연구원 Rfid 시스템에 있어서의 멀티 태그 인식 장치 및 그방법
US7739426B1 (en) 2005-10-31 2010-06-15 Cisco Technology, Inc. Descriptor transfer logic
US8458711B2 (en) * 2006-09-25 2013-06-04 Intel Corporation Quality of service implementation for platform resources
US8667500B1 (en) * 2006-10-17 2014-03-04 Vmware, Inc. Use of dynamic entitlement and adaptive threshold for cluster process balancing
JP4756553B2 (ja) * 2006-12-12 2011-08-24 株式会社ソニー・コンピュータエンタテインメント 分散処理方法、オペレーティングシステムおよびマルチプロセッサシステム
US8286173B2 (en) * 2007-03-23 2012-10-09 Oracle America, Inc. Methods and apparatus for window-based fair priority scheduling
US8046766B2 (en) 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
JP2009020692A (ja) * 2007-07-11 2009-01-29 Toshiba Corp タスク管理装置、タスク管理方法及びタスク管理プログラム
JP2009217455A (ja) * 2008-03-10 2009-09-24 Fujitsu Ltd 情報処理装置、情報処理プログラム及び方法
US8547910B2 (en) 2008-06-26 2013-10-01 Qualcomm Incorporated Fair resource sharing in wireless communications
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
US10620988B2 (en) 2010-12-16 2020-04-14 Et International, Inc. Distributed computing architecture
US9026630B2 (en) 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
US8856784B2 (en) * 2011-06-14 2014-10-07 Vmware, Inc. Decentralized management of virtualized hosts
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9465657B2 (en) * 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9170843B2 (en) * 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US8813085B2 (en) * 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
WO2013191603A1 (en) * 2012-06-20 2013-12-27 Telefonaktiebolaget L M Ericsson (Publ) Methods for scheduling communication resources to a wireless device and scheduling device
GB2523568B (en) * 2014-02-27 2018-04-18 Canon Kk Method for processing requests and server device processing requests
US11204871B2 (en) * 2015-06-30 2021-12-21 Advanced Micro Devices, Inc. System performance management using prioritized compute units
US10079773B2 (en) * 2015-09-29 2018-09-18 International Business Machines Corporation Hierarchical fairshare of multi-dimensional resources
US10834725B2 (en) 2016-07-26 2020-11-10 At&T Intellectual Property I, L.P. Radio resource pooling associated with communication devices
US11579921B2 (en) * 2018-08-29 2023-02-14 Alibaba Group Holding Limited Method and system for performing parallel computations to generate multiple output feature maps

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318182A (en) * 1974-04-19 1982-03-02 Honeywell Information Systems Inc. Deadlock detection and prevention mechanism for a computer system
JPH09231143A (ja) * 1996-02-23 1997-09-05 Sony Corp 通信制御方法
US7020878B1 (en) * 1998-08-28 2006-03-28 Oracle International Corporation System for allocating resource using the weight that represents a limitation on number of allowance active sessions associated with each resource consumer group
JP2002057699A (ja) * 2000-08-11 2002-02-22 Nec Corp パケット伝送方式、パケット伝送方法及び記録媒体
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
US7036123B2 (en) * 2001-04-25 2006-04-25 Sun Microsystems, Inc. System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group

Also Published As

Publication number Publication date
US20040117790A1 (en) 2004-06-17
US7360219B2 (en) 2008-04-15
JP2004199674A (ja) 2004-07-15

Similar Documents

Publication Publication Date Title
JP4387174B2 (ja) 複数の優先順位グループに関連付けられたプロセスを複数のリソース間に分散する方法
US20050081208A1 (en) Framework for pluggable schedulers
US9959141B2 (en) System and method of providing a self-optimizing reservation in space of compute resources
Zahorjan et al. Processor scheduling in shared memory multiprocessors
Fan et al. Scheduling beyond CPUs for HPC
JP5343523B2 (ja) ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
EP1253516A2 (en) Apparatus and method for scheduling processes on a fair share basis
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
JP5684629B2 (ja) ジョブ管理システム及びジョブ管理方法
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
Yao et al. New scheduling algorithms for improving performance and resource utilization in hadoop YARN clusters
JP2008226023A (ja) ジョブ割当装置、及びジョブ割当方法
Xu et al. Prophet: Scheduling executors with time-varying resource demands on data-parallel computation frameworks
CN116010064A (zh) Dag作业调度和集群管理的方法、系统及装置
Caron et al. Multi-criteria malleable task management for hybrid-cloud platforms
Ahmad et al. A novel dynamic priority based job scheduling approach for cloud environment
Lin et al. Joint deadline-constrained and influence-aware design for allocating MapReduce jobs in cloud computing systems
CN115629854A (zh) 分布式任务调度方法、系统、电子设备和存储介质
Wang et al. Cooperative job scheduling and data allocation in data-intensive parallel computing clusters
Sekaran et al. SIQ algorithm for efficient load balancing in cloud
Thai et al. Algorithms for optimising heterogeneous Cloud virtual machine clusters
EP1630671A1 (en) Framework for pluggable schedulers
JPH07234847A (ja) ジョブのスケジューリング方法
CN112306670A (zh) 一种Docker虚拟化场景下的服务器集群优化方法
Oladoja et al. A Thresholdbased Tournament Resource Allocation in Cloud Computing Environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090930

R150 Certificate of patent or registration of utility model

Ref document number: 4387174

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131009

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250