(57)【特許請求の範囲】
【請求項１】
リーク電力が異なる第１のプロセッサ及び第２のプロセッサと、
前記第１のプロセッサもしくは第２のプロセッサが実行するジョブの第１の消費電力を算出する算出部と、
前記リーク電力及び前記第１の消費電力に基づいて前記ジョブを実行するプロセッサを決定する決定部と、を備える情報処理装置。
【請求項２】
前記第１のプロセッサ及び第２のプロセッサの温度を測定する温度測定部をさらに備え、
前記算出部は、前記温度測定部が測定した、前記ジョブを試験的に実行した前記第１のプロセッサ及び第２のプロセッサの温度に基づいて、前記第１の消費電力を算出することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記リーク電力は、前記第１のプロセッサ及び第２のプロセッサの動作速度に基づいて算出されることを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記決定部は、前記第１の消費電力から当該第１の消費電力を算出するために用いられた前記第１のプロセッサもしくは第２のプロセッサのリーク電力を減算した第２の消費電力と、前記第１のプロセッサ及び第２のプロセッサのリーク電力とに基づいて、前記ジョブを実行するプロセッサを決定することを特徴とする請求項２〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ジョブは、第１のジョブ及び第２のジョブを有し、前記第１のジョブは、前記第２のジョブよりも前記第２の消費電力が高く、前記第１のプロセッサは、前記第２のプロセッサよりもリーク電力が高い場合、
前記決定部は、
前記第１のジョブを、前記第２のプロセッサにスケジューリングし、前記第２のジョブを前記第１のプロセッサにスケジューリングすることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第１のプロセッサよりもリーク電力が低く、前記第２のプロセッサよりもリーク電力が高い第３のプロセッサをさらに備え、
前記第１のジョブを、前記第３のプロセッサにスケジューリングする場合、前記第２の消費電力に基づいて、当該第３のプロセッサへの命令発行レートを制御する命令発行制御部をさらに備えることを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記第１のプロセッサ及び前記第２のプロセッサが、当該第１のプロセッサ及び前記第２のプロセッサの平均消費電力で動作した場合に、当該第１のプロセッサ及び前記第２のプロセッサを正常に動作させることを可能とする電源容量を有する電源部、をさらに備える請求項１〜６のいずれか１項に情報処理装置。
【請求項８】
前記電源部が動作することにより発生する熱を冷却する冷却部、をさらに備える請求項７に記載の情報処理装置。
【請求項９】
リーク電力が異なる第１のプロセッサ及び第２のプロセッサに実行させるジョブをスケジューリングする方法であって、
前記第１のプロセッサ及び前記第２のプロセッサのリーク電力を算出するステップと、
前記第１のプロセッサもしくは第２のプロセッサが実行するジョブの消費電力を算出するステップと、
前記リーク電力と、前記消費電力とに基づいて前記ジョブを実行するプロセッサを決定するステップと、を備えるスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びスケジューリング方法に関し、特にリーク電力に基づいてスケジューリングを行う情報処理装置及びスケジューリング方法に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）等のプロセッサの著しい性能向上や、複数ＣＰＵを用いてジョブの処理を行うマルチプロセッサ方式が用いられることにより、コンピュータ全体の消費電力が増大している。このような状況において、消費電力を削減することは、顧客のランニングコストの上昇を抑えることと、計算機システムの電源装置及び冷却装置の巨大化を抑えることとに貢献するものであり、非常に大きな課題として近年取り上げられている。また、計算機システムの電源装置の巨大化は、顧客が計算機システムを用意する際に必要となる計算機設置スペースに大きく影響し、製品性を悪化させる。これらの課題に対して、例えば、ライブマイグレーションもしくはスロットリングといった技術が用いられている。
【０００３】
ライブマイグレーションとは、実行中の仮想マシンを別のホスト装置に無停止で移動させる技術である。ライブマイグレーションを行うことにより、仮想マシンを構成する情報を別のホスト装置にコピーして動作させることができる。仮想マシンを構成する情報とは、ＣＰＵ、メモリ、Ｉ／Ｏ、ストレージ、ネットワーク等の状態を示す情報である。仮想マシンを構成する情報は、最終的にメモリの状態に帰着する。電源ＯＮの装置を極力少なくし、細かく分散されかつ仮想化された処理を、電源ＯＮ装置において実行させためにライブマイグレーションを実行することにより、ランニングコストの上昇を抑えることができる。
【０００４】
スロットリングとは、要求されている性能を超えないように処理を制御し、必要以上の電力を消費しない技術である。例えば、温度測定によって電力消費量を常時監視し、外部から設定された閾値を超えた場合に、命令発行レートをリアルタイムに抑えることができる。
【０００５】
さらに、特許文献１には、消費電力を抑えるために、効率的にジョブスケジューリングを行う技術が開示されている。具体的には、仕事量の予測可能な複数の単位ジョブを、単位ジョブ毎に複数のプロセッサに振り分ける技術である。つまり、ジョブの特質をあらかじめ分析し、その分析した情報に基づいて異種のプロセッサからなる非対称マルチプロセッサシステムでのジョブスケジューリングを行う。
【０００６】
また、特許文献２には、各装置の温度に基づいてジョブスケジューリングを行う技術が開示されている。具体的には、温度の最も低い処理装置にジョブの割り当てを行うジョブスケジューリングを実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２５２９００号公報
【特許文献２】国際公開第２００３／０８３６９３号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、電源装置、冷却装置が巨大化する原因について説明する。電源装置の容量は、給電対象であるＬＳＩ（Large Scale Integration）の最大消費電力に基づいて設計される。このＬＳＩの最大消費電力は、（１）最大消費電力を有するジョブ実行時の電力及び（２）ＬＳＩロットに依存した電力量の中での最大電力、を考慮して求められる。（１）は、ジョブ毎に消費する電力は様々であることが知られており、電源装置、冷却装置の設計時には、消費電力が最大のジョブを想定して設計する。
【０００９】
（２）は、その大半はリーク電力が占める。リーク電力とは、トランジスタの動作には関係なく常に消費される電力である。ＬＳＩの動作速度が向上するに伴い、リーク電力は増加することが知られている。昨今の微細化技術の発展によって、ＬＳＩ電力の大半をリーク電力が占めるようになっている。リーク電力が低いＬＳＩのみを選別することにより低消費電力な計算機システムを構築することもできるが、歩留りが低下し、コスト上昇の要因となる。
【００１０】
また、ＬＳＩロットにおけるリーク電力のばらつきは、図１０のように正規分布で示されることが知られている。これより、電源装置、冷却装置の制限により、リーク電力の少ないＣ領域のＬＳＩのみしか用いることができない場合、コスト上昇の大きな要因となる。また、リーク電力は、温度上昇によって大きく増加する性質を持つ。そのため、リーク電力が高いＬＳＩにおいて、高負荷なジョブを実行することによりＬＳＩの温度が上昇し、当該ＬＳＩのリーク電力がさらに増大する。これにより、ＬＳＩの最大消費電力がさらに増大し、電源装置、冷却装置のさらなる巨大化を引き起こしてしまう。
【００１１】
本発明は、このような問題点を解決するためになされたものであり、消費電力の削減を図ることができる情報処理装置及びスケジューリング方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様にかかる情報処理装置は、リーク電力が異なる第１のプロセッサ及び第２のプロセッサと、前記第１のプロセッサもしくは第２のプロセッサが実行するジョブの第１の消費電力を算出する算出部と、前記リーク電力及び前記第１の消費電力に基づいて前記ジョブを実行するプロセッサを決定する決定部と、を備えるものである。
【００１３】
本発明の第２の態様にかかるスケジューリング方法は、リーク電力が異なる第１のプロセッサ及び第２のプロセッサに実行させるジョブをスケジューリングする方法であって、前記第１のプロセッサ及び前記第２のプロセッサのリーク電力を算出するステップと、前記第１のプロセッサもしくは第２のプロセッサが実行するジョブの消費電力を算出するステップと、前記リーク電力と、前記消費電力とに基づいて前記ジョブを実行するプロセッサを決定するステップと、を備えるものである。
【発明の効果】
【００１４】
本発明により、消費電力の削減を図ることができる情報処理装置及びスケジューリング方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる情報処理装置の構成図である。
【図２】実施の形態１にかかる情報処理装置の構成図である。
【図３】実施の形態１にかかるリーク電力と消費電力との関係を示す図である。
【図４】実施の形態１にかかるプロセッサランクとジョブランクとの関係を示す図である。
【図５】実施の形態１にかかるジョブの実行にかかるフローチャートである。
【図６】実施の形態１にかかるプロセッサの決定にかかるフローチャートである。
【図７】実施の形態１にかかるジョブランクの決定にかかるフローチャートである。
【図８】実施の形態１にかかるプロセッサランクの決定にかかるフローチャートである。
【図９】実施の形態２にかかる電源装置の設計にかかる消費電力を示す図である。
【図１０】製造されるＬＳＩのリーク電力毎の分布を示す図である。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。本発明の実施の形態１にかかる情報処理装置の構成例について、図１を用いて説明する。情報処理装置１は、複数のプロセッサをスケジューリングして、ジョブを実行するプロセッサを決定し、決定されたプロセッサに基づいて、ジョブを実行する装置である。情報処理装置１は、電源部１０と、プロセッサ２０＿１と、プロセッサ２０＿２と、算出部３０と、決定部４０と、メモリ５０と、を備えている。
【００１７】
電源部１０は、プロセッサ２０＿１及びプロセッサ２０＿２に対して電源の供給を行う電源装置である。
【００１８】
プロセッサ２０＿１及びプロセッサ２０＿２は、プログラムにより指定されるジョブを実行する。プロセッサとは、例えば、ＣＰＵ、ＭＰＵ（Micro Processing Unit）である。ジョブとは、プログラムにより指定されるタスク、プロセスである。ジョブを実行するプロセッサは、スケジューリングに基づいて決定される。プロセッサ２０＿１及びプロセッサ２０＿２は、電源部１０から電源を供給され、動作する。
【００１９】
算出部３０は、プロセッサ２０＿１もしくはプロセッサ２０＿２が実行するジョブの消費電力を算出する。算出部３０は、ジョブに関する情報を、メモリ５０から取得する。算出部３０により算出されるジョブの消費電力は、ジョブの実行ステップ数等の処理負荷が増加するほど、高くなる。算出したジョブの消費電力に関する情報は、決定部４０へ出力される。
【００２０】
決定部４０は、プロセッサ２０＿１及びプロセッサ２０＿２それぞれのリーク電力と、算出部３０から取得したジョブの消費電力に関する情報とに基づいて、ジョブを実行するプロセッサを決定する。決定部４０は、ジョブに関する情報をメモリ５０から取得する。リーク電力は、プロセッサ２０＿１及びプロセッサ２０＿２の消費電力のうち大きな割合を占める電力である。
【００２１】
メモリ５０は、実行するジョブに関する情報を保持している。メモリ５０は、ジョブに関する情報を、算出部３０及び決定部４０へ出力する。
【００２２】
以上説明したように、図１にかかる情報処理装置１を用いることにより、リーク電力及びジョブの消費電力に関する情報に基づいて、ジョブの実行を行うプロセッサを決定することができる。これにより、情報処理装置１が実行する複数のジョブと、当該複数のジョブを実行する複数のプロセッサとを組み合わせる際に、より消費電力が低くなる組み合わせを選択し、ジョブを実行することが可能となる。これにより、情報処理装置１全体の消費電力を低下させることができる。
【００２３】
次に、図２を用いて、本発明の実施の形態１にかかる情報処理装置の詳細な構成例について説明する。情報処理装置１は、電源部１０と、冷却部１１と、プロセッサ２０＿１〜２０＿ｎと、プロセッサ電力プロファイル２１と、温度測定部３１と、最高温度検出部３２と、最高温度レジスタ３３と、ＰＳＷ（Program Status Word）４１と、スケジューリング部４２と、命令パイプライン制御部４３と、命令発行部４４と、メモリ５０と、汎用レジスタ６０と、を備えている。電源部１０と、プロセッサ２０＿１〜２０＿ｎと、メモリ５０とは、図１の構成と同様であるため、説明を省略する。また、算出部３０は、温度測定部３１と、最高温度検出部３２と、最高温度レジスタ３３とから構成されている。さらに、決定部４０は、ＰＳＷ４１と、スケジューリング部４２と、命令パイプライン制御部４３と、命令発行部４４とから構成されている。
【００２４】
冷却部１１は、電源部１０の冷却を行う冷却装置である。ここで、冷却部１１は、情報処理装置１の外部に備えられてもよい。
【００２５】
プロセッサ電力プロファイル２１は、プロセッサを構成するＬＳＩのリーク電力を示す情報を保持している。例えば、動作が高速なトランジスタほど、ＯＮ／ＯＦＦを切り替えるスレッシュホールド電圧が低いため、リーク電力が高くなる傾向にある。そのため、まず情報処理装置１は、ＬＳＩの動作テスト時に測定されるＬＳＩの速度をＲＯＭ（Read Only Memory）に記録する。情報処理装置１は、ＲＯＭに記録されたＬＳＩの速度情報を、ＬＳＩロット固有のリーク電力を示す値とし、プロセッサ電力プロファイル２１に保持する。もしくは、情報処理装置１は、ＲＯＭに記録されたＬＳＩの速度情報を、ＬＳＩロット固有のリーク電力を示す値に変換して、プロセッサ電力プロファイル２１に保持してもよい。ＬＳＩの動作テスト時に測定されるＬＳＩの速度とは、例えば、ＬＳＩの領域内に仕込まれたリングオシレータ回路の発信周波数である。プロセッサ電力プロファイル２１が保持する情報は、スケジューリング部４２と、最高温度レジスタ３３とに出力される。
【００２６】
温度測定部３１は、ジョブを実行しているプロセッサの温度を測定する。温度測定部３１は、各ジョブの消費電力を測定するために、当該ジョブを実行しているプロセッサの温度を試験的に測定する。温度測定部３１は、ジョブに関する情報をメモリ５０から取得する。そのため、ジョブを試験的に実行するプロセッサは、プロセッサ２０＿１〜２０＿ｎのうち、任意のプロセッサが用いられる。もしくは、各ジョブの消費電力を試験的に測定するプロセッサをあらかじめ決定しておき、当該プロセッサを用いて各ジョブの消費電力を測定してもよい。温度測定部３１は、測定したプロセッサの温度に関する情報を、最高温度検出部３２に出力する。
【００２７】
最高温度検出部３２は、温度測定部３１から取得した温度に基づいて、ジョブ毎の最高温度を抽出する。最高温度検出部３２は、抽出した最高温度に関する情報を、最高温度レジスタ３３に出力する。
【００２８】
最高温度レジスタ３３は、最高温度検出部３２により抽出された温度と、その温度が測定されたプロセッサとを関連付けて保持する。また、最高温度レジスタ３３は、プロセッサ電力プロファイル２１が保持しているプロセッサのリーク電力に関する情報を取得する。最高温度レジスタ３３は、取得した最高温度に関する情報に基づいて、ジョブの消費電力を算出する。さらに、算出した消費電力を、プロセッサのリーク電力を用いて補正し、リーク電力の影響を除外したジョブの消費電力（以下、補正後ジョブ消費電力）を算出する。つまり、算出したジョブの消費電力から、プロセッサのリーク電力を減算し、補正後ジョブ消費電力を算出する。
【００２９】
プロセッサにおける消費電力と、リーク電力の相関について、図３を用いて説明する。プロセッサにおける消費電力は、以下の式（１）で示される。
【００３０】
Ｐ＝ＰＴ×ＣＬ×（ＶＤＤ）２×ＦＣＫ＋ＰＴ×ＩＳＣ×ＴＳＣ×ＶＤＤ×ＦＣＫ
＋ＩＬＫ×ＶＤＤ・・・（１）
Ｐ：消費電力、ＰＴ：スイッチング確率、ＣＬ：負荷容量、ＶＤＤ：電源電圧、
ＦＣＫ：クロック周波数、ＩＳＣ：貫通電流の平均値、ＴＳＣ：貫通電流の流れる時間
ＩＬＫ：リーク電流
【００３１】
ＰＴ×ＣＬ×（ＶＤＤ）２×ＦＣＫは、ダイナミック電力を示す。つまりジョブを実行するために必要となる電力を示す。ＰＴ×ＩＳＣ×ＴＳＣ×ＶＤＤ×ＦＣＫは、貫通電力を示す。ＩＬＫ×ＶＤＤは、リーク電力を示す。
【００３２】
式（１）が示すように、リーク電力は、ＬＳＩロット固有の値であるリーク電流（ＩＬＫ）に基づいて変化する。ダイナミック電力、貫通電力は、ＬＳＩロットに限らず一定である。また、貫通電力は、非常に小さい値であるため消費電力に与える影響は少ない。温度が上昇し、リーク電流が増加すると、リーク電力も増加し、さらにプロセッサの消費電力も、図３に示すように、増加する関係にある。そのため、リーク電力の影響を除外することにより、プロセッサがジョブを実行するために必要となる電力を求めることができる。
【００３３】
図２に戻り、最高温度レジスタ３３は、あらかじめ定められた消費電力の閾値に従い、補正後ジョブ消費電力に基づいて、ジョブのランクを設定する。たとえば、ジョブランクをＡ〜Ｃまで用意した場合、ジョブランクＡに、補正後ジョブ消費電力が、第１の閾値を超えるジョブを設定し、ジョブランクＣに、補正後ジョブ消費電力が、第２の閾値以下のジョブを設定する。第２の閾値は、第１の閾値よりも小さい値が設定されている。ジョブランクＢには、第２の閾値より大きくかつ第１の閾値以下のジョブを設定する。もしくは、実行すべきジョブの数に応じたジョブランクを用意し、補正後ジョブ消費電力が高い順にジョブランクを設定してもよい。最高温度レジスタ３３は、消費電力が算出されたジョブと、当該ジョブに設定されたジョブランクを、汎用レジスタ５０を介して、ＰＳＷ４１に出力する。
【００３４】
ＰＳＷ４１は、取得したジョブと当該ジョブに設定されたジョブランクとを、スケジューリング部４２に出力する。ここで、最高温度レジスタ３３は、ＰＳＷ４１に直接、消費電力が算出されたジョブと当該ジョブに設定されたジョブランクとを出力してもよい。
【００３５】
スケジューリング部４２は、プロセッサ電力プロファイル２１から取得したプロセッサ２０＿１〜２０＿ｎのリーク電力に基づいてプロセッサランクを設定する。たとえば、プロセッサランクをＡ〜Ｃまで用意した場合、プロセッサランクＡに、リーク電力が、第１の閾値を超えるプロセッサを設定し、プロセッサランクＣに、リーク電力が、第１の閾値より低い第２の閾値以下のプロセッサを設定する。プロセッサランクＢには、第２の閾値より大きくかつ第１の閾値以下のプロセッサを設定する。もしくは、プロセッサの数に応じたプロセッサランクを用意し、リーク電力が高い順にプロセッサランクを設定してもよい。
【００３６】
スケジューリング部４２は、ＰＳＷ４１から取得したジョブについて実行すべきプロセッサを決定する。スケジューリング部４２は、ジョブに設定されているジョブランクに基づいて、実行すべきプロセッサを決定する。スケジューリング部４２が行うプロセッサの決定について、図４を用いて説明する。
【００３７】
図４は、プロセッサランクとジョブランクの対応関係を示している。例えば、ジョブランクＡが設定されたジョブは、プロセッサランクＡが設定されたプロセッサでは実行しない。つまり、ジョブランクＡが設定されたジョブを、プロセッサランクＡが設定されたプロセッサへディスパッチすることを禁止する。また、ジョブランクＡが設定されたジョブを、プロセッサランクＢが設定されたプロセッサで実行する場合、補正後ジョブ消費電力等に基づいて、あらかじめ定められている命令発行レートを選択する制御（以下、命令発行レート選択制御、とする）を行う。さらに、ジョブランクＡが設定されたジョブをプロセッサランクＣが設定されたプロセッサで実行する場合は、命令発行レート選択制御を行わないでジョブを実行する。ジョブランクＢが設定されたジョブを、プロセッサランクＡが設定されたプロセッサで実行する場合は、命令発行レート選択制御を実行する。ジョブランクＢが設定されたジョブを、プロセッサランクＢもしくはＣが設定されたプロセッサで実行する場合は、命令発行レート選択制御を行わないでジョブを実行する。ジョブランクＣが設定されたジョブは、プロセッサランクＡ〜Ｃのいずれが設定されたプロセッサで実行する場合にも、命令発行レート選択制御を行わないでジョブを実行する。
【００３８】
ジョブランクＡが設定されたジョブは、消費電力が高いジョブであるため、リーク電力が最も低いプロセッサランクＣが設定されたプロセッサをスケジューリングする。これにより、低消費電力による動作を可能とする。また、ジョブランクＡが設定されたジョブは、リーク電力が最も高いプロセッサランクＡが設定されたプロセッサにはスケジューリングを行わない。図４に記載しているジョブのスケジューリングは、消費電力の高いジョブは、リーク電力が低いプロセッサにスケジューリングし、消費電力の低いジョブは、特に制限を設けることなくプロセッサをスケジューリングする制御を実行している。
【００３９】
また、以下のようなスケジューリングを実行することも可能である。例えば、ジョブランクＡが設定されたジョブに関して、プロセッサＡのみしか空いていない場合について説明する。このような場合、プロセッサランクＢもしくはＣ上で動作しているジョブランクＣが設定されたジョブを抽出する。さらに、抽出されたジョブを、プロセッサランクＡにディスパッチしなおす。これにより、プロセッサランクＢもしくはＣが設定されたプロセッサが空くため、ジョブランクＡが設定されたジョブを、空いたプロセッサに割り当てることができる。このような処理を行うことで、システムの性能低下を防ぐことができる。
【００４０】
さらに、プロセッサランクＣが設定されているプロセッサのジョブ実行が終了した場合について説明する。このような場合、プロセッサランクＡが設定されているプロセッサで動作していたジョブを、プロセッサランクＣが設定されているプロセッサにディスパッチしなおす。このような処理を行い、プロセッサランクＡが設定されているプロセッサをスタンバイモードにすることで、システム全体の消費電力を削減することができる。
【００４１】
図２に戻り、スケジューリング部４２は、スケジューリング結果を命令発行部４４に出力する。
【００４２】
ジョブランクＡが設定されたジョブをプロセッサランクＢが設定されたプロセッサに割り当てる場合と、ジョブランクＢが設定されたジョブをプロセッサランクＡが設定されたプロセッサに割り当てる場合と、においては、スケジューリング部４２は、命令発行レート選択制御を実行する。例えば、スケジューリング部４２は、補正後ジョブ消費電力に応じて異なる命令発行レートを設定した情報を保持し、ＰＳＷ４１から取得する補正後ジョブ消費電力に基づいて、当該補正後ジョブ消費電力に関連付けられている命令発行レートを、命令発行部４４へ出力する。
【００４３】
命令発行部４４は、命令パイプライン制御部４３から通知されるプロセッサへの命令情報を、スケジューリング部４２から通知される制御情報に基づいて、プロセッサへ通知する。命令パイプライン制御部４３は、ジョブに関する情報をメモリ５０から取得する。
【００４４】
次に、図５を用いて本発明の実施の形態１にかかる情報処理装置のジョブの実行の流れについて説明を行う。情報処理装置１は、ジョブの消費電力を算出するプログラムを実行するために、当該プログラムをコンパイルする（ステップＳ１）。次に、温度測定部３１は、コンパイルされたオブジェクトコードに基づいて、試験を実行する（ステップＳ２）。具体的には、任意のプロセッサにてジョブを実行した際の温度を測定する。
【００４５】
次に、最高温度レジスタ３３は、測定した温度に基づいて算出した消費電力と、プロセッサ電力プロファイル２１から取得したリーク電力とに基づいて、温度測定を実行したジョブのジョブランクを設定する（ステップＳ３）。
【００４６】
次に、スケジューリング部４２は、ジョブランク及びプロセッサランクが追加されたプログラムを再コンパイルする（ステップＳ４）。
【００４７】
次に、命令発行部４４は、決定されたプロセッサにジョブを実行させるよう制御を行う（ステップＳ５）。
【００４８】
続いて、図６を用いて本発明の実施の形態１にかかるプロセッサの決定にかかる処理の流れについて説明する。はじめに、コンピュータは、プロセッサを構成するＬＳＩの速度を算出する（ステップＳ１１）。たとえば、ＬＳＩの速度とは、ＬＳＩ内のある領域に仕込まれたリングオシレータ回路の発信周波数である。
【００４９】
次に、コンピュータは、算出されたＬＳＩの速度に基づいて、リーク電力を算出する（ステップＳ１２）。例えば、ＬＳＩの速度情報を、ＬＳＩロット固有のリーク電力を示す値としてもよい。もしくは、ＬＳＩの速度情報を、ＬＳＩロット固有のリーク電力を示す値に変換してもよい。算出されたリーク電力は、プロセッサ電力プロファイル２１に保持される。ステップＳ１１及びステップＳ１２は、情報処理装置１で行ってもよく、もしくは上述したように、本願の情報処理装置１とは異なる他のコンピュータを用いて行ってもよい。
【００５０】
次に、温度測定部３１は、ジョブの消費電力を算出するために、プロセッサの温度測定を行う（ステップＳ１３）。温度測定を行うプロセッサは、ジョブの消費電力を算出するために、ジョブを試験的に動作させるプロセッサである。
【００５１】
次に、最高温度検出部３２は、測定したジョブの最高温度を抽出する（ステップＳ１４）。例えば、最高温度検出部３２は、ジョブをプロセッサで動作させている間に、温度測定部３１から定期的に測定温度を取得し、取得した測定温度の中から、最高温度を抽出してもよい。
【００５２】
次に、最高温度レジスタ３３は、抽出した最高温度に基づいて、ジョブの消費電力を算出する。さらに、プロセッサ電力プロファイル２１から取得したリーク電力を用いて、算出した消費電力の補正を行う（ステップＳ１５）。具体的には、最高温度レジスタ３３は、算出した消費電力から、リーク電力を減算する。ここで、リーク電力とは、ジョブの消費電力を算出するために動作させたプロセッサのリーク電力である。これにより、リーク電力の影響を除外したジョブの消費電力を算出することができる。
【００５３】
次に、最高温度レジスタ３３は、リーク電力の影響を除外したジョブの消費電力に基づいて、ジョブランクを設定する（ステップＳ１６）。
【００５４】
次に、スケジューリング部４２は、ジョブに設定されたジョブランクと、プロセッサ電力プロファイル２１から取得したプロセッサランクと、に基づいてジョブを実行するプロセッサを決定する。プロセッサの決定については、図４で説明した対応関係に基づいて決定される。
【００５５】
続いて、図７を用いて本発明の実施の形態１にかかるジョブランクの決定に関する処理の流れについて説明する。はじめに、補正後ジョブ消費電力を算出する（ステップＳ２１）。次に、算出した補正後ジョブ消費電力が、あらかじめ定められた第１の閾値を超えているか否かを判定する（ステップＳ２２）。補正後ジョブ消費電力が、第１の閾値を超えている場合、当該ジョブのジョブランクをＡに設定する。補正後ジョブ消費電力が、第１の閾値を超えていない場合、第２の閾値を超えているか否かを判定する（ステップＳ２３）。ここで、第２の閾値は、第１の閾値よりも低い消費電力を示す。補正後ジョブ消費電力が、第２の閾値を超えている場合、当該ジョブのジョブランクをＢに設定する。補正後ジョブ消費電力が、第２の閾値を超えていない場合、当該ジョブのジョブランクをＣに設定する。
【００５６】
続いて、図８を用いて本発明の実施の形態１にかかるプロセッサランクの決定に関する処理の流れについて説明する。はじめに、ＬＳＩの速度を測定する（ステップＳ３１）。次に、測定したＬＳＩの速度が、あらかじめ定められた第１の閾値を超えているか否かを判定する（ステップＳ３２）。ＬＳＩの速度が、第１の閾値を超えている場合、プロセッサランクをＡに設定する。ＬＳＩの速度が、第１の閾値を超えていない場合、第２の閾値を超えているか否かを判定する（ステップＳ３３）。ここで、第２の閾値は、第１の閾値よりも低いＬＳＩの速度を示す。ＬＳＩの速度が、第２の閾値を超えている場合、プロセッサランクをＢに設定する。ＬＳＩの速度が、第２の閾値を超えていない場合、プロセッサランクをＣに設定する。ここで、ＬＳＩの速度の代わりに、ＬＳＩの速度を変換して得られるＬＳＩロット固有のリーク電力を用いて、プロセッサランクを決定してもよい。
【００５７】
以上説明したように、本発明の実施の形態１にかかる情報処理装置を用いることにより、消費電力の削減を実現することができる。具体的には、電力の消費が多いジョブに対しては、リーク電力の低いプロセッサにて処理を実行し、電力の消費が少ないジョブに対しては、リーク電力の高いプロセッサにて処理を実行することにより、装置全体としての消費電力を低くすることができる。さらに、電力の消費が高いジョブを、リーク電力の高いプロセッサにスケジューリングする場合においても、命令発行レート選択制御を行うことにより、あらかじめさだめられた消費電力を超えないようにすることができる。
【００５８】
（実施の形態２）
本発明の実施の形態２にかかる情報処理装置は、電源部を小型化できることが特徴である。本発明の実施の形態２にかかる情報処理装置は、情報処理装置が備えるプロセッサの平均消費電力に基づいて電源部の設計を行う。プロセッサの平均消費電力は、プロセッサを構成するＬＳＩの設計時に算出される値である。もしくは、プロセッサの消費電力のうちで大きな割合を占めるリーク電力を用いて電源部の設計を行ってもよい。例えば、情報処理装置が備えるそれぞれのプロセッサを構成するＬＳＩの速度に基づいてリーク電力を算出する。これより、複数のＬＳＩのリーク電力を平均した平均リーク電力を用いて電源部の設計を行ってもよい。
【００５９】
ここで、電源部は、それぞれのプロセッサが、平均消費電力もしくは平均リーク電力により動作した場合に、それぞれのプロセッサが正常に動作する電源容量を確保する必要がある。つまり、平均消費電力もしくは平均リーク電力に、プロセッサの数を乗算して算出された電力を確保する必要がある。
【００６０】
以上説明したように、本発明の実施の形態２にかかる電源部の設計方法を用いることにより、電源部を小型化することができる。具体的には、図９を用いて説明する。すべてのプロセッサが、最大消費電力で動作することを想定した場合に必要となる電源容量と比較して、平均消費電力で動作することを想定した場合に必要となる電源容量は、少なくなることが分かる。また、このように電源部を小型化した場合においても、本発明の実施の形態１において実現している低消費電力の情報処理装置を用いることにより、電源容量を不足させることなく情報処理装置を動作させることができる。
【００６１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６２】
１  情報処理装置
１０  電源部
１１  冷却部
２０＿１  プロセッサ
２０＿２  プロセッサ
２１  プロセッサ電力プロファイル
３０  算出部
３１  温度測定部
３２  最高温度検出部
３３  最高温度レジスタ
４０  決定部
４１  ＰＳＷ
４２  スケジューリング部
４３  命令パイプライン制御部
４４  命令発行部
５０  メモリ
６０  汎用レジスタ
【図１】
0005444964.tif 000002
【図２】
0005444964.tif 000003
【図３】
0005444964.tif 000004
【図４】
0005444964.tif 000005
【図５】
0005444964.tif 000006
【図６】
0005444964.tif 000007
【図７】
0005444964.tif 000008
【図８】
0005444964.tif 000009
【図９】
0005444964.tif 000010
【図１０】
0005444964.tif 000011