(57)【要約】      （修正有）【課題】計算機における電力消費を抑制することである。【解決手段】制御装置は、複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれる制御装置であって、一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定する判定部と、待機ジョブがないと判定した場合に、一以上の計算機を省電力モードに切り替える切替部とを有する。【選択図】図８
2019087113.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれる制御装置であって、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定する判定部と、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える切替部と
を有する制御装置。
【請求項２】
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれるコンピュータにより実行される制御方法であって、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定し、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える
処理を含む制御方法。
【請求項３】
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれるコンピュータに、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定し、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおける省電力の技術に関する。
【背景技術】
【０００２】
例えば高い処理性能が要求されるジョブを実行対象とする計算機システムでは、ジョブが計算機を専有する期間を予め設定して、当該計算機を動作させることがある。このようにすれば、受け付けたジョブが多い場合でも、各ジョブの処理を想定期間内に完了させ易くなる。
【０００３】
但し、常に計算機がジョブを実行しているとは限らない。従って、ジョブを実行していない計算機における電力消費が無駄になることがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１８６２５５号公報
【特許文献２】特開２０１６−０８１１１９号公報
【特許文献３】特開２００３−２５６０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、一側面では、計算機における電力消費を抑制することである。
【課題を解決するための手段】
【０００６】
一態様に係る制御装置は、複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれる制御装置であって、（Ａ）一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定する判定部と、（Ｂ）待機ジョブがないと判定した場合に、一以上の計算機を省電力モードに切り替える切替部とを有する。
【発明の効果】
【０００７】
一側面としては、計算機における電力消費を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、計算機システムの構成例を示す図である。
【図２】図２は、スケジュールの例を示す図である。
【図３】図３は、スケジュールの例を示す図である。
【図４】図４は、ジョブの例を示す図である。
【図５】図５は、ジョブの例を示す図である。
【図６】図６は、ジョブの例を示す図である。
【図７】図７は、制御装置のモジュール構成例を示す図である。
【図８】図８は、メイン処理フローを示す図である。
【図９】図９は、要求ジョブテーブルの例を示す図である。
【図１０】図１０は、スケジュールテーブルの例を示す図である。
【図１１】図１１は、検出処理フローを示す図である。
【図１２】図１２は、判定処理フローを示す図である。
【図１３】図１３は、切り替え処理フローを示す図である。
【図１４】図１４は、実施の形態２におけるメイン処理フローを示す図である。
【図１５】図１５は、実施の形態３における計算機システムの構成例を示す図である。
【図１６】図１６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
［実施の形態１］
図１に、計算機システムの構成例を示す。計算機システムは、複数の計算ノード１０１ａ乃至ｃ等と、ログイン装置１０３と、制御装置１０７とを含んでいる。複数の計算ノード１０１ａ乃至ｃ等と、ログイン装置１０３と、制御装置１０７とは、夫々ネットワークに接続されている。計算機システムは、例えばＨＰＣ（High Performance Computing）のシステムである。
【００１０】
ユーザ端末１０５を使用するユーザは、ログイン装置１０３へログインして、計算機システムに対してアプリケーションの実行を要求する。このアプリケーションを、以下ではジョブという。ユーザは、当該要求において、ジョブが使用する計算ノード１０１の数及びジョブの実行時間を指定する。複数の計算ノード１０１が使用される場合には、各計算ノード１０１が並行処理を行う。
【００１１】
ログイン装置１０３は、要求された各ジョブにおける計算ノード数及び実行時間を制御装置１０７へ通知する。この例で、各ジョブにおける計算ノード数及び実行時間は、後述する要求ジョブテーブルの形式で伝えられるものとする。
【００１２】
制御装置１０７は、ジョブのスケジューリングを行って、計算ノード１０１にジョブを割り当てる。ジョブが計算ノード１０１を専有する期間（以下、専有期間）が設定される。
【００１３】
図２に、スケジュールの例を示す。この例では、計算ノード１０１ａ乃至ｆに関するスケジュールを示す。右向きに時間経過を示している。専有期間２０１ａ乃至ｆは、夫々計算ノード１０１ａ乃至ｆにおいてジョブに専有される期間である。専有期間２０１において、計算ノード１０１は割り当てられたジョブを実行する。但し、この例では、専有期間２０１の終了時点に至る前に、ジョブの実行が終わることがあるものとする。
【００１４】
専有期間２０１ａにおける計算ノード１０１ａと、専有期間２０１ｂにおける計算ノード１０１ｂとは、同じジョブに専有される。当該ジョブにおける計算ノード数は２であり、当該ジョブにおける実行時間、つまり当該ジョブによる専有期間２０１の長さは、Ｌ０１である。また、当該ジョブによる専有期間２０１の開始時刻は、Ｓ０１であり、当該ジョブによる専有期間２０１の終了時刻は、Ｅ０１である。
【００１５】
また、専有期間２０１ｃにおける計算ノード１０１ｃと、専有期間２０１ｄにおける計算ノード１０１ｄと、専有期間２０１ｅにおける計算ノード１０１ｅとは、同じジョブに専有される。当該ジョブにおける計算ノード数は３であり、当該ジョブにおける実行時間、つまり当該ジョブによる専有期間２０１の長さは、Ｌ０２である。また、当該ジョブによる専有期間２０１の開始時刻は、Ｓ０２であり、当該ジョブによる専有期間２０１の終了時刻は、Ｅ０２である。
【００１６】
また、専有期間２０１ｆにおける計算ノード１０１ｆは、単独でジョブに専有される。当該ジョブにおける計算ノード数は１であり、当該ジョブにおける実行時間、つまり当該ジョブによる専有期間２０１の長さは、Ｌ０３である。また、当該ジョブによる専有期間２０１の開始時刻は、Ｓ０３であり、当該ジョブによる専有期間２０１の終了時刻は、Ｅ０３である。
【００１７】
計算ノード１０１ａ及び計算ノード１０１ｂは、時刻Ｓ０１においてジョブの実行を開始している。そして、時刻ｔ１において、当該ジョブの実行は継続している。尚、左端の矢印は、プログラムの実行開始を示し、右端の丸は、プログラムの実行継続を示している。
【００１８】
計算ノード１０１ｃ、計算ノード１０１ｄ及び計算ノード１０１ｅは、時刻Ｓ０２においてジョブの実行を開始している。そして、時刻ｔ１において、当該ジョブの実行は継続している。
【００１９】
計算ノード１０１ｆは、時刻Ｓ０３においてジョブの実行を開始している。そして、時刻ｔ１において、当該ジョブの実行は継続している。
【００２０】
図３を用いて、時刻ｔ２における状況について説明する。計算ノード１０１ｃ、計算ノード１０１ｄ、計算ノード１０１ｅ及び計算ノード１０１ｆは、時刻ｔ２において、いずれもジョブの実行を継続している。一方、計算ノード１０１ａ及び計算ノード１０１ｂは、時刻ｔ２において、ジョブの実行を終了している。尚、右端の矢印は、プログラムの実行終了を示している。
【００２１】
計算ノード１０１ａ及び計算ノード１０１ｂを専有しているジョブは、専有期間２０１の終了時刻Ｅ０１よりも早い段階で終了している。つまり、当該ジョブは、専有期間２０１の途中で終了している。早期終了による残余時間Ｔ０１は、専有期間２０１の終了時刻Ｅ０１からジョブの終了時刻ｔ２を引いた差である。
【００２２】
このように、ジョブが早期終了した場合、再スケジューリングが行われ、待機中のジョブが残余期間に割り当てられることがある。
【００２３】
図３に示した残余時間Ｔ０１に割り当てられるジョブについて、図４を用いて説明する。図４に示したジョブ：ＪＸが要する計算ノード数は２であり、当該ジョブにおける実行時間は、ＬＸである。実行時間ＬＸは、残余時間Ｔ０１よりも短い。
【００２４】
このように、待機中のジョブにおける計算ノード数が、早期終了のジョブにおける計算のノード数以下であり、更に待機中のジョブにおける実行時間が、残余時間以下である場合には、当該待機中のジョブが、早期終了のジョブの残余時間に割り当てられる可能性がある。
【００２５】
続いて、図３に示した残余時間Ｔ０１に割り当てられないジョブについて、図５を用いて説明する。図５に示したジョブ：ＪＹにおける実行時間は、ＬＹである。実行時間ＬＹは、残余時間Ｔ０１よりも短い。但し、当該ジョブが要する計算ノード数は３であり、図３に示した早期終了のジョブにおける計算のノード数を上回っている。
【００２６】
このように、待機中のジョブにおける計算ノード数が、早期終了のジョブにおける計算のノード数を上回る場合には、当該待機中のジョブが、早期終了のジョブの残余時間に割り当てられる可能性はない。
【００２７】
図６は、図３に示した残余時間Ｔ０１に割り当てられないジョブの別の例を示す。図６に示したジョブ：ＪＺが要する計算ノード数は２であり、図３に示した早期終了のジョブにおける計算のノード数と同じである。但し、当該ジョブにおける実行時間ＬＺは、残余時間Ｔ０１よりも長い。
【００２８】
このように、待機中のジョブにおける実行時間が、早期終了のジョブの残余時間を上回る場合には、当該待機中のジョブが、早期終了のジョブの残余時間に割り当てられる可能性はない。
【００２９】
いずれかの待機中のジョブが早期終了のジョブの残余時間に割り当てられる可能性がない場合、残余時間において計算ノード１０１はジョブを実行しないので、その間の電力消費は無駄になる。
【００３０】
本実施の形態では、待機中のジョブが複数ある場合に、いずれの待機中のジョブに関しても、早期終了のジョブの残余時間に割り当てられる可能性がない場合には、早期終了のジョブを実行していた計算ノード１０１を省電力モードに移行させる。一方、少なくとも１つについて早期終了のジョブの残余時間に割り当てられる可能性があれば、早期終了したジョブを実行していた計算ノード１０１を省電力モードに移行させない。以上で、本実施の形態の概要についての説明を終える。
【００３１】
以下、制御装置１０７の動作について説明する。図７に、制御装置１０７のモジュール構成例を示す。制御装置１０７は、送信部７０１、受信部７０３、ジョブ管理部７０５及び制御部７０７を有する。
【００３２】
送信部７０１は、各種データを送信する。受信部７０３は、各種データを受信する。ジョブ管理部７０５は、ジョブの管理を行う。具体的には、ジョブ管理部７０５は、ジョブのスケジューリングにおいて、新たなジョブをいずれかの計算ノード１０１に割り当てて、当該計算ノード１０１の専有期間２０１を設定する。また、ジョブ管理部７０５は、スケジュールに従って計算ノード１０１にジョブを実行させる。制御部７０７は、ユーザから要求されたジョブの情報をジョブ管理部７０５へ引き渡すとともに、計算ノード１０１におけるモードの切り替えを制御する。
【００３３】
制御部７０７は、受付部７１１、依頼部７１３、取得部７１５、検出部７１７、判定部７１９、切替部７２１、要求ジョブ記憶部７３１及びスケジュール記憶部７３３を有する。
【００３４】
受付部７１１は、要求ジョブテーブルを受け付ける。要求ジョブテーブルについては、図９を用いて後述する。依頼部７１３は、ジョブ管理部７０５へ要求ジョブテーブルを渡して、スケジューリングを依頼する。取得部７１５は、ジョブ管理部７０５からデータ（例えば、スケジュールテーブル）を取得する。スケジュールテーブルについては、図１０を用いて後述する。
【００３５】
検出部７１７は、検出処理において、早期終了したジョブを検出する。判定部７１９は、判定処理において、早期終了したジョブの残余期間に待機中のジョブが割り当てられる可能性があるか否かを判定する。切替部７２１は、切り替え処理において、計算ノード１０１を省電力モードへ変更させる。
【００３６】
要求ジョブ記憶部７３１は、要求ジョブテーブルを記憶する。スケジュール記憶部７３３は、スケジュールテーブルを記憶する。
【００３７】
上述した送信部７０１、受信部７０３、ジョブ管理部７０５、制御部７０７、受付部７１１、依頼部７１３、取得部７１５、検出部７１７、判定部７１９及び切替部７２１は、ハードウエア資源（例えば、図１６）と、以下で述べる処理をＣＰＵ（Central Processing Unit）２５０３に実行させるプログラムとを用いて実現される。
【００３８】
上述した要求ジョブ記憶部７３１及びスケジュール記憶部７３３は、ハードウエア資源（例えば、図１６）を用いて実現される。
【００３９】
続いて、制御部７０７における処理について説明する。図８に、メイン処理フローを示す。受付部７１１は、受信部７０３がログイン装置１０３から要求ジョブテーブルを受信したか否かを判定する（Ｓ８０１）。
【００４０】
受信部７０３がログイン装置１０３から要求ジョブテーブルを受信したと判定した場合には、受付部７１１は、要求ジョブテーブルを受け付けて要求ジョブ記憶部７３１に記憶する。
【００４１】
図９に、要求ジョブテーブルの例を示す。この例における要求ジョブテーブルは、要求されたジョブに対応するレコードを有している。要求ジョブテーブルのレコードは、ジョブＩＤが格納されるフィールドと、計算ノード数が格納されるフィールドと、実行時間が格納されるフィールドと、プログラム名のフィールドとを有している。
【００４２】
ジョブＩＤは、要求されたジョブを識別する。計算ノード数は、要求されたジョブが専有する計算ノード１０１の数である。実行時間は、当該ジョブを実行するために確保される時間であって、当該ジョブが計算ノード１０１を専有する期間の長さに相当する。プログラム名は、当該ジョブとして実行されるプログラムの名前である。当該ジョブとして実行されるプログラムが複数ある場合には、プログラム名を複数格納するようにしてもよい。
【００４３】
図８の説明に戻る。依頼部７１３は、ジョブ管理部７０５へ要求ジョブテーブルを渡して、スケジューリングを依頼する（Ｓ８０３）。ジョブ管理部７０５は、要求ジョブテーブルに含まれるジョブをスケジュールに加えるようにスケジューリングを行う。上述した通り、ジョブ管理部７０５は、スケジュールに従って計算ノード１０１にジョブを実行させる制御も行う。
【００４４】
一方、Ｓ８０１において、受信部７０３が要求ジョブテーブルを受信していないと判定した場合には、そのままＳ８０５の処理に移る。
【００４５】
取得部７１５は、ジョブ管理部７０５からスケジュールテーブルを取得する（Ｓ８０５）。
【００４６】
図１０に、スケジュールテーブルの例を示す。この例におけるスケジュールテーブルは、計算ノード１０１に対応するレコードを有している。スケジュールテーブルのレコードは、計算ノードＩＤが格納されるフィールドと、現在の状態が格納されるフィールドと、ジョブＩＤが格納されるフィールドと、プロセス名が格納されるフィールドと、専有期間２０１の終了時刻が格納されるフィールドとを有している。尚、この例では、現時点において省電力モードである計算ノード１０１に関するレコードは設けられないものとする。
【００４７】
計算ノードＩＤは、計算ノード１０１を識別する。現在の状態は、当該計算ノード１０１が専有されている状態（つまり、「専有中」）或いは計算ノード１０１が専有されていない状態（つまり、「待機中」）であるかを区別する。ジョブＩＤは、現在の状態が専有中である場合に、当該計算ノード１０１が専有しているジョブを識別する。プロセス名は、当該計算ノード１０１で実行しているジョブのプロセスの名前である。専有期間２０１の終了時刻は、当該計算ノード１０１が専有される期間の終了時点を特定する。
【００４８】
図８の説明に戻る。検出部７１７は、検出処理を実行する（Ｓ８０７）。検出部７１７は、検出処理において、早期終了したジョブを検出する。
【００４９】
図１１に、検出処理フローを示す。検出部７１７は、計算ノード１０１を専有しているジョブを１つ特定する（Ｓ１１０１）。具体的には、検出部７１７は、スケジュールテーブルにおいて、現在の状態が専有中であるレコードに設定されているジョブのうち、１つのジョブを特定する。
【００５０】
検出部７１７は、当該ジョブが専有している計算ノード１０１を１つ特定する（Ｓ１１０３）。具体的には、検出部７１７は、スケジュールテーブルにおいて、当該ジョブのＩＤが設定されているレコードを１つ特定する。
【００５１】
検出部７１７は、当該計算ノード１０１において当該ジョブのプロセスが動作しているか否かを判定する（Ｓ１１０５）。具体的には、検出部７１７は、スケジュールテーブルにおいて当該計算ノード１０１に対応するプロセス名を特定する。そして、検出部７１７は、当該計算ノード１０１のオペレーティングシステムから、当該計算ノード１０１で動作しているプロセスの一覧を取得して、当該一覧に当該プロセス名が含まれるか否かを判定する。当該一覧に当該プロセス名が含まれない場合には、当該ジョブのプロセスが動作していないと判定する。一方、当該一覧に当該プロセス名が含まれる場合には、当該ジョブのプロセスが動作していると判定する。
【００５２】
当該ジョブのプロセスが動作している場合には、未だ当該ジョブは終了していない。この場合には、Ｓ１１１５の処理に移る。
【００５３】
一方、当該ジョブのプロセスが動作していない場合には、検出部７１７は、Ｓ１１０３において未特定の計算ノード１０１があるか否かを判定する（Ｓ１１０７）。未特定の計算ノード１０１があると判定した場合には、Ｓ１１０３に示した処理に戻って、上述した処理を繰り返す。
【００５４】
一方、Ｓ１１０３において未特定の計算ノード１０１がないと判定した場合は、当該ジョブは既に終了していることを意味する。この場合には、検出部７１７は、残余時間を算出する（Ｓ１１０９）。具体的には、検出部７１７は、専有期間２０１の終了時刻から現在時刻を引くことによって、残余時間を求める。
【００５５】
モードの移行に要する電力損失を考慮すると、残余時間が短い場合に省電力モードに移行させる意義は小さい。従って、この例では、残余時間が基準値以下の場合には、早期に終了したものと判定しない。そのため、検出部７１７は、残余時間が基準値を超えているか否かを判定する（Ｓ１１１１）。
【００５６】
残余時間が基準値を超えていない場合には、そのまま、Ｓ１１１５の処理に移る。一方、残余時間が基準値を超えている場合には、検出部７１７は、当該ジョブが早期に終了したと判定する（Ｓ１１１３）。
【００５７】
尚、残余時間が短い場合であっても省電力モードに移行させるようにしてもよい。その場合には、Ｓ１１０７において未特定の計算ノード１０１がないと判定した場合に、Ｓ１１０９及びＳ１１１１の処理を省いて、Ｓ１１１３の処理に移るようにする。
【００５８】
検出部７１７は、Ｓ１１０１において未特定のジョブがあるか否かを判定する（Ｓ１１１５）。未特定のジョブがあると判定した場合には、Ｓ１１０１に示した処理に戻って、上述した処理を繰り返す。一方、未特定のジョブがないと判定した場合には、検出処理を終え、呼び出し元のメイン処理に復帰する。
【００５９】
図８の説明に戻る。判定部７１９は、検出処理において早期終了のジョブを検出したか否かによって処理を分岐させる（Ｓ８０９）。早期終了のジョブを検出しなかった場合には、Ｓ８０１に示した処理に戻って、上述した処理を繰り返す。
【００６０】
一方、早期終了のジョブを検出した場合には、判定部７１９は、早期終了のジョブを１つ特定する（Ｓ８１１）。この例では、早期終了のジョブが複数検出される場合があると想定している。判定部７１９は、判定処理を実行する（Ｓ８１３）。判定部７１９は、判定処理において、早期終了したジョブの残余期間に待機中のジョブが割り当てられる可能性があるか否かを判定する。
【００６１】
図１２に、判定処理フローを示す。判定部７１９は、待機中のジョブを１つ特定する（Ｓ１２０１）。具体的には、判定部７１９は、要求ジョブテーブルに含まれるジョブＩＤのうち、スケジュールテーブルにおいて未だ専有中と対応付けられていないジョブＩＤを１つ特定する。または、取得部７１５が、ジョブ管理部７０５から待機中のジョブに関する情報（例えば、ジョブＩＤ、当該ジョブの計算ノード数及び実行時間）を取得するようにしてもよい。
【００６２】
判定部７１９は、待機中のジョブにおける計算ノード数が、図８のＳ８１１で特定した早期終了のジョブにおける計算ノード数以下であるか否かを判定する（Ｓ１２０３）。
【００６３】
待機中のジョブにおける計算ノード数が、早期終了のジョブにおける計算ノード数以下であると判定した場合には、判定部７１９は、更に待機中のジョブにおける実行時間が、残余時間以下であるか否かを判定する（Ｓ１２０５）。
【００６４】
待機中のジョブにおける実行時間が、残余時間以下であると判定した場合には、判定部７１９は、早期終了したジョブの残余期間に待機中のジョブが割り当てられる可能性があると判定する（Ｓ１２０７）。
【００６５】
一方、Ｓ１２０３において、待機中のジョブにおける計算ノード数が、早期終了のジョブにおける計算ノード数を上回ると判定した場合には、Ｓ１２０９の処理に移る。更に、Ｓ１２０５において、待機中のジョブにおける実行時間が、残余時間を上回ると判定した場合も、Ｓ１２０９の処理に移る。そして、判定部７１９は、Ｓ１２０１において未特定のジョブがあるか否かを判定する（Ｓ１２０９）。
【００６６】
未特定のジョブがあると判定した場合には、Ｓ１２０１に示した処理に戻って、上述した処理を繰り返す。一方、未特定のジョブがないと判定した場合には、判定部７１９は、早期終了したジョブの残余時間に待機中のジョブが割り当てられる可能性がないと判定する（Ｓ１２１１）。そして、判定処理を終え、呼び出し元のメイン処理に復帰する。
【００６７】
図８の説明に戻る。切替部７２１は、早期終了したジョブの残余時間に待機中のジョブが割り当てられる可能性があるか否かによって処理を分岐させる（Ｓ８１５）。早期終了したジョブの残余時間に待機中のジョブが割り当てられる可能性がある場合には、そのまま、Ｓ８１９の処理に移る。
【００６８】
一方、早期終了したジョブの残余時間に待機中のジョブが割り当てられる可能性がない場合には、切替部７２１は、切り替え処理を実行する（Ｓ８１７）。切替部７２１は、切り替え処理において、Ｓ８１１で特定した早期終了のジョブが専有している計算ノード１０１を省電力モードへ変更させる。
【００６９】
図１３に、切り替え処理フローを示す。切替部７２１は、スケジュールテーブルに基づいて、図８のＳ８１１で特定した早期終了のジョブが専有している計算ノード１０１を１つ特定する（Ｓ１３０１）。
【００７０】
切替部７２１は、当該計算ノード１０１に対して、省電力モードへの変更を指示する（Ｓ１３０３）。そして、切替部７２１は、Ｓ１３０１において未特定の計算ノード１０１があるか否かを判定する（Ｓ１３０５）。
【００７１】
未特定の計算ノード１０１があると判定した場合には、Ｓ１３０１に示した処理に戻って、上述した処理を繰り返す。一方、未特定の計算ノード１０１がないと判定した場合には、切り替え処理を終え、呼び出し元のメイン処理に復帰する。
【００７２】
図８の説明に戻る。判定部７１９は、Ｓ８１１において未特定の早期終了のジョブがあるか否かを判定する（Ｓ８１９）。未特定の早期終了のジョブがあると判定した場合には、Ｓ８１１に示した処理に戻って、上述した処理を繰り返す。
【００７３】
一方、未特定の早期終了のジョブがないと判定した場合には、Ｓ８０１に示した処理に戻って、上述した処理を繰り返す。
【００７４】
本実施の形態によれば、計算機における電力消費を抑制できる
【００７５】
［実施の形態２］
上述した実施の形態では、制御部７０７において、早期終了のジョブを検出する例について説明したが、制御部７０７は、ジョブ管理部７０５から早期終了のジョブに関する情報を取得するようにしてもよい。
【００７６】
図１４に、実施の形態２におけるメイン処理フローを示す。Ｓ８０１及びＳ８０３の処理については、図８の場合と同様である。
【００７７】
取得部７１５は、ジョブ管理部７０５から早期終了のジョブに関する情報を取得したか否かを判定する（Ｓ１４０１）。早期終了のジョブに関する情報は、例えば早期終了したジョブのＩＤである。ジョブ管理部７０５は、例えば実施の形態１に示した検出処理に相当する処理を行い、早期終了のジョブを検出した場合に、早期終了のジョブに関する情報を制御部７０７へ通知する。
【００７８】
早期終了のジョブに関する情報を取得していない場合には、Ｓ８０１に示した処理に戻って、上述した処理を繰り返す。一方、早期終了のジョブに関する情報を取得した場合には、Ｓ８１１の処理に移る。Ｓ８１１乃至Ｓ８１９の処理については、図８の場合と同様である。
【００７９】
本実施の形態によれば、実施の形態１と同様に、計算機における電力消費を抑制できる。尚、制御部７０７における処理を軽減できる面がある。
【００８０】
［実施の形態３］
上述した実施の形態では、制御部７０７とジョブ管理部７０５とを制御装置１０７に設ける例について説明したが、ジョブ管理部７０５を制御装置１０７以外の装置に設けるようにしてもよい。
【００８１】
図１５に、実施の形態３における計算機システムの構成例を示す。ネットワークに、ジョブ管理装置１５０１が設けられている。ジョブ管理装置１５０１は、ジョブ管理部７０５を含んでいる。
【００８２】
制御部７０７は、ネットワークを介してジョブ管理部７０５とのデータのやり取りを行う。制御部７０７がジョブ管理部７０５からデータを受ける場合には、ネットワークを介してジョブ管理装置１５０１から当該データを受信する。また、制御部７０７がジョブ管理部７０５へデータを渡す場合には、ネットワークを介してジョブ管理装置１５０１へ当該データを送信する。
【００８３】
本実施の形態によれば、実施の形態１と同様に、計算機における電力消費を抑制できる。
【００８４】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【００８５】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【００８６】
なお、上で述べた制御装置１０７は、コンピュータ装置であって、図１６に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８８】
本実施の形態に係る制御装置は、複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれる制御装置であって、（Ａ）一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定する判定部と、（Ｂ）待機ジョブがないと判定した場合に、一以上の計算機を省電力モードに切り替える切替部とを有する。
【００８９】
このようにすれば、計算機における電力消費を抑制できる。
【００９０】
また、上記制御装置は、更に、一以上の計算機を専有する上記期間の途中で終了した上記ジョブを検出する検出部を有するようにしてもよい。
【００９１】
このようにすれば、ジョブのスケジューリングを行うジョブ管理部における処理負荷を軽減できる。
【００９２】
また、上記制御装置は、更に、一以上の計算機を専有する上記期間の途中で終了した上記ジョブの情報を、ジョブのスケジューリングを行うジョブ管理部から取得する取得部を有するようにしてもよい。
【００９３】
このようにすれば、制御装置における処理負荷を軽減できる。
【００９４】
なお、上で述べた制御装置の処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【００９５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９６】
（付記１）
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれる制御装置であって、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定する判定部と、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える切替部と
を有する制御装置。
【００９７】
（付記２）
更に、
前記一以上の計算機を専有する前記期間の途中で終了した前記ジョブを検出する検出部
を有する付記１記載の制御装置。
【００９８】
（付記３）
更に、
前記一以上の計算機を専有する前記期間の途中で終了した前記ジョブの情報を、ジョブのスケジューリングを行うジョブ管理部から取得する取得部
を有する付記１記載の制御装置。
【００９９】
（付記４）
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれるコンピュータにより実行される制御方法であって、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定し、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える
処理を含む制御方法。
【０１００】
（付記５）
複数の計算機の各々にジョブの専有期間を割り当てて動作させるシステムに含まれるコンピュータに、
一以上の計算機を専有する第１期間の途中で終了したジョブと同数以下の計算機を、当該第１期間の残余時間以下の長さを有する第２期間において専有しようとする待機ジョブがあるか否かを判定し、
前記待機ジョブがないと判定した場合に、前記一以上の計算機を省電力モードに切り替える
処理を実行させる制御プログラム。
【符号の説明】
【０１０１】
１０１  計算ノード
１０３  ログイン装置
１０５  ユーザ端末
１０７  制御装置
２０１  専有期間
７０１  送信部
７０３  受信部
７０５  ジョブ管理部
７０７  制御部
７１１  受付部
７１３  依頼部
７１５  取得部
７１７  検出部
７１９  判定部
７２１  切替部
７３１  要求ジョブ記憶部
７３３  スケジュール記憶部
【図１】
2019087113.tif 000003
【図２】
2019087113.tif 000004
【図３】
2019087113.tif 000005
【図４】
2019087113.tif 000006
【図５】
2019087113.tif 000007
【図６】
2019087113.tif 000008
【図７】
2019087113.tif 000009
【図８】
2019087113.tif 000010
【図９】
2019087113.tif 000011
【図１０】
2019087113.tif 000012
【図１１】
2019087113.tif 000013
【図１２】
2019087113.tif 000014
【図１３】
2019087113.tif 000015
【図１４】
2019087113.tif 000016
【図１５】
2019087113.tif 000017
【図１６】
2019087113.tif 000018