[go: up one dir, main page]

JP2004030663A - ワークロード・マネージャをシステム・タスク・スケジューラと統合する装置および方法 - Google Patents

ワークロード・マネージャをシステム・タスク・スケジューラと統合する装置および方法 Download PDF

Info

Publication number
JP2004030663A
JP2004030663A JP2003174083A JP2003174083A JP2004030663A JP 2004030663 A JP2004030663 A JP 2004030663A JP 2003174083 A JP2003174083 A JP 2003174083A JP 2003174083 A JP2003174083 A JP 2003174083A JP 2004030663 A JP2004030663 A JP 2004030663A
Authority
JP
Japan
Prior art keywords
threads
class
thread
band
priority
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.)
Granted
Application number
JP2003174083A
Other languages
English (en)
Other versions
JP3887353B2 (ja
Inventor
Larry B Brenner
ラリー・ビー・ブレナー
Dean J Burdick
ディーン・ジェイ・バーディック
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004030663A publication Critical patent/JP2004030663A/ja
Application granted granted Critical
Publication of JP3887353B2 publication Critical patent/JP3887353B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

【課題】システム・タスク・スケジューラをワークロード・マネージャと統合するための方法、システム、および装置を提供する。
【解決手段】
スケジューラはスレッドに初期優先順位を割り当て、実行キューに配置する。ワークロード・マネージャはシステム管理者が設定するポリシー(例えば、異なるクラスのスレッドには異る割合のCPU時間を割当てる)を実施する。もし複数クラスのスレッドが各実行キュー間に可能な限り均等に収まるならこのポリシーは達成可である。そのためスレッドはクラス毎に整理される。各クラスは使用ポリシー通りに優先順位が割振られ、これはスレッドがどの優先順位のバンドに収まるかの判断と同時に、クラス内の各スレッドに割当てるスケジューリング優先順位の修正に使われる。あるキューのあるバンドのスレッド数が別のキューの同バンドのスレッド数より規定数以上多いかが定期的に判断される。多い時はシステムは負荷不均衡とみなされ、多くない時はそのバンドの1スレッドをスレッド数が多い方のキューから少ない方のキューへと移動させ、システムを負荷均衡にする。
【選択図】 図9

Description

【0001】
【発明の属する技術分野】
本発明はコンピュータ・システムにおけるリソース(資源)割当てに関するものである。  より詳細には、本発明は、システム管理者によって設定されたある制約や使用ポリシー(方策)に基いてコンピュータ・システムのリソースの負荷均衡をとるための方法および装置に関するものである。
【0002】
【従来の技術】
いかなる処理時においても、コンピュータ・システムのプロセッサあるいはCPUにおいて実行されることを待つユーザー・プロセスやスレッドが重複しているという可能性はある。 その際、システムのCPUを最もよく利用するためには、プロセスやスレッドを実行のために適切にキュー(待ち行列)に入れる働きをする効果的な機構を用いることが必要となる。 このタスクを完遂するためにほとんどのコンピュータ・システムで使われている機構がスケジューラである。
【0003】
ここでプロセスはプログラムであることに注意すべきである。 プログラムが実行しているとき、それは概ねタスクとも呼ばれる。 ほとんどのオペレーティング・システムにおいては、一つのタスクと一つのプログラムとの間には一対一の関係がある。 しかしながら、いくつかのオペレーティング・システムでは一つのプログラムを複数のタスクやスレッドに分割することを認めている。 このようなシステムはマルチ・スレッド化オペレーティング・システムと呼ばれている。 話を簡単にするために、以後スレッドとプロセスは置き換えて使える言葉として取り扱うものとする。
【0004】
スケジューラとは、コンピュータ・システムの共有リソース(例えば、CPU)の使用の調整をつかさどるソフトウェア・プログラムである。  スケジューラはそれ(スケジューリング)を行う際に普通、ファーストイン・ファーストアウト(即ち、FIFO)、ラウンド・ロビン乃至はラストイン・ファーストアウト(LIFO)、プライオリティ(優先順位)・キュー、ツリー(木探索)などのアルゴリズム、あるいは複数のアルゴリズムの組み合わせ、といったアルゴリズムを用いている。  基本的に、もし、あるコンピュータ・システムが3つのCPU(CPU1、CPU2、およびCPU3)を持っているなら、各々のCPUは適宜、処理待ちキューあるいは実行キューを持つことになる。 もし、プロセスを実行キューに割当てるのに使われるアルゴリズムがラウンド・ロビン・アルゴリズムであり、かつ最後に作成されたプロセスがCPU2用のキューに割当てられたのだとしたら、次に作成されたプロセスはCPU3のキューに割当てられることになる。 その次に作成されたプロセスは、今度はCPU1用のキューに割当てられることになり、以下同様である。  従って、スケジューラは各々のプロセスにコンピュータ・システムのリソースを公平に分配するように設計されている。
【0005】
時として、システム管理者は、異なったプロセスは異なったリソースの配分を受け取ることを望む場合がある。 その場合、ワークロード・マネージャ(WLM)がスケジューラと併せて使われる。 WLMは、プロセスがコンピュータ・システムのリソースを使うかもしれない時間の割合を表す数字を、各々のプロセスに対して割当てる。 あるプロセスがそのリソースを使う度に、その割当てられた数は減らされる。 このしくみにより、より低い数を割当てられたプロセスが、それにもかかわらずそのリソースを使うことを可能にしている。
【0006】
ある場合には、この考え方はプロセスのクラスにも応用される。 1クラスのプロセスとは、この場合、ユーザーのある特定の集まりに属するプロセスの集まりといえる。  従って、ちょうどプロセスに数字が割当てられるのと同じようにして、あるクラスのプロセスがリソースを使っている時、そのクラスに割振られる数字は減らされる。 この場合もやはり、このしくみは、より低い数字を割振られたクラスのプロセスがリソースを使用する機会を持つことを確実にするために利用される。
【0007】
【発明が解決しようとする課題】
しかしながら、問題点は何かというと、時として、例えばそれぞれ異なった数字を割当てられた2つのクラスのプロセスを持った2頭プロセッサ・システムが、最終的には、一方のプロセッサが一方のクラスのプロセスをそのキューに持ち、その一方で他方のプロセッサは他方のクラスのプロセスをそのキューに持ってしまう可能性があることである。  これが起るとき、そのコンピュータ・システムの2つのプロセッサは、それらが本当ならでき得る程度には、あるいはシステム管理者が意図しているほどは、効率的に利用されない可能性がある。  特に、一方の実行キューにあるプロセスは、許容量以上の処理時間を割り与えられることになる。
【0008】
従って、システム管理者が制定したプロセッサ使用ポリシーに従っていることを保証するために、システムの各々のキューが、それぞれに異なった数字を割当てられた数クラスのプロセスを常に混在して含むことを確実にできるシステム、装置、そして方法が必要となる。
【0009】
【課題を解決するための手段】
本発明はシステム・タスク・スケジューラをワークロード・マネージャと統合させるための方法、システム、そして装置を提供するものである。 スケジューラはスレッドに初期値の優先順位を割当てそのスレッドを実行キューに配置するために用いられ、またワークロード・マネージャはシステム管理者が設定したポリシーを実行するために用いられる。 それらのポリシーの一つは、異なったクラスのスレッドにはシステムのCPUタイムを異なった配分比率で与えることであることもある。 このポリシーは、もし複数のクラスからのスレッドができる限り均等に実行キューの中に広がれば、確実に達成することができる。
【0010】
ある特定の実施例においては、スレッドはクラスごとに整理されており、各々のクラスは関連する一群のスレッドから構成されている。 各々のクラスには使用ポリシーに従って優先順位が付けられている。(クラス優先順位) この優先順位は、クラス内の各スレッドに割当てられたスケジューリングの優先順位を修正するのに使われる。 クラス優先順位の値に従って、クラス、またそれ故そのクラス内の各スレッドは、複数ある優先順位のバンド(幅)あるいはレンジ(範囲)の一つに収まることもある。 本発明では、ある実行キューのあるバンドに属するスレッドの数が、別の実行キューのその(同じ)バンドに属するスレッドの数を規定の数以上上回っているかどうかを、定期的に判断している。 もしそう(上回っている)ならば、そのシステムは負荷不均衡であるとみなされる。 本発明では更に、そのバンドに属するひとつのスレッドをより多数のスレッドを持った実行キューから、より少数のスレッドを持った実行キューへ移動させることにより、負荷均衡化を図っている。 もし最も優先順位の高いバンドにおいてシステムが負荷均衡している場合は、本発明はそのシステムがその次に優先順位の高いバンドにおいて負荷均衡になっているかを調べようとし、以下同様に繰り返す。
【0011】
【発明の実施の形態】
以下、図を参照して説明を行う。  図1は本発明を実施することができるデータ処理システムのネットワークを図式で表したものである。 ネットワーク・データ処理システム100は本発明を実施することができるコンピュータのネットワークである。 ネットワーク・データ処理システム100はネットワーク102を含んでおり、これはネットワーク・データ処理システム100内で相互に接続された各種デバイスと各種コンピュータとの間の通信リンクを提供するために使われる媒体である。 ネットワーク102には、ワイヤー、ワイヤレス通信リンク、あるいは光ファイバー・ケーブルといった接続(部分)が含まれることもある。
【0012】
図示された例において、サーバー104はストレージ(記憶)・ユニット106とともにネットワーク102に繋がっている。 これに加え、クライアント108、110、および112がネットワーク102に繋がっている。 これらのクライアント108、110、および112は、例えばパーソナル・コンピュータでもよく、ネットワーク・コンピュータでもよい。 図示された例においては、サーバー104は、ブート・ファイル、オペレーティング・システム・イメージ、アプリケーションといったデータをクライアント108、110、および112に提供する。 クライアント108、110、および112はサーバー104に対するクライアントである。  ネットワーク・データ処理システム100は、図示されていない更なるサーバー、クライアント、およびその他のデバイスを含むこともある。 図示された例において、ネットワーク・データ処理システム100は、お互いの通信にTCP/IPプロトコル一式を使うネットワークおよびゲートウェイの世界中での集りを代表するネットワーク102を持ったインターネットである。  インターネットの心臓部には、データやメッセージの経路を決める無数の商用、官庁、教育用、その他のコンピュータ・システムからなる主だったノードやホスト・コンピュータの間にまたがる高速データ通信線のバック・ボーン(基幹)が走っている。  勿論、ネットワーク・データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、あるいはワイド・エリア・ネットワーク(WAN)といった、いくつかの異なったタイプのネットワークとして実現することもある。  図1は一例を表したもので、本発明をアーキテクチャー的に限定するものではない。
【0013】
図2は、図1のサーバー104のようなサーバーとして実現可能なデータ処理システムのブロック図を、本発明の実施の形態に基いて表したものである。  データ処理システム200は、システム・バス206に繋がった複数のプロセッサ202および204を備えた対称型マルチプロセッサ(SMP)であることもある。 反対にシングル・プロセッサ・システムが採用されることもある。  また、システム・バス206にはメモリ・コントローラ/キャッシュ208も繋がっており、これはローカル・メモリ209に対するインターフェースを提供する。  I/Oバス・ブリッジ210はシステム・バス206に繋がっており、I/Oバス212に対するインターフェースを提供する。  メモリ・コントローラ/キャッシュ206と I/Oバス・ブリッジ210は、図示されているように1つにすることもある。
【0014】
I/Oバス212に繋がったペリフェラル・コンポーネント・インターコネクト(PCI)バス・ブリッジ214は、PCIローカル・バス216に対するインターフェースを提供する。 いくつかのモデムをPCIローカル・バス216に接続することもある。 典型的なPCIバスの実装では、4つのPCI拡張用スロットないしは拡張用コネクタを備えている。  図1のネットワーク・コンピュータ108、110、および112に対する通信リンクは、拡張ボードを介してPCIローカル・バス216に接続されたモデム218およびネットワーク・アダプタ220を通して提供されることもある。
【0015】
追加のPCIバス・ブリッジ222および224は、追加のPCIローカル・バス226および228のためのインターフェースを提供し、それにより追加のモデムやネットワーク・アダプタを扱うことが可能となる。 このように、データ処理システム200は複数のネットワーク・コンピュータの接続を許可している。 メモリ・マップト(メモリ空間に配置された)・グラフィクス・アダプタ230およびハード・ディスク232もまた、図示したようにI/Oローカル・バス212に直接または間接に接続されることがある。
【0016】
当該技術分野における通常の技術があれば、図2に示したハードウェアが異なっていても良いと十分理解できるであろう。  例えば、光ディスク・デバイスなどといった他の周辺デバイスもまた、図示されたハードウェアに加えてあるいはそれに代えて使われる可能性がある。 図示された例は本発明に関するアーキテクチャ上の制限を暗示するものではない。
【0017】
図2に示したデータ処理システムは、例えば、ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ(IBM)コーポレーションの製品で、アドバンスト・インタラクティブ・エグゼクティブ(AIX)オペレーティング・システムやLINUXオペレーティング・システムで動く、IBM e−サーバー pシリーズ・システムであったりする。
【0018】
次に図3は、本発明が実施可能なデータ処理システムを表したブロック図を示している。  データ処理システム300はクライアント・コンピュータの一例である。  データ処理システム300はペリフェラル・コンポーネント・インターコネクト(PCI)ローカル・バス・アーキテクチャを採用している。  図示された例ではPCIバスを採用しているが、アクセラレーテッド・グラフィクス・ポート(AGP)やインダストリ・スタンダード・アーキテクチャ(ISA)といった他のバス・アーキテクチャを採用してもよい。  プロセッサ302およびメイン・メモリ304はPCIブリッジ308を介してPCIローカル・バス306に接続されている。  PCIブリッジ308はまた、プロセッサ302用の統合メモリ・コントローラおよびキャッシュ・メモリをも含むことがある。  PCIローカル・バス306への追加の接続は直接の部品の相互接続によってや拡張ボードを通して行われることもある。 図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ310、SCSIホスト・バス・アダプタ312、および拡張バス・インターフェース314が、直接の部品接続でPCIローカル・バスに接続されている。  これと対照的に、オーディオ・アダプタ316、グラフィクス・アダプタ318、およびオーディオ/ビデオ・アダプタ319は、拡張用スロットに挿入された拡張ボードによってPCIローカル・バス306に接続されている。  拡張バス・インターフェース314はキーボード兼マウス・アダプタ320、モデム322、および追加のメモリ324のための接続を提供する。  スモール・コンピュータ・システム・インターフェース(SCSI)ホスト・バス・アダプタ312はハード・ディスク・ドライブ326、テープ・ドライブ328、およびCD−ROMドライブ330のための接続を提供する。  典型的なPCIローカル・バスの実装では3つないしは4つのPCI拡張用スロットあるいは拡張用コネクタを備えることになる。
【0019】
オペレーティング・システムはプロセッサ302の上で動作し、図3中のデータ処理システム300にある各種部品の制御を調整したり提供したりするのに用いられる。 そのオペレーティング・システムは、マイクロソフト・コーポレーションから入手可能なウインドウズ2000といった市販のオペレーティング・システムであってもよい。  Javaなどのオブジェクト指向プログラミング・システムもオペレーティング・システムとともに動き、データ処理システム300上で実行しているJavaプログラムあるいはJavaアプリケーションからオペレーティング・システムへのコールを提供している。
「Java」はサン・マイクロシステムズInc.の商標である。  オペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションやプログラムのための命令は、ハード・ディスク・ドライブ326などの記憶デバイス上に位置しており、プロセッサ302によって実行するためにメイン・メモリ304にロードされることもある。
【0020】
当該技術分野における通常の技術があれば、図3のハードウェアが具現化次第で変わる可能性があることを十分理解できる。  フラッシュROM(あるいは同等の不揮発性メモリ)や光ディスク・ドライブなどといった、その他の内部ハードウェアや周辺のデバイスが、図3に示したハードウェアに加えて、あるいはこれらに代えて、使われることがある。  また、本発明の処理過程は、マルチプロセッサ・データ処理システムにも適用されることがある。
【0021】
今一つの例として、データ処理システム300は、データ処理システム300が何らかのタイプのネットワーク通信インターフェースを構成しているにしろいないにしろ、何らかのタイプのネットワーク通信インターフェースに依存しないでもブートできるように構成されたスタンドアロン(単独稼動)・システムであることもある。  更なる例として、データ処理システム300はパーソナル・デジタル・アシスタント(PDA)デバイスであり、オペレーティング・システムのファイルまたはユーザー作成データの保持のための不揮発性メモリを提供するためのROMまたはフラッシュROMで構成されるもの、であることもある。
【0022】
図3に示す例および上記の例は、アーキテクチャ上の制限を暗示するものではない。  例えば、データ処理システム300は、PDAの形態をとることに加えて、ノートブック・コンピュータあるいはハンドヘルド・コンピュータであることもある。  データ処理システム300はまた、キオスクあるいはWeb端末であることもある。
【0023】
本発明は、マルチプロセッサ・システムの各々の実行キューが異なったクラスのスレッドに属するプロセスを含むことを確認し、各々のクラスは異なった優先順位の数字を持っており、これにより制定された使用ポリシーに準拠することを確認する装置、システム、そして方法を提供するものである。 本発明は図1のクライアント・システム108、110、および112に、あるいはサーバー104に、あるいはサーバー104とクライアント108、110、および112の両方に、限定したのであってもよい。  それ故、本発明はコンピュータ・システムで使われるいかなる記憶デバイス(即ち、フロッピ・ディスク、コンパクト・ディスク、ハード・ディスク、ROM、RAM、など)上にでも存在する可能性がある。
【0024】
図4および図5はは、システム管理者が考案することがあるリソース使用ポリシーを説明したものである。  図4に示したように、そのリソース使用ポリシーはある大学の3つの学科(即ち、物理学、化学、および数学)で共有されるべきコンピュータ・システム(例えば、サーバー)のために開発されている。  そのポリシーによれば、物理学科400のユーザー402はそのコンピュータ・システムのCPU時間の60%を与えられるべきで、化学科410のユーザー412はそのコンピュータ・システムのCPU時間の30%を与えられるべきで、そして数学科のユーザー422は10%を与えられるべきである。  各々のグループのスレッドを他から区別するために、それらはクラスとして識別子を付されている。  具体的には、 物理学科のユーザーに属するスレッドはクラスAにあるとして識別子を付され、化学科のユーザーに属するものはクラスB、そして数学科のユーザーに属するもの(スレッド)はクラスCとなっている。
【0025】
リソース使用ポリシーの一つの付属物としてバンド分散ポリシーがある。 この分散ポリシーは図5に示されている。 この図にはバンド1とバンド2の2つのバンドが表示されている。  この分散ポリシーでは0から14の優先順位を持つすべてのクラスをバンド1に属するものとして、そして優先順位が15から30の範囲に収まるすべてのクラスをバンド2に属するものとして、分類している。従って、新たに作られたスレッドで、物理学科か化学科のいずれかからのユーザーに属するものはバンド2に収まることになるのに反して、数学科からのユーザーに属するものはバンド1に収まることになる。
【0026】
従来技術にあるように、作成された各々のスレッドは初期値の優先順位を持っている。 この初期値の優先順位はすべてのスレッドに対して同じである。  しかしながら、スレッドが実行キューに置かれるとき、その優先順位はそのクラスに応じて調整される。 例えば、クラスAスレッドの初期値の優先順位に対して30が加えられることになる。  同様に、クラスBスレッドの初期値の優先順位に対しては20が加えられ、クラスCスレッドの初期値の優先順位に対しては10が加えられることになる。 従って、ある実行キューのあるスレッドに対する総合優先順位は PTotal = PDefault + PClass となる。
【0027】
図6はクラス優先順位が実行キュー内のスレッドにどのように影響を与えるかを表している。 図6では、プロセッサの優先順位空間500が優先順位の数字、0、10、20、および30で分割されている。  あるクラスAスレッド520、クラスBスレッド540、およびクラスCスレッド560もまた表示されている。  スレッドのPDefaultに値ゼロ(0)が与えられている。  従って、すべてのスレッドはゼロ(0)という同じ優先順位レベルからスタートすることになる。  値30の優先順位差分ΔA 530がクラスAスレッドに加えられ、値20の優先順位差分ΔB 550がクラスBスレッドに加えられ、そして値10の優先順位差分ΔA 530がクラスCスレッドに加えられる。  従って、プロセッサはクラスBスレッドよりもクラスAスレッドを好むことになる。  同様に、プロセッサはクラスCスレッドよりもクラスBスレッドを好むことになる。
【0028】
従来の技術においては、あるスレッドが処理されるに従い、その優先順位もまた下げられる。  この仕組みは実行キューにあるすべてのスレッドが、プロセッサの注意をひくために公平に競争するのを可能にするものである。  これと同じ仕組みが本発明においても使用されている。  即ち、あるスレッドが処理されるに従い、そのPDefault値が減らされる。  このことは1つのクラスの範囲内のスレッドがお互いに公平に競争するのを可能にするものである。 加えて、あるクラスのスレッドが処理されていくに従い、クラス優先度も同様に下げられる。  例えば、クラスAスレッドはクラスBスレッドやクラスCスレッドよりも高いクラス優先順位を持っているので、クラスAスレッドが他の2つより先に処理されることになる。 しかし、そのクラスAスレッドが処理されていくにつれ、値30のクラスA優先順位は、その値が20以下に達するまで下げられることになる。  その時点で、クラスAとクラスBの両スレッドが処理されることになる。  両クラスの優先順位はその値が10以下になるまで下げられることになり、その時点ですべての3つのクラスのスレッドが処理されることになる。
【0029】
クラス優先順位が下げられるに従い、そのクラスがあるバンドから他へ移行することもある。  従って、クラス優先順位は非常に変化しやすいものとみなすことができる。  優先順位はそのクラスのスレッドが処理されていくと減少し、使用ポリシーに規定されているほど長く処理されないでいると増加する。
【0030】
図7および図8は、ある共有型コンピュータ・システムの実行キューを示している。  そのコンピュータ・システムは2つのCPUと2つの実行キューを持ち、各実行キューはいずれかのCPU(即ち、CPU0 600およびCPU1 650)専用に用いられるものと仮定する。  また、各々のクラスの優先順位の差分が既にスレッドに加えられているものとも仮定する。  本システムには3つのクラスのスレッドが表されている。  具体的には、CPU0 600用の実行キューはクラスA 610とクラスB 620の両方からのスレッドを含んでいる。 CPU1用の実行キューは クラスC 630からのスレッドを含んでいる。
【0031】
動作中、あるスレッドが作成されたとき、ワークロード・マネージャはその(スレッドが)属するユーザーに基づいてそのスレッドのクラスを決定し、スケジューラはある配置アルゴリズム(例えば、ラウンド・ロビン)を用いてそのスレッドをある実行キューに配置する。  スレッドが実行キューから取り出されて処理され、そして新しいスレッドがその実行キューに配置されていくに従い、図7および図8に示すようにスレッドがシステム内に分散される場合があることもある。
【0032】
図7および図8のスレッドの分散は、システム管理者によって設定された使用ポリシー(図4参照)を遵守しないことになるので、理想的なものとは言えない。例えば、クラスCスレッドがCPU1 650用の実行キューにある唯一のスレッドであるので、それらはシステムの処理時間の50%を割り与えられることになる。  明らかに、これはそれら(のスレッド)が割り与えられることを許された10%よりはるかに上である。  それら(のスレッド)が許されている以上のいかなる処理時間をも割り与えられないように保証する1つの方法は、その実行キューに別のクラスのスレッドを持つことである。 そしてこのことは、2つのクラスのスレッドの間での競争を促すことになる。  真に理想的なスレッドの分散は各々の実行キューがすべての3つの異なったクラスからのスレッドを含んでいることである。
【0033】
制定された使用ポリシーに従うことを保証する1つの方法は、少なくとも2つの異なったクラス(即ち、高位および低位の優先順位クラス)のスレッドがその(実行キューの)なかにあるかを判断するために定期的に各キューを調べることである。  もしそうで無い(2つのクラスが無い)ならば、現在あるものより高位の優先順位クラスを持った別のクラスのスレッドがその実行キューの中に配置されるべきである。  更に、もしも、その実行キューの中に2つの異なったクラスのスレッドを持っているにもかかわらず、そのいずれかあるいは両方のクラスのスレッドが依然として許容される以上の処理時間を割り与えられ続けている場合は、更に高いクラスの優先順位を持った別のクラスからのスレッドがその実行キューに配置される必要がある。
【0034】
実行キューのそれぞれが少なくとも2つの異なったクラスのスレッドを含んでいるかどうかを判断するために実行キューにあるすべてのスレッドを調べることは、時間がかかりCPUの集中を必要とするものである。  それ故、本発明は、スレッドが実行キューに渡ってうまく分散されているかどうかを見るために、スレッドのある部分を0.1秒毎に調べている。  本発明は、スレッドのどの部分を詳しく調べるべきかを判断するために、先に紹介したバンドの概念(図5参照)を利用している。  具体的には、本発明では、各々の実行キューのある特定のバンドにそれぞれ等しい数のスレッドを含んでいるシステムのことをよく均衡したシステムと定義している。 もしも、2つのプロセッサ(図8参照)の各々がその実行キューに2つのクラスAスレッド、2つのクラスBスレッド、および2つのクラスCスレッドを持っている場合は、そのシステムは均衡することになる。  両方の実行キューにおいて、4つのスレッドがバンド2に、そして2つのスレッドがバンド1にあることになるので、そのシステムは均衡することになるのである。
【0035】
もし、システムが均衡していない場合は(即ち、もし一方の実行キューが他方の実行キューよりある特定のバンドにスレッドを多く持っている場合は)、そのバンド内でより多数のスレッドを持った実効キューからより少数のスレッドを持った実効キューへスレッドが移動することになる。  ここで、システムは非常にダイナミック(活動的)であることに注意すべきである。  即ち、いかなる時間にあっても、1つあるいはいくつかのクラスがあるバンドから他のバンドへ移っているかもしれない間に、1つあるいはそれ以上のスレッドが実行キューから取り出されて処理されているかもしれないし、その間にもあるスレッドがある実行キューに配置されているところかもしれない。  従って、このダイナミズム(活動性)のおかげで、本発明は一時に1つのバンドしか取り扱わないし、システムが均衡していない時はただ1つのスレッドのみがある実行キューから他へ移動される。
【0036】
図7に戻ると、本発明がバンド2を調べる時、8つのスレッドをそのバンドに見つけることになるが、それらのすべてはCPU0 600用の実行キューの中にある。  それ故、システムは不均衡であると判断されることになる。  その結果、1つのスレッドがCPU0用の実行キューからCPU1用の実行キューに移動されることになり、その処理は終わる。
【0037】
この場合、移動されたスレッドがクラスAスレッドかクラスBスレッドであるかは、両クラスともバンド2にあるので、大した問題ではない。  もしもシステムが均衡していて、その処理の中ですべてのクラスBスレッドがCPU0用の実行キューからCPU1用のものへと移動されているのであれば、クラスBスレッドはより多くの処理時間を割り与えられ始めていることであろう。 (なぜなら、それらの(スレッドの)クラス優先順位はクラスCスレッドより高いので。)  それが起こるとき、それらのクラス優先順位は下げられることになる。  もし今、それらのクラス優先順位がバンド1に収まるところまで十分に下げられる場合は、システムは再び不均衡になることになる。  その時、クラスAスレッドが、システムを再度均衡させるために、ある実行キューから別のものへと移動されることになる。
【0038】
バンド2を均衡させた後、バンド1が綿密に調べられることになる。  この場合、すべてのクラスCスレッド(クラスCはバンド1の唯一のクラスであることに注意)はCPU1用の実行キューにあるので、システムは不均衡であるとわかることになる。  その結果、両方の実行キューが同数のクラスCスレッドを含むまで、クラスCスレッドは1つずつ移動されることになる。
【0039】
我々の例では、理想的なスレッドの分散とは図8に示されたものである。  図8において、各々の実行キューは各クラスで同数のスレッドを含んでいる。  従って、スレッドが実行キューに配置されもせず、また実行キューから取り出して処理されもしないと仮定するならば、システムは常に均衡したままとなる。  もし、あるクラスがあるバンドから他へ移動するなら、そのクラスに属するすべてのスレッドがそれに伴う移動をすることになる。  それ故そのシステムは均衡されたままを維持することになる。
【0040】
図9は本発明を実施するのに使われる可能性があるソフトウェア・プログラムのフロー・チャートである。  そのソフトウェア・プログラムはコンピュータ・システムの電源が入れられた時あるいはリセットされた時にスタートする。  (ステップ700)  プログラムは各々の実行キュー内の各々のクラスのスレッドの数を監視している。  プログラムは各々の実行キュー内の各々のクラスのスレッドの平均数をつかむために、1秒間に何回か実行キュー100を無作為選択することで、それ(監視)を行う。  そしてその処理過程で、一方の実行キューの最高位バンド(例えば、バンド2)に属するスレッドの数が平均としてもう一方の実行キューの同じバンド(例えば、バンド2)に属するスレッドの数より平均として1.5スレッド以上上回っているかどうかを判断するために、0.1秒毎にスレッドのクラスが利用される。 もしそう(上回っている)なら、システムは不均衡であるとみなされる。  プロセスは、そのバンドで最大のスレッド数を持った実行キューから最小のスレッド数を持った実行キューへ1つのスレッドを移動させることによって、システムが均衡するよう試みようとする。
【0041】
先に延べたように、システムが非常にダイナミックであるので、プロセスはシステムが本当に均衡しているか保証しようとはしない。(即ち、プロセスは、各々の実行キューのそのバンドに同数のスレッドが本当に存在しているかを確認しようとはしない。)  更に、全バンドの観点からシステムが均衡しているということを保証することは時間がかかりCPUの集中を必要とするので、本処理はそこで終了することになる。
【0042】
従って、プロセスは常に最高位のバンドから始まる。  もしも最高位のバンドが均衡していない場合は、本処理はバンドを均衡させようと試みようとし、そこで終了する。  もし最高位のバンドが均衡している場合は、次に本処理はその次に高位のバンドを調べようとする。  ある実行キューにあるスレッドの数が、別の実行キューのスレッドの数よりも1.5スレッド以上多い場合に行き当たるまで、最高位から始まって最低位に向って各々のバンドが調査されることになる。  それに行き当たった時、最大数のスレッドを持った実行キューから最小数のスレッドを持った実行キューに、1つのスレッドが移動され、本処理は終了することになる。 もし、すべての実行キューのすべてのバンドにおけるスレッドの数が同数である場合には、いかなるスレッドをもあるキューから他へ移動させること無く本処理は終了することになる。(ステップ700〜714)
【図面の簡単な説明】
【図1】本発明に基づく分散データ処理システムを表す模範的なブロック図である。
【図2】本発明に基づくサーバー装置の模範的なブロック図である。
【図3】本発明に基づくクライアント装置の模範的なブロック図である。
【図4】システム管理者によって考案されることがあるリソース使用ポリシーを表したものである。
【図5】システム管理者によって考案されることがあるリソース使用ポリシーを表したものである。
【図6】いかにしてクラス優先順位が実行キューのスレッドに影響を与えるかを表したものである。
【図7】3つの異なったグループのユーザーによって共有されたコンピュータ・システムの実行キューを表したものである。
【図8】3つの異なったグループのユーザーによって共有されたコンピュータ・システムの実行キューを表したものである。
【図9】本発明を実施するために使われる可能性があるソフトウェア・プログラムのフロー・チャートである。
【符号の説明】
100 …  ネットワーク・データ処理システム、
102 … ネットワーク、
104 … サーバー、
106 … ストレージ・ユニット、
108 … クライアント、
110 … クライアント、
112 … クライアント、
200 … データ処理システム、
202 … プロセッサ、
204 … プロセッサ、
206 … システム・バス、
208 … メモリ・コントローラ/キャッシュ、
209 … ローカル・メモリ、
210 … I/Oバス・ブリッジ、
212 … I/Oバス、
214 … ペリフェラル・コンポーネント・インターコネクト(PCI)バス・ブリッジ、
216 … PCIローカル・バス、
218 … モデム、
220 … ネットワーク・アダプタ、
222 … PCIバス・ブリッジ、
224 … PCIバス・ブリッジ、
226 … PCIローカル・バス、
228 … PCIローカル・バス、
230 … グラフィクス・アダプタ、
232 … ハード・ディスク、
300 … データ処理システム、
302 … プロセッサ、
304 … メイン・メモリ、
306 … PCIローカル・バス、
308 … PCIブリッジ、
310 … ローカル・エリア・ネットワーク(LAN)アダプタ、
312 … SCSIホスト・バス・アダプタ、
314 … 拡張バス・インターフェース、
316 … オーディオ・アダプタ、
318 … グラフィクス・アダプタ、
319 … オーディオ/ビデオ・アダプタ、
320 … キーボード兼マウス・アダプター、
322 … モデム、
324 … メモリ、
326 … ハード・ディスク・ドライブ、
328 … テープ・ドライブ、
330 … CD−ROMドライブ、
400 … 物理学科、
402 … ユーザー、
410 … 化学科、
412 … ユーザー、
420 … 数学科、
422 … ユーザー、
500 … 優先順位空間、
520 … クラスAスレッド、
530 … 優先順位差分ΔA 、
540 … クラスBスレッド、
550 … 優先順位差分ΔB、
560 … クラスCスレッド、
570 … 優先順位差分ΔC、
600 … CPU0、
610 … クラスA、
620 … クラスB、
630 … クラスC、
650 … CPU1、
700 … ステップ(スタート)、
702 … ステップ(処理)、
704 … ステップ(処理)、
706 … ステップ(条件分岐)、
708 … ステップ(処理)、
710 … ステップ(条件分岐)、
712 … ステップ(終了)、
714 … ステップ(処理)

Claims (28)

  1. マルチ・プロセッサ・システムの負荷均衡をとる方法であって、前記システムは複数のプロセッサ実行キューを備えており、各々の実行キューは処理すべきスレッドを保持するためのものであって、
    作成された各々のスレッドに優先順位を割当てて当該作成されたスレッドをある実行キューに配置するステップであって、当該割当てられた優先順位が当該スレッドをあるバンド(群)に分類するステップと、
    当該システムが負荷不均衡かどうかを判断するステップであって、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているなら当該システムは負荷不均衡とするステップと、もし当該システムが負荷不均衡である場合には、当該バンドに属する、数の多いスレッドを持った方の実行キューから、当該バンドに属する、数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとるステップと、
    を有する、マルチ・プロセッサ・システムの負荷均衡をとる方法。
  2. 各々の実行キューのスレッドがクラス毎に整理されている、請求項1記載の方法。
  3. あるスレッドが、それが帰属するマルチ・プロセッサ・システムのユーザーに基づいたあるクラスに属している、請求項2記載の方法。
  4. 当該割当てられた優先順位が、当該スレッドが属するクラスの優先順位である、請求項3記載の方法。
  5. あるクラスのスレッドが処理されるに従いそのクラス優先順位が下がり、クラスのスレッドが許され得る限り処理されないでいるとそのクラス優先順位が上がる、請求項4記載の方法。
  6. クラス優先順位が下がったり上がったりするのに従い、あるスレッドが別のバンドに再分類され得る、請求項5記載の方法。
  7. もしもある実行キューのあるバンドに属するスレッドの数が、別のキューの同じバンドに属するスレッドの数を規定の数以上上回っているならば、そのシステムは負荷不均衡とする、請求項6記載の方法。
  8. マルチ・プロセッサ・システムの負荷均衡をとるための、コンピュータ可読媒体上のコンピュータ・プログラム記録媒体であって、前記システムは複数のプロセッサ実行キューを備え、各々の実行キューは処理すべきスレッドを保持しており、
    作成された各々のスレッドに優先順位を割当てて当該作成されたスレッドを実行キューに配置するためのコード手段であって、当該割当てられた優先順位が当該スレッドをあるバンドに分類するコード手段と、
    当該システムが負荷不均衡かどうかを判断するためのコード手段であって、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているなら当該システムは負荷不均衡とするコード手段と、
    もしそのシステムが負荷不均衡ならば、当該バンドに属する、数の多いスレッドを持った方の実行キューから、当該バンドに属する、数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとるためのコード手段と、
    を有するコンピュータ・プログラム記録媒体。
  9. 各々のキューにおけるスレッドがクラス毎に整理されている、請求項8記載のコンピュータ・プログラム記録媒体。
  10. あるスレッドが、それが帰属するマルチ・プロセッサ・システムのユーザーに基づいたあるクラスに属している、請求項9記載のコンピュータ・プログラム記録媒体。
  11. 当該割当てられた優先順位が、当該スレッドが属するクラスの優先順位である、請求項10記載のコンピュータ・プログラム記録媒体。
  12. あるクラスのスレッドが処理されるに従いそのクラス優先順位が下がり、クラスのスレッドが許され得る限り処理されないでいるとそのクラス優先順位が上がる、請求項11記載のコンピュータ・プログラム記録媒体。
  13. クラス優先順位が下がったり上がったりするのに従い、あるスレッドが別のバンドに再分類され得る、請求項12記載のコンピュータ・プログラム記録媒体。
  14. もしもある実行キューのあるバンドにおけるスレッドの数が、別のキューの同じバンドにおけるスレッドの数を規定の数以上上回っているならば、そのシステムは負荷不均衡とする、請求項13記載のコンピュータ・プログラム記録媒体。
  15. マルチ・プロセッサ・システムの負荷均衡をとるための装置であって、前記システムは複数のプロセッサ実行キューを備えており、各々の実行キューは処理すべきスレッドを保持するためのものであって、
    作成された各々のスレッドに優先順位を割当てて当該作成されたスレッドを実行キューに配置するための手段であって、当該割当てられた優先順位が当該スレッドをあるバンド(群)に分類する手段と、
    当該システムが負荷不均衡かどうかを判断する手段であって、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているならば当該システムは負荷不均衡とする手段と、
    もし当該システムが負荷不均衡である場合には、当該バンドに属する、数の多いスレッドを持った方の実行キューから、当該バンドに属する、数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとる手段と、
    を有する、マルチ・プロセッサ・システムの負荷均衡をとるための装置。
  16. 各々の実行キューのスレッドがクラス毎に整理されており、かつスレッドに割当てられた優先順位はクラス優先順位である、請求項15記載の装置。
  17. あるスレッドが、それが帰属するマルチ・プロセッサ・システムのユーザーに基づいたあるクラスに属している、請求項16記載の装置。
  18. 当該割当てられた優先順位が、当該スレッドが属するクラスの優先順位である、請求項17記載の装置。
  19. あるクラスのスレッドが処理されるに従いそのクラス優先順位が下がり、クラスのスレッドが許され得る限り処理されないでいるとそのクラス優先順位が上がる、請求項18記載の装置。
  20. クラス優先順位が下がったり上がったりするのに従い、あるスレッドが別のバンドに再分類され得る、請求項19記載の装置。
  21. もしもある実行キューのあるバンドに属するスレッドの数が、別のキューの同じバンドにおけるスレッドの数を規定の数以上上回っているならば、そのシステムは負荷不均衡とする、請求項20記載の装置。
  22. 自己負荷均衡をとり得るマルチ・プロセッサ・システムであって、前記システムは複数のプロセッサ実行キューを備えており、各々の実行キューは処理すべきスレッドを保持するためのものであって、
    コード・データを記憶するための少なくとも1つのストレージ(記憶)・システムと、
    作成された各々のスレッドに優先順位を割当てて当該作成されたスレッドを実行キューに配置するようにコード・データを処理する少なくとも一つのプロセッサとを有し、
    当該割当てられた優先順位は当該スレッドをあるバンド(群)に分類し、
    当該システムが負荷不均衡かどうかを判断し、もしある実行キューのあるバンドへ別の実行キューのそれと同じバンドにあるのよりも多くのスレッドが分類されているのであれば当該システムは負荷不均衡とし、
    もし当該システムが負荷不均衡であるならば、当該バンドに属する数の多いスレッドを持った方の実行キューから当該バンドに属する数の少ないスレッドを持った方の実行キューへとスレッドを移動することにより、当該システムの負荷均衡をとる、
    マルチ・プロセッサ・システム。
  23. 各々の実行キューのスレッドがクラス毎に整理されている、請求項22記載のマルチ・プロセッサ・システム。
  24. あるスレッドが、それが帰属するマルチ・プロセッサ・システムのユーザーに基づくあるクラスに属している、請求項23記載のマルチ・プロセッサ・システム。
  25. 当該割当てられた優先順位が、当該スレッドが属するクラスの優先順位である、請求項24記載のマルチ・プロセッサ・システム。
  26. あるクラスのスレッドが処理されるに従いそのクラス優先順位が下がり、クラスのスレッドが許され得る限り処理されないでいるとそのクラス優先順位が上がる、請求項25記載のマルチ・プロセッサ・システム。
  27. クラス優先順位が下がったり上がったりするのに従い、あるスレッドが別のバンドに再分類され得る、請求項26記載のマルチ・プロセッサ・システム。
  28. もしもある実行キューのあるバンドにおけるスレッドの数が、別のキューの同じバンドにおけるスレッドの数を規定の数以上上回っているならば、当該システムは負荷不均衡とする、請求項27記載のマルチ・プロセッサ・システム。
JP2003174083A 2002-06-20 2003-06-18 ワークロード・マネージャをシステム・タスク・スケジューラと統合する装置および方法 Expired - Fee Related JP3887353B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/177,410 US7080379B2 (en) 2002-06-20 2002-06-20 Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue

Publications (2)

Publication Number Publication Date
JP2004030663A true JP2004030663A (ja) 2004-01-29
JP3887353B2 JP3887353B2 (ja) 2007-02-28

Family

ID=29734386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003174083A Expired - Fee Related JP3887353B2 (ja) 2002-06-20 2003-06-18 ワークロード・マネージャをシステム・タスク・スケジューラと統合する装置および方法

Country Status (4)

Country Link
US (1) US7080379B2 (ja)
JP (1) JP3887353B2 (ja)
CN (1) CN100552634C (ja)
TW (1) TWI252432B (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007148427A1 (ja) * 2006-06-19 2007-12-27 Nikon Systems Inc. 検証装置、および検証プログラム
JP2008123307A (ja) * 2006-11-14 2008-05-29 Fujitsu Ltd 資源に対する重要度算出方法及び装置
US7493419B2 (en) * 2005-12-13 2009-02-17 International Business Machines Corporation Input/output workload fingerprinting for input/output schedulers
JP2011076604A (ja) * 2009-09-29 2011-04-14 Internatl Business Mach Corp <Ibm> ワークキューを選択するための方法、システム及びコンピュータ・プログラム
JP2011081827A (ja) * 2010-11-30 2011-04-21 Fujitsu Ltd 資源に対する重要度算出方法及び装置
JP2011513807A (ja) * 2008-02-26 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ワークロード・マネージャにおいてディスパッチャのシェアを計算する方法、コンピュータ・プログラム及びデータ処理システム
KR101286700B1 (ko) * 2006-11-06 2013-07-16 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
JP2015028810A (ja) * 2004-09-28 2015-02-12 インテル・コーポレーション 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるためのシステム
US9430271B2 (en) 2011-07-27 2016-08-30 Fujitsu Limited Data processing system and scheduling method
CN109992359A (zh) * 2019-03-28 2019-07-09 深圳市创联时代科技有限公司 一种事务调度方法

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US20040215578A1 (en) * 2003-04-09 2004-10-28 Nokia, Inc. Controlling usage of system resources by a network manager
US7614056B1 (en) * 2003-09-12 2009-11-03 Sun Microsystems, Inc. Processor specific dispatching in a heterogeneous configuration
US7430741B2 (en) * 2004-01-20 2008-09-30 International Business Machines Corporation Application-aware system that dynamically partitions and allocates resources on demand
US20050216908A1 (en) * 2004-03-25 2005-09-29 Keohane Susann M Assigning computational processes in a computer system to workload management classes
US7657892B2 (en) * 2004-05-20 2010-02-02 Bea Systems, Inc. System and method for application server with self-tuned threading model
US7752629B2 (en) * 2004-05-21 2010-07-06 Bea Systems Inc. System and method for application server with overload protection
WO2005116833A1 (en) * 2004-05-21 2005-12-08 Computer Associates Think, Inc. Method and apparatus for dynamic cpu resource management
US7979857B2 (en) * 2004-05-21 2011-07-12 Computer Associates Think, Inc. Method and apparatus for dynamic memory resource management
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
KR100460009B1 (ko) * 2004-06-23 2004-12-04 엔에이치엔(주) 이미지 리소스를 로딩하는 방법 및 이미지 리소스 로딩시스템
US20060004977A1 (en) * 2004-06-30 2006-01-05 Joefon Jann Autonomically tuning the virtual memory subsystem of a computer operating system
US8098676B2 (en) * 2004-08-12 2012-01-17 Intel Corporation Techniques to utilize queues for network interface devices
US7398528B2 (en) * 2004-11-13 2008-07-08 Motorola, Inc. Method and system for efficient multiprocessor processing in a mobile wireless communication device
US20060123423A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Borrowing threads as a form of load balancing in a multiprocessor data processing system
US20060123217A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Utilization zones for automated resource management
US20060239194A1 (en) * 2005-04-20 2006-10-26 Chapell Christopher L Monitoring a queue for a communication link
US20070061805A1 (en) * 2005-09-15 2007-03-15 Brenner Larry B Method and apparatus for improving thread posting efficiency in a multiprocessor data processing system
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US7631125B2 (en) * 2005-09-30 2009-12-08 Intel Corporation Dynamically migrating channels
US8104033B2 (en) 2005-09-30 2012-01-24 Computer Associates Think, Inc. Managing virtual machines based on business priorty
US8225313B2 (en) 2005-10-19 2012-07-17 Ca, Inc. Object-based virtual infrastructure management
US7624257B2 (en) * 2005-11-30 2009-11-24 International Business Machines Corporation Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads
US7636356B1 (en) * 2006-01-03 2009-12-22 Marvell Israel (M.I.S.L.) Ltd Processor traffic segregation for network switching and routing
US8347295B1 (en) 2006-03-23 2013-01-01 Emc Corporation Profile-based assignment of queued tasks
US8826280B1 (en) 2006-03-23 2014-09-02 Emc Corporation Processing raw information for performing real-time monitoring of task queues
US8539493B1 (en) * 2006-03-23 2013-09-17 Emc Corporation Configurable prioritization and aging of queued tasks
US20080002702A1 (en) * 2006-06-30 2008-01-03 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (MCAL)
US20080002681A1 (en) * 2006-06-30 2008-01-03 Symbol Technologies, Inc. Network wireless/RFID switch architecture for multi-core hardware platforms using a multi-core abstraction layer (MCAL)
US20080148280A1 (en) * 2006-12-13 2008-06-19 Stillwell Joseph W Apparatus, system, and method for autonomically managing multiple queues
CN101236513B (zh) * 2007-01-30 2012-07-18 阿里巴巴集团控股有限公司 一种分布式任务系统和分布式任务管理方法
US8024731B1 (en) * 2007-04-25 2011-09-20 Apple Inc. Assigning priorities to threads of execution
KR20090005921A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
US8266337B2 (en) * 2007-12-06 2012-09-11 International Business Machines Corporation Dynamic logical data channel assignment using channel bitmap
US7865631B2 (en) * 2007-12-06 2011-01-04 International Business Machines Corporation Dynamic logical data channel assignment using time-grouped allocations
CN103024812B (zh) * 2007-12-28 2015-08-26 中国移动通信集团浙江有限公司 多处理器系统负荷均衡配置方法
CN101256668B (zh) * 2008-03-12 2012-09-05 中兴通讯股份有限公司 一种计算均衡的多核进行视频滤波的方法
US8312467B2 (en) * 2008-05-13 2012-11-13 Oracle America, Inc. Method and system for concurrently executing an application
CN101751293B (zh) * 2008-12-16 2013-10-30 智邦科技股份有限公司 程序的线程群组管理方法
US8402466B2 (en) * 2009-02-17 2013-03-19 International Business Machines Corporation Practical contention-free distributed weighted fair-share scheduler
US9207943B2 (en) 2009-03-17 2015-12-08 Qualcomm Incorporated Real time multithreaded scheduler and scheduling method
US9881039B2 (en) 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
US8245234B2 (en) 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
CN101840312B (zh) * 2009-12-31 2012-01-11 创新科存储技术有限公司 一种用于多核处理器的raid5写数据方法及装置
US8904399B2 (en) * 2010-03-15 2014-12-02 Qualcomm Incorporated System and method of executing threads at a processor
US8413158B2 (en) 2010-09-13 2013-04-02 International Business Machines Corporation Processor thread load balancing manager
EP2707796A4 (en) * 2011-05-13 2016-06-08 Samsung Electronics Co Ltd METHOD AND DEVICE FOR INCREASING THE APPLICATION PROCESSING SPEED IN A DIGITAL DEVICE
WO2013014545A1 (en) * 2011-07-26 2013-01-31 International Business Machines Corporation Managing workloads in a multiprocessing computer system
CN102841815B (zh) * 2012-07-12 2014-07-09 北京航空航天大学 一种numa体系结构自适应的进程分类绑定方法
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
TWI462020B (zh) * 2012-11-28 2014-11-21 Htc Corp 執行緒管理方法及其電子裝置
US9264486B2 (en) * 2012-12-07 2016-02-16 Bank Of America Corporation Work load management platform
US20150205633A1 (en) * 2013-05-24 2015-07-23 Google Inc. Task management in single-threaded environments
US9715406B2 (en) 2013-06-14 2017-07-25 Microsoft Technology Licensing, Llc Assigning and scheduling threads for multiple prioritized queues
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
TWI552079B (zh) * 2013-09-18 2016-10-01 Chunghwa Telecom Co Ltd Intelligent multi - layer job assignment system and its
US9853714B2 (en) 2013-10-11 2017-12-26 Ge Aviation Systems Llc Data communications network for an aircraft
US9749256B2 (en) * 2013-10-11 2017-08-29 Ge Aviation Systems Llc Data communications network for an aircraft
US10297347B2 (en) * 2015-04-06 2019-05-21 Preventice Solutions, Inc. Adverse event prioritization and handling
JP6341192B2 (ja) * 2015-12-22 2018-06-13 カシオ計算機株式会社 情報処理装置、制御方法及びプログラム
DE102016203965A1 (de) * 2016-03-10 2017-09-14 Robert Bosch Gmbh Überwachung eines Rechensystems
CN106802826B (zh) * 2016-12-23 2021-06-18 中国银联股份有限公司 一种基于线程池的业务处理方法及装置
CN110096344B (zh) * 2018-01-29 2024-09-20 北京京东尚科信息技术有限公司 任务管理方法、系统、服务器集群和计算机可读介质
US10942768B2 (en) * 2018-08-29 2021-03-09 Red Hat, Inc. Computing task scheduling in a computer system utilizing efficient attributed priority queues
CN119597420B (zh) * 2024-11-13 2025-12-02 广州翼辉信息技术有限公司 线程优先级控制方法、装置、计算机设备、可读存储介质和程序产品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658420B2 (ja) 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5680539A (en) * 1995-07-11 1997-10-21 Dell Usa, L.P. Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation
US6289369B1 (en) * 1998-08-25 2001-09-11 International Business Machines Corporation Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
US6735769B1 (en) 2000-07-13 2004-05-11 International Business Machines Corporation Apparatus and method for initial load balancing in a multiple run queue system

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015028810A (ja) * 2004-09-28 2015-02-12 インテル・コーポレーション 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるためのシステム
US7493419B2 (en) * 2005-12-13 2009-02-17 International Business Machines Corporation Input/output workload fingerprinting for input/output schedulers
WO2007148427A1 (ja) * 2006-06-19 2007-12-27 Nikon Systems Inc. 検証装置、および検証プログラム
JP2007336457A (ja) * 2006-06-19 2007-12-27 Nikon System:Kk 検証装置、および検証プログラム
KR101286700B1 (ko) * 2006-11-06 2013-07-16 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
JP2008123307A (ja) * 2006-11-14 2008-05-29 Fujitsu Ltd 資源に対する重要度算出方法及び装置
JP2011513807A (ja) * 2008-02-26 2011-04-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ワークロード・マネージャにおいてディスパッチャのシェアを計算する方法、コンピュータ・プログラム及びデータ処理システム
US8245238B2 (en) 2008-02-26 2012-08-14 International Business Machines Corporation Routing workloads based on relative queue lengths of dispatchers
US8875153B2 (en) 2008-02-26 2014-10-28 International Business Machines Corporation Routing workloads based on relative queue lengths of dispatchers
US9582338B2 (en) 2008-02-26 2017-02-28 International Business Machines Corporation Calculating a dispatcher's relative share based on relative queue length and capacity value of a plurality of workload types and computing systems combinations
JP2011076604A (ja) * 2009-09-29 2011-04-14 Internatl Business Mach Corp <Ibm> ワークキューを選択するための方法、システム及びコンピュータ・プログラム
JP2011081827A (ja) * 2010-11-30 2011-04-21 Fujitsu Ltd 資源に対する重要度算出方法及び装置
US9430271B2 (en) 2011-07-27 2016-08-30 Fujitsu Limited Data processing system and scheduling method
US9513965B1 (en) 2011-07-27 2016-12-06 Fujitsu Limited Data processing system and scheduling method
CN109992359A (zh) * 2019-03-28 2019-07-09 深圳市创联时代科技有限公司 一种事务调度方法

Also Published As

Publication number Publication date
US20030236815A1 (en) 2003-12-25
US7080379B2 (en) 2006-07-18
JP3887353B2 (ja) 2007-02-28
CN100552634C (zh) 2009-10-21
TW200411566A (en) 2004-07-01
TWI252432B (en) 2006-04-01
CN1469246A (zh) 2004-01-21

Similar Documents

Publication Publication Date Title
JP3887353B2 (ja) ワークロード・マネージャをシステム・タスク・スケジューラと統合する装置および方法
US8893148B2 (en) Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8589923B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
US8127300B2 (en) Hardware based dynamic load balancing of message passing interface tasks
US8312464B2 (en) Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US8108876B2 (en) Modifying an operation of one or more processors executing message passing interface tasks
CN100489789C (zh) 响应分区工作负荷动态再分区计算机系统的装置和方法
US9052932B2 (en) Hybrid virtual machine configuration management
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
US20140373020A1 (en) Methods for managing threads within an application and devices thereof
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
HUP0301326A2 (en) Method and system for managing workload in a computing environment, as well as computer program for implementing the method
US11311722B2 (en) Cross-platform workload processing
US20090064166A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
US9626226B2 (en) Cross-platform workload processing
Lagerstrom et al. PScheD Political scheduling on the CRAY T3E
US7287127B2 (en) Adaptive scheduler using inherent knowledge of operating system subsystems for managing resources in a data processing system
JP7087585B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2522388B2 (ja) タスクの制御方法
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
Gomes et al. Towards a resource reservation approach for an Opportunistic Computing Environment
Agasaveeran et al. Distributed job scheduling in sci local-area multiprocessors
Riba et al. A programming interface for overload control in staged event-based architectures
Matsuki et al. MapReduce Job Scheduling Based on Remaining Job Sizes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060605

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060808

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: 20061107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091201

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101201

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees