特許第6296686号(P6296686)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許6296686負荷に基づくプロセッサ数のプログラム管理
<>
  • 特許6296686-負荷に基づくプロセッサ数のプログラム管理 図000002
  • 特許6296686-負荷に基づくプロセッサ数のプログラム管理 図000003
  • 特許6296686-負荷に基づくプロセッサ数のプログラム管理 図000004
  • 特許6296686-負荷に基づくプロセッサ数のプログラム管理 図000005
  • 特許6296686-負荷に基づくプロセッサ数のプログラム管理 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6296686
(24)【登録日】2018年3月2日
(45)【発行日】2018年3月20日
(54)【発明の名称】負荷に基づくプロセッサ数のプログラム管理
(51)【国際特許分類】
   G06F 9/50 20060101AFI20180312BHJP
【FI】
   G06F9/46 462Z
【請求項の数】15
【全頁数】14
(21)【出願番号】特願2013-34899(P2013-34899)
(22)【出願日】2013年2月25日
(65)【公開番号】特開2013-222459(P2013-222459A)
(43)【公開日】2013年10月28日
【審査請求日】2016年2月9日
(31)【優先権主張番号】13/447406
(32)【優先日】2012年4月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ブライアン・キース・ウェード
【審査官】 原 忠
(56)【参考文献】
【文献】 米国特許出願公開第2005/0155032(US,A1)
【文献】 国際公開第2008/102739(WO,A1)
【文献】 特開2009−003942(JP,A)
【文献】 米国特許出願公開第2004/0181370(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46−9/54
G06F 15/16
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実装される方法であって、
(a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
(b)使用率の上限値を計算するステップであって、該上限値は、所定の時間インターバルにわたる処理ユニット(PU)の平均使用率及び標準偏差を用いて、次の時間インターバルにおける実際の使用率が前記上限値を超える可能性が指定された値となるように計算される前記ステップと、
(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の上限値を計算するステップであって、該第1の上限値は、所定の時間インターバルにわたる処理ユニット(PU)の平均使用率及び標準偏差を用いて、次の時間インターバルにおける実際の使用率が前記上限値を超える可能性が指定された値となるように計算される前記ステップと、
(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)の平均使用率及び標準偏差を用いて、次の時間インターバルにおける実際の使用率が前記上限値を超える可能性が指定された値となるように計算される前記動作と、
前記使用率の上限値が使用可能な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項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ環境内の処理に係り、さらに詳細に説明すれば、プロセッサ数(processorpopulation)のプログラム管理に係る。
【背景技術】
【0002】
機能的に同等のN個のコンピュータ処理ユニット(PU)を備えるコンピュータ・システムでは、当該システム上で稼働中の作業負荷は、しばしばN個のPUが全体として提供することができる計算能力よりも少ない計算能力を消費するであろう。このことは、「システムの使用率は、N×100%未満である」と定量的に表されることがある。例えば、N=16である場合、完全な使用率は、1600%になり、そして当該使用可能なキャパシティの半分だけを消費する作業負荷は、800%の使用率で稼働すると称されるであろう。
【0003】
かかる作業負荷をディスパッチするマルチプロセッシング対応のオペレーティング・システムは、しばしばこれらの作業負荷をN個のPU上に均等に分配する。前述の例について説明を続けると、ディスパッチャは、機能的に同等の16個のPUの各々を50%の使用率で稼働させることにより、当該作業負荷に十分な能力を提供する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
幾つかのコンピュータ・システムでは、複数のPUを管理するオーバーヘッド、当該マシンのプロセッサ・キャッシュ構造及びマルチプロセッシングのレベルが増大するにつれてオペレーティング・システムによってロッキング及び相互排他を行うという必要性が増大することに起因して、かかる公正な分配は、かかる作業負荷を分配する最も効率的な方法であるとは限らない。前述の例に再び戻って説明すると、オペレーティング・システムのカーネルにとっては、全体として800%の使用率を必要とする前述の作業負荷を、それぞれが80%の使用率で稼働する10個のプロセッサによって処理する一方、残りの6個のプロセッサをアイドルに留めておくことがより合理的であるかもしれない。
【課題を解決するための手段】
【0005】
本発明の第1の側面に従って、コンピュータによって実装される方法が提供される。この方法は、
(a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
(b)使用率の上限値(utilization ceiling)を計算するステップと、
(c)前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
(d)前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する。
【0006】
本発明の第2の側面に従って、コンピュータによって実装される方法が提供される。この方法は、
(a)プロセッサ使用率の1つ以上の測定値を取得するステップと、
(b)使用率の第1の上限値を計算するステップと、
(c)使用率の第2の上限値を計算するステップと、
(d)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち大きい方が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加するステップと、
(e)前記使用率の第1の上限値及び前記使用率の第2の上限値のうち大きい方が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去するステップを有する。
【0007】
本発明の第3の側面に従って、システムが提供される。このシステムは、コンピュータ・プロセッサを備え、当該コンピュータ・プロセッサは、
プロセッサ使用率の1つ以上の測定値を取得する動作と、
使用率の上限値を計算する動作と、
前記使用率の上限値が使用可能な処理ユニット(PU)のキャパシティよりも大きいことを決定することに応答して、1つ以上のPUを自動的に追加する動作と、
前記使用率の上限値が前記使用可能なPUのキャパシティよりも少なくとも1PU小さいことを決定することに応答して、1つ以上のPUを自動的に除去する動作を行うように構成される。
【0008】
本発明の第4の側面に従って、前記第1及び第2の側面に従った方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムが提供される。
【0009】
追加の機能及び利点は、本発明の技術を通して実現される。本発明の他の諸実施形態及び諸側面は、本明細書において詳述され、請求項に記載された発明の一部と考えられる。諸利点及び諸機能とともに本発明をよりよく理解するには、以下の説明及び図面を参照されたい。
【発明の効果】
【0010】
本発明は、作業負荷を処理するのに必要とされる最小セットのPU上の作業負荷を統合することにより、プロセッサ・オーバーヘッドを減少させることができるという効果を奏する。また、本発明は、1セットのPUのうち必要とされるプロセッサ数をリアル・タイムで予測し、予測された作業負荷を満たすようにPUの数を増加させることができるという効果を奏する。さらに、本発明は、異機種PUの複数グループにわたって、所与のタイプのPUの各グループごとに、PU使用率を予測することができるという効果を奏する。
【図面の簡単な説明】
【0011】
図1】一実施形態によって実装することができる、プロセッサ数のプログラム管理を実装するためのシステムを示す概略図である。
図2】一実施形態におけるプロセッサ・ユニットの使用率を示すグラフである。
図3】一実施形態に従った、ランダムな変数値とこれらの値を超えるサンプルの生起確率を関連づけるための数表である。
図4】一実施形態で実装することができる、プロセッサ数のプログラム管理を示すフローチャートである。
図5】追加の実施形態で実装することができる、プロセッサ数のプログラム管理を示すフローチャートである。
【発明を実施するための形態】
【0012】
本発明の一実施形態は、プロセッサ数のプログラム管理を提供する。
【0013】
一実施形態は、或る時間インターバルにわたる平均処理負荷に加えて、標準偏差を計算することを含む。処理負荷の平均(μ)及び処理負荷の標準偏差(σ)に基づき、そしてシステム管理者によって指定された信頼度確率Pが与えられると、次の時間インターバルにおける実際の使用率が超える可能性がP%だけであるような、使用率の上限値(負荷の上限値)Cが計算される。一実施形態では、この計算を行うために、図3の数表が使用される。例えば、もし、システム管理者が障害の確率を2%に管理することを望んでいれば、上限値Cは、μ+2.06×σになるであろう。次に、その時点においてオンになっているPUの数に基づき、Cを処理するためにより多くのPUが必要とされるか否かが決定される。もし、より多くのPUが必要とされるのであれば、PUの組み合わせがCを処理することができるまで、追加のPUがオンにされる。一方、Cを処理するためにより少数のPUが必要とされるのであれば、余分なPUがオフにされる。
【0014】
大規模コンピュータ・システムは、変化する負荷の下で動作する。多くの場合、これらのコンピュータ・システムは、最高の予想需要の下で、当該システムが負荷の全体をサポートするのに十分な処理能力を有することを保証するためにサイズ超過となっている。この処理能力は、コンピュータ・システムに追加のPUを追加することにより提供される。PUは、単一のコンピュータ・プロセッサ又はコンピュータ・コアを含んでもよい。一実施形態では、PUは、論理プロセッサである。一般に、処理負荷は、複数のPU上に分配されているから、当該システムが最大の負荷よりも少ない負荷を処理している場合、そのプロセッサの各々は、かなりの量の活用されていない処理能力を有することがある。
【0015】
オペレーティング・システムのタスク管理機構は、作業を複数のプロセッサ上に分配することにより、相互排他のためのロッキングのような処理オーバーヘッドを招く。さらに、処理が或るPUから他のPUに転送される際には、関連するキャッシュ・データ及び命令が、同様に移動されなければならない。大規模システムでは、このオーバーヘッドが相当な量になり、全体的なシステム処理時間に相当な影響を及ぼすことがある。
【0016】
オーバーヘッドの或るものは、システム上の負荷が低いことが予想される場合に、諸PUをオフにすることにより手動的に緩和することができる。しかし、かかるPUの手動的調整は、予期しない処理量の激増に対応することができないから、制限された価値を有するに過ぎない。より知的な手法は、必要に応じて、諸PUを自動的にオン及びオフにすることである。この手法は、プロセッサ管理オーバーヘッドを著しく減少させるであろう。というのは、この手法は、予期される負荷をサポートするであろう最小セットのPU上で諸プロセスを稼働させると同時に、近未来の処理要件の変化を予測する能力を有し、これにより全体的なシステムの予期されるニーズに基づき、諸PUをオン及びオフにするからである。
【0017】
次に、図1を参照して、プロセッサ数のプログラム管理を実装するためのシステム100を説明する。一実施形態では、システム100は、ホスト・システム・コンピュータ(以下「ホスト」と略記)102を含む。ホスト102は、諸コンピュータ命令を実行することにより、(1)アプリケーションの作業負荷を稼働させ、(2)PU構成のプログラム管理への入力としてPU使用率を測定し、(3)キャパシティに対する近未来のニーズの予測に従って諸PUをオン又はオフにするように動作する。ホスト102は、ソフトウェア・アプリケーションを実行することができる任意のタイプの環境内で動作してもよい。ホスト102は、メインフレーム・コンピュータのような高速コンピュータ処理装置を含んでもよい。一実施形態では、ホスト102は、企業(例えば、営利事業)の一部であって、PU能力のための予測需要量に基づきPU構成を管理するためのプログラム技術を使用する。
【0018】
一実施形態では、図1のシステム100は、1つ以上のクライアント・システム(以下「クライアント」と略記)104を含む。1つ以上の地理的な位置におけるユーザは、クライアント・システム104を通して、ホスト102と通信することができる。クライアント104は、1つ以上のネットワーク106を介して、ホスト102に結合される。各クライアント104は、本明細書に開示したプロセスを行うためのコンピュータ・プログラムを実行する汎用コンピュータを使用して実装されてもよい。クライアント104は、パーソナル・コンピュータ(例えば、ラップ・トップ、携帯情報端末、モバイル装置)又はホスト接続端末でもよい。もし、クライアント104がパーソナル・コンピュータであれば、本明細書に開示した処理は、(例えば、アプレットをクライアント104に提供することにより)クライアント104及びホスト102によって共用されてもよい。クライアント104は、ウェブサーバ、データベース・サーバ等のようなホスト102上で実行中のアプリケーションにアクセスするために、許可されたユーザ(例えば、プログラマ)によって動作されてもよい。
【0019】
ネットワーク106は、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、グローバル・ネットワーク(例えば、インターネット)、仮想プライベート・ネットワーク(VPN)、イントラネット等を含む、任意のタイプの公知のネットワークでもよい。ネットワーク106は、無線ネットワーク又は当分野で公知の任意の種類の物理ネットワーク実装を使用して、実装されてもよい。一のクライアント104は、全てのクライアント104が同じネットワークを通してホスト102に結合されないように、複数のネットワーク(例えば、イントラネット及びインターネット)を通してホスト102に結合されてもよい。1つ以上のクライアント104及びホスト102は、無線でネットワーク106に接続されてもよい。一実施形態では、ネットワーク106は、イントラネット及びネットワーク106を通してホスト102と通信するためにユーザ・インタフェース・アプリケーション(例えば、ウェブ・ブラウザ)を実行する1つ以上のクライアント104を含む。他の実施形態では、クライアント104は、(ネットワーク106を通してではなく)ホスト102に直接的に接続され、そしてホスト102は、プロセッサ数のプログラム管理をサポートするデータを格納するためのメモリを備える。代替的に、この目的のために、別個のストレージ装置(例えば、ストレージ装置112)が実装されてもよい。
【0020】
一実施形態では、ストレージ装置112は、システム100によるプロセッサ数のプログラム管理に関係するデータを保持するとともに、ホスト102を表すエンティティによって必要とされる他のデータ/情報を保持するためのデータ・リポジトリを含む。ストレージ装置112は、ネットワーク106を含む分散環境にわたって統合されたデータ・ソースとして、論理的にアドレス可能である。ストレージ装置112内に格納された情報は、ホスト102及び/又はクライアント104を介して検索され且つ処理されてもよい。一実施形態では、ストレージ装置112は、1つ以上のデータベースを含む。これらのデータベースは、以下で詳述するように、例えば、構成パラメータ、値、メソッド、プロパティ、他の関係する情報等を保持する。当業者には明らかなように、ストレージ装置112は、ファイル・システム上のXMLファイル若しくはネットワーク(例えば、ネットワーク106の1つ)にわたって分散されたXMLファイル、又はネットワーク106上に位置する他のサーバからのデータ・ストリームから受信されたXMLファイルのような他の構造を含んでもよい。代替的に、ストレージ装置112の全て又は一部は、一のクライアント104上に置かれてもよい。
【0021】
ホスト102は、1つ以上のサーバを使用して実装され、当該サーバによってアクセス可能なストレージ媒体内に格納されたコンピュータ・プログラムに応答して動作してもよい。ホスト102は、クライアント104と通信するために、ネットワーク・サーバ(例えば、ウェブ・サーバ)として動作してもよい。ホスト102は、クライアント104との間で情報を送信及び受信し、関連する諸タスクを行うことができる。また、ホスト102は、ホスト102への無許可のアクセスを防止し且つ許可されたアクセスについて任意の制限を強制するためのファイアウォールを含んでもよい。例えば、管理者は、システムの全体にアクセスし且つ当該システムの諸部分を修正するための権限を有してもよい。ファイアウォールは、当分野で公知の通常のハードウェア及び/又はソフトウェアを使用して実装されてもよい。
【0022】
また、ホスト102は、アプリケーション・サーバとして動作してもよい。ホスト102は、プロセッサ数のプログラム管理を提供するために、1つ以上のコンピュータ・プログラムを実行する。ホスト102は、プロセッサ管理モジュール108を含む。前述のように、アプリケーション(例えば、java(登録商標)アプレット)をクライアント104に提供することにより、処理はクライアント104及びホスト102によって共用されてもよい。代替的に、クライアント104は、本明細書に開示した処理の一部又は全てを行うための、スタンド・アロンのソフトウェア・アプリケーションを含むことができる。前述のように、ネットワーク・サーバ機能及びアプリケーション・サーバ機能を実装するために、別々のサーバが使用されてもよい。代替的に、ネットワーク・サーバ、ファイアウォール及びアプリケーション・サーバは、必要な機能を行うためにコンピュータ・プログラムを実行する、単一のサーバによって実装されてもよい。
【0023】
一実施形態では、プロセッサ管理モジュール108は、諸PUにわたって分配される作業負荷と共に、ホスト102上で実行される。追加の実施形態では、プロセッサ管理モジュール108は、作業負荷を実行していない、別個のコンピュータ・システム上で実行される。
【0024】
図1に関連して説明したプロセッサ数のプログラム管理は、ハードウェア、汎用コンピュータ上で実行するソフトウェア又はその組み合わせによって実装されてもよい。
【0025】
図2は、一実施形態におけるPU使用率のグラフを示す。PU使用率の曲線202は、或る時間インターバルにわたる実際のPU使用率を示す。PU使用率の曲線202に基づき、平均使用率(μ)204が計算される。平均使用率204は、PU使用率の曲線202について計算された当該時間インターバルにわたる平均PU使用率である。PU使用率の曲線202及び平均使用率204に基づき、標準偏差(σ)が計算される。図2のグラフ及び当該グラフ内の値は、説明の便宜上のものであるに過ぎないこと、そして諸実施形態は任意の特定の値に制限されないことを理解されたい。さらに、これらの値自体は計算されるが、グラフの生成は必要とされないこと、そしてこれらの値自体はシステムのPU要件を決定するために使用されることを理解されたい。
【0026】
図3は、ランダムな変数値とこれらの値を超えるサンプルの生起確率を関連づけるための数表を示す。列Mは、例えば、図2のデータに基づき計算された平均PU使用率からの多数の標準偏差を示す。第2の列は、システムの使用率要件が列M内の値を超えるであろう計算された確率である。従って、図3の数表によれば、次の時間インターバルの間に、PU使用率が平均PU使用率と1×標準偏差の和(μ+σ)を超える16%の確率が存在する。この確率値を使用して、必要とされるPUの数が予測される。一実施形態では、与えられた値Mを超えるというリスクは、ユーザが受け入れることを望んでいるリスクに対して測定される。例えば、実際の使用率がMを超えるであろうという2%のリスクをユーザが受け入れることを望んでいるものと仮定すると、オンラインにされるであろうPUの数は、現在の平均PU使用率と2.06×標準偏差の和(μ+2.06σ)をサポート可能である必要があるであろう。従って、以下で詳述するように、PUカウントが調整されるであろう。
【0027】
図3の数表内の値は、説明の便宜上のものであるに過ぎないこと、そして諸実施形態は任意の特定の値に制限されないことを理解されたい。
【0028】
一実施形態では、データ及び確率の計算値は、全体としてシステムのための定期的な時間インターバルで生成される。追加の実施形態では、システムは、多数の異機種PUから成り、そしてデータ及び確率の計算値は、PUのタイプごとに生成される。
【0029】
図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で継続する。
【0030】
ステップ414に戻って、説明を続ける。もし、Cが現にオンラインになっているPUの数よりも少なくとも1PU小さくなければ、処理はステップ402で継続する。一実施形態では、図4のプロセスは、計算された上限値Cを現にオンラインになっているPUの数と比較し、そしてシステム内のオンラインになっているPUの数を全体として調整するために使用される。追加の実施形態では、システムは、多数の異機種PUから成り、そして図4のプロセスは、種々のPUタイプの各々ごとに実行される。
【0031】
図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で継続する。
【0032】
ステップ518に戻って、説明を続ける。もし、「C’’」が現にオンラインになっているPUの数よりも少なくとも1PU小さくなければ、処理はステップ502で継続する。一実施形態では、図5のプロセスは、計算された上限値「C’’」を現にオンラインになっているPUの数と比較し、そしてシステム内のオンラインになっているPUの数を全体として調整するために使用される。追加の実施形態では、システムは、多数の異機種PUから成り、そして図5のプロセスは、種々のPUタイプの各々ごとに実行される。
【0033】
一実施形態では、図4及び図5に示すプロセスの何れかは、一定値Zを予測されたプロセッサ使用率値に加算することにより変更され、それによって、処理バッファを作成するために予測された値とZの和によってPUの数を増加させる。
【0034】
技術的な結果及び利点は、作業負荷を処理するのに必要とされる最小セットのPU上の作業負荷を統合することにより、プロセッサ・オーバーヘッドを減少させることを含む。追加の利点は、1セットのPUのうち必要とされるプロセッサ数をリアル・タイムで予測することができ、しかも予測された作業負荷を満たすようにPUの数を増加させることができる点にある。さらに他の利点は、異機種PUの複数グループにわたって、所与のタイプのPUの各グループごとに、プロセッサ使用率を予測することができる点にある。
【0035】
本明細書で使用される用語は、特定の実施形態を説明するためだけのものであるに過ぎず、本発明を制限することは意図されていない。本明細書で使用される単数形式の用語は、複数形式の用語を包含することが意図されている。但し、文脈上これと異なることが明白であるときは、その限りではない。また、本明細書で使用される「含む」又は「有する」という用語は、記述の対象となる機能、整数、ステップ、動作、要素及び/又はコンポーネントが存在することを表すが、1つ以上の他の機能、整数、ステップ、動作、要素及び/又はコンポーネントが存在することを妨げない。
【0036】
以下の請求項に記載された全ての手段又はステップ+機能要素に対応する構造、材料、行為及びそれらの均等物は、請求項に明示的に記載された他の要素と組み合わせてその機能を実施するための任意の構造、材料又は行為を含むことが意図される。本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形を施し得ることが明らかであろう。実施形態は、本発明の原理及び実際の応用を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
【0037】
本発明の諸側面は、システム、方法又はコンピュータ・プログラムとして具体化されてもよい。従って、本発明の諸側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェア及びハードウェア要素を組み合わせた実施形態の形式を取ってもよく、本明細書では、これらの全てを一般に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の諸側面は、コンピュータ可読プログラム・コードをその上に具体化したコンピュータ可読媒体を有するコンピュータ・プログラムの形式を取ってもよい。
【0038】
1つ以上のコンピュータ可読媒体の任意の組み合わせを利用してもよい。当該コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体でもよい。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム、装置又はこれらの任意の適切な組み合わせでもよい。コンピュータ可読媒体の特定の例は、1つ以上の線を有する電気接続、フレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、CD−ROM、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせを含んでもよい。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置等に関連して又はこれらによって使用するためのプログラムを保持し、格納することができる、任意の有形的媒体でもよい。
【0039】
コンピュータ可読信号媒体は、伝搬されるデータ信号を含んでもよいが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化してもよい。かかる伝搬されるデータ信号は、電磁気、光又はこれらの任意の適切な組み合わせを含む、種々の形式のうち任意の形式を取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない任意のコンピュータ可読媒体であって、命令実行システム、装置等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送することができる。
【0040】
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF又はこれらの任意の適切な組み合わせを含む、任意の適切な媒体を使用して伝送してもよい。
【0041】
本発明の諸側面に係る動作を実行するためのコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書いてもよい。当該プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行してもよく、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行してもよく、或いは遠隔コンピュータ又はサーバ上で完全に実行してもよい。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続してもよく、或いはその接続を(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに行ってもよい。
【0042】
以上では、本発明の諸実施形態に従った、方法、装置(システム)及びコンピュータ・プログラムのフローチャート及び/又はブロック図を参照して、本発明の諸側面を説明した。フローチャート及び/又はブロック図の各ブロック、並びにフローチャート及び/又はブロック図の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ上で実行される諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装するための手段を作成することを目的として、一のマシンを生産することができる。
【0043】
また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、コンピュータ可読媒体内に格納された諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装する命令手段を含む製品を生産することを目的として、コンピュータ又は他のプログラム可能なデータ処理装置に対し特定の態様で機能するように指示することができる。
【0044】
また、これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置にロードすると、当該コンピュータ又は他のプログラム可能なデータ処理装置上で実行される諸命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータによって実装される方法を生成するように当該コンピュータ又は他のプログラム可能なデータ処理装置上で一連の動作ステップを実行させることができる。
【0045】
前述のように、諸実施形態は、コンピュータ実装プロセス及びそれらのプロセスを実施するための装置の形式で具体化することができる。実施形態では、本発明は、1つ以上のネットワーク要素によって実行されるコンピュータ・プログラム・コード内で具体化される。諸実施形態は、製品として有形的媒体内に記録された諸命令を保持する、コンピュータ・プログラム信号論理を備えたコンピュータ使用可能媒体上のコンピュータ・プログラムを含む。コンピュータ使用可能媒体のための推奨製品は、フレキシブル・ディスク、CD−ROM、ハード・ドライブ、ユニバーサル・シリアル・バス(USB)フラッシュ・ドライブ、又は他の任意のコンピュータ可読ストレージ媒体を含むことができる。コンピュータ・プログラム信号論理が一のコンピュータにロードされ且つ当該コンピュータによって実行される場合、当該コンピュータは、本発明を実施するための装置になる。コンピュータ・プログラム・コード論理は、例えば、ストレージ媒体内に格納され、一のコンピュータにロードされ且つ当該コンピュータによって実行され、或いは電気的ケーブル、光ファイバ、電磁放射等の特定の伝送媒体を介して伝送される。その場合、コンピュータ・プログラム・コード論理が一のコンピュータにロードされ且つ当該コンピュータによって実行される場合、当該コンピュータは、本発明を実施するための装置になる。汎用のマイクロプロセッサ上で実装される場合、コンピュータ・プログラム・コード論理のセグメントは、特定の論理回路を作成するようにマイクロプロセッサを構成する。
【0046】
諸図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記された機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した2つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。
【符号の説明】
【0047】
100・・・システム
102・・・ホスト・システム・コンピュータ(ホスト)
104・・・クライアント・システム(クライアント)
106・・・ネットワーク
108・・・プロセッサ管理モジュール
112・・・ストレージ装置
図1
図2
図3
図4
図5