(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5768586
(24)【登録日】2015年7月3日
(45)【発行日】2015年8月26日
(54)【発明の名称】計算装置、計算装置の制御方法、及びプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20150806BHJP
【FI】
G06F9/46 462Z
G06F9/46 465D
【請求項の数】5
【全頁数】9
(21)【出願番号】特願2011-178176(P2011-178176)
(22)【出願日】2011年8月17日
(65)【公開番号】特開2013-41437(P2013-41437A)
(43)【公開日】2013年2月28日
【審査請求日】2014年7月11日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】船越 尚史
【審査官】
井上 宏一
(56)【参考文献】
【文献】
特開2003−256221(JP,A)
【文献】
特開2009−175788(JP,A)
【文献】
特開2005− 85164(JP,A)
【文献】
国際公開第2009/037731(WO,A1)
【文献】
今村 智史,外3名,稼働コア数制限に基づくマルチコア・プロセッサ性能向上手法の提案,情報処理学会研究報告 2011(平成23)年度▲2▼ [CD−ROM],一般社団法人情報処理学会,2011年 8月15日,pp.1-8,計算機アーキテクチャ(ARC) No.196
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/46 −9/54
(57)【特許請求の範囲】
【請求項1】
複数のプロセッサを有する計算装置であって、
前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部と、
前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部と、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部と
を備えることを特徴とする計算装置。
【請求項2】
前記計算量変更部は、
前記タスク情報取得部が取得したプロセッサ数が所定の閾値未満である場合に、前記クロック周波数の上限値を、前記プロセッサの許容クロック周波数の上限値とし、
前記タスク情報取得部が取得したプロセッサ数が所定の閾値以上である場合に、前記クロック周波数の上限値を、前記プロセッサの冷却用電力が所定の閾値以下になるようなクロック周波数とする
ことを特徴とする請求項1に記載の計算装置。
【請求項3】
前記計算量変更部は、前記プロセッサの使用率を低減させることで、1つのプロセッサの単位時間当たりの計算量を小さくする
ことを特徴とする請求項1または請求項2に記載の計算装置。
【請求項4】
複数のプロセッサを有する計算装置の制御方法であって、
タスク情報取得部は、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得し、
プロセッサ数制御部は、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させ、
計算量変更部は、前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、
前記計算量変更部は、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する
ことを特徴とする計算装置の制御方法。
【請求項5】
複数のプロセッサを有する計算装置の制御機構を、
前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部、
前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のプロセッサを有する計算装置、当該計算装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
一般に、コンピュータシステムに求められる処理には、単体性能が必要な処理と、並列性能が必要な処理がある。ここで、単体性能とは、1つのプロセッサを高速に動作させることで、高速にタスクを処理する性能のことであり、並列性能とは、複数のプロセッサを並列動作させることで、高速にタスクを処理する性能のことである。
【0003】
単体性能を高くするためには、高性能なプロセッサが必要である。他方、並列性能を高めるためには、複数のプロセッサが必要である。このため、プロセッサ構成が固定化されている場合において、単体性能の要求と並列性能の要求とを満たすためには、高性能なプロセッサを複数用意する必要がある。
【0004】
しかしながら、高性能なプロセッサを複数用意した場合、並列性能が不要な処理に対しても、複数のプロセッサに対して電源やクロックを供給し続ける必要があり、消費電力が高いという問題があった。この問題を解決する技術として、特許文献1には、タスクに応じて動作させるプロセッサ数を変更する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平9−138716号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、高性能なプロセッサを複数搭載したコンピュータシステムにおいて特許文献1に記載の技術を用いた場合において、並列性能が必要な一方、単体性能が不要な処理を実行するとき、高性能なプロセッサでの並列処理を行うこととなる。プロセッサにおける単位時間当たりに実行する計算量が高くなるにつれ、消費電力が大きくなり、また発熱量が大きくなる。発熱量が大きいと、プロセッサの動作が不安定となるため、プロセッサの冷却を行う必要があり、冷却用の電力が必要となる。これらのことから、高性能なプロセッサで並列処理を実行すると、必要以上に電力を消費してしまうという問題がある。
【0007】
本発明は、上記の問題に鑑みてなされたものであり、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ消費電力を低減することができる計算装置、計算装置の制御方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【0008】
本発明は上記の課題を解決するためになされたものであり、複数のプロセッサを有する計算装置であって、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と
当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部と、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部と、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部とを備えることを特徴とする。
【0009】
また、本発明は、複数のプロセッサを有する計算装置の制御方法であって、タスク情報取得部は、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と
当該タスクの実行に必要な性能割合を示す要求性能とを取得し、プロセッサ数制御部は、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させ、計算量変更部は、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記計算量変更部は、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定することを特徴とする。
【0010】
また、本発明は、複数のプロセッサを有する計算装置の制御機構を、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と
当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部として機能させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、タスクに要求されるプロセッサ数のプロセッサを、かつタスクに要求される性能に応じた計算量で動作させる。これにより、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ消費電力を低減することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の第1の実施形態による計算装置の構成を示す概略ブロック図である。
【
図2】CPUの温度と冷却ファンの消費電力との関係を示す図である。
【
図3】タスク情報取得部が取得するタスクの情報の一例を示す図である。
【
図4】本発明の第1の実施形態による制御機構の動作を示すフローチャートである。
【
図5】本発明の第2の実施形態による計算装置の構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
《第1の実施形態》
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の第1の実施形態による計算装置の構成を示す概略ブロック図である。
計算装置は、複数のCPU1−1〜1−4(Central Processing Unit:プロセッサ/以下、CPU1−1〜1−4を総称する場合はCPU1と表記する)、制御機構2、電源部3、冷却ファン4を備える。
【0014】
CPU1は、OS(Operating System)及びOSから実行を指示されたタスクを実行する。なお、CPU1は、所定周波数のクロックを発生させるクロック発生部11を備え、クロック発生部11が発生させたクロックに合わせてタスクを実行する。
制御機構2は、CPU1の動作を制御する機構であり、専用のプロセッサによって構成される。
電源部3は、CPU1、制御機構2、冷却ファン4に電力を供給する。
冷却ファン4は、発熱したCPU1に送風することで、CPU1の温度を低下させる。
【0015】
図2は、CPU1の温度と冷却ファン4の消費電力との関係を示す図である。
一般に、CPU1が単位時間当たりに実行する計算量が大きくなるにつれ、CPU1の消費電力が大きくなり、発熱量が大きくなる。CPU1の発熱が大きくなると、CPU1の動作が不安定になることから、冷却ファン4は、CPU1の発熱に合わせた風量でCPU1に送風する必要がある。そのため、CPU1が単位時間当たりに実行する計算量が大きくなるにつれ、冷却ファン4が消費する電力量が大きくなる。特に、
図2に示す場合では、CPU1が単位時間当たりに実行する計算量がR
Aを超えたときに、冷却ファン4が消費する電力量の増加率が大きくなっている。そのため、CPU1が並列処理を行っていない場合には、CPU1が単位時間当たりに実行する計算量をR
A以下に抑えることが好ましい。
【0016】
制御機構2は、所定のファームウェアプログラムを実行することで、タスク情報取得部21、プロセッサ数制御部22、計算量変更部23を備える。
【0017】
タスク情報取得部21は、CPU1が実行するOSから、CPU1に実行させるタスクの情報を取得する。タスクの情報は、タスクの実行に必要なプロセッサ数(並列度)及びタスクの実行に必要な性能割合を示す要求性能を含む。つまり、要求性能は、値が大きいほど短時間で完了させたいタスクであることを示し、値が小さいほど実行時間を求めないタスクであることを示す。なお、タスクの情報は、OSによるタスク生成時に定義される情報であるが、運用状況に応じて変更しても良い。
【0018】
図3は、タスク情報取得部21が取得するタスクの情報の一例を示す図である。
例えば、タスクAのプロセッサ数は1であり、要求性能は100%である。これは、単体のCPU1が必要で、かつできる限り短時間で実行を完了させたいタスク、すなわちCPU1の単体性能が求められる処理であることを示している。
他方、タスクCのプロセッサ数は4であり、要求性能は20%である。これは、複数のCPU1が必要だが、実行時間は求めない処理、すなわちCPU1の並列性能を求める処理であることを示している。
【0019】
プロセッサ数制御部22は、タスク情報取得部21が取得したプロセッサ数から、何れのCPU1にタスクを実行させるかを決定する。またプロセッサ数制御部22は、タスクを実行させないCPU1への電力の供給を停止させる供給停止要求を電源部3に出力し、タスクを実行させるCPU1への電力の供給を開始させる供給開始要求を電源部3に出力する。
【0020】
計算量変更部23は、タスク情報取得部21が取得したプロセッサ数及び要求性能から、CPU1それぞれのクロック周波数を決定する。また計算量変更部23は、決定したクロック周波数のクロックを発生させる周波数変更要求をCPU1のクロック発生部11に出力する。具体的には、計算量変更部23は、タスクが要求するプロセッサ数が多い場合、クロック周波数を小さく設定する。これは、CPU1に対する電力供給を行う代わりに冷却ファン4への電力供給を抑えるためである。また、計算量変更部23は、タスクの要求性能が低い場合、クロック周波数を小さく設定する。つまり、計算量変更部23は、CPU1に供給するクロックの周波数を低減させることで、1つのCPU1の単位時間当たりの計算量を小さくする。
【0021】
次に、制御機構2の動作について説明する。
図4は、本発明の第1の実施形態による制御機構2の動作を示すフローチャートである。
CPU1が実行するOSが、CPU1に新たにタスクを実行させる場合、制御機構2のタスク情報取得部21は、CPU1からタスクの情報として、プロセッサ数及び要求性能を取得する(ステップS1)。次に、プロセッサ数制御部22は、タスク情報取得部21が取得したプロセッサ数に基づいて何れのCPU1を動作させるかを決定する(ステップS2)。なお、プロセッサ数制御部22は、できる限り動作中のCPU1の数を減らすために、特定のCPU1にタスクを集中的に割り当てる。他方、集中的に割り当てると計算装置全体としての電力が大きくなる場合、プロセッサ数制御部22は、別のCPU1を起動させて分散処理させるよう決定する。
【0022】
次に、プロセッサ数制御部22は、現在稼働中のCPU1のうち、タスクを実行させないCPU1を特定し、当該CPU1に対する電源供給の停止を要求する供給停止要求を、電源部3に出力する。また、プロセッサ数制御部22は、現在停止中のCPU1のうち、タスクを実行させるCPU1を特定し、当該CPU1に対する電源供給の開始を要求する供給開始要求を、電源部3に出力する(ステップS3)。電源部3は、プロセッサ数制御部22から取得した要求に基づいて、CPU1への電力供給の開始・停止を制御する。
【0023】
次に、計算量変更部23は、プロセッサ数制御部22によって決定されたタスクを実行させるCPU1の数が1であるか複数であるかを判定する(ステップS4)。計算量変更部23は、タスクを実行させるCPU1の数が1であると判定した場合(ステップS4:YES)、CPU1のクロック周波数の上限値を、当該CPU1の許容クロック周波数の上限値(
図2に示す100%)とする(ステップS5)。他方、計算量変更部23は、タスクを実行させるCPU1の数が複数であると判定した場合(ステップS4:NO)、CPU1のクロック周波数の上限値を、冷却ファン4が消費する電力量の増加率が増大する閾値であるR
A%(
図2を参照)とする(ステップS6)。
【0024】
計算量変更部23は、ステップS5、S6でクロック周波数の上限値を設定すると、設定した上限値に、ステップS1でタスク情報取得部21が取得した要求性能が示す割合を乗じることで、CPU1のクロック周波数を算出する(ステップS7)。そして、計算量変更部23は、当該算出したクロック周波数を、タスクを実行させるCPU1のクロック発生部11に通知する。これにより、クロック発生部11は制御機構2によって通知されたクロック周波数のクロックを発生させる。
【0025】
このように、本実施形態によれば、制御機構2は、タスク情報取得部21が取得したプロセッサ数でCPU1を動作させ、タスク情報取得部21が取得した要求性能が低いほど、1つのCPU1の単位時間当たりの計算量を小さくする。これにより、制御機構2は、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ計算装置全体の消費電力を低減することができる。
【0026】
また、本実施形態によれば、タスク情報取得部21が取得する要求性能は、1つのCPU1の単位時間当たりの計算量の上限値に対する割合を示し、タスク情報取得部21が取得したプロセッサ数が多いほど、計算量の上限値を小さく設定する。これにより、複数のCPU1の並列処理によりタスクを実行する場合に、個々のCPU1の消費電力を低減することで、計算装置全体の消費電力の増大を防ぐことができる。
【0027】
また、本実施形態によれば、計算量変更部23は、タスク情報取得部21が取得したプロセッサ数が2未満である場合に、計算量の最大値を、CPU1が単位時間において実行し得る最大の計算量とし、プロセッサ数が2以上である場合に、計算量の最大値を、CPU1の冷却に用いる冷却ファン4の消費電力が所定の閾値R
A以下になるような計算量とする。これにより、複数のCPU1の並列処理によりタスクを実行する場合に、冷却ファン4の消費電力が急増しない範囲内でCPU1を動作させることで、計算装置全体の消費電力の増大を防ぐことができる。
【0028】
《第2の実施形態》
図5は、本発明の第2の実施形態による計算装置の構成を示す概略ブロック図である。
第2の実施形態による計算装置は、第1の計算装置における計算量変更部23の処理が異なり、また計算量変更部23の処理結果の出力先を、CPU1のアイドル命令実行部12とするものである。
【0029】
計算量変更部23は、タスク情報取得部21が取得したプロセッサ数及び要求性能から、CPU1それぞれの使用率を決定する。また計算量変更部23は、決定した使用率でCPU1を動作させる使用率変更要求をCPU1のアイドル命令実行部12に出力する。具体的には、計算量変更部23は、タスクが要求するプロセッサ数が多い場合、CPU1の使用率を低く設定する。これは、CPU1に対する電力供給を行う代わりに冷却ファン4への電力供給を抑えるためである。また、計算量変更部23は、タスクの要求性能が低い場合、CPU1の使用率を低く設定する。つまり、計算量変更部23は、CPU1の使用率を低減させることで、1つのCPU1の単位時間当たりの計算量を小さくする。
【0030】
CPU1のアイドル命令実行部12は、計算量変更部23から出力された使用率変更要求が示す使用率の補数の割合(100%−使用率)で、CPU1にアイドル命令を強制的に実行させる。これにより、CPU1は、使用率変更要求が示す使用率の割合でタスクを実行し、使用率変更要求が示す使用率の補数の割合でアイドル命令を実行する。
【0031】
このように、本実施形態によれば、計算装置は、CPU1の使用率を低減させることで、1つのCPU1の単位時間当たりの計算量を小さくする。これにより、第1の実施形態と同様の効果を得ることができる。
【0032】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0033】
例えば、上述した実施形態では、計算装置がCPU1を4つ備える場合を説明したが、これに限られず、2つ以上であれば他の個数であっても良い。
【0034】
また、上述した実施形態では、各CPU1が同じ性能を有する場合を説明したが、これに限られず、例えば1つ以上の高性能なCPU1と1つ以上の低性能のCPU1とから構成されていても良い。この場合、プロセッサ数制御部は、それぞれのCPU1の性能及び消費電力の特性を加味した上で、CPU1に割り当てるタスクを決定する。
【0035】
また、上述した実施形態では、タスクが並列処理であるか否かによって計算量の上限値を決定する場合を説明したが、これに限られない。例えば、稼動するCPU1の個数に応じて(例えば稼動するCPU1が1つである場合は100%、2つである場合は90%、3つである場合は80%、4つである場合は70%など)決定するようにしても良い。
【0036】
なお、上述した実施形態では、制御機構2が所定のファームウェアプログラムを実行することで、タスク情報取得部21、プロセッサ数制御部22、計算量変更部23を備える場合を説明したが、これに限られない。例えば、制御機構2が実行するファームウェアプログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能を制御機構2にすでに組み込まれている機能との組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0037】
1、1−1〜1−4…CPU 2…制御機構 3…電源部 4…冷却ファン 11…クロック発生部 12…アイドル命令実行部 21…タスク情報取得部 22…プロセッサ数制御部 23…計算量変更部