(57)【要約】【課題】最大消費電力で動作する期間を短期化する。【解決手段】情報処理装置は、検出手段と周波数制御手段を備え、省電力化制御を起動して情報処理を行う。検出手段は、ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出する。周波数制御手段は、動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する。また、周波数制御手段は、動作空き時間の範囲内の待機ジョブの実行開始時刻に、ジョブの実行時間が延伸するまで動作周波数を低下させる。【選択図】図１
2014219788.tif 000002
【特許請求の範囲】
【請求項１】
ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出する検出手段と、
前記動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する周波数制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記周波数制御手段は、前記動作空き時間の範囲の待機ジョブの実行開始時刻に、前記ジョブの実行時間が延伸するまで前記動作周波数を低下させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ジョブを実行するリソース量の増減を時系列に管理するリソース予約テーブルをさらに有し、
前記検出手段は、前記リソース予約テーブルの時刻を昇順に探索して、前記リソース量が増加している時刻にもとづき、前記動作空き時間を検出することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記周波数制御手段は、前記ジョブを前記動作空き時間の検出時刻まで延伸する場合の利用リソース増加分である仮延伸リソースを作成し、前記リソース予約テーブル上の該当ジョブの終了予定時刻に仮延伸リソースを仮に割り付け、仮割り付けされた仮延伸リソースが、前記リソース予約テーブルの最大リソース量の範囲内に収まれば、延伸リソースに対応する前記ジョブが延伸可能ジョブであると判断することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記周波数制御手段は、前記ジョブを実行するハードウェア要素の依存度に応じて前記動作周波数を算出することを特徴とする請求項１記載の情報処理装置。
【請求項６】
表示制御手段を含む端末装置と接続し、
前記表示制御手段は、実行対象ジョブ、実行時間が延伸された延伸ジョブおよび待機ジョブを識別可能にした前記リソース予約テーブルの表示制御、または前記リソース毎に消費される消費電力を時系列で示した消費電力テーブルの表示制御の少なくとも一方を行うことを特徴とする請求項３記載の情報処理装置。
【請求項７】
ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出し、
前記動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定して省電力化制御を行う、
ことを特徴とする省電力化制御方法。
【請求項８】
コンピュータに、
省電力化制御の起動時に、
ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出し、
前記動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する、
処理を実行させることを特徴とする省電力化制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、省電力化制御方法および省電力化制御プログラムに関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing）は、大規模な科学技術計算や数値計算などを高速に実行する計算処理であり、多様な研究開発分野で利用されている。
また、ＨＰＣのシステム構成では、ＰＣ（Personal Computer）クラスタが広く導入されている。これは、複数のＰＣノードをネットワークで接続し、大量の計算処理を分割して並列処理を行うことで、高速計算を実行するものである。
【０００３】
従来の技術としては、例えば、低速処理機能の処理空き時間の内に、高速処理機能を実行できる処理可能回数を求め、処理可能回数だけ一定周期で高速処理機能を実行させて制御性能の高速化を図る技術が提案されている。
【０００４】
また、データ量に応じて高速処理の要否を判断し、高速処理を実行する場合はクロック周波数を高くし、実行しない場合はクロック周波数を低くして低消費電力化を図る技術が提案されている。
【０００５】
さらに、プログラム実行状態に応じた処理速度になるようにプロセッサの駆動条件を変更し、プロセッサが過熱状態になったときには駆動条件を変更して消費電力を低下させる技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０８−２０２５４８号公報
【特許文献２】特開平０５−２７８６７号公報
【特許文献３】特開平０５−２９７９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＨＰＣのシステムでは、上記のようにＰＣクラスタ、またはその他の機器が複数台接続して高速計算処理が行われる。しかし、現状のＨＰＣシステムにおいては、それぞれの装置が最大消費電力で動作する時間が長く、最大消費電力での動作時間帯が重複してしまう可能性がある。
【０００８】
このような場合、例えば、計算センタの施設全体として瞬間的に過大な電力が消費されることになり、電源断などの電源障害を生じてしまうおそれがある。
１つの側面では、本発明は、最大消費電力で動作する期間を短期化した情報処理装置、省電力化制御方法および省電力化制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、情報処理装置が提供される。情報処理装置は、ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出する検出手段と、前記動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する周波数制御手段とを有する。
【発明の効果】
【００１０】
１態様によれば、最大消費電力で動作する期間を短期化することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置の構成例を示す図である。
【図２】ジョブスケジューリングの動作を説明するためのモデル図である。
【図３】ブロックリソースを説明するための図である。
【図４】ＣＰＵ周波数を低下させるときの動作を説明するための図である。
【図５】ＣＰＵ周波数の算出式に用いるパラメータを示す図である。
【図６】電力抑制の効果を示す図である。
【図７】情報処理システムの構成例を示す図である。
【図８】ジョブ情報テーブルの構成例を示す図である。
【図９】ジョブ情報の具体例を示す図である。
【図１０】ジョブ情報の具体例を示す図である。
【図１１】リソース予約テーブルのデータ構造を示す図である。
【図１２】ノード状態テーブルの構成例を示す図である。
【図１３】ジョブスケジューリング全体の流れを示す図である。
【図１４】ジョブスケジューリングの動作を示すフローチャートである。
【図１５】ジョブスケジューリングの動作を示すフローチャートである。
【図１６】ジョブ割り付け処理を示すフローチャートである。
【図１７】省電力化制御の起動周期を示す図である。
【図１８】起動周期にもとづいて省電力化制御が行われるときの動作を示すフローチャートである。
【図１９】省電力化制御の動作を示すフローチャートである。
【図２０】ブロックリソースの検出動作を説明するための図である。
【図２１】延伸可能ジョブの検出動作を説明するための図である。
【図２２】延伸可能ジョブの検出処理の動作を示すフローチャートである。
【図２３】ＣＰＵ周波数算出時の動作を示すフローチャートである。
【図２４】ジョブが終了したときにＣＰＵ周波数を元の周波数に戻す場合の動作を示すフローチャートである。
【図２５】次ジョブが開始したときにＣＰＵ周波数を元の周波数に戻す場合の動作を示すフローチャートである。
【図２６】表示制御部の構成例を示す図である。
【図２７】リソース予約テーブルの可視化イメージを示す図である。
【図２８】リソース予約テーブルの可視化動作を示すフローチャートである。
【図２９】ノード消費電力値テーブルの構成例を示す図である。
【図３０】消費電力テーブルの可視化イメージを示す図である。
【図３１】消費電力テーブルのデータ構造を示す図である。
【図３２】消費電力テーブルの可視化動作を示すフローチャートである。
【図３３】実行対象ジョブと延伸ジョブから消費電力テーブルを作成する場合の動作を示すフローチャートである。
【図３４】待機ジョブから消費電力テーブルを作成する場合の動作を示すフローチャートである。
【図３５】本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照して説明する。図１は情報処理装置の構成例を示す図である。情報処理装置１０は、検出手段１１と周波数制御手段１２を備え、省電力化制御を起動して情報処理を行う装置である。
【００１３】
検出手段１１は、ジョブスケジューリングにより生じる、プロセッサの動作空き時間を検出する。周波数制御手段１２は、動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する。
【００１４】
ここで、図１にリソース予約テーブルを示す。縦軸はリソース量、横軸は時間経過である。リソース予約テーブルは、ジョブスケジューリング時にジョブを実行する際に利用されるリソース量を時系列に管理するテーブル（グラフ）である。
【００１５】
省電力化制御の実行前のリソース予約テーブルＴ０において、ジョブ＃１１は実行対象ジョブとし、ジョブ＃１２〜＃１４は待機ジョブとする。また、省電力化制御の実行前では、ジョブ＃１１は、プロセッサｐ１の最大周波数ｆ１で実行されるとし、ジョブ＃１１は、時刻ｔ１１で実行が完了することがスケジューリングされている。
【００１６】
このとき、時刻ｔ１１から時刻ｔ１２までは、プロセッサｐ１がジョブ＃１１を実行しない時間帯となるので、時刻ｔ１１から時刻ｔ１２までの時間は、プロセッサｐ１の動作空き時間となる（動作空き時間ａとする）。
【００１７】
一方、省電力化制御を実行する際のリソース予約テーブルＴ０−１において、検出手段１１は、上記の動作空き時間ａを検出したとする。動作空き時間ａが検出されると、周波数制御手段１２では、動作空き時間ａが生じる直前に実行するジョブ＃１１のジョブ実行時におけるプロセッサｐ１の動作周波数を最大周波数ｆ１より低い動作周波数に設定する。
【００１８】
この場合、周波数制御手段１２は、動作空き時間の範囲の待機ジョブの実行開始時刻に、ジョブの実行時間が延伸するまで動作周波数を低下させる。
すなわち、この例では、周波数制御手段１２は、動作空き時間ａの範囲の内にある、待機ジョブ＃１２の実行開始時刻ｔ１２に対して、ジョブ＃１１の実行時間が延伸するまで動作周波数を低下させることになる。
【００１９】
低下させたときの動作周波数を動作周波数ｆ１ａとする（ｆ１ａ＜ｆ１）。動作周波数ｆ１ａまで低下させてジョブ＃１１を実行すると、ジョブ＃１１−１（図１の斜線ブロック）となる。
【００２０】
すなわち、ジョブ＃１１−１は、ジョブ＃１１の実行時間を矢印Ａに示すように延伸したものであり、時刻ｔ１０〜ｔ１２の時間帯で、プロセッサｐ１により動作周波数ｆ１ａで実行される（動作周波数ｆ１ａで実行されるので、実行時間が時刻ｔ１２まで延伸している）。
【００２１】
このように、情報処理装置１０は、ジョブスケジューリングによりプロセッサの動作空き時間が生じることを認識すると、動作空き時間が生じる直前に実行するジョブのジョブ実行時におけるプロセッサの動作周波数を最大周波数より低く設定する。
【００２２】
これにより、最大周波数よりも低い周波数でジョブが実行されるので、最大消費電力で動作する期間を短期化することが可能になり、電力消費量の均等化を図ることが可能になる（消費電力降下状態は図６で後述する）。
【００２３】
次に本技術の動作について図２〜図６を用いて説明する。最初に、ジョブスケジューリングについて説明する。ＨＰＣでは、計算サーバを共有して、複数のＰＣクラスタ間でコンピュータリソースを公平に利用できるように、ジョブ（計算）のスケジューリングが行われる。
【００２４】
図２はジョブスケジューリングの動作を説明するためのモデル図である。ジョブスケジューラ２０は、ジョブキュー２６とリソース予約テーブルＴ１を有する。ジョブキュー２６は、ジョブを格納（キューイング）する。
【００２５】
リソース予約テーブルＴ１は、横軸に時間経過、縦軸にリソースとして単一ジョブを実行する際のプロセッサ（ＣＰＵ：Central Processing Unit）数をとって、リソースを時系列に管理する（ＣＰＵ数には上限が設定される）。
【００２６】
ここで、１つのジョブを四角形のブロックで表し、横一辺の長さを当該ジョブの最大実行時間、縦一辺の長さを当該ジョブの実行に要するＣＰＵ数とする。このような矩形がジョブのスケジューリング時にリソース予約テーブルＴ１に割り付けられる。
【００２７】
また、リソース予約テーブルＴ１は、異なるリソースそれぞれに対応して用意される。例えば、リソースとして複数のＰＣクラスタＣＬ１〜ＣＬｎがあるとすれば、ＰＣクラスタＣＬ１、ＣＬ２、…、ＣＬｎそれぞれに対応するリソース予約テーブルＴ１が用意される。
【００２８】
ジョブキュー２６では、優先度順にジョブを整列格納している。そして、ジョブは、ジョブキュー２６の先頭から順にリソース予約テーブルＴ１に割り付けられることで、ジョブスケジューリングが実施される。
【００２９】
また、現在時刻に割り付いたジョブが、実行対象ジョブとなって計算リソースとして実行される。図２の場合、ジョブ＃１、＃５が現在時刻に割り付いているので、ジョブ＃１、＃５が実行対象のジョブとなる。その他のジョブ＃２、＃３、＃４は、待機ジョブとなる。
【００３０】
次にブロックリソースについて説明する。図３はブロックリソースを説明するための図である。実行対象ジョブ＃１〜＃３が現在時刻に割り付けられ、ジョブ＃１〜＃３の後段には待機ジョブ＃４〜＃１０が割り付けられている。また、待機ジョブ＃４は、ＣＰＵを多数並列して実行される高並列ジョブであるとする。
【００３１】
このような高並列ジョブ＃４があると、ジョブキュー２６にキューイングされている後続の待機ジョブ＃５〜＃１０が、高並列ジョブ＃４にブロックにされてしまい、待機ジョブ＃５〜＃１０が利用できないリソースが発生する。このようなリソースをブロックリソースと呼ぶ。ブロックリソースは、ＣＰＵが稼働していない動作空き時間となる。
【００３２】
次にブロックリソースを検出してＣＰＵ周波数を低下させる省電力化制御について説明する。図４はＣＰＵ周波数を低下させるときの動作を説明するための図である。ジョブスケジューラ２０は、リソース予約テーブルＴ１のリソース管理状態にもとづいて、ブロックリソースの有無を検出する。
【００３３】
そして、ジョブスケジューラ２０は、ブロックリソースを検出すると、ブロックリソースの範囲内（ＣＰＵの動作空き時間の範囲内）で実行対象ジョブのＣＰＵ周波数を低下させる。このとき、ブロックリソースの範囲内で実行対象ジョブの実行時間を延伸させて、待機ジョブの実行開始を遅延させない程度の値まで、ＣＰＵ周波数を低下させる。
【００３４】
図４の例において、実行対象ジョブ＃２、＃３と、待機ジョブ＃４との間にブロックリソースＢ（図中斜線部分）が生じているとする。また、時間帯ｔｂにおけるジョブ＃２のＣＰＵ周波数をｆｂとする。
【００３５】
省電力化制御を実行する場合、ブロックリソースＢの範囲内で、ジョブ＃２の実行時間を延伸させ、かつ待機ジョブ＃４の実行開始を遅延させない程度にＣＰＵ周波数ｆｂを低下させるＣＰＵ周波数ｆａを生成する。
【００３６】
すなわち、省電力化制御前では、時間帯ｔｂの範囲内において、ＣＰＵ周波数ｆｂで実行対象にあったジョブ＃２は、省電力化制御時には、時間帯ｔａ（＞ｔｂ）の範囲内において、ＣＰＵ周波数ｆａ（＜ｆｂ）で実行対象となる。
【００３７】
同様に、時間帯ｔｃにおけるジョブ＃３のＣＰＵ周波数をｆｃとする。省電力化制御を実行する場合、ブロックリソースＢの範囲内で、ジョブ＃３の実行時間を延伸させ、かつ待機ジョブ＃４の実行開始を遅延させない程度にＣＰＵ周波数ｆｃを低下させるＣＰＵ周波数ｆａを生成する。
【００３８】
すなわち、省電力化制御前では、時間帯ｔｃの範囲内において、ＣＰＵ周波数ｆｃで実行対象にあったジョブ＃３は、省電力化制御時には、時間帯ｔａ（＞ｔｃ）の範囲内において、ＣＰＵ周波数ｆａ（＜ｆｃ）で実行対象となる。
【００３９】
次にＣＰＵ周波数の算出について説明する。図５はＣＰＵ周波数の算出式に用いるパラメータを示す図である。ジョブ＃２の省電力化制御時のＣＰＵ周波数を求めるとする。ここで、変更前のＣＰＵ周波数をＦold、現在時刻をｔnow、ジョブ＃２の実行時間延伸前のジョブ終了時刻をｔend、実行時間延伸後のジョブ終了時刻をｔend new、ＣＰＵ周波数依存係数をＣとする。ジョブスケジューラ２０は、変更後のＣＰＵ周波数Ｆnewを、以下の式（１）を用いて算出する。
【００４０】
Ｆnew＝（ｔend−ｔnow−Ｃ（ｔend−ｔnow））／（ｔend new−ｔnow−Ｃ（ｔend−ｔnow））×Ｆold                                              ・・・（１）
なお、ＣＰＵ周波数依存係数であるＣは、０＜Ｃ＜１であって、ＣＰＵバウンドなジョブの場合、Ｃは０に近い値となる。また、メモリバウンドやＩ／Ｏバウンドのジョブの場合は、１に近い値となる。
【００４１】
このように、ＣＰＵ周波数の下げ幅を求める場合、ジョブを実行しているハードウェア要素の依存度に応じて、具体的には、ＣＰＵバウンドなのか、またはメモリバウンドやＩ／Ｏバウンドなのか、といった状態に応じてＣＰＵ周波数を算出する。これにより、ジョブの特性に適したＣＰＵ周波数を適切に算出することが可能になる。
【００４２】
なお、計算ノード３−１〜３−ｎでは、ＣＰＵ周波数が離散的に設定可能になっている。例えば、計算ノード３−１は、ＣＰＵ周波数として、2.9、2.5、2.1、1.7、1.3（ＧＨｚ）の複数の離散値を有しており、これらの中から１つを設定可能にしている。
【００４３】
したがって、式（１）でＣＰＵ周波数が算出されると、算出結果の近傍の値が計算ノードに設定されることになる。例えば、算出結果が2.87…（ＧＨｚ）であるならば、計算ノード３−１では、2.9（ＧＨｚ）を選択して、自身のＣＰＵの動作周波数として設定することになる。
【００４４】
次に電力抑制の効果について説明する。図６は電力抑制の効果を示す図である。図４に示したリソース予約テーブルＴ１に対応した電力抑制のグラフｇ１を示しており、グラフｇ１の縦軸は消費電力量、横軸は時間経過である。
【００４５】
また、グラフｇ１の実線ｋ１は、ジョブ＃２、＃３のＣＰＵ周波数を低下させず、実行時間を延長させない通常運用時における消費電力量を示している。点線ｋ２は、ジョブ＃２、＃３のＣＰＵ周波数を低下させて、実行時間を延長させた省電力化制御時の消費電力量を示している。
【００４６】
通常運用時、消費電力量Ｐ３は、時刻ｔ０〜ｔ１において、ジョブ＃１〜＃３の実行に要する消費電力量である。消費電力量Ｐ２は、時刻ｔ１〜ｔ２において、ジョブ＃１、＃２の実行に要する消費電力量である。消費電力量Ｐ１は、時刻ｔ２〜ｔ３において、ジョブ＃１の実行に要する消費電力量である。
【００４７】
一方、省電力化制御時、ジョブ＃２、＃３のそれぞれのＣＰＵ周波数を低下させて実行時間を時刻ｔ３まで延長させる。このとき、時刻ｔ３まで延長させるということは、ジョブ＃２、＃３のＣＰＵ周波数は共に、時刻ｔ３でジョブ実行が終了しているジョブ＃１のＣＰＵ周波数と同じ値まで低下することになる。
【００４８】
したがって、時刻ｔ０〜ｔ３の範囲では、ジョブ＃１〜＃３それぞれの消費電力量は、同一の値となって消費電力量Ｐａとなる。このように、省電力化制御を行った時間帯では、電力ピークが抑制されて消費電力量が平準化されることになる。
【００４９】
このように、ブロックリソースにもとづくＣＰＵ周波数の低下を図ることで、最大消費電力で動作する期間を短期化することが可能になり、消費電力のピークを抑制することができる。
【００５０】
また、ＣＰＵ周波数の低下を図る際には、ブロックリソースの範囲内で、実行中ジョブの実行時間を延伸させ、待機ジョブの実行開始を遅延させないような値にまで低下させている。したがって、後続ジョブの実行開始時間遅延を回避しているので、システム全体の性能（スループット）を確保しながら、消費電力を均一化することが可能になる。
【００５１】
次に情報処理装置１０を含むシステムの全体構成について説明する。図７は情報処理システムの構成例を示す図である。情報処理システム１は、管理ノード２、計算ノード３−１〜３−ｎおよびユーザ端末４（端末装置）を備える。
【００５２】
管理ノード２は、図１の情報処理装置１０に該当し、ジョブスケジューラ２０を含む。また、ユーザ端末４は、表示制御部４０を含む（表示制御部４０については図２６以降で後述する）。
【００５３】
ジョブスケジューラ２０は、ジョブ操作部２１、ジョブ管理部２２、ジョブスケジューリング部２３、ノード管理部２４、設定情報送信部２５、ジョブキュー２６、リソース予約テーブルＴ１、ジョブ情報テーブルＴ２およびノード状態テーブルＴ３を備える。ジョブスケジューリング部２３は、図１の検出手段１１および周波数制御手段１２の機能を含む。
【００５４】
ジョブ操作部２１は、ユーザ端末４と計算ノード３−１〜３−ｎと接続し、ユーザ端末４とのインタフェース制御および計算ノード３−１〜３−ｎとのインタフェース制御を行う。ジョブ管理部２２は、ジョブの格納を行うジョブキュー２６と、ジョブ情報が登録されるジョブ情報テーブルＴ２とを管理する。
【００５５】
ジョブスケジューリング部２３は、リソース予約テーブルＴ１を使用して、ジョブのスケジューリングを行い、また、省電力化制御を周期的に実行する。ノード管理部２４は、計算ノード３−１〜３−ｎの状態が登録されるノード状態テーブルＴ３を管理する。設定情報送信部２５は、計算ノード３−１〜３−ｎに対して管理ノード２で設定すべき情報を送信する。例えば、管理ノード２で求めた、計算ノード３−１〜３−ｎの各ＣＰＵ周波数を送信したりする。
【００５６】
次にジョブ情報テーブルＴ２について説明する。図８はジョブ情報テーブルの構成例を示す図である。ジョブ情報テーブルＴ２は、ジョブキュー２６に格納されているジョブのスケジューリングに関するジョブ情報が登録される。
【００５７】
ジョブ情報テーブルＴ２は、ジョブＩＤ、ノード数、最大実行時間（秒）、延伸可能時間（秒）、ＣＰＵ周波数依存係数、利用リソース、ジョブ状態、実行ノードおよび実行開始時刻（エポック秒）およびその他の属性の項目を有する。
【００５８】
ジョブＩＤは、ジョブの識別情報である。ノード数は、ジョブの処理を実行する際の計算ノードの数（＝ＣＰＵの数）である。最大実行時間は、ジョブ実行に要する最大の実行時間であり、ジョブ投入時にユーザにより任意の時間が指定可能である。
【００５９】
延伸可能時間は、ブロックリソースにもとづきＣＰＵ周波数を低下させる際に、ジョブ実行処理を延伸させるに可能な最大の時間である。なお、延伸可能時間は、ジョブ投入時は０である。
【００６０】
ＣＰＵ周波数依存係数は、上記の式（１）中のＣの値である。当該ジョブ実行が例えば、ＣＰＵバウンドなのかメモリバウンドなのかに応じた情報となる。この項目に示される値が式（１）に代入されて計算されることで、ジョブ特性に応じた適切なＣＰＵ周波数を求めることが可能になる。
【００６１】
利用リソースは、ジョブを実行するリソースの識別情報である。ジョブによって利用するリソースは異なり、例えば、あるジョブは１つのリソースとしてＰＣクラスタを利用したり、あるジョブは１つのリソースとしてスーパーコンピュータを利用したりする。このため、該当ジョブを実行する際にどのリソースが利用されるかの情報が利用リソースに登録される。
【００６２】
ジョブ状態は、ジョブが実行対象状態なのか待機状態なのかを示す情報である。実行ノードは、ジョブを実行する計算ノードの識別情報である。実行開始時刻は、ジョブ実行を開始する時刻であり、例えば、エポック秒形式で示される情報である。
【００６３】
図９、図１０はジョブ情報の具体例を示す図である。図９のジョブ情報テーブルＴ２−１は、ジョブキュー２６に格納されるジョブ＃２のジョブ情報を示している。ジョブ＃２の各種ジョブ情報として、ジョブＩＤ＝10、ノード数＝8、最大実行時間＝172800、延伸可能時間＝81276、ＣＰＵ周波数依存係数＝0.1（ＣＰＵバウンド）、利用リソース＝resource A、ジョブ状態＝実行、実行ノード＝node0105、node0200、…および実行開始時刻＝1351166872となっている。なお、図９において、リソース予約テーブルＴ１の対応する箇所にこれら各種ジョブ情報を示している。
【００６４】
図１０のジョブ情報テーブルＴ２−２は、ジョブキュー２６に格納されるジョブ＃４のジョブ情報を示している。ジョブ＃４の各種ジョブ情報として、ジョブＩＤ＝11、ノード数（ＣＰＵ数）＝32、最大実行時間＝86400、延伸可能時間＝0、ＣＰＵ周波数依存係数＝0.8（メモリバウンドまたはＩ／Ｏバウンド）、利用リソース＝resource Aおよびジョブ状態＝待機となっている。なお、図１０において、リソース予約テーブルＴ１の対応する箇所にこれら各種ジョブ情報を示している。
【００６５】
次にリソース予約テーブルＴ１のデータ構造について説明する。図１１はリソース予約テーブルのデータ構造を示す図である。リソース予約テーブルＴ１では、各時刻のリソースの増減を管理している。
【００６６】
例えば、時刻ｔ０〜ｔ１におけるリソース増加分が＋３２あったとすると、時刻ｔ１〜ｔ２では時刻ｔ０〜ｔ１のリソース分から−５の減少、時刻ｔ２〜ｔ３では時刻ｔ１〜ｔ２のリソース分から−１０の減少というように、時刻毎にリソースの増減（差分）で管理される。
【００６７】
次にノード状態テーブルＴ３について説明する。図１２はノード状態テーブルの構成例を示す図である。ノード状態テーブルＴ３は、計算ノード３−１〜３−ｎの各ＣＰＵの動作周波数を管理するテーブルである。
【００６８】
ノード状態テーブルＴ３は、ノード名、マシンカテゴリおよび現在周波数ＩＤの項目を有する。ノード名は、計算ノードの識別情報である。マシンカテゴリは、計算ノードに設定可能なＣＰＵ周波数を示すものであり、周波数（ＧＨｚ）と周波数ＩＤの情報を含む。現在周波数ＩＤは、現在選択されている周波数ＩＤを示す情報である。
【００６９】
例えば、ノード名＝node0001の計算ノードは、現在使用可能な周波数として2.9、2.5、2.1、1.7、1.3（ＧＨｚ）を有しており、周波数毎のＩＤが1〜5であるとする。図１２では、現在周波数ＩＤ＝1となっているので、2.9（ＧＨｚ）の周波数が設定されていることがわかる。
【００７０】
同様に、ノード名＝node0005の計算ノードは、現在使用可能な周波数として2.6、2.2、1.8、1.3（ＧＨｚ）を有しており、周波数毎のＩＤが1〜4であるとする。図１２では、現在周波数ＩＤ＝1となっているので、2.6（ＧＨｚ）の周波数が設定されていることがわかる。
【００７１】
次にジョブスケジューリングの全体の流れについて説明する。図１３はジョブスケジューリング全体の流れを示す図である。
〔Ｓ１〕ジョブスケジューリング部２３は、ジョブ投入またはジョブ終了の発生を検出する。
【００７２】
〔Ｓ２〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１上において、ジョブ投入またはジョブ終了が発生した時刻以前に割り付けていたリソースをクリアする。
〔Ｓ３〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１の現在時刻を更新する。
【００７３】
〔Ｓ４〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１に待機ジョブを順番に割り付ける。このとき、例えば、現在時刻に割り付いた待機ジョブｊ０は、実行対象ジョブに遷移する。ステップＳ１へ戻る。
【００７４】
次にジョブスケジューリングの動作フローについて図１４〜図１６を用いて説明する。図１４はジョブスケジューリングの動作を示すフローチャートである。
〔Ｓ２０ａ〕ジョブスケジューリング部２３は、ジョブ投入またはジョブ終了が発生したか否かを判断する。発生を検出した場合はステップＳ２０へ行き、発生を検出しない場合はステップＳ２０ａの処理を繰り返す。
【００７５】
〔Ｓ２０〕ジョブスケジューリング部２３は、ジョブスケジューリング処理を実行する。
図１５はジョブスケジューリングの動作を示すフローチャートである。図１４のステップＳ２０の詳細動作を示すフローである。
【００７６】
〔Ｓ２１〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１をクリアする。
〔Ｓ２２〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１の現在時刻を更新する。
【００７７】
〔Ｓ２３〕ジョブスケジューリング部２３は、ジョブキュー２６が空か否かを判断する。ジョブキュー２６にジョブが格納されていなければ終了し、ジョブが格納されていればステップＳ２４へ行く。
【００７８】
〔Ｓ２４〕ジョブスケジューリング部２３は、ジョブキュー２６から優先度順にジョブを取得する。
〔Ｓ２５〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１に対して、取得したジョブの割り付け処理を行う。
【００７９】
〔Ｓ２６〕ジョブスケジューリング部２３は、リソース予約テーブルＴ１に割り付けたジョブの時刻が現在時刻か否かを判断する。現在時刻ならばステップＳ２７へ行き、現在時刻でないならばステップＳ２３へ戻る。
【００８０】
〔Ｓ２７〕ジョブスケジューリング部２３は、現在時刻に割り付いたジョブを実行対象状態に遷移させる。
〔Ｓ２８〕実行対象状態に遷移したジョブは、該当する計算ノードで実行される。
【００８１】
図１６はジョブ割り付け処理を示すフローチャートである。図１５のステップＳ２５の詳細動作を示すフローである。
〔Ｓ２５−１〕ジョブスケジューリング部２３は、割り付け対象のジョブの属性（最大実行時間、ノード数、利用リソース等）をジョブ情報テーブルＴ２から取得する。
【００８２】
〔Ｓ２５−２〕ジョブスケジューリング部２３は、割り付け対象のジョブが利用するリソースを認識すると、該リソースに対応するリソース予約テーブルＴ１を取得する。
〔Ｓ２５−３〕ジョブスケジューリング部２３は、取得したリソース予約テーブルＴ１に対して、該当ジョブが割り付け可能な、現在時刻に最も近い時刻を探索する。
【００８３】
〔Ｓ２５−４〕ジョブスケジューリング部２３は、探索結果にもとづいて、該当ジョブをリソース予約テーブルＴ１に割り付けて、リソース予約テーブルＴ１の更新を行う。
次に省電力化制御の起動周期について説明する。図１７は省電力化制御の起動周期を示す図である。上述してきた省電力化制御は、周期的に起動されるが、この起動周期（節電周期）の長さは、情報処理システム１の動作モードにより異なる。なお、図中の節電時刻において省電力化制御が実行される。
【００８４】
情報処理システム１では、動作モードとして、パフォーマンスモードＭ１と節電モードＭ２を有している。パフォーマンスモードＭ１は、一定期間内の省電力化制御の実行回数を減らして、ハイパフォーマンスで計算処理を行う場合の動作モードである。節電モードＭ２は、一定期間内の省電力化制御の実行回数を多くして、省電力で計算処理を行う場合の動作モードである。
【００８５】
したがって、パフォーマンスモードＭ１における起動周期は、節電モードＭ２の起動周期より長く設定され、逆に節電モードＭ２における起動周期は、パフォーマンスモードＭ１の起動周期より短く設定される。
【００８６】
図１８は起動周期にもとづいて省電力化制御が行われるときの動作を示すフローチャートである。
〔Ｓ３１〕ジョブスケジューリング部２３は、ジョブスケジューリング処理を実行する。
【００８７】
〔Ｓ３２〕ジョブスケジューリング部２３は、節電時刻からの経過時間が起動周期（節電周期）に達したか否かを判断する。起動周期に達した場合は、ステップＳ３３へ行き、節電周期に達していない場合は、ステップＳ３１へ戻る。
【００８８】
〔Ｓ３３〕ジョブスケジューリング部２３は、省電力化制御を実行する。
〔Ｓ３４〕ジョブスケジューリング部２３は、節電時刻を現在時刻に更新する。ステップＳ３１へ戻る。
【００８９】
図１９は省電力化制御の動作を示すフローチャートである。図１８のステップＳ３３の動作を示すフローである。
〔Ｓ３３−１〕ジョブスケジューリング部２３は、リソース毎のリソース予約テーブルＴ１についてステップＳ３３−２以降の処理を行う。
【００９０】
〔Ｓ３３−２〕ジョブスケジューリング部２３は、各リソースのリソース予約テーブルＴ１それぞれに対して、ブロックリソース検出処理（動作空き時間の検出処理）を行う。
〔Ｓ３３−３〕ジョブスケジューリング部２３は、検出したブロックリソースに対して、延伸可能ジョブを検出する。
【００９１】
〔Ｓ３３−４〕ジョブスケジューリング部２３は、検出した延伸可能ジョブのＣＰＵ周波数を算出・設定する。
次にブロックリソース検出処理について説明する。図２０はブロックリソースの検出動作を説明するための図である。リソース予約テーブルＴ１は、図１１で示したように、各時刻におけるリソースの増減を管理しているが、図２０に示すように、リソースが増加している前段には、ブロックリソースＢが発生しているとみなせる。
【００９２】
したがって、ジョブスケジューリング部２３は、リソース予約テーブルＴ１の時刻を昇順に探索して、リソースの値が上昇している時刻ｂ１、ｂ２を検出することで（以下、この時刻をブロックリソース検出時刻と呼ぶ）、ブロックリソースＢの存在を認識する。
【００９３】
このように、ジョブを実行するリソース量の増減を時系列に管理するリソース予約テーブルＴ１から、リソースの値が上昇している時刻を見つけてブロックリソースを検出することで、ブロックリソースの存在をジョブスケジューリング中に、容易に認識することが可能になる。
【００９４】
次に延伸可能ジョブの検出処理について説明する。図２１は延伸可能ジョブの検出動作を説明するための図である。ジョブスケジューリング部２３は、ブロックリソースを検出すると、実行中ジョブをブロックリソース検出時刻まで延伸する場合の利用リソース増加分である仮延伸リソースを作成する。仮延伸リソースは，実行中ジョブのＣＰＵ数と延伸時間の矩形で表される。
【００９５】
なお、延伸時間とは、実行対象ジョブの終了予定時刻からブロックリソース検出時刻までの間の時間である。ジョブスケジューリング部２３は、仮延伸リソースを作成すると、その後、リソース予約テーブルＴ１上の該当ジョブの終了予定時刻に仮延伸リソースを仮に割り付ける。
【００９６】
そして、仮割り付けされた仮延伸リソースが、リソース予約テーブルＴ１の最大ＣＰＵ数（最大リソース量）の範囲内に収まれば、延伸リソースに対応するジョブが延伸可能ジョブであると判断する。
【００９７】
例えば、ジョブｊ１に対して、ジョブｊ１のＣＰＵ数と、延伸時間ｔａで仮延伸リソースを作成する。延伸時間ｔａは、ジョブｊ１の終了予定時刻ｔ２１とブロックリソース検出時刻ｂ１との間の時間である。この例の場合、仮延伸リソースをリソース予約テーブルＴ１に割り付けた結果がリソース予約テーブルＴ１の最大ＣＰＵ数の範囲に収まっているので、ジョブｊ１は、ブロックリソースに対して延伸可能ジョブと判断される。
【００９８】
一方、ジョブｊ２に対して、ジョブｊ２のＣＰＵ数と、延伸時間ｔｂで仮延伸リソースを作成する。延伸時間ｔｂは、ジョブｊ２の終了予定時刻ｔ２２とブロックリソース検出時刻ｂ１との間の時間である。この例の場合、仮延伸リソースをリソース予約テーブルＴ１に割り付けた結果がリソース予約テーブルＴ１の最大ＣＰＵ数の範囲に収まらないので、ジョブｊ１は、ブロックリソースに対して延伸可能ジョブと判断されない。
【００９９】
図２２は延伸可能ジョブの検出処理の動作を示すフローチャートである。
〔Ｓ４１〕ジョブスケジューリング部２３は、ジョブキュー２６から優先度順にジョブを取得する。
【０１００】
〔Ｓ４２〕ジョブスケジューリング部２３は、取得したジョブが実行中ジョブか否かを判断する。実行中ジョブであればステップＳ４３へ行き、実行中ジョブでなければステップＳ４１へ戻る。
【０１０１】
〔Ｓ４３〕ジョブスケジューリング部２３は、該当の実行中ジョブに対して、延伸リソースを作成し、算出結果をリソース予約テーブルＴ１に仮割り付けする。
〔Ｓ４４〕ジョブスケジューリング部２３は、仮割り付け処理の結果、リソース予約テーブルＴ１の最大値を超えないか否かを判断する。超えない場合はステップＳ４５へ行き、超える場合はステップＳ４１へ戻る。
【０１０２】
〔Ｓ４５〕ジョブスケジューリング部２３は、算出したリソースＲをリソース予約テーブルＴ１に割り付ける。
このように、ジョブスケジューリング部２３は、ＣＰＵ数と、ジョブの終了予定時刻からリソース量が増加している時刻間の時間から延長リソースを作成し、リソース予約テーブルＴ１上におけるジョブの終了予定時刻に仮割り付けする。そして、割付結果がリソース予約テーブルＴ１の最大ＣＰＵ数を超えない場合は、当該ジョブは延伸可能ジョブであると判断する。
【０１０３】
これにより、省電力化制御時に、ＣＰＵ周波数の低下対象となるジョブの延伸時間を正確に認識することができ、他のジョブスループットへ影響を与えず、延伸ジョブを設定することが可能になる。
【０１０４】
次に省電力化制御におけるＣＰＵ周波数算出時の動作についてフローチャートを用いて説明する。図２３はＣＰＵ周波数算出時の動作を示すフローチャートである。
〔Ｓ５１〕ジョブスケジューリング部２３は、ジョブ延伸時間にもとづき、ＣＰＵ周波数を算出する。
【０１０５】
〔Ｓ５２〕ジョブスケジューリング部２３は、ＣＰＵ周波数の算出後、ジョブ情報テーブルＴ２にしたがって実行時間を更新し、また、ノード状態テーブルＴ３の現在周波数を更新する。
【０１０６】
〔Ｓ５３〕設定情報送信部２５は、該当する計算ノードに対して、算出されたＣＰＵ周波数を送信する。
次に省電力化制御時に算出したＣＰＵ周波数を元のＣＰＵ周波数に戻す場合の処理について説明する。ＣＰＵ周波数を元に戻す場合は、ジョブが終了したとき、または次ジョブが開始したときのいずれかにおいて実行する。
【０１０７】
図２４はジョブが終了したときにＣＰＵ周波数を元の周波数に戻す場合の動作を示すフローチャートである。
〔Ｓ６１〕ジョブスケジューリング部２３は、ジョブ終了が発生したか否かを判断する。ジョブ終了が発生した場合はステップＳ６２へ行き、未発生の場合はステップＳ６１の処理を繰り返す。
【０１０８】
〔Ｓ６２〕ジョブスケジューリング部２３は、終了したジョブに延伸可能時間が設定されているか否か、すなわち、終了したジョブが省電力化制御対象のジョブであるか否かを判断する。延伸可能時間が設定されている場合はステップＳ６３へ行き、設定されていない場合はステップＳ６５へ行く。
【０１０９】
〔Ｓ６３〕ジョブスケジューリング部２３は、終了したジョブを実行していた計算ノードのＣＰＵ周波数を最大周波数に設定する。
〔Ｓ６４〕ジョブスケジューリング部２３は、ノード状態テーブルＴ３の該当する現在周波数を最大周波数に更新する。
【０１１０】
〔Ｓ６５〕ジョブスケジューリング部２３は、ジョブ情報テーブルＴ２に対して、終了したジョブに関するジョブ情報をクリアする。
図２５は次ジョブが開始したときにＣＰＵ周波数を元の周波数に戻す場合の動作を示すフローチャートである。次ジョブが開始したときにＣＰＵ周波数を元の周波数に戻す場合は、通常のジョブスケジューリング処理において、ジョブを実行対象状態に遷移させたときに、ＣＰＵ周波数を最大に設定する（ＣＰＵ周波数を元に戻す）。
【０１１１】
〔Ｓ７１〕ジョブスケジューリング部２３は、ジョブを実行対象状態に遷移させる。
〔Ｓ７２〕ジョブスケジューリング部２３は、当該ジョブを実行すべき計算ノードのＣＰＵ周波数を最大周波数に設定する。
【０１１２】
〔Ｓ７３〕ジョブスケジューリング部２３は、ノード状態テーブルＴ３の該当する現在周波数を最大周波数に更新する。
〔Ｓ７４〕ジョブスケジューリング部２３は、実行状態に遷移したジョブを計算ノードで実行させる。
【０１１３】
次にユーザ端末４における画面表示について説明する。ユーザ端末４は、ユーザに対して、リソース予約テーブルＴ１などを可視化して、管理ノード２のジョブの実行状態などを画面表示する。
【０１１４】
図２６は表示制御部の構成例を示す図である。ユーザ端末４は、表示制御部４０を備え、管理ノード２内のジョブスケジューラ２０は、可視化に要する情報を表示制御部４０へダンプする。ダンプする情報としては、例えば、リソース予約テーブルＴ１、ジョブ情報テーブルＴ２およびノード状態テーブルＴ３の各種テーブルの登録情報などがある。
【０１１５】
表示制御部４０は、受信部４１、集計部４２、ノード消費電力値テーブルＴ４、消費電力テーブル作成部４３および表示部４４を含む。受信部４１は、ジョブスケジューラ２０から送信された情報を受信する。
【０１１６】
集計部４２は、画面表示に関する各情報を集計して可視化イメージを生成する。消費電力テーブル作成部４３は、ジョブ実行に要する消費電力を求めて消費電力テーブルを作成する。表示部４４は、集計された情報にもとづき、画面表示を行う。表示すべき情報としては、例えば、リソース予約テーブルＴ１および消費電力テーブルがある。
【０１１７】
ノード消費電力値テーブルＴ４は、計算ノード３−１〜３−ｎがそれぞれのＣＰＵ周波数で動作したときに消費される電力値を管理するテーブルである。なお、消費電力値は、あらかじめ実測して求めておいてもよい。
【０１１８】
次にリソース予約テーブルＴ１の可視化について説明する。図２７はリソース予約テーブルの可視化イメージを示す図である。表示制御部４０は、リソース予約テーブルＴ１内の、実行リソースＲ１（実行対象ジョブ）、延伸リソースＲ２（延伸ジョブ）および待機リソースＲ３（待機ジョブ）を表示する。
【０１１９】
実行リソースＲ１は、省電力化制御が働いておらず、通常のジョブスケジューリングによって実行されるリソースである。延伸リソースＲ２は、省電力化制御が働いてＣＰＵ周波数が低下した状態で実行される、実行時間延伸部分のリソースである。待機リソースＲ３は、実行待ちのリソースである。
【０１２０】
これらのリソースが表示される場合、色分けなど適宜わかりやすいような画面表示が行われる。このようなリソース予約テーブルＴ１の可視化が行われることで、ジョブの割り付け状態や省電力化制御の動作を容易に確認することが可能になる。
【０１２１】
図２８はリソース予約テーブルの可視化動作を示すフローチャートである。
〔Ｓ８１〕ジョブスケジューラ２０内のジョブ操作部２１は、リソース予約テーブルＴ１に関する表示情報をユーザ端末４へ送信する。
【０１２２】
〔Ｓ８２〕受信部４１は、送信されたリソース予約テーブルＴ１の表示情報を受信する。
〔Ｓ８３〕集計部４２は、実行ジョブ、延伸ジョブおよび待機ジョブそれぞれの表示情報を集計する。
【０１２３】
〔Ｓ８４〕表示部４４は、集計結果のリソース予約テーブルＴ１をグラフ化して画面表示する。
次に電力の可視化について説明する。図２９はノード消費電力値テーブルの構成例を示す図である。ノード消費電力値テーブルＴ４は、ノード名とマシンカテゴリの項目を有する。ノード名は、計算ノードの識別情報である。マシンカテゴリは、計算ノードに設定可能な周波数毎の消費電力を示すものであり、周波数ＩＤと消費電力（Ｗ）の情報を含む。
【０１２４】
図２９において例えば、ノード名＝node0001は、周波数ＩＤ＝1〜5を有しており、周波数ＩＤ＝1〜5のそれぞれに対して、250、230、210、190、170（Ｗ）の消費電力を要することが登録されている。
【０１２５】
図３０は消費電力テーブルの可視化イメージを示す図である。消費電力テーブルＴ５は、縦軸が消費電力量（Ｗ）、横軸が時間経過であり、各リソース（実行リソース、延伸リソースおよび待機リソース）が消費する電力を時系列で表すグラフである。このような消費電力テーブルＴ５の可視化が行われることで、消費電力の状態を容易に確認することが可能になる。
【０１２６】
図３１は消費電力テーブルのデータ構造を示す図である。消費電力テーブルＴ５では、各時刻の消費電力の増減を管理している。データ構造Ｔ５−１において、例えば、時刻ｔ０〜ｔ１における消費電力増加分が＋１５００あったとすると、時刻ｔ１〜ｔ２では時刻ｔ０〜ｔ１の消費電力分から−３２０の減少、時刻ｔ２〜ｔ３では時刻ｔ１〜ｔ２の消費電力分から−４３０の減少というように、時刻毎に消費電力の増減（差分）で管理される。
【０１２７】
図３２は消費電力テーブルの可視化動作を示すフローチャートである。
〔Ｓ９１〕ジョブスケジューラ２０内のジョブ操作部２１は、消費電力テーブルＴ５の可視化に要する表示情報をユーザ端末４へ送信する。
【０１２８】
〔Ｓ９２〕受信部４１は、送信された消費電力テーブルＴ５の可視化に要する表示情報を受信する。
〔Ｓ９３〕消費電力テーブル作成部４３は、実行対象ジョブと延伸ジョブの消費電力テーブルＴ５を作成する。
【０１２９】
〔Ｓ９４〕消費電力テーブル作成部４３は、待機ジョブの消費電力テーブルを作成する。
〔Ｓ９５〕集計部４２は、実行対象ジョブ、延伸ジョブおよび待機ジョブの各消費電力テーブルＴ５を集計する。
【０１３０】
〔Ｓ９６〕表示部４４は、集計結果の消費電力テーブルＴ５をグラフ化して表示する。
図３３は実行対象ジョブと延伸ジョブから消費電力テーブルを作成する場合の動作を示すフローチャートである。
【０１３１】
〔Ｓ１０１〕消費電力テーブル作成部４３は、実行対象ジョブの利用リソース、実行開始時刻、最大実行時間、延伸可能時間および実行ノードをジョブ情報から取得する。
〔Ｓ１０２〕消費電力テーブル作成部４３は、ノード状態テーブルＴ３から、当該ジョブを実行している計算ノードのＣＰＵ周波数の周波数ＩＤを取得する。
【０１３２】
〔Ｓ１０３〕消費電力テーブル作成部４３は、取得した周波数ＩＤをキーにして、計算ノードが消費する電力をノード消費電力値テーブルＴ４から取得する。
〔Ｓ１０４〕消費電力テーブル作成部４３は、当該ジョブが消費する電力（ＣＰＵ数×消費電力）をジョブ開始時刻から（最大実行時間＋延伸可能時間）の分、消費電力テーブルＴ５に割り付ける。
【０１３３】
図３４は待機ジョブから消費電力テーブルを作成する場合の動作を示すフローチャートである。
〔Ｓ１１１〕消費電力テーブル作成部４３は、リソース毎のリソース予約テーブルＴ１の待機ジョブについてステップＳ１１２以降の処理を行う。
【０１３４】
〔Ｓ１１２〕消費電力テーブル作成部４３は、ノード消費電力値テーブルＴ４から、該当リソースに属するノードの最大周波数の消費電力を取得する。
〔Ｓ１１３〕消費電力テーブル作成部４３は、待機ジョブに関するリソース予約テーブルＴ１の待機ジョブに関する（ＣＰＵ数×消費電力）を消費電力テーブルＴ５に割り付ける。
【０１３５】
次に本技術の省電力化制御をコンピュータによって実現する場合について説明する。上記に示した処理機能は、コンピュータによって実現可能である。図３５は本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。情報処理装置１０内のコンピュータ１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【０１３６】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【０１３７】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【０１３８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【０１３９】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【０１４０】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１４１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【０１４２】
通信インタフェース１０７は、ネットワーク１１０に接続されている。通信インタフェース１０７は、ネットワーク１１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【０１４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。また、コンピュータで本実施の形態の処理機能を実現する場合、情報処理装置１０が有する機能の処理内容を記述したプログラムが提供される。
【０１４４】
そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【０１４５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１４８】
以上説明したように、本技術によれば、ジョブスケジューリングによりＣＰＵの空き時間が生じると、空き時間が生じる直前に実行するジョブのジョブ実行時におけるＣＰＵ動作周波数を最大周波数より低く設定する。これにより、ＨＰＣ計算資源システムの最大消費電力で動作する期間を短期化することが可能になる。
【０１４９】
また、単に、ＣＰＵ周波数を低下させるとＨＰＣ計算資源システム全体のジョブスループットが低下するおそれがあるが、本技術では、ジョブスケジューラが暫時利用されないリソースを検出して、その空き時間を用いてＣＰＵ周波数を低下させてジョブを延伸して実行させる。このため、ＨＰＣ計算資源システム全体のジョブスループットの低下を抑制しつつ、ＨＰＣ計算資源システムの最大消費電力で動作する期間を短期化することが可能になる。
【０１５０】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。
【符号の説明】
【０１５１】
１０  情報処理装置
１１  検出手段
１２  周波数制御手段
＃１１〜＃１４、＃１１−１  ジョブ
ａ  動作空き時間
Ａ  ジョブの延伸を示す矢印
Ｔ０、Ｔ０−１  リソース予約テーブル
ｔ１０、ｔ１１、ｔ１２  時刻
ｐ１  プロセッサ
ｆ１  最大周波数
ｆ１ａ  低下後の動作周波数
【図１】
2014219788.tif 000003
【図２】
2014219788.tif 000004
【図３】
2014219788.tif 000005
【図４】
2014219788.tif 000006
【図５】
2014219788.tif 000007
【図６】
2014219788.tif 000008
【図７】
2014219788.tif 000009
【図８】
2014219788.tif 000010
【図９】
2014219788.tif 000011
【図１０】
2014219788.tif 000012
【図１１】
2014219788.tif 000013
【図１２】
2014219788.tif 000014
【図１３】
2014219788.tif 000015
【図１４】
2014219788.tif 000016
【図１５】
2014219788.tif 000017
【図１６】
2014219788.tif 000018
【図１７】
2014219788.tif 000019
【図１８】
2014219788.tif 000020
【図１９】
2014219788.tif 000021
【図２０】
2014219788.tif 000022
【図２１】
2014219788.tif 000023
【図２２】
2014219788.tif 000024
【図２３】
2014219788.tif 000025
【図２４】
2014219788.tif 000026
【図２５】
2014219788.tif 000027
【図２６】
2014219788.tif 000028
【図２７】
2014219788.tif 000029
【図２８】
2014219788.tif 000030
【図２９】
2014219788.tif 000031
【図３０】
2014219788.tif 000032
【図３１】
2014219788.tif 000033
【図３２】
2014219788.tif 000034
【図３３】
2014219788.tif 000035
【図３４】
2014219788.tif 000036
【図３５】
2014219788.tif 000037