(57)【特許請求の範囲】
【請求項１】
複数のプロセッサを有する計算装置であって、
前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部と、
前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部と、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部と
を備えることを特徴とする計算装置。
【請求項２】
前記計算量変更部は、
前記タスク情報取得部が取得したプロセッサ数が所定の閾値未満である場合に、前記クロック周波数の上限値を、前記プロセッサの許容クロック周波数の上限値とし、
前記タスク情報取得部が取得したプロセッサ数が所定の閾値以上である場合に、前記クロック周波数の上限値を、前記プロセッサの冷却用電力が所定の閾値以下になるようなクロック周波数とする
ことを特徴とする請求項１に記載の計算装置。
【請求項３】
前記計算量変更部は、前記プロセッサの使用率を低減させることで、１つのプロセッサの単位時間当たりの計算量を小さくする
ことを特徴とする請求項１または請求項２に記載の計算装置。
【請求項４】
複数のプロセッサを有する計算装置の制御方法であって、
タスク情報取得部は、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得し、
プロセッサ数制御部は、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させ、
計算量変更部は、前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、
前記計算量変更部は、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する
ことを特徴とする計算装置の制御方法。
【請求項５】
複数のプロセッサを有する計算装置の制御機構を、
前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部、
前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部、
前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有する計算装置、当該計算装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
一般に、コンピュータシステムに求められる処理には、単体性能が必要な処理と、並列性能が必要な処理がある。ここで、単体性能とは、１つのプロセッサを高速に動作させることで、高速にタスクを処理する性能のことであり、並列性能とは、複数のプロセッサを並列動作させることで、高速にタスクを処理する性能のことである。
【０００３】
単体性能を高くするためには、高性能なプロセッサが必要である。他方、並列性能を高めるためには、複数のプロセッサが必要である。このため、プロセッサ構成が固定化されている場合において、単体性能の要求と並列性能の要求とを満たすためには、高性能なプロセッサを複数用意する必要がある。
【０００４】
しかしながら、高性能なプロセッサを複数用意した場合、並列性能が不要な処理に対しても、複数のプロセッサに対して電源やクロックを供給し続ける必要があり、消費電力が高いという問題があった。この問題を解決する技術として、特許文献１には、タスクに応じて動作させるプロセッサ数を変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１３８７１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、高性能なプロセッサを複数搭載したコンピュータシステムにおいて特許文献１に記載の技術を用いた場合において、並列性能が必要な一方、単体性能が不要な処理を実行するとき、高性能なプロセッサでの並列処理を行うこととなる。プロセッサにおける単位時間当たりに実行する計算量が高くなるにつれ、消費電力が大きくなり、また発熱量が大きくなる。発熱量が大きいと、プロセッサの動作が不安定となるため、プロセッサの冷却を行う必要があり、冷却用の電力が必要となる。これらのことから、高性能なプロセッサで並列処理を実行すると、必要以上に電力を消費してしまうという問題がある。
【０００７】
本発明は、上記の問題に鑑みてなされたものであり、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ消費電力を低減することができる計算装置、計算装置の制御方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
本発明は上記の課題を解決するためになされたものであり、複数のプロセッサを有する計算装置であって、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部と、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部と、前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部とを備えることを特徴とする。
【０００９】
また、本発明は、複数のプロセッサを有する計算装置の制御方法であって、タスク情報取得部は、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得し、プロセッサ数制御部は、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させ、計算量変更部は、前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記計算量変更部は、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定することを特徴とする。
【００１０】
また、本発明は、複数のプロセッサを有する計算装置の制御機構を、前記プロセッサに実行させるタスク毎に、当該タスクを実行するときに並列動作すべきプロセッサ数と当該タスクの実行に必要な性能割合を示す要求性能とを取得するタスク情報取得部、前記タスク情報取得部が取得したプロセッサ数で前記プロセッサを動作させるプロセッサ数制御部、前記プロセッサのクロック周波数の上限値を、前記タスク情報取得部が取得したプロセッサ数が多いほど小さくなるように設定し、前記プロセッサのクロック周波数を、設定された当該上限値に前記要求性能が示す割合を乗じることで算出されるクロック周波数に決定する計算量変更部として機能させるためのプログラムである。
【発明の効果】
【００１１】
本発明によれば、タスクに要求されるプロセッサ数のプロセッサを、かつタスクに要求される性能に応じた計算量で動作させる。これにより、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ消費電力を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態による計算装置の構成を示す概略ブロック図である。
【図２】ＣＰＵの温度と冷却ファンの消費電力との関係を示す図である。
【図３】タスク情報取得部が取得するタスクの情報の一例を示す図である。
【図４】本発明の第１の実施形態による制御機構の動作を示すフローチャートである。
【図５】本発明の第２の実施形態による計算装置の構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
《第１の実施形態》
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の第１の実施形態による計算装置の構成を示す概略ブロック図である。
計算装置は、複数のＣＰＵ１−１〜１−４（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：プロセッサ／以下、ＣＰＵ１−１〜１−４を総称する場合はＣＰＵ１と表記する）、制御機構２、電源部３、冷却ファン４を備える。
【００１４】
ＣＰＵ１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及びＯＳから実行を指示されたタスクを実行する。なお、ＣＰＵ１は、所定周波数のクロックを発生させるクロック発生部１１を備え、クロック発生部１１が発生させたクロックに合わせてタスクを実行する。
制御機構２は、ＣＰＵ１の動作を制御する機構であり、専用のプロセッサによって構成される。
電源部３は、ＣＰＵ１、制御機構２、冷却ファン４に電力を供給する。
冷却ファン４は、発熱したＣＰＵ１に送風することで、ＣＰＵ１の温度を低下させる。
【００１５】
図２は、ＣＰＵ１の温度と冷却ファン４の消費電力との関係を示す図である。
一般に、ＣＰＵ１が単位時間当たりに実行する計算量が大きくなるにつれ、ＣＰＵ１の消費電力が大きくなり、発熱量が大きくなる。ＣＰＵ１の発熱が大きくなると、ＣＰＵ１の動作が不安定になることから、冷却ファン４は、ＣＰＵ１の発熱に合わせた風量でＣＰＵ１に送風する必要がある。そのため、ＣＰＵ１が単位時間当たりに実行する計算量が大きくなるにつれ、冷却ファン４が消費する電力量が大きくなる。特に、図２に示す場合では、ＣＰＵ１が単位時間当たりに実行する計算量がＲＡを超えたときに、冷却ファン４が消費する電力量の増加率が大きくなっている。そのため、ＣＰＵ１が並列処理を行っていない場合には、ＣＰＵ１が単位時間当たりに実行する計算量をＲＡ以下に抑えることが好ましい。
【００１６】
制御機構２は、所定のファームウェアプログラムを実行することで、タスク情報取得部２１、プロセッサ数制御部２２、計算量変更部２３を備える。
【００１７】
タスク情報取得部２１は、ＣＰＵ１が実行するＯＳから、ＣＰＵ１に実行させるタスクの情報を取得する。タスクの情報は、タスクの実行に必要なプロセッサ数（並列度）及びタスクの実行に必要な性能割合を示す要求性能を含む。つまり、要求性能は、値が大きいほど短時間で完了させたいタスクであることを示し、値が小さいほど実行時間を求めないタスクであることを示す。なお、タスクの情報は、ＯＳによるタスク生成時に定義される情報であるが、運用状況に応じて変更しても良い。
【００１８】
図３は、タスク情報取得部２１が取得するタスクの情報の一例を示す図である。
例えば、タスクＡのプロセッサ数は１であり、要求性能は１００％である。これは、単体のＣＰＵ１が必要で、かつできる限り短時間で実行を完了させたいタスク、すなわちＣＰＵ１の単体性能が求められる処理であることを示している。
他方、タスクＣのプロセッサ数は４であり、要求性能は２０％である。これは、複数のＣＰＵ１が必要だが、実行時間は求めない処理、すなわちＣＰＵ１の並列性能を求める処理であることを示している。
【００１９】
プロセッサ数制御部２２は、タスク情報取得部２１が取得したプロセッサ数から、何れのＣＰＵ１にタスクを実行させるかを決定する。またプロセッサ数制御部２２は、タスクを実行させないＣＰＵ１への電力の供給を停止させる供給停止要求を電源部３に出力し、タスクを実行させるＣＰＵ１への電力の供給を開始させる供給開始要求を電源部３に出力する。
【００２０】
計算量変更部２３は、タスク情報取得部２１が取得したプロセッサ数及び要求性能から、ＣＰＵ１それぞれのクロック周波数を決定する。また計算量変更部２３は、決定したクロック周波数のクロックを発生させる周波数変更要求をＣＰＵ１のクロック発生部１１に出力する。具体的には、計算量変更部２３は、タスクが要求するプロセッサ数が多い場合、クロック周波数を小さく設定する。これは、ＣＰＵ１に対する電力供給を行う代わりに冷却ファン４への電力供給を抑えるためである。また、計算量変更部２３は、タスクの要求性能が低い場合、クロック周波数を小さく設定する。つまり、計算量変更部２３は、ＣＰＵ１に供給するクロックの周波数を低減させることで、１つのＣＰＵ１の単位時間当たりの計算量を小さくする。
【００２１】
次に、制御機構２の動作について説明する。
図４は、本発明の第１の実施形態による制御機構２の動作を示すフローチャートである。
ＣＰＵ１が実行するＯＳが、ＣＰＵ１に新たにタスクを実行させる場合、制御機構２のタスク情報取得部２１は、ＣＰＵ１からタスクの情報として、プロセッサ数及び要求性能を取得する（ステップＳ１）。次に、プロセッサ数制御部２２は、タスク情報取得部２１が取得したプロセッサ数に基づいて何れのＣＰＵ１を動作させるかを決定する（ステップＳ２）。なお、プロセッサ数制御部２２は、できる限り動作中のＣＰＵ１の数を減らすために、特定のＣＰＵ１にタスクを集中的に割り当てる。他方、集中的に割り当てると計算装置全体としての電力が大きくなる場合、プロセッサ数制御部２２は、別のＣＰＵ１を起動させて分散処理させるよう決定する。
【００２２】
次に、プロセッサ数制御部２２は、現在稼働中のＣＰＵ１のうち、タスクを実行させないＣＰＵ１を特定し、当該ＣＰＵ１に対する電源供給の停止を要求する供給停止要求を、電源部３に出力する。また、プロセッサ数制御部２２は、現在停止中のＣＰＵ１のうち、タスクを実行させるＣＰＵ１を特定し、当該ＣＰＵ１に対する電源供給の開始を要求する供給開始要求を、電源部３に出力する（ステップＳ３）。電源部３は、プロセッサ数制御部２２から取得した要求に基づいて、ＣＰＵ１への電力供給の開始・停止を制御する。
【００２３】
次に、計算量変更部２３は、プロセッサ数制御部２２によって決定されたタスクを実行させるＣＰＵ１の数が１であるか複数であるかを判定する（ステップＳ４）。計算量変更部２３は、タスクを実行させるＣＰＵ１の数が１であると判定した場合（ステップＳ４：ＹＥＳ）、ＣＰＵ１のクロック周波数の上限値を、当該ＣＰＵ１の許容クロック周波数の上限値（図２に示す１００％）とする（ステップＳ５）。他方、計算量変更部２３は、タスクを実行させるＣＰＵ１の数が複数であると判定した場合（ステップＳ４：ＮＯ）、ＣＰＵ１のクロック周波数の上限値を、冷却ファン４が消費する電力量の増加率が増大する閾値であるＲＡ％（図２を参照）とする（ステップＳ６）。
【００２４】
計算量変更部２３は、ステップＳ５、Ｓ６でクロック周波数の上限値を設定すると、設定した上限値に、ステップＳ１でタスク情報取得部２１が取得した要求性能が示す割合を乗じることで、ＣＰＵ１のクロック周波数を算出する（ステップＳ７）。そして、計算量変更部２３は、当該算出したクロック周波数を、タスクを実行させるＣＰＵ１のクロック発生部１１に通知する。これにより、クロック発生部１１は制御機構２によって通知されたクロック周波数のクロックを発生させる。
【００２５】
このように、本実施形態によれば、制御機構２は、タスク情報取得部２１が取得したプロセッサ数でＣＰＵ１を動作させ、タスク情報取得部２１が取得した要求性能が低いほど、１つのＣＰＵ１の単位時間当たりの計算量を小さくする。これにより、制御機構２は、実行するタスクが要求する単体性能及び並列性能のそれぞれを満たし、かつ計算装置全体の消費電力を低減することができる。
【００２６】
また、本実施形態によれば、タスク情報取得部２１が取得する要求性能は、１つのＣＰＵ１の単位時間当たりの計算量の上限値に対する割合を示し、タスク情報取得部２１が取得したプロセッサ数が多いほど、計算量の上限値を小さく設定する。これにより、複数のＣＰＵ１の並列処理によりタスクを実行する場合に、個々のＣＰＵ１の消費電力を低減することで、計算装置全体の消費電力の増大を防ぐことができる。
【００２７】
また、本実施形態によれば、計算量変更部２３は、タスク情報取得部２１が取得したプロセッサ数が２未満である場合に、計算量の最大値を、ＣＰＵ１が単位時間において実行し得る最大の計算量とし、プロセッサ数が２以上である場合に、計算量の最大値を、ＣＰＵ１の冷却に用いる冷却ファン４の消費電力が所定の閾値ＲＡ以下になるような計算量とする。これにより、複数のＣＰＵ１の並列処理によりタスクを実行する場合に、冷却ファン４の消費電力が急増しない範囲内でＣＰＵ１を動作させることで、計算装置全体の消費電力の増大を防ぐことができる。
【００２８】
《第２の実施形態》
図５は、本発明の第２の実施形態による計算装置の構成を示す概略ブロック図である。
第２の実施形態による計算装置は、第１の計算装置における計算量変更部２３の処理が異なり、また計算量変更部２３の処理結果の出力先を、ＣＰＵ１のアイドル命令実行部１２とするものである。
【００２９】
計算量変更部２３は、タスク情報取得部２１が取得したプロセッサ数及び要求性能から、ＣＰＵ１それぞれの使用率を決定する。また計算量変更部２３は、決定した使用率でＣＰＵ１を動作させる使用率変更要求をＣＰＵ１のアイドル命令実行部１２に出力する。具体的には、計算量変更部２３は、タスクが要求するプロセッサ数が多い場合、ＣＰＵ１の使用率を低く設定する。これは、ＣＰＵ１に対する電力供給を行う代わりに冷却ファン４への電力供給を抑えるためである。また、計算量変更部２３は、タスクの要求性能が低い場合、ＣＰＵ１の使用率を低く設定する。つまり、計算量変更部２３は、ＣＰＵ１の使用率を低減させることで、１つのＣＰＵ１の単位時間当たりの計算量を小さくする。
【００３０】
ＣＰＵ１のアイドル命令実行部１２は、計算量変更部２３から出力された使用率変更要求が示す使用率の補数の割合（１００％−使用率）で、ＣＰＵ１にアイドル命令を強制的に実行させる。これにより、ＣＰＵ１は、使用率変更要求が示す使用率の割合でタスクを実行し、使用率変更要求が示す使用率の補数の割合でアイドル命令を実行する。
【００３１】
このように、本実施形態によれば、計算装置は、ＣＰＵ１の使用率を低減させることで、１つのＣＰＵ１の単位時間当たりの計算量を小さくする。これにより、第１の実施形態と同様の効果を得ることができる。
【００３２】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００３３】
例えば、上述した実施形態では、計算装置がＣＰＵ１を４つ備える場合を説明したが、これに限られず、２つ以上であれば他の個数であっても良い。
【００３４】
また、上述した実施形態では、各ＣＰＵ１が同じ性能を有する場合を説明したが、これに限られず、例えば１つ以上の高性能なＣＰＵ１と１つ以上の低性能のＣＰＵ１とから構成されていても良い。この場合、プロセッサ数制御部は、それぞれのＣＰＵ１の性能及び消費電力の特性を加味した上で、ＣＰＵ１に割り当てるタスクを決定する。
【００３５】
また、上述した実施形態では、タスクが並列処理であるか否かによって計算量の上限値を決定する場合を説明したが、これに限られない。例えば、稼動するＣＰＵ１の個数に応じて（例えば稼動するＣＰＵ１が１つである場合は１００％、２つである場合は９０％、３つである場合は８０％、４つである場合は７０％など）決定するようにしても良い。
【００３６】
なお、上述した実施形態では、制御機構２が所定のファームウェアプログラムを実行することで、タスク情報取得部２１、プロセッサ数制御部２２、計算量変更部２３を備える場合を説明したが、これに限られない。例えば、制御機構２が実行するファームウェアプログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能を制御機構２にすでに組み込まれている機能との組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００３７】
１、１−１〜１−４…ＣＰＵ  ２…制御機構  ３…電源部  ４…冷却ファン  １１…クロック発生部  １２…アイドル命令実行部  ２１…タスク情報取得部  ２２…プロセッサ数制御部  ２３…計算量変更部
【図１】
0005768586.tif 000002
【図２】
0005768586.tif 000003
【図３】
0005768586.tif 000004
【図４】
0005768586.tif 000005
【図５】
0005768586.tif 000006