JP2013222459A - 負荷に基づくプロセッサ数のプログラム管理 - Google Patents

負荷に基づくプロセッサ数のプログラム管理 Download PDF

Info

Publication number
JP2013222459A
JP2013222459A JP2013034899A JP2013034899A JP2013222459A JP 2013222459 A JP2013222459 A JP 2013222459A JP 2013034899 A JP2013034899 A JP 2013034899A JP 2013034899 A JP2013034899 A JP 2013034899A JP 2013222459 A JP2013222459 A JP 2013222459A
Authority
JP
Japan
Prior art keywords
pus
upper limit
utilization
computer
usage rate
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
JP2013034899A
Other languages
English (en)
Other versions
JP6296686B2 (ja
Inventor
Keith Wade Brian
ブライアン・キース・ウェード
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 JP2013222459A publication Critical patent/JP2013222459A/ja
Application granted granted Critical
Publication of JP6296686B2 publication Critical patent/JP6296686B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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; 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

【課題】プロセッサ数のプログラム管理を提供すること。
【解決手段】プロセッサ使用率の1つ以上の測定値が取得される。使用率の上限値が計算される。使用率の上限値が使用可能なPUのキャパシティよりも大きいことが決定される場合、1つ以上の処理ユニット(PU)が自動的に追加される。一方、使用率の上限値が使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUが自動的に除去される。
【選択図】 図4

Description

本発明は、コンピュータ環境内の処理に係り、さらに詳細に説明すれば、プロセッサ数(processorpopulation)のプログラム管理に係る。
機能的に同等のN個のコンピュータ処理ユニット(PU)を備えるコンピュータ・システムでは、当該システム上で稼働中の作業負荷は、しばしばN個のPUが全体として提供することができる計算能力よりも少ない計算能力を消費するであろう。このことは、「システムの使用率は、N×100%未満である」と定量的に表されることがある。例えば、N=16である場合、完全な使用率は、1600%になり、そして当該使用可能なキャパシティの半分だけを消費する作業負荷は、800%の使用率で稼働すると称されるであろう。
かかる作業負荷をディスパッチするマルチプロセッシング対応のオペレーティング・システムは、しばしばこれらの作業負荷をN個のPU上に均等に分配する。前述の例について説明を続けると、ディスパッチャは、機能的に同等の16個のPUの各々を50%の使用率で稼働させることにより、当該作業負荷に十分な能力を提供する。
幾つかのコンピュータ・システムでは、複数のPUを管理するオーバーヘッド、当該マシンのプロセッサ・キャッシュ構造及びマルチプロセッシングのレベルが増大するにつれてオペレーティング・システムによってロッキング及び相互排他を行うという必要性が増大することに起因して、かかる公正な分配は、かかる作業負荷を分配する最も効率的な方法であるとは限らない。前述の例に再び戻って説明すると、オペレーティング・システムのカーネルにとっては、全体として800%の使用率を必要とする前述の作業負荷を、それぞれが80%の使用率で稼働する10個のプロセッサによって処理する一方、残りの6個のプロセッサをアイドルに留めておくことがより合理的であるかもしれない。
本発明の第1の側面に従って、コンピュータによって実装される方法が提供される。この方法は、
(a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
(b)使用率の上限値(utilization ceiling)を計算するステップと、
(c)前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
(d)前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する。
本発明の第2の側面に従って、コンピュータによって実装される方法が提供される。この方法は、
(a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
(b)使用率の第1の上限値を計算するステップと、
(c)使用率の第2の上限値を計算するステップと、
(d)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち大きい方が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
(e)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち大きい方が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する。
本発明の第3の側面に従って、システムが提供される。このシステムは、コンピュータ・プロセッサを備え、当該コンピュータ・プロセッサは、
プロセッサ使用率の1つ以上の測定値を取得する動作と、
使用率の上限値を計算する動作と、
前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加する動作と、
前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去する動作を行うように構成される。
本発明の第4の側面に従って、前記第1及び第2の側面に従った方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムが提供される。
追加の機能及び利点は、本発明の技術を通して実現される。本発明の他の諸実施形態及び諸側面は、本明細書において詳述され、請求項に記載された発明の一部と考えられる。諸利点及び諸機能とともに本発明をよりよく理解するには、以下の説明及び図面を参照されたい。
本発明は、作業負荷を処理するのに必要とされる最小セットのPU上の作業負荷を統合することにより、プロセッサ・オーバーヘッドを減少させることができるという効果を奏する。また、本発明は、1セットのPUのうち必要とされるプロセッサ数をリアル・タイムで予測し、予測された作業負荷を満たすようにPUの数を増加させることができるという効果を奏する。さらに、本発明は、異機種PUの複数グループにわたって、所与のタイプのPUの各グループごとに、PU使用率を予測することができるという効果を奏する。
一実施形態によって実装することができる、プロセッサ数のプログラム管理を実装するためのシステムを示す概略図である。 一実施形態におけるプロセッサ・ユニットの使用率を示すグラフである。 一実施形態に従った、ランダムな変数値とこれらの値を超えるサンプルの生起確率を関連づけるための数表である。 一実施形態で実装することができる、プロセッサ数のプログラム管理を示すフローチャートである。 追加の実施形態で実装することができる、プロセッサ数のプログラム管理を示すフローチャートである。
本発明の一実施形態は、プロセッサ数のプログラム管理を提供する。
一実施形態は、或る時間インターバルにわたる平均処理負荷に加えて、標準偏差を計算することを含む。処理負荷の平均(μ)及び処理負荷の標準偏差(σ)に基づき、そしてシステム管理者によって指定された信頼度確率Pが与えられると、次の時間インターバルにおける実際の使用率が超える可能性がP%だけであるような、使用率の上限値(負荷の上限値)Cが計算される。一実施形態では、この計算を行うために、図3の数表が使用される。例えば、もし、システム管理者が障害の確率を2%に管理することを望んでいれば、上限値Cは、μ+2.06×σになるであろう。次に、その時点においてオンになっているPUの数に基づき、Cを処理するためにより多くのPUが必要とされるか否かが決定される。もし、より多くのPUが必要とされるのであれば、PUの組み合わせがCを処理することができるまで、追加のPUがオンにされる。一方、Cを処理するためにより少数のPUが必要とされるのであれば、余分なPUがオフにされる。
大規模コンピュータ・システムは、変化する負荷の下で動作する。多くの場合、これらのコンピュータ・システムは、最高の予想需要の下で、当該システムが負荷の全体をサポートするのに十分な処理能力を有することを保証するためにサイズ超過となっている。この処理能力は、コンピュータ・システムに追加のPUを追加することにより提供される。PUは、単一のコンピュータ・プロセッサ又はコンピュータ・コアを含んでもよい。一実施形態では、PUは、論理プロセッサである。一般に、処理負荷は、複数のPU上に分配されているから、当該システムが最大の負荷よりも少ない負荷を処理している場合、そのプロセッサの各々は、かなりの量の活用されていない処理能力を有することがある。
オペレーティング・システムのタスク管理機構は、作業を複数のプロセッサ上に分配することにより、相互排他のためのロッキングのような処理オーバーヘッドを招く。さらに、処理が或るPUから他のPUに転送される際には、関連するキャッシュ・データ及び命令が、同様に移動されなければならない。大規模システムでは、このオーバーヘッドが相当な量になり、全体的なシステム処理時間に相当な影響を及ぼすことがある。
オーバーヘッドの或るものは、システム上の負荷が低いことが予想される場合に、諸PUをオフにすることにより手動的に緩和することができる。しかし、かかるPUの手動的調整は、予期しない処理量の激増に対応することができないから、制限された価値を有するに過ぎない。より知的な手法は、必要に応じて、諸PUを自動的にオン及びオフにすることである。この手法は、プロセッサ管理オーバーヘッドを著しく減少させるであろう。というのは、この手法は、予期される負荷をサポートするであろう最小セットのPU上で諸プロセスを稼働させると同時に、近未来の処理要件の変化を予測する能力を有し、これにより全体的なシステムの予期されるニーズに基づき、諸PUをオン及びオフにするからである。
次に、図1を参照して、プロセッサ数のプログラム管理を実装するためのシステム100を説明する。一実施形態では、システム100は、ホスト・システム・コンピュータ(以下「ホスト」と略記)102を含む。ホスト102は、諸コンピュータ命令を実行することにより、(1)アプリケーションの作業負荷を稼働させ、(2)PU構成のプログラム管理への入力としてPU使用率を測定し、(3)キャパシティに対する近未来のニーズの予測に従って諸PUをオン又はオフにするように動作する。ホスト102は、ソフトウェア・アプリケーションを実行することができる任意のタイプの環境内で動作してもよい。ホスト102は、メインフレーム・コンピュータのような高速コンピュータ処理装置を含んでもよい。一実施形態では、ホスト102は、企業(例えば、営利事業)の一部であって、PU能力のための予測需要量に基づきPU構成を管理するためのプログラム技術を使用する。
一実施形態では、図1のシステム100は、1つ以上のクライアント・システム(以下「クライアント」と略記)104を含む。1つ以上の地理的な位置におけるユーザは、クライアント・システム104を通して、ホスト102と通信することができる。クライアント104は、1つ以上のネットワーク106を介して、ホスト102に結合される。各クライアント104は、本明細書に開示したプロセスを行うためのコンピュータ・プログラムを実行する汎用コンピュータを使用して実装されてもよい。クライアント104は、パーソナル・コンピュータ(例えば、ラップ・トップ、携帯情報端末、モバイル装置)又はホスト接続端末でもよい。もし、クライアント104がパーソナル・コンピュータであれば、本明細書に開示した処理は、(例えば、アプレットをクライアント104に提供することにより)クライアント104及びホスト102によって共用されてもよい。クライアント104は、ウェブサーバ、データベース・サーバ等のようなホスト102上で実行中のアプリケーションにアクセスするために、許可されたユーザ(例えば、プログラマ)によって動作されてもよい。
ネットワーク106は、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、グローバル・ネットワーク(例えば、インターネット)、仮想プライベート・ネットワーク(VPN)、イントラネット等を含む、任意のタイプの公知のネットワークでもよい。ネットワーク106は、無線ネットワーク又は当分野で公知の任意の種類の物理ネットワーク実装を使用して、実装されてもよい。一のクライアント104は、全てのクライアント104が同じネットワークを通してホスト102に結合されないように、複数のネットワーク(例えば、イントラネット及びインターネット)を通してホスト102に結合されてもよい。1つ以上のクライアント104及びホスト102は、無線でネットワーク106に接続されてもよい。一実施形態では、ネットワーク106は、イントラネット及びネットワーク106を通してホスト102と通信するためにユーザ・インタフェース・アプリケーション(例えば、ウェブ・ブラウザ)を実行する1つ以上のクライアント104を含む。他の実施形態では、クライアント104は、(ネットワーク106を通してではなく)ホスト102に直接的に接続され、そしてホスト102は、プロセッサ数のプログラム管理をサポートするデータを格納するためのメモリを備える。代替的に、この目的のために、別個のストレージ装置(例えば、ストレージ装置112)が実装されてもよい。
一実施形態では、ストレージ装置112は、システム100によるプロセッサ数のプログラム管理に関係するデータを保持するとともに、ホスト102を表すエンティティによって必要とされる他のデータ/情報を保持するためのデータ・リポジトリを含む。ストレージ装置112は、ネットワーク106を含む分散環境にわたって統合されたデータ・ソースとして、論理的にアドレス可能である。ストレージ装置112内に格納された情報は、ホスト102及び/又はクライアント104を介して検索され且つ処理されてもよい。一実施形態では、ストレージ装置112は、1つ以上のデータベースを含む。これらのデータベースは、以下で詳述するように、例えば、構成パラメータ、値、メソッド、プロパティ、他の関係する情報等を保持する。当業者には明らかなように、ストレージ装置112は、ファイル・システム上のXMLファイル若しくはネットワーク(例えば、ネットワーク106の1つ)にわたって分散されたXMLファイル、又はネットワーク106上に位置する他のサーバからのデータ・ストリームから受信されたXMLファイルのような他の構造を含んでもよい。代替的に、ストレージ装置112の全て又は一部は、一のクライアント104上に置かれてもよい。
ホスト102は、1つ以上のサーバを使用して実装され、当該サーバによってアクセス可能なストレージ媒体内に格納されたコンピュータ・プログラムに応答して動作してもよい。ホスト102は、クライアント104と通信するために、ネットワーク・サーバ(例えば、ウェブ・サーバ)として動作してもよい。ホスト102は、クライアント104との間で情報を送信及び受信し、関連する諸タスクを行うことができる。また、ホスト102は、ホスト102への無許可のアクセスを防止し且つ許可されたアクセスについて任意の制限を強制するためのファイアウォールを含んでもよい。例えば、管理者は、システムの全体にアクセスし且つ当該システムの諸部分を修正するための権限を有してもよい。ファイアウォールは、当分野で公知の通常のハードウェア及び/又はソフトウェアを使用して実装されてもよい。
また、ホスト102は、アプリケーション・サーバとして動作してもよい。ホスト102は、プロセッサ数のプログラム管理を提供するために、1つ以上のコンピュータ・プログラムを実行する。ホスト102は、プロセッサ管理モジュール108を含む。前述のように、アプリケーション(例えば、java(登録商標)アプレット)をクライアント104に提供することにより、処理はクライアント104及びホスト102によって共用されてもよい。代替的に、クライアント104は、本明細書に開示した処理の一部又は全てを行うための、スタンド・アロンのソフトウェア・アプリケーションを含むことができる。前述のように、ネットワーク・サーバ機能及びアプリケーション・サーバ機能を実装するために、別々のサーバが使用されてもよい。代替的に、ネットワーク・サーバ、ファイアウォール及びアプリケーション・サーバは、必要な機能を行うためにコンピュータ・プログラムを実行する、単一のサーバによって実装されてもよい。
一実施形態では、プロセッサ管理モジュール108は、諸PUにわたって分配される作業負荷と共に、ホスト102上で実行される。追加の実施形態では、プロセッサ管理モジュール108は、作業負荷を実行していない、別個のコンピュータ・システム上で実行される。
図1に関連して説明したプロセッサ数のプログラム管理は、ハードウェア、汎用コンピュータ上で実行するソフトウェア又はその組み合わせによって実装されてもよい。
図2は、一実施形態におけるPU使用率のグラフを示す。PU使用率の曲線202は、或る時間インターバルにわたる実際のPU使用率を示す。PU使用率の曲線202に基づき、平均使用率(μ)204が計算される。平均使用率204は、PU使用率の曲線202について計算された当該時間インターバルにわたる平均PU使用率である。PU使用率の曲線202及び平均使用率204に基づき、標準偏差(σ)が計算される。図2のグラフ及び当該グラフ内の値は、説明の便宜上のものであるに過ぎないこと、そして諸実施形態は任意の特定の値に制限されないことを理解されたい。さらに、これらの値自体は計算されるが、グラフの生成は必要とされないこと、そしてこれらの値自体はシステムのPU要件を決定するために使用されることを理解されたい。
図3は、ランダムな変数値とこれらの値を超えるサンプルの生起確率を関連づけるための数表を示す。列Mは、例えば、図2のデータに基づき計算された平均PU使用率からの多数の標準偏差を示す。第2の列は、システムの使用率要件が列M内の値を超えるであろう計算された確率である。従って、図3の数表によれば、次の時間インターバルの間に、PU使用率が平均PU使用率と1×標準偏差の和(μ+σ)を超える16%の確率が存在する。この確率値を使用して、必要とされるPUの数が予測される。一実施形態では、与えられた値Mを超えるというリスクは、ユーザが受け入れることを望んでいるリスクに対して測定される。例えば、実際の使用率がMを超えるであろうという2%のリスクをユーザが受け入れることを望んでいるものと仮定すると、オンラインにされるであろうPUの数は、現在の平均PU使用率と2.06×標準偏差の和(μ+2.06σ)をサポート可能である必要があるであろう。従って、以下で詳述するように、PUカウントが調整されるであろう。
図3の数表内の値は、説明の便宜上のものであるに過ぎないこと、そして諸実施形態は任意の特定の値に制限されないことを理解されたい。
一実施形態では、データ及び確率の計算値は、全体としてシステムのための定期的な時間インターバルで生成される。追加の実施形態では、システムは、多数の異機種PUから成り、そしてデータ及び確率の計算値は、PUのタイプごとに生成される。
図4は、一実施形態で実装することができる、プロセッサ数のプログラム管理のためのフローチャートを示す。一実施形態では、図4のプロセスは、図1のプロセッサ管理モジュール108のようなプロセッサ管理モジュール上で実行される。ステップ402では、現在のプロセッサ使用率が測定される。一実施形態では、以前のプロセッサ使用率値がキャッシュされ、そして現在のプロセッサ使用率がキャッシュに追加される。ステップ404では、時間インターバルXにわたる平均PU使用率が計算される。一実施形態では、例えば、システム起動時に、ステップ404は、時間インターバルXについてのデータが生じるのを待機する。ステップ406では、平均PU使用率の標準偏差が計算される。ステップ408では、平均PU使用率、平均PU使用率の標準偏差及び図3の適切な行の値を使用して、使用率の上限値Cが計算される。システム管理者によってPが選択された場合、使用率の上限値Cの生起確率は、P%であるに過ぎない。ステップ410では、計算された使用率の上限値Cが、現にオンラインになっているPUの数と比較される。もし、Cが現にオンラインになっているPUの数を超えそうであれば、ステップ412では、計算された上限値Cを満たすために1つ以上の追加のPUがオンラインにされ、処理はステップ402で継続する。一方、Cが現にオンラインになっているPUの数を、例えば、使用率しきい値だけ超えなければ、処理はステップ414で継続する。ステップ414では、計算された上限値Cが、現にオンラインになっているPUの数よりも少なくとも1PU小さいか否か、すなわち1つ以上のPUを非活動化することができるか否かが決定される。そうであれば、ステップ416では、1つ以上のPUが非活動化される。その後、処理はステップ402で継続する。
ステップ414に戻って、説明を続ける。もし、Cが現にオンラインになっているPUの数よりも少なくとも1PU小さくなければ、処理はステップ402で継続する。一実施形態では、図4のプロセスは、計算された上限値Cを現にオンラインになっているPUの数と比較し、そしてシステム内のオンラインになっているPUの数を全体として調整するために使用される。追加の実施形態では、システムは、多数の異機種PUから成り、そして図4のプロセスは、種々のPUタイプの各々ごとに実行される。
図5は、追加の実施形態で実装することができる、プロセッサ数のプログラム管理のためのフローチャートを示す。一実施形態では、図5のプロセスは、図1のプロセッサ管理モジュール108のようなプロセッサ管理モジュール上で実行される。ステップ502では、現在のプロセッサ使用率が測定される。一実施形態では、以前のプロセッサ使用率値がキャッシュされ、そして現在のプロセッサ使用率がキャッシュに追加される。ステップ504では、時間インターバルXにわたる平均PU使用率が計算される。一実施形態では、例えば、システム起動時に、ステップ504は、時間インターバルXについてのデータが生じるのを待機する。ステップ506では、平均PU使用率の標準偏差が計算される。ステップ508では、平均PU使用率、平均PU使用率の標準偏差及び図3の適切な行の値を使用して、使用率の第1の上限値Cが計算される、システム管理者によってPが選択された場合、使用率の第1の上限値Cの生起確率は、P%であるに過ぎない。ステップ510では、最後の2つの実際の使用率観測値及びそれらの差の大きさに基づき、使用率の第2の上限値C’が選択される。すなわち、使用率の第2の上限値C’は、(最後のサンプル)+(最後のサンプル−最後から2番目のサンプル)である。ステップ512では、使用率の第1の上限値C及び使用率の第2の上限値C’のうち大きい方(以下「C’’」という)が決定される。ステップ514では、「C’’」が現にオンラインになっているPUの数と比較される。もし、「C’’」が現にオンラインになっているPUの数よりも大きければ、ステップ516では、上限値「C’’」を満たすために1つ以上の追加のPUがオンラインにされ、そして処理はステップ502で継続する。一方、「C’’」が現にオンラインになっているPUの数を超えなければ、処理はステップ518で継続する。ステップ518では、「C’’」が現にオンラインになっているPUの数よりも少なくとも1PU小さいか否か、すなわち1つ以上のPUを非活動化することができるか否かが決定される。そうであれば、ステップ520では、1つ以上のPUが非活動化される。その後、処理はステップ502で継続する。
ステップ518に戻って、説明を続ける。もし、「C’’」が現にオンラインになっているPUの数よりも少なくとも1PU小さくなければ、処理はステップ502で継続する。一実施形態では、図5のプロセスは、計算された上限値「C’’」を現にオンラインになっているPUの数と比較し、そしてシステム内のオンラインになっているPUの数を全体として調整するために使用される。追加の実施形態では、システムは、多数の異機種PUから成り、そして図5のプロセスは、種々のPUタイプの各々ごとに実行される。
一実施形態では、図4及び図5に示すプロセスの何れかは、一定値Zを予測されたプロセッサ使用率値に加算することにより変更され、それによって、処理バッファを作成するために予測された値とZの和によってPUの数を増加させる。
技術的な結果及び利点は、作業負荷を処理するのに必要とされる最小セットのPU上の作業負荷を統合することにより、プロセッサ・オーバーヘッドを減少させることを含む。追加の利点は、1セットのPUのうち必要とされるプロセッサ数をリアル・タイムで予測することができ、しかも予測された作業負荷を満たすようにPUの数を増加させることができる点にある。さらに他の利点は、異機種PUの複数グループにわたって、所与のタイプのPUの各グループごとに、プロセッサ使用率を予測することができる点にある。
本明細書で使用される用語は、特定の実施形態を説明するためだけのものであるに過ぎず、本発明を制限することは意図されていない。本明細書で使用される単数形式の用語は、複数形式の用語を包含することが意図されている。但し、文脈上これと異なることが明白であるときは、その限りではない。また、本明細書で使用される「含む」又は「有する」という用語は、記述の対象となる機能、整数、ステップ、動作、要素及び/又はコンポーネントが存在することを表すが、1つ以上の他の機能、整数、ステップ、動作、要素及び/又はコンポーネントが存在することを妨げない。
以下の請求項に記載された全ての手段又はステップ+機能要素に対応する構造、材料、行為及びそれらの均等物は、請求項に明示的に記載された他の要素と組み合わせてその機能を実施するための任意の構造、材料又は行為を含むことが意図される。本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形を施し得ることが明らかであろう。実施形態は、本発明の原理及び実際の応用を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
本発明の諸側面は、システム、方法又はコンピュータ・プログラムとして具体化されてもよい。従って、本発明の諸側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェア及びハードウェア要素を組み合わせた実施形態の形式を取ってもよく、本明細書では、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の諸側面は、コンピュータ可読プログラム・コードをその上に具体化したコンピュータ可読媒体を有するコンピュータ・プログラムの形式を取ってもよい。
1つ以上のコンピュータ可読媒体の任意の組み合わせを利用してもよい。当該コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体でもよい。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム、装置又はこれらの任意の適切な組み合わせでもよい。コンピュータ可読媒体の特定の例は、1つ以上の線を有する電気接続、フレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、CD−ROM、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせを含んでもよい。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置等に関連して又はこれらによって使用するためのプログラムを保持し、格納することができる、任意の有形的媒体でもよい。
コンピュータ可読信号媒体は、伝搬されるデータ信号を含んでもよいが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化してもよい。かかる伝搬されるデータ信号は、電磁気、光又はこれらの任意の適切な組み合わせを含む、種々の形式のうち任意の形式を取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない任意のコンピュータ可読媒体であって、命令実行システム、装置等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送することができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF又はこれらの任意の適切な組み合わせを含む、任意の適切な媒体を使用して伝送してもよい。
本発明の諸側面に係る動作を実行するためのコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書いてもよい。当該プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行してもよく、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行してもよく、或いは遠隔コンピュータ又はサーバ上で完全に実行してもよい。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続してもよく、或いはその接続を(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに行ってもよい。
以上では、本発明の諸実施形態に従った、方法、装置(システム)及びコンピュータ・プログラムのフローチャート及び/又はブロック図を参照して、本発明の諸側面を説明した。フローチャート及び/又はブロック図の各ブロック、並びにフローチャート及び/又はブロック図の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ上で実行される諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装するための手段を作成することを目的として、一のマシンを生産することができる。
また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、コンピュータ可読媒体内に格納された諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装する命令手段を含む製品を生産することを目的として、コンピュータ又は他のプログラム可能なデータ処理装置に対し特定の態様で機能するように指示することができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置にロードすると、当該コンピュータ又は他のプログラム可能なデータ処理装置上で実行される諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータによって実装される方法を生成するように当該コンピュータ又は他のプログラム可能なデータ処理装置上で一連の動作ステップを実行させることができる。
前述のように、諸実施形態は、コンピュータ実装プロセス及びそれらのプロセスを実施するための装置の形式で具体化することができる。実施形態では、本発明は、1つ以上のネットワーク要素によって実行されるコンピュータ・プログラム・コード内で具体化される。諸実施形態は、製品として有形的媒体内に記録された諸命令を保持する、コンピュータ・プログラム信号論理を備えたコンピュータ使用可能媒体上のコンピュータ・プログラムを含む。コンピュータ使用可能媒体のための推奨製品は、フレキシブル・ディスク、CD−ROM、ハード・ドライブ、ユニバーサル・シリアル・バス(USB)フラッシュ・ドライブ、又は他の任意のコンピュータ可読ストレージ媒体を含むことができる。コンピュータ・プログラム信号論理が一のコンピュータにロードされ且つ当該コンピュータによって実行される場合、当該コンピュータは、本発明を実施するための装置になる。コンピュータ・プログラム・コード論理は、例えば、ストレージ媒体内に格納され、一のコンピュータにロードされ且つ当該コンピュータによって実行され、或いは電気的ケーブル、光ファイバ、電磁放射等の特定の伝送媒体を介して伝送される。その場合、コンピュータ・プログラム・コード論理が一のコンピュータにロードされ且つ当該コンピュータによって実行される場合、当該コンピュータは、本発明を実施するための装置になる。汎用のマイクロプロセッサ上で実装される場合、コンピュータ・プログラム・コード論理のセグメントは、特定の論理回路を作成するようにマイクロプロセッサを構成する。
諸図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記された機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した2つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。
100・・・システム
102・・・ホスト・システム・コンピュータ(ホスト)
104・・・クライアント・システム(クライアント)
106・・・ネットワーク
108・・・プロセッサ管理モジュール
112・・・ストレージ装置

Claims (15)

  1. コンピュータによって実装される方法であって、
    (a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
    (b)使用率の上限値を計算するステップと、
    (c)前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
    (d)前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する、方法。
  2. 前記1つ以上のPUは、異機種であり、前記1つ以上のPUは、タイプによってグループ化され、前記ステップ(a)は、PUのグループごとに行われる、請求項1に記載の方法。
  3. 前記ステップ(c)は、前記使用率の上限値が一のグループのPUキャパシティを超えることを決定することに応答して、前記1つ以上のPUを当該グループに追加するステップをさらに含む、請求項2に記載の方法。
  4. 前記ステップ(c)は、前記使用率の上限値と一定値の和が前記使用可能なPUのキャパシティを超えるであろうということを決定することに応答して行われる、請求項1に記載の方法。
  5. コンピュータによって実装される方法であって、
    (a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
    (b)使用率の第1の上限値を計算するステップと、
    (c)使用率の第2の上限値を計算するステップと、
    (d)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち大きい方が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
    (e)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち前記大きい方が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する、方法。
  6. 前記1つ以上のPUは、異機種であり、前記1つ以上のPUは、タイプによってグループ化され、前記ステップ(d)は、前記使用率の第1の上限値及び前記使用率の第2の上限値のうち前記大きい方が一のグループのPUキャパシティを超えることを決定することに応答して、前記1つ以上のPUを当該グループに追加するステップをさらに含む、請求項5に記載の方法。
  7. 前記使用率の第2の上限値は、最後の2つの実際の使用率観測値及びそれらの差の大きさに基づく、請求項5に記載の方法。
  8. 前記ステップ(d)は、前記使用率の第1の上限値及び前記使用率の第2の上限値のうち前記大きい方と一定値の和が前記使用可能なPUのキャパシティを超えるであろうということを決定することに応答して行われる、請求項1に記載の方法。
  9. 前記1つ以上のPUは、コンピュータ・プロセッサ、プロセッサ・コア及び論理プロセッサのうちの1つである、請求項1又は請求項5に記載の方法。
  10. コンピュータ・プロセッサを備え、
    前記コンピュータ・プロセッサは、
    プロセッサ使用率の1つ以上の測定値を取得する動作と、
    使用率の上限値を計算する動作と、
    前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加する動作と、
    前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去する動作を行うように構成される、システム。
  11. 前記1つ以上のPUは、異機種であり、前記1つ以上のPUは、タイプによってグループ化され、前記プロセッサ使用率の1つ以上の測定値を取得する動作は、PUのグループごとに行われる、請求項10に記載のシステム。
  12. 前記コンピュータ・プロセッサは、前記使用率の上限値が一のグループのPUキャパシティを超えることを決定することに応答して、前記1つ以上のPUを当該グループに追加する動作を行うようにさらに構成される、請求項11に記載のシステム。
  13. 前記コンピュータ・プロセッサは、前記使用率の上限値と一定値の和が前記使用可能なPUのキャパシティを超えるであろうということを決定することに応答して、前記1つ以上のPUを自動的に追加する動作を行うようにさらに構成される、請求項10に記載のシステム。
  14. 前記1つ以上のPUは、コンピュータ・プロセッサ、プロセッサ・コア及び論理プロセッサのうちの1つである、請求項10に記載のシステム。
  15. 請求項1ないし請求項9の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2013034899A 2012-04-16 2013-02-25 負荷に基づくプロセッサ数のプログラム管理 Active JP6296686B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/447,406 US9384055B2 (en) 2012-04-16 2012-04-16 Programmatic load-based management of processor population
US13/447406 2012-04-16

Publications (2)

Publication Number Publication Date
JP2013222459A true JP2013222459A (ja) 2013-10-28
JP6296686B2 JP6296686B2 (ja) 2018-03-20

Family

ID=49232358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013034899A Active JP6296686B2 (ja) 2012-04-16 2013-02-25 負荷に基づくプロセッサ数のプログラム管理

Country Status (4)

Country Link
US (2) US9384055B2 (ja)
JP (1) JP6296686B2 (ja)
CN (1) CN103377089B (ja)
DE (1) DE102013205739A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395195B2 (en) 2016-01-08 2019-08-27 International Business Machines Corporation Provisioning virtual machines to optimize application licensing costs
CN109840135B (zh) * 2019-01-30 2022-02-18 郑州云海信息技术有限公司 一种负载均衡方法、装置及电子设备
US11740933B2 (en) 2020-07-01 2023-08-29 International Business Machines Corporation Heterogeneous system on a chip scheduler with learning agent
US11704155B2 (en) * 2020-07-01 2023-07-18 International Business Machine Corporation Heterogeneous system on a chip scheduler

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181370A1 (en) * 2003-03-10 2004-09-16 International Business Machines Corporation Methods and apparatus for performing adaptive and robust prediction
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
WO2008102739A1 (ja) * 2007-02-23 2008-08-28 Nec Corporation 仮想サーバシステム及び物理サーバ選択方法
JP2009003942A (ja) * 2007-06-25 2009-01-08 Internatl Business Mach Corp <Ibm> それぞれが異なる実行能力を有する複数のプロセッサ・ユニットに跨りタスクをスケジュールする方法、コンピュータ・プログラム、データ処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0725340A3 (en) 1995-02-03 1996-10-02 Ibm Apparatus and method for managing the workload of a distributed data processing system by limiting the consumption of processing capacity
JP3716753B2 (ja) 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
JP2003330900A (ja) 2002-05-09 2003-11-21 Nec Corp アプリケーション並列処理システム及びアプリケーション並列処理方法
DE10221529A1 (de) * 2002-05-14 2003-12-04 Systemonic Ag Verfahren zum gesteuerten Abschalten von Datenverarbeitungseinheiten
US7668935B2 (en) 2003-08-29 2010-02-23 Kabushiki Kaisha Toshiba Computer system and method for service load distributing
KR20060080666A (ko) 2005-01-06 2006-07-11 삼성전자주식회사 다중 프로세서 시스템에서 부하를 분배하기 위한 장치 및방법
WO2007048577A2 (en) * 2005-10-24 2007-05-03 Accenture Global Services Gmbh Dynamic server consolidation and configuration
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US8046767B2 (en) * 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
US9507640B2 (en) 2008-12-16 2016-11-29 International Business Machines Corporation Multicore processor and method of use that configures core functions based on executing instructions
JP5316128B2 (ja) 2009-03-17 2013-10-16 トヨタ自動車株式会社 故障診断システム、電子制御ユニット、故障診断方法
US8490062B2 (en) * 2009-08-17 2013-07-16 Siemens Corporation Automatic identification of execution phases in load tests
US9183030B2 (en) * 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US8688620B2 (en) * 2011-09-23 2014-04-01 Hewlett-Packard Development Company, L.P. Anomaly detection in data centers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181370A1 (en) * 2003-03-10 2004-09-16 International Business Machines Corporation Methods and apparatus for performing adaptive and robust prediction
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
WO2008102739A1 (ja) * 2007-02-23 2008-08-28 Nec Corporation 仮想サーバシステム及び物理サーバ選択方法
JP2009003942A (ja) * 2007-06-25 2009-01-08 Internatl Business Mach Corp <Ibm> それぞれが異なる実行能力を有する複数のプロセッサ・ユニットに跨りタスクをスケジュールする方法、コンピュータ・プログラム、データ処理装置

Also Published As

Publication number Publication date
US20130275594A1 (en) 2013-10-17
DE102013205739A1 (de) 2013-10-17
CN103377089A (zh) 2013-10-30
JP6296686B2 (ja) 2018-03-20
CN103377089B (zh) 2017-06-13
US20140075447A1 (en) 2014-03-13
US9384057B2 (en) 2016-07-05
US9384055B2 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
US9015708B2 (en) System for improving the performance of high performance computing applications on cloud using integrated load balancing
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
US9367359B2 (en) Optimized resource management for map/reduce computing
US20150074216A1 (en) Distributed and parallel data processing systems including redistribution of data and methods of operating the same
US8539192B2 (en) Execution of dataflow jobs
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
US8578388B2 (en) Optimizing the performance of hybrid CPU systems based upon the thread type of applications to be run on the CPUs
US10411977B2 (en) Visualization of workload distribution on server resources
US8904204B2 (en) Managing computing resources through aggregated core management
JP6296686B2 (ja) 負荷に基づくプロセッサ数のプログラム管理
US20150160973A1 (en) Domain based resource isolation in multi-core systems
US20140089946A1 (en) Application management of a processor performance monitor
US10248406B2 (en) Locale object management
Lu et al. A new data sieving approach for high performance I/O
US20150373078A1 (en) On-demand helper operator for a streaming application
US9772877B2 (en) Managing I/O operations in a shared file system
US9891926B2 (en) Heterogeneous core microarchitecture
Hemavathy et al. Green aware based VM-placement in cloud computing environment using extended multiple linear regression model
US9264310B2 (en) Monitoring and distributing event processing within a complex event processing environment
Nemouchi et al. Efficient Auto Scaling and Cost-Effective Architecture in Apache Hadoop
Nanda et al. Deriving scalability tactics for development of data-intensive systems
Lei et al. Scalable and efficient workload hotspot detection in virtualized environment
US11962467B2 (en) Managing heterogeneous cluster environment
Amarnadh et al. A study on meta data extraction systems and features of cloud monitoring
US20170038822A1 (en) Power management for a computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180220

R150 Certificate of patent or registration of utility model

Ref document number: 6296686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150