(57)【要約】【課題】ホスト計算機を停止状態へ移行させることで計算機システム全体の消費電力を抑制しながらも、停止状態となったホスト計算機が利用可能になるまでの待ち時間を抑制して計算機システム全体の性能向上を図る。【解決手段】少なくともひとつのホスト計算機を含む計算機システムにおいて前記ホスト計算機で実行するジョブとホスト計算機の電源を管理する方法であって、前記ジョブを受付ける手順と、前記受け付けたジョブを保持する手順と、前記保持されたジョブの実行予定をスケジュールする手順と、前記ジョブの実行予定に基づいて、前記ホスト計算機の電源制御を実行する時期を決定する手順と、前記決定した電源制御を実行する時期となったときに、前記電源制御を実行するホスト計算機を決定する手順と、前記決定したホスト計算機の電源を制御する手順と、前記スケジュールされたジョブを実行する手順と、を含む。【選択図】図２
2008225639.tif 000002
【特許請求の範囲】
【請求項１】
少なくともひとつのホスト計算機を含む計算機システムにおいて前記ホスト計算機で実行するジョブとホスト計算機の電源を管理する方法であって、
前記ジョブを受付ける手順と、
前記受け付けたジョブを保持する手順と、
前記保持されたジョブの実行予定をスケジュールする手順と、
前記ジョブの実行予定に基づいて、前記ホスト計算機の電源制御を実行する時期を決定する手順と、
前記決定した電源制御を実行する時期となったときに、前記電源制御を実行するホスト計算機を決定する手順と、
前記決定したホスト計算機の電源を制御する手順と、
前記スケジュールされたジョブを実行する手順と、
を含むことを特徴とする低消費電力ジョブ管理方法。
【請求項２】
前記電源制御を実行するホスト計算機を決定する手順は、
前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機に加えて起動するホスト計算機を決定する手順と、
前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機のうち、停止状態へ移行させるホスト計算機を決定する手順と、
を含むことを特徴とする請求項１に記載の低消費電力ジョブ管理方法。
【請求項３】
前記電源制御を実行する時期を決定する手順は、
前記実行予定のジョブの直前に実行しているジョブの終了予定時期と、前記ホスト計算機の起動時間に基づいて電源制御を実行する時期を決定することを特徴とする請求項１に記載の低消費電力ジョブ管理方法。
【請求項４】
前記計算機システムは、前記ホスト計算機に対して電源の起動または停止状態への移行を指令する電源管理装置を有し、
前記決定したホスト計算機の電源を制御する手順は、前記電源管理装置に対して指令することを特徴とする請求項１に記載の低消費電力ジョブ管理方法。
【請求項５】
前記ジョブは、当該ジョブの実行に必要なホスト計算機の数を含む実行情報を有し、
前記起動するホスト計算機を決定する手順は、
前記実行情報から実行予定のジョブが必要とするホスト計算機の数を読み込む手順と、
前記直前に実行しているジョブが使用しているホスト計算機の数を取得する手順と、
前記実行予定のジョブが必要とするホスト計算機の数と、前記直前に実行しているジョブが使用しているホスト計算機の数とを比較して前記追加で起動するホスト計算機の数を決定する手順と、含み、
前記停止状態へ移行させるホスト計算機を決定する手順は、
前記実行予定のジョブが必要とするホスト計算機の数と、前記直前に実行しているジョブが使用しているホスト計算機の数とを比較して前記停止状態へ移行させるホスト計算機の数を決定する手順を含むことを特徴とする請求項２に記載の低消費電力ジョブ管理方法。
【請求項６】
前記ジョブは、当該ジョブの実行に必要なホスト計算機の演算性能を含む実行情報を有し、
前記決定したホスト計算機の電源を制御する手順は、
前記実行情報から前記演算性能を読み込んで、前記起動するホスト計算機に対して前記演算性能を設定する手順を含むことを特徴とする請求項２に記載の低消費電力ジョブ管理方法。
【請求項７】
前記ジョブは、当該ジョブの実行が完了する終了予定時間を含む実行情報を有し、
前記電源制御を実行する時期を決定する手順は、
前記実行情報から前記終了予定時間を読み込んで、前記終了予定時間に基づいて前記電源制御を実行する時期を決定することを特徴とする請求項１に記載の低消費電力ジョブ管理方法。
【請求項８】
前記ジョブは、当該ジョブで必要とする入出力装置または追加演算装置を含む実行情報を有し、
前記決定したホスト計算機の電源を制御する手順は、
前記実行情報から前記必要とする入出力装置または追加演算装置を読み込んで、前記起動するホスト計算機に対して前記入出力装置または追加演算装置の起動を設定する手順を含むことを特徴とする請求項２に記載の低消費電力ジョブ管理方法。
【請求項９】
前記電源制御を実行するホスト計算機を決定する手順は、
前記計算機システムの全体の消費電力に基づいて、前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機に加えて起動するホスト計算機または、前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機のうち停止状態へ移行させるホスト計算機を決定することを特徴とする請求項１に記載の低消費電力ジョブ管理方法。
【請求項１０】
前記電源制御を実行するホスト計算機を決定する手順は、
前記停止状態へ移行させるホスト計算機が停止状態となる時間が所定時間未満の場合には、前記停止状態への移行を禁止することを特徴とする請求項９に記載の低消費電力ジョブ管理方法。
【請求項１１】
演算処理を行うプロセッサと、
情報を記憶するメモリと、
前記プロセッサとメモリへ電力を供給する電源と、
前記電源を制御する電源制御部と、を備えたホスト計算機と、
前記ホスト計算機を複数接続したネットワークと、
前記ネットワークに接続されて、前記複数のホスト計算機へジョブを割り当てる管理計算機と、を備えた計算機システムにおいて、
前記管理計算機は、
前記ジョブを受付けるジョブ受付部と、
前記受け付けたジョブを保持するジョブキューと、
前記ジョブキューに保持されたジョブの実行予定をスケジュールするジョブスケジュール部と、
前記ホスト計算機の電源制御部に対して電力供給状態を指令するホスト電源制御部と、を有し、
前記ジョブスケジュール部は、
前記ジョブの実行予定に基づいて、前記ホスト電源制御部を機能させる時期を決定する電源スケジュール部と、
前記スケジュールされたジョブを前記ホスト計算機に割り当てて実行させるジョブ実行部と、を含み、
前記ホスト電源制御部は、
前記決定した電源制御部を機能させる時期となったときに、前記電力供給状態を指令するホスト計算機を決定する制御対象決定部と、
前記決定したホスト計算機に対して電力供給状態を指令する電源制御実行部と、を含むことを特徴とする計算機システム。
【請求項１２】
前記制御対象決定部は、
前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機に加えて起動するホスト計算機または、前記実行予定のジョブの直前に実行しているジョブが使用しているホスト計算機のうち停止状態へ移行させるホスト計算機を決定し、
前記電源制御実行部は、
前記起動するホスト計算機に対して起動を指令し、前記停止状態へ移行させるホスト計算機に対して停止状態を指令することを特徴とする請求項１１に記載の計算機システム。
【請求項１３】
前記電源スケジュール部は、
前記実行予定のジョブの直前に実行しているジョブの終了予定時期と、前記ホスト計算機の起動時間に基づいて電源制御部を機能させる時期を決定することを特徴とする請求項１１に記載の計算機システム。
【請求項１４】
前記計算機システムは、前記ホスト計算機に対して電源の起動または停止状態への移行を指令する電源管理装置を有し、
前記電源制御実行部は、
前記電源管理装置に対して制御対象のホスト計算機の電力供給状態を指令することを特徴とする請求項１１に記載の計算機システム。
【請求項１５】
前記ジョブは、当該ジョブの実行に必要なホスト計算機の数を含む実行情報を有し、
前記制御対象決定部は、
前記実行情報から読み込んだ実行予定のジョブが必要とするホスト計算機の数と、前記直前に実行しているジョブが使用しているホスト計算機の数と、を比較して前記追加して起動するホスト計算機の数、または停止状態へ移行させるホスト計算機の数を決定することを特徴とする請求項１２に記載の計算機システム。
【請求項１６】
前記ジョブは、当該ジョブの実行に必要なホスト計算機の演算性能を含む実行情報を有し、
前記制御対象決定部は、
前記実行情報から前記演算性能を読み込んで、前記起動するホスト計算機に対して前記演算性能を設定することを特徴とする請求項１２に記載の計算機システム。
【請求項１７】
前記ジョブは、当該ジョブの実行が完了する終了予定時間を含む実行情報を有し、
前記電源スケジュール部は、
前記実行情報から前記終了予定時間を読み込んで、前記終了予定時間に基づいて前記電源制御を実行する時期を決定することを特徴とする請求項１１に記載の計算機システム。
【請求項１８】
前記ホスト計算機は、情報を格納する入出力装置と、特定の演算処理を実行する追加演算装置をさらに含み、
前記ジョブは、当該ジョブで必要とする入出力装置または追加演算装置を含む実行情報を有し、
前記電源制御実行部は、
前記実行情報から前記必要とする入出力装置または追加演算装置を読み込んで、前記起動するホスト計算機に対して前記入出力装置または追加演算装置の起動を指令することを特徴とする請求項１２に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を備えた計算機システムの電力を管理する方法に関し、特に、スーパーコンピュータなど多数の計算機を備えた計算機システムにおける電力の管理方法に関する。
【背景技術】
【０００２】
プロセッサを含むノード（計算機）を数百台から数千台備え、これらのノードを高速ネットワークで接続してひとつの計算機システムを構築する技術が知られており、クラスタ型計算機、超並列型計算機あるいはスーパーコンピュータとして実現されている。
【０００３】
上記のようにノード数が数百ないし数千となる計算機システム（並列計算機、クラスタ型計算機）では、ひとつのノードの消費電力が数百Ｗ／ｈとしても計算機システム全体の単位時間当たりの消費電力は膨大なものになり、大規模計算機を維持するためには多額の電力料金が必要になる。
【０００４】
一方、上記大規模計算機は一年３６５日２４時間の間、すべてのノードにおいてジョブを実行している訳ではない。例えば、日中は１００％の使用率であっても、夜間の使用率は３０％程度まで低下する場合があり、あるいは、夏休み期間中では日中の使用率がさらに低下する場合がある。また、使用率の高い計算機システムであっても常時１００％の使用率となるものは希であり、一般的な計算機システムにおける平均的な使用率は７０％〜９０％となる。
【０００５】
そして、ジョブを実行していない計算機（ノード）では、プロセッサなどがアイドル状態になるので、自ノードのプロセッサからアイドル状態を検出したときに、所定のコマンドを発行してサスペンド状態（休止状態）へ移行することで無駄な電力消費を抑制するクラスタ型計算機が知られている（例えば、特許文献１）。
【特許文献１】特開２００３−１６２５１５号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例では一旦、サスペンド状態などを含む停止状態へ移行させたノードを再度利用する際には、ノードの各部へ通電してからＯＳを起動し、ＯＳの起動が完了した後に、利用が可能となる。このため、低消費電力モードへ移行させたノードを再度利用するまでには、待ち時間が必要になる。
【０００７】
一方、スーパーコンピュータなどの並列計算機では、複数のノードにジョブを割り当てて実行させており、あるジョブが完了すると次のジョブを複数のノードへ割り当てている。このような並列計算機において、上記従来例を適用した場合、現在７０ノードでジョブを実行し、３０ノードを停止状態で待機させているとする。現在のジョブが完了した後に、次のジョブが１００ノードを使用する場合は、現在停止状態に移行していた３０ノードを起動して、これらのノードでジョブを受け付け可能になるまでには、停止状態のノードを起動する時間を要する。このため、前のジョブを完了した７０ノードは、停止状態にあった３０ノードの起動を待つことになり、３０ノードの起動が完了するまでは、７０ノードが消費する電力は無駄となり、さらに３０ノードが起動するまでの待ち時間だけ次のジョブが完了する時刻が遅延する、という問題があった。
【０００８】
そこで本発明は、上記問題点に鑑みてなされたもので、複数のノードを備えた計算機システムにおいて、ノードを停止状態へ移行させることで計算機システム全体の消費電力を抑制しながらも、停止状態となったノードが利用可能になるまでの待ち時間を抑制して計算機システム全体の性能向上を図ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、少なくともひとつのホスト計算機を含む計算機システムにおいて前記ホスト計算機で実行するジョブとホスト計算機の電源を管理する方法であって、前記ジョブを受付ける手順と、前記受け付けたジョブを保持する手順と、前記保持されたジョブの実行予定をスケジュールする手順と、前記ジョブの実行予定に基づいて、前記ホスト計算機の電源制御を実行する時期を決定する手順と、前記決定した電源制御を実行する時期となったときに、前記電源制御を実行するホスト計算機を決定する手順と、前記決定したホスト計算機の電源を制御する手順と、前記スケジュールされたジョブを実行する手順と、を含む。
【発明の効果】
【００１０】
したがって、本発明は、ホスト計算機を停止状態へ移行させることで計算機システム全体の消費電力を抑制しながらも、停止状態となったホスト計算機が利用可能になるまでの待ち時間を抑制して計算機システム全体の性能向上を図ることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１２】
図１は、本発明を適用する計算機システムの構成を示すブロック図である。図１の計算機システムは、ネットワーク２に複数の複数のホスト計算機を接続し、これらの複数のホスト計算機のうちのひとつをジョブ管理ホスト１として機能させ、また、ひとつのホスト計算機を電源制御を行う電源制御ホスト３として機能させ、他のホスト計算機でジョブを実行する並列計算機を構成した例を示す。
【００１３】
ジョブ管理ホスト計算機（管理計算機）１は、複数のホスト計算機４にジョブ（またはタスク）を割り当てて実行させるジョブスケジューラを実行し、電源制御ホスト３は、複数のホスト計算機４の電力供給状態を制御する。ジョブを実行する各ホスト計算機４は、図中ホストＡ〜ｎのｎ個で構成されて、それぞれノードを構成する。
【００１４】
ジョブ管理ホスト計算機１は、クライアント計算機７からジョブの実行要求を受け付けて、複数のホスト計算機４に前記ジョブを割り当てるジョブスケジューラを実行する。また、ジョブ管理ホスト計算機１のジョブスケジューラは、ジョブのスケジューリングに基づいて電源制御ホスト３へ各ホスト計算機４の電力供給状態を指令する。
【００１５】
まず、ジョブ管理ホスト計算機１は、演算処理を行うＣＰＵ（プロセッサ）１２と、データやプログラムを格納するメモリ１１と、プログラムやデータを格納するストレージ装置１４と、ネットワーク２との間でデータの送受信を行うネットワークアダプタ１３と、を備えて構成される。
【００１６】
ジョブを実行するホスト計算機４は、演算処理を行うＣＰＵ４１と、データやプログラムを格納するメモリ４２と、ＣＰＵ４１やメモリ４２等のハードウェアリソースに電力を供給する電源４３と、電源４３を制御する電源制御部４４と、入出力装置５や追加演算装置６を備えて構成される。入出力装置５は、例えば、ストレージ装置などを示し、電源４３から電力の供給を受ける。また、追加演算装置６は、ベクトル演算などの特定の演算処理を実行するアクセラレータなどを備え、電源４３から電力の供給を受ける。なお、入出力装置や追加演算装置は、図１の入出力装置５０や追加演算装置６０のように、ネットワーク２に接続されて各ホスト計算機４が共有するようにしても良い。
【００１７】
ここで、ホスト計算機４の電源制御部４４は、電源制御ホスト３からの指令に応じてハードウェアリソースへの電力の供給状態を変更することができる。例えば、ハードウェアリソースに対する電力の遮断、ハードウェアリソースに対する電力の一部供給、全てのハードウェアリソースへの電力供給などの電力供給状態を制御することができる。
【００１８】
なお、一部のハードウェアリソースへの電力供給状態は、例えば、ＣＰＵ４１を停止してメモリ４２の所定のランクにのみ電力を供給してホスト計算機４の停止状態とする場合や、メモリ４２へ電力を供給し、ＣＰＵ４１と、入出力装置５及び追加演算装置６への電力を遮断する停止状態の他に、ＣＰＵ４１とメモリ４２の所定のランクへ電力を供給してジョブを実行する稼動状態や、入出力装置５または追加演算装置６のうち、割り当てられたジョブで必要とする少なく一方とＣＰＵ４１及びメモリ４２へ電力を供給してジョブを実行する稼動状態を含む。すなわち、ホスト計算機４の電源制御部４４は、ホスト計算機４のハードウェアリソースへ部分的に電力の供給を行って、稼動状態または停止状態を設定することができる。また、以下ではハードウェアリソースに対する電力の一部供給のうち、ＣＰＵ４１と少なくともメモリ４２の一部へ電力の供給を行う状態をホスト計算機４の稼動状態とし、ＣＰＵ４１を停止した場合をホスト計算機４の停止状態とする。
【００１９】
また、ＣＰＵ４１は、動作周波数と動作電圧を動的に変更する低消費電力モードを備え、ＯＳからの指令によって低消費電力モードと通常動作モード（所定の動作周波数と動作電圧で工藤）を切り換えることができる。
【００２０】
電源制御ホスト３は、上述の稼動状態または停止状態をホスト計算機４の電源制御部４４に指令する。また、電源制御ホスト３は、ホスト計算機４に稼動状態を指令する場合、低消費電力モードを指令することができる。
【００２１】
図２は、図１に示した計算機システムのソフトウェア構成を示す。
【００２２】
ジョブ管理ホスト計算機１では、複数のホスト計算機４に割り当てるジョブを管理するジョブスケジューラ１０がＣＰＵ１１により実行される。ジョブスケジューラ１０は、クライアント計算機７からジョブの実行要求をジョブ受付部１１０で受け付ける。受け付けたジョブは、ジョブスケジュール部１２０がジョブキュー１４０へ一時的に格納する。
【００２３】
ジョブスケジュール部１２０は、ジョブキュー１４０に保持したジョブについて優先順位の判定などを行って、複数のジョブの実行順序（実行予定）を設定し、スケジューリングを行う。
【００２４】
ジョブスケジュール部１２０は、ジョブのスケジュール（実行予定）に基づいて
ジョブ実行部１３０は、ジョブスケジュール部１２０から受信したジョブを、所定のホストＡ〜ｎに送信して実行される。
【００２５】
ジョブスケジュール部１２０は、ジョブキュー１４０を参照して実行するジョブの優先順位と、ジョブを割り当てるホスト計算機４を設定する。各ホスト計算機４へのジョブの割り当てについては、ＮＱＳ（Network Queing System）等の公知の手法を用いればよいので、以下では詳述しない。
【００２６】
ジョブスケジュール部１２０は、次に実行するジョブの終了予定時刻とノード情報管理テーブル１５０に基づいて、ホスト電源制御部１７０の起動をスケジュールする。後述するように、ジョブスケジュール部１２０は、ホスト計算機４毎の起動時間を考慮して、この起動時間以前にホスト電源制御部１７０の起動をスケジュールしておく。なお、複数のホスト計算機４で起動時間が異なる場合には、ジョブスケジュール部１２０は、最も起動時間が長いホスト計算機４に合わせてホスト電源制御部１７０の起動時刻を設定する。
【００２７】
また、ジョブスケジュール部１２０は、次のジョブで必要とするノード数（ホスト計算機４の数）と、ノード電源状態テーブル１６０を参照して、次のジョブを実行する際に不要となるホスト計算機４があるか否かを判定し、不要なホスト計算機４があれば電源制御ホスト３に対して該当するホスト計算機４を停止状態へ移行するように指令する。
【００２８】
ホスト電源制御部１７０は、ジョブスケジュール部１２０で設定されたスケジュールに基づいて起動し、次のジョブをジョブキュー１４０から読み込んで、次のジョブが必要とするノード数を取得する。そして、ホスト電源制御部１７０は、ノード電源状態テーブル１６０から現在稼動状態のノード数を取得し、次のジョブで必要とされるノード数の方が大きい場合には、新たに起動するホスト計算機４を選択し、次のジョブが開始される以前に予め起動を指令する。すなわち、現在のジョブの終了予定時刻から、ホスト計算機４の起動時間を差し引いた時点で、ホスト電源制御部１７０は新たに必要なホスト計算機４を起動するよう、電源制御ホスト３へ指令する。
【００２９】
電源制御ホスト３は、ジョブ管理ホスト計算機１から受信した各ホスト計算機４毎の電力供給状態に基づいて、各ホスト計算機４の電源制御部４４へ電力の供給状態を指令する。各ホスト計算機４の電源制御部４４は、電源制御ホスト３からの指令に基づいて、ホスト計算機４の電力供給状態を稼動状態または停止状態のいずれかに設定する。
【００３０】
ホスト計算機４は、ＯＳ１４５がＣＰＵ４１によって実行され、このＯＳ上でジョブスケジューラ１０から割り当てられたジョブを実行する。割り当てられたジョブはアプリケーション１４５が指定されており、各ホスト計算機４は割り当てられたジョブに含まれるアプリケーションを入出力装置５等から読み込んで実行する。ＯＳ１４５は、電源制御部４４から低消費電力モードが指令されると、ＣＰＵ４１に対して所定のコマンドを発行し、ＣＰＵ４１を低消費電力モードで実行させる。
【００３１】
図３は、ジョブスケジューラ１０が保持するノード情報管理テーブル１５０の一例を示す説明図である。ノード情報管理テーブル１５０は、各ホスト計算機４毎に割り当てられたノード番号１５１と、当該ホスト計算機４が電源の遮断状態からジョブの実行が可能となる起動状態までに要する起動時間と、起動状態から電力の遮断までの終了時間を格納した起動／終了時間１５２と、ホスト計算機４のＣＰＵ４１が低電力モードを有するか否かを格納する低電力モード１５３から構成される。例えば、ノード番号１５１＝１のホスト計算機４は、起動／終了時間１５２が１０分／３分であるので、ホスト計算機４の起動に１０分を要し、ホスト計算機４の終了（電力の遮断）までに３分を要することを示す。このノード番号１５１＝１のホスト計算機４は、低消費電力モード１５３が「有」であるので、ＣＰＵ４１が低消費電力モードを備えたホスト計算機４であることを示している。ジョブ管理ホスト計算機１は、ホスト計算機４が更新されたときにノード情報管理テーブル１５０を更新する。
【００３２】
図４は、ジョブスケジューラ１０が保持するノード電源状態テーブル１６０の一例を示す説明図である。ノード電源状態テーブル１６０は、各ホスト計算機４毎に割り当てられたノード番号１６１と、当該ホスト計算機４が稼動状態と休止状態の何れであるかを示す電源状態１６２と、ホスト計算機４の電力消費の状態（例えば、ＣＰＵ４１の動作周波数）を示す電力モード１６３から構成される。例えば、ノード番号１６１＝１のホスト計算機４は、電源状態１６２が「ＯＮ」であるのでホスト計算機４は稼動状態にあり、電力モード１６３は２ＧＨｚで動作していることを示す。
【００３３】
このノード電源状態テーブル１６０は、ジョブスケジューラ１０が所定の周期（例えば、数分）で各ホスト計算機４から取得し、取得した値を更新するものである。
【００３４】
図５は、ジョブスケジューラ１０で扱うジョブの一例をジョブ記述言語で表現した例を示す。
【００３５】
図５で表現されるジョブは、「＃＠＄−Ｎ  ４」がジョブで必要とされるノード数を示し、ｔｉｍｅ＿ｌｉｍｉｔ＝１０：００：００は当該ジョブの最大実行時間が１０時間であることを示し、ｔｉｍｅ＿ｐｒｅｄ＝００：６０：００は、当該ジョブの終了予定時間が６０分であることを示す。最大実行時間は、この時間を超えて当該ジョブがホスト計算機４を専有しないことを示し、ホスト計算機４は、最大実行時間を超えると、当該ジョブの実行を停止しする。
【００３６】
また、ｃｐｕ＿ｐｅｒｆ＝２ＧＨｚは、ＣＰＵ４１の動作周波数が２ＧＨｚあれば良いことを示し、ｎｅｅｄ＿ｍｅｍ＝４ＧＢは、ホスト計算機４に実装されたメモリ４２のうち４ＧＢを使用することを示し、ｎｅｅｄ＿ｉｏ＝４は当該ジョブで必要とする入出力装置５の数が４であることを示し、ｎｅｅｄ＿ｖｅｃｔｏｒ＿ｕｎｉｔ＝４は当該ジョブで必要とする追加演算装置６の数が４であることを示す。すなわち、この条件を満たしていれば、ホスト計算機４の電源制御部４４では、不要なハードウェアリソースへの電力供給を遮断しても良いことを示している。また、図中ｍｐｉｒｕｎ＄ｎｏｄｅｉｌｅ  ．／ｔｅｓｔ＿ｐｒｏｇｒａｍは、実行するアプリケーションのパスを示す。
【００３７】
図５に示したジョブがジョブキュー１４０へ格納され、実行可能になるとジョブスケジュール部１２０は上記図５のジョブを読み込んで、必要な数のホスト計算機４にジョブを割り当てて、実行させる。
【００３８】
図６は、ジョブスケジュール部１２０で実行される処理の一例を示すフローチャートである。この処理は、現在実行中のジョブが終了したときに実行される。なお、ジョブの終了は、割り当てるホスト計算機４からの通知に基づいて、ジョブスケジュール部１２０が判定する。
【００３９】
現在実行中のジョブが終了すると、ジョブスケジュール部１２０ではジョブキュー１４０から次に実行するジョブを読み込んで、必要とするノード数を取得する（Ｓ１）。次に、ジョブスケジュール部１２０は、次のジョブで必要とするノード数と入出力装置５の数（または追加演算装置６）が確保可能であるか否かを判定する（Ｓ２）。確保可能でなければ、Ｓ３へ進んで、ジョブスケジュール部１２０は次のジョブで必要とするノード数及び入出力装置５の数（追加演算装置６の数、以下同様）と、現在利用可能なノード数と入出力装置５の数の差分から新たに起動するホスト計算機４を選択する。この選択は、ノード電源状態テーブル１６０を参照して、現在停止状態となっているホスト計算機４を必要な数だけ起動対象として選択する。そして、選択したホスト計算機４と入出力装置５を起動対象のリストとして作成する。なお、図４のノード電源状態テーブル１６０ではホスト計算機４の電源状態１６２のみを示したが、ジョブスケジューラ１０は図示はしないが、ホスト計算機４のノード番号１６１毎に、入出力装置５と追加演算装置６の電源状態を示すテーブルを備える。
【００４０】
次に、Ｓ４では、上記Ｓ３で作成した起動対象のリストに加えられたホスト計算機４と入出力装置５（または追加演算装置６）を起動するよう電源制御ホスト３へ指令する。これにより、電源制御ホスト３は、新たに起動するホスト計算機４に対して稼動状態へ遷移するように指令を発行し、起動対象のホスト計算機４及び入出力装置５が起動を開始する。
【００４１】
Ｓ２では、次に実行するジョブが必要とするノード数の全てのホスト計算機４が起動すると、Ｓ５へ進む。Ｓ５では、実行を開始するジョブの終了予定時刻を図５に示したジョブの記述から読み込んで、ジョブの終了予定時刻からホスト計算機４の起動時間を差し引いた時刻を、ホスト電源制御部１７０を起動させる時刻として設定する。
【００４２】
Ｓ６では、ジョブスケジュール部１２０が、次のジョブを実行するホスト計算機４のリストを作成し、Ｓ７にてリストに記載されたホスト計算機４に対してジョブを実行するよう指令する。
【００４３】
次に、ジョブスケジュール部１２０は、Ｓ８以降にて、不要になったホスト計算機４の停止処理を実行する。
【００４４】
Ｓ８では、今回のジョブで使用しなかったホスト計算機４について、ホスト電源制御部１７０の起動予定時刻までに停止可能か否かを判定する。停止可能なホスト計算機４があれば、Ｓ９に進んで現在ジョブを実行していないホスト計算機４で稼動状態のものを不要なリストに加え、Ｓ１０では不要なリストに記載されたホスト計算機４を停止するよう電源制御ホスト３に対して指令する。これにより、ジョブを実行していないホスト計算機４は停止状態へ移行する。
【００４５】
一方、Ｓ８の判定でＮＯの場合は、現在ジョブを実行してはいないが、現在実行を開始したジョブが、短時間で完了する場合などでは一旦停止したホスト計算機４をすぐに起動することになる。このような場合では、ホスト計算機４を短時間だけ停止状態とすることによる消費電力の低減と、ホスト計算機４の起動に要する消費電力の増大を比較すると、ホスト計算機４の起動時には、コンデンサへの蓄電や、ドライブやファンのスピンアップにより、定常運転時よりも大きな電力を消費する。このような場合では、ホスト計算機４を停止させるよりも稼動状態を継続させた方が、計算機システム全体の消費電力を低減できるので、ジョブを実行しないホスト計算機４の停止状態への移行を禁止する。なお、このとき、ジョブを実行しないホスト計算機４に対して、ジョブスケジュール部１２０は低消費電力モードへ移行するよう電源制御ホスト３に指令する。ただし、ジョブスケジュール部１２０は、ノード情報管理テーブル１５０を参照して、低消費電力モードを備えたＣＰＵ４１を含むホスト計算機４のみに低消費電力モードへの移行を指令する。なお、ホスト計算機４の起動に要する消費電力と、停止させない場合の消費電力の関係は、予め設定しておき、例えば、停止時間が所定時間（例えば、１３分）未満であればホスト計算機４の停止状態への移行を禁止する。
【００４６】
以上の処理により、ジョブを実行するのに必要なホスト計算機４の起動が行われ、新たなジョブの実行を開始し、このジョブの終了予定時刻からホスト計算機４の起動時間を差し引いた時刻にホスト電源制御部１７０が起動するようにスケジュールが設定される。また、既に起動しているホスト計算機４には、優先的にジョブが割り当てられることになり、ホスト計算機４の停止と起動が重複するのを防止できる。
【００４７】
図７は、ジョブスケジュール部１２０でスケジュールされた時刻で起動するホスト電源制御部１７０の処理の一例を示すフローチャートである。
【００４８】
ホスト電源制御部１７０はジョブスケジュール部１２０でスケジュールされた時刻、つまり、現在実行中のジョブの終了予定時刻−ホスト計算機４の起動時間に起動する。まず、ホスト電源制御部１７０は、Ｓ１１にて現在実行中のジョブが、当該ホスト電源制御部１７０の起動をスケジュールしたジョブであるかを判定する。この判定は、例えば、ジョブの識別子をホスト電源制御部１７０のスケジュールに付加し、現在実行中のジョブの識別子と比較する。
【００４９】
すなわち、今回のホスト電源制御部１７０の起動をスケジュールしたジョブが実行されていなければ、次のジョブのための電源制御は不要となるので、前記起動をスケジュールしたジョブが正常に実行されているか否かを確認する。現在実行中のジョブが今回のホスト電源制御部１７０の起動をスケジュールしたジョブに一致した場合は、Ｓ１２以降で、次のジョブのための電源制御を実施する。一方、現在実行中のジョブが今回のホスト電源制御部１７０の起動をスケジュールしたジョブでない場合には、処理を終了する。つまり、今回のホスト電源制御部１７０の起動をスケジュールしたジョブがエラーなどにより異常終了した場合は、ジョブスケジュール部１２０が新たなジョブを投入するため、今回のホスト電源制御部１７０の起動は不要になる。
【００５０】
次に、ホスト電源制御部１７０は、現在実行中のジョブの次に実行するジョブをジョブキュー１４０から選択する。この選択は、例えば、ジョブキュー１４０内の実行待ちのジョブに設定された優先度の最も高いものを選択する。そして、ホスト電源制御部１７０は選択したジョブが使用するノード数が、現在実行中のジョブで使用しているノード数よりも大きいか否かを判定する。つまり、現在実行中のジョブの次に実行するジョブの方が、現在よりも多くのノード数を使用する場合には、停止状態のホスト計算機４を新たに起動する必要があるので、Ｓ１４へ進む。なお、現在実行中のジョブで使用中のノード数で、次回のジョブを実行可能である場合には、そのまま処理を終了する。
【００５１】
Ｓ１４では、ホスト電源制御部１７０がホスト電源状態テーブル１６０を参照して、停止状態（電源状態１６２＝ＯＦＦ）のホスト計算機４を必要な数だけ選択し、起動するホスト計算機４のリストを作成する。そして、Ｓ１５では、起動するリストに基づいて、追加して起動するホスト計算機４を指定し、電源制御ホスト３に起動を指令する。
【００５２】
電源制御ホスト３は、ホスト電源制御部１７０からの指令に基づいて、指令されたホスト計算機４の電源制御部４４に起動を指令し、ホスト計算機４を起動させる。
【００５３】
つまり、ホスト電源制御部１７０は、現在実行中のジョブの終了予定時刻からホスト計算機４の起動時間を差し引いた時刻に、追加して起動するホスト計算機４に起動を指令できるため、次のジョブの開始時には、必要なノード数のホスト計算機４は既に起動が完了しているため、即座にジョブを実行することができる。
【００５４】
なお、上記Ｓ１３〜Ｓ１５の処理では、ノード数とホスト計算機４の関係について追加して起動する処理を行ったが、同様にして入出力装置５と追加演算装置６についても追加して起動する装置（入出力装置５または追加演算装置６）を選択して、電源制御部を行うことができる。
【００５５】
すなわち、ホスト電源制御部１７０は、選択したジョブが使用する装置（入出力装置５または追加演算装置６）の数が、現在実行中のジョブで使用している装置数よりも大きいか否かを判定する。次に実行するジョブで使用する装置数のほうが大きい場合には、装置数の差分をホスト電源状態テーブル１６０から選択し、電源制御ホスト３へ起動するよう指令する。
【００５６】
以上の処理により、一旦停止したホスト計算機４や入出力装置５または追加演算装置６を、次回のジョブが開始されるまでに起動させることが可能となる。
【００５７】
したがって、複数のホスト計算機４を備えた計算機システムにおいて、ホスト計算機４を停止状態へ移行させることで計算機システム全体の消費電力を抑制しながらも、停止状態となったホスト計算機４が利用可能になるまでの待ち時間を抑制して計算機システム全体の性能向上を図ることが可能となるのである。
【００５８】
次に、図８は上記ジョブスケジューラ１０とホスト電源制御部で行われる複数のホスト計算機の電力制御の一例を示すタイムチャートである。図８は、ホスト計算機４として８台のホスト計算機Ａ〜Ｈで並列ジョブを実行した例を示している。なお、図中時刻Ｔ１以前では、全てのホスト計算機Ａ〜Ｈが稼動状態である。
【００５９】
まず、時刻Ｔ０では、前回のジョブが完了し、ホスト計算機を４つ使用する６０分のジョブＪ１を開始する。ジョブスケジューラ１０のジョブスケジュール部１２０では、図６の処理を実行する。次に実行するジョブＪ１で使用するノード数は４であり、現在稼働中のノード数は８であるので、新たに起動するホスト計算機はない（Ｓ２）。ジョブスケジュール部１２０は、次回のジョブＪ２の電源制御を行うために、これらから実行するジョブＪ１の終了予定時刻Ｔ３からホスト計算機の起動時間（１０分）を差し引いた時刻Ｔ２でホスト電源制御部１７０が起動するようにスケジュールする。
【００６０】
そして、ジョブスケジュール部１２０は、時刻Ｔ３において、４つのホスト計算機Ａ〜ＤにジョブＪ１を割り当てて実行させる。さらに、ジョブスケジュール部１２０は、図６のＳ８〜Ｓ１０の処理で、現在使用していない４つのホスト計算機Ｅ〜Ｈが停止可能であるため、これらを停止状態へ移行するよう電源制御ホスト３に指令する。電源制御ホスト３は各ホスト計算機Ｅ〜Ｈに指令して、各ホスト計算機Ｅ〜Ｈは停止状態へ移行する。
【００６１】
現在実行中のジョブＪ１の終了予定時刻Ｔ３からホスト計算機の起動時間を差し引いた時刻Ｔ２になると、ホスト電源制御部１７０が起動する。
【００６２】
ホスト電源制御部１７０は、図７の処理を実行し、現在実行中のジョブがホスト電源制御部１７０をスケジュールしたジョブであるかを確認してから、次に実行するジョブＪ２を選択して、使用するノード数を取得する。ジョブＪ２は８つのノード数で４０分の演算処理を予定するジョブである。したがって、ホスト電源制御部１７０は、現在稼働中のノード数＝４であるので、ノード電源状態テーブル１６０を参照して、新たに４つのホスト計算機Ｅ〜Ｈを起動するように電源制御ホスト３に指令する。
【００６３】
すなわち、本発明では、現在稼働中のホスト計算機で実行中のジョブＪ１が終了する以前に、次に実行するジョブＪ２が必要とするホスト計算機の数と、現在稼働中のホスト計算機の数の差分に基づいて、停止状態のホスト計算機Ｅ〜Ｈの起動を完了させておく。そして、ジョブＪ１が完了すると即座にジョブＪ２をホスト計算機Ａ〜Ｈに割り当てて、遅滞なくジョブＪ２を実行することができる。なお、このとき、次のジョブＪ３の電源制御を行うために、ジョブＪ２の終了予定時刻Ｔ５からホスト計算機の起動時間（１０分）を差し引いた時刻Ｔ４でホスト電源制御部１７０が起動するようにスケジュールを行う。
【００６４】
このように、本発明では、ジョブＪ１を実行する際に、次のジョブＪ２の電源制御を行うためのホスト電源制御部１７０の起動をスケジュールし、次のジョブＪ２を開始するのに必要なホスト計算機Ｅ〜Ｈを事前に起動させておくことで、計算機システム全体の消費電力の低減を図りながらも、処理性能の低下を抑制できるのである。
【００６５】
なお、図８では、ホスト計算機Ａ〜Ｈの消費電力を削減する例について述べたが、上記した入出力装置５や追加演算装置６も同様であり、現在実行中のジョブの終了予定時刻Ｔ３からホスト計算機の起動時間を差し引いた時点で、これらの装置を起動しておけばよい。
【００６６】
図９は、上記図８のホスト計算機Ａ〜Ｈにおける本発明の電源制御を実施した場合と、電源制御を行わずに全てのホスト計算機を稼動状態とした場合の消費電力の比較結果を示す。
【００６７】
ひとつのホスト計算機の消費電力を３００Ｗ／ｈとすると、本発明を適用してホスト計算機を停止状態とした場合では３．６ｋｗｈであるのに対し、従来の稼動状態を継続させる場合では４．８ｋｗｈとなって、本発明では１．２ｋｗｈの電力消費を抑制することが可能となる。このように、本発明によれば、複数のホスト計算機を備えた計算機システムでも、消費電力の低減を実現でき、スーパーコンピュータのように膨大な数のホスト計算機４を備える計算機システムでは、消費電力の大幅な削減を実現し、かつ、処理性能（レスポンス）を維持することが可能となる。
【００６８】
また、上記図６のＳ８で述べたように、ジョブを実行しないホスト計算機４については、基本的に停止状態へ移行させるが、次のジョブを実行するためにホスト計算機４が停止状態となってから短時間で起動する場合には、停止状態へ移行するのを禁止する。これにより、ホスト計算機４の起動に要する電力を節約し、計算機システム全体で消費電力が低減できるように制御することが可能となる。このとき、ジョブを実行しないホスト計算機４を低消費電力モードへ移行させることで、無駄な電力消費を抑制することができる。
【００６９】
なお、上記実施形態では、複数のホスト計算機のうちのひとつをジョブ管理ホスト計算機１とし、ひとつを電源制御ホスト３としたが、ジョブ管理ホスト計算機１と電源制御ホスト３をひとつの計算機にまとめても良いし、ジョブスケジューラ１０と電源制御を行う管理計算機をネットワーク２に設けても良い。
【００７０】
また、上記実施形態では、ジョブのスケジュールに基づいて、新たに起動するノードを決定するホスト電源制御部１７０を起動する例を示したが、これに限定されるものではなく、現在実行中のジョブの終了予定時刻からホスト計算機の起動時間を差し引いた時点で、追加して起動すべきホスト計算機を決定し起動させるものであればよい。
【産業上の利用可能性】
【００７１】
以上のように、本発明では、複数の計算機を備えた計算機システムに適用することができ、特に、多数の計算機を備えたスーパーコンピュータや並列計算機に適用することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明を適用する計算機システムの構成を示すブロック図。
【図２】図１に示した計算機システムのソフトウェア構成を示すブロック図。
【図３】ジョブスケジューラが保持するノード情報管理テーブルの一例を示す説明図である。
【図４】ジョブスケジューラが保持するノード電源状態テーブルの一例を示す説明図である。
【図５】ジョブスケジューラ１０で扱うジョブの一例をジョブ記述言語で表現した例を示す説明図。
【図６】ジョブスケジュール部で実行される処理の一例を示すフローチャートである。
【図７】ジョブスケジュール部でスケジュールされた時刻で起動するホスト電源制御部の処理の一例を示すフローチャートである。
【図８】ジョブスケジューラとホスト電源制御部で行われる複数のホスト計算機の電力制御の一例を示すタイムチャートである。
【図９】電源制御の結果を示す説明図である。
【符号の説明】
【００７３】
１  ジョブ管理ホスト
３  電源制御ホスト
４  ホスト計算機
１０  ジョブスケジューラ
４４  電源制御
１２０  ジョブスケジュール部
１７０  ホスト電源制御部
【図１】
2008225639.tif 000003
【図２】
2008225639.tif 000004
【図３】
2008225639.tif 000005
【図４】
2008225639.tif 000006
【図５】
2008225639.tif 000007
【図６】
2008225639.tif 000008
【図７】
2008225639.tif 000009
【図９】
2008225639.tif 000010
【図８】
2008225639.tif 000011