(57)【要約】  通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードと、ジョブを通常ノードに割り当てて実行させる管理ノードとを備え、管理ノードは、省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択するノード選択手段と、選択した通常ノードを通常動作状態に復帰させるように制御するノード制御手段とを含み、ノード選択手段は、複数の省電力状態のうちの通常動作状態に復帰する時間が短い省電力状態にある通常ノードから順に選択する。
2012105230.tif 000002
【特許請求の範囲】
【請求項１】
通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードと、
ジョブを前記通常ノードに割り当てて実行させる管理ノードとを備え、
前記管理ノードは、
前記省電力状態にある通常ノードから前記ジョブを割り当てて実行させる通常ノードを選択するノード選択手段と、
前記ノード選択手段が選択した通常ノードを前記通常動作状態に復帰させるように制御するノード制御手段とを含み、
前記ノード選択手段は、前記複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択する
ことを特徴とする分散システム。
【請求項２】
通常ノードは、演算処理を実行するプロセッサと、情報を記憶するメモリおよび不揮発性の記憶装置とを少なくとも搭載し、移行可能な省電力状態として、前記プロセッサの電源のみ停止する第１の省電力状態と、演算のコンテキストを前記メモリに保存し、前記メモリ以外の給電を停止する第２の省電力状態と、演算のコンテキストを前記不揮発性の記憶装置に保存し、全ての給電を停止する第３の省電力状態との３種類の省電力状態とを少なくとも含み、
ノード選択手段は、前記省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択する際に、前記第１の省電力状態にある通常ノード、前記第２の省電力状態にある通常ノード、前記第３の省電力状態にある通常ノードの順に優先して選択する
請求項１記載の分散システム。
【請求項３】
電源制御手段とタスク実行手段とを備える通常ノードと、
ジョブの実行命令を受け付けるジョブ受信手段と、前記ジョブ受信手段が受け付けたジョブを１つまたは複数のタスクに分解し、１台または複数台の前記通常ノードに該タスクを実行させるジョブ管理手段と、前記通常ノードの電源状態を管理制御するノード電源制御手段とを備える管理ノードとを備えた分散システムであって、
前記電源制御手段は、省電力状態中の消費電力と前記省電力状態から通常起動状態に復帰する時間とがそれぞれ異なる複数段階の省電力状態に該通常ノードを移行させる機能と、省電力状態にある該通常ノードを通常起動状態に復帰させる機能とを有し、
前記ジョブ管理手段は、該管理ノードが受け付けたジョブの量に応じて、該ジョブを分解したタスクを実行させる通常ノード数を決定し、
前記ノード電源制御手段は、前記通常ノードのうち通常起動状態にありタスク実行が可能な通常ノード数が、前記ジョブ管理手段が決定したタスクを実行させる通常ノード数に満たない場合に、前記複数段階の省電力状態のうちの１つ以上の状態にある通常ノードから、前記タスクを実行させる通常ノード数を満たすだけ通常ノードを選択する起動ノード選択機能を有し、前記起動ノード選択機能において、前記複数段階ある省電力状態のうちの通常起動状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に、通常起動状態に復帰させる通常ノードとして選択し、選択した通常ノードに対して、通常起動状態への移行を指示する命令である起動命令を発行し、
前記ジョブ管理手段は、前記通常ノードのうち通常起動状態にありタスク実行が可能な通常ノードと、前記ノード電源制御手段が発行した前記起動命令に従って通常起動状態に復帰した通常ノードとに対してタスクの実行を指示するタスク実行命令を発行し、
前記タスク実行手段は、前記ジョブ管理手段が発行した前記タスク実行命令に従ってタスクを実行する
ことを特徴とする分散システム。
【請求項４】
通常ノードは、演算処理を実行するプロセッサと、情報を記憶するメモリおよび不揮発性の記憶装置とを少なくとも搭載し、
電源制御手段は、制御する省電力状態として、前記プロセッサの電源のみ停止する第１の省電力状態と、演算のコンテキストを前記メモリに保存し、前記メモリ以外の給電を停止する第２の省電力状態と、演算のコンテキストを前記不揮発性の記憶装置に保存し、全ての給電を停止する第３の省電力状態との３種類の省電力状態とを少なくとも含む
請求項３記載の分散システム。
【請求項５】
ノード電源制御手段は、通常起動状態に復帰させる通常ノードを、第１の省電力状態にある通常ノードから選択し、次に、第２の省電力状態にある通常ノードから選択し、次に、第３の省電力状態にある通常ノードから選択する
請求項４記載の分散システム。
【請求項６】
ノード電源制御手段は、タスク実行が完了した通常ノードを、複数段階の省電力状態のうちのいずれかの状態に移行させることを決定し、前記通常ノードに対し、決定した省電力状態への移行を指示するノード停止命令を発行する
請求項３から請求項５のうちのいずれか１項に記載の分散システム。
【請求項７】
ノード電源制御手段は、タスク実行が完了した通常ノードに対してノード停止命令を発行するにあたり、各省電力状態ごとに予め設定された所定数に満たない省電力状態のうち、通常起動状態に復帰するまでの時間が短い省電力状態に移行させることを決定する
請求項６記載の分散システム。
【請求項８】
分散システムにおいてジョブを通常ノードに割り当てて実行させる情報処理装置であって、
通常動作状態への復帰時間が異なる複数の省電力状態を有する前記通常ノードのうちの該省電力状態にある通常ノードから前記ジョブを割り当てて実行させる通常ノードを選択するノード選択手段と、
前記ノード選択手段が選択した通常ノードを前記通常動作状態に復帰させるように制御するノード制御手段とを含み、
前記ノード選択手段は、前記複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択する
ことを特徴とする情報処理装置。
【請求項９】
ジョブを通常ノードに割り当てて実行させる分散方法であって、
通常動作状態への復帰時間が異なる複数の省電力状態を有する前記通常ノードのうちの該省電力状態にある通常ノードから前記ジョブを割り当てて実行させる通常ノードを選択し、
選択した通常ノードを前記通常動作状態に復帰させるように制御し、
前記省電力状態にある通常ノードから前記ジョブを割り当てて実行させる通常ノードを選択する際に、前記複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択する
ことを特徴とする分散方法。
【請求項１０】
分散システムにおいてジョブを通常ノードに割り当てて実行させるための分散プログラムであって、
コンピュータに、
通常動作状態への復帰時間が異なる複数の省電力状態を有する前記通常ノードのうちの該省電力状態にある通常ノードから前記ジョブを割り当てて実行させる通常ノードを選択するノード選択処理と、
選択した通常ノードを前記通常動作状態に復帰させるように制御するノード制御処理とを実行させ、
前記ノード選択処理で、前記複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択させる
ための分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードを有する分散システムに関し、特に、複数のノードを１つの分散システムとして動作させる際に、分散システム全体の省電力化をはかる分散システムに関する。
【背景技術】
【０００２】
分散システムは、プロセッサおよび記憶媒体を備えたノード（計算機・記憶装置）を数十台から数千台規模備え、ネットワークで接続することで１つのシステムとして利用し、１ノードでは得ることのできない計算能力や記憶容量を得ることができるシステムである。【０００３】
分散システムの一例として、ノードをネットワーク結合し、そのＨＤＤ（ハードディスクドライブ）やメモリを用いてデータ格納・利用する分散ストレージシステムが存在する。分散ストレージシステムでは、データをどの計算機に配置するか、処理をどの計算機で行うかをソフトウェアや特別なハードウェアにより実現し、システムの状態に対し動作を動的に変更することで、システム内のリソース使用量を調整し、システム利用者（クライアント計算機）に対する性能を向上している。【０００４】
分散システムを構成するノード１台の消費電力は１５０Ｗ／Ｈ程度であるが、大規模な分散システムでは、数百・数千ものノードを備えているために、システム全体の消費電力が膨大になるという問題がある。【０００５】
しかし、システムに対する負荷量は時々刻々と変化するものであり、常に全てのノードを１００％活用するような負荷がかかっているわけではない。ある時にはシステム全体の１０％を利用し、またある時にはシステム全体の９０％を利用するというように、システム内で必要となるノード数は時間によって変動する。【０００６】
このような負荷量の変動に応じ、ジョブを実行していないアイドル状態のノードが偶発的に発生したり、また、負荷量に応じて処理ノード数を変化させることでアイドル状態のノードを意図的に作り出したりすることができる。例えば特許文献１には、ジョブ実行中でないアイドル状態のノードを、サスペンド状態へ移行させることで消費電力を削減するクラスタシステムが記載されている。【０００７】
スーパーコンピュータのような複数の計算機を接続して大規模な計算を行う計算機システムでは、複数のノードにジョブを割り当てて実行させ、あるジョブが完了すると次のジョブを複数のノードに計算ジョブを割りつけるというジョブ管理をする。【０００８】
特許文献２では、上述のスーパーコンピュータのような計算機システムにおいて、システムに与えられたジョブを低消費電力で実行するジョブ管理方法が開示されている。特許文献２に記載されたジョブ管理方法では、システムに対するジョブ状況を保持しておき、未来のジョブ実行時期やジョブ実行に必要なノード数を決定し、個々のジョブ実行ごとに必要なノードをあらかじめジョブ実行開始前に準備し、一方でジョブ実行に必要のないノードを停止し、システム全体の消費電力の削減をはかる。【０００９】
上記先行技術で利用されるノード停止には、通常、ACPI : Advanced Configuration and Power Interface（非特許文献１）で規定される停止状態がとられることが多い。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３−１６２５１５号公報
【特許文献２】特開２００８−２２５６３９号公報
【非特許文献】
【００１１】
【非特許文献１】「ADVANCED CONFIGURATION AND POWER INTERFACE SPECIFICATION 4.0」  ヒューレットパッカード、インテル、マイクロソフト、フェニックステクノロジー、東芝  2009年6月16日
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、上記特許文献１に記載された技術では、一度サスペンド状態などの停止状態に移行させたノードを再度利用するには、ノードに通電し、ＯＳを起動して利用が可能になるまでの待ち時間が必要となる。【００１３】
また、上記特許文献２に記載されたジョブ管理方法では、ジョブの実行予定に基づいて停止ノードをあらかじめ復帰させてくことで、ノード復帰にかかる時間を隠蔽している。スーパーコンピュータのようにジョブを実行キューにためて処理を行うようなシステムにおいては隠蔽効果がある。特に、１ジョブを数百ノードで協調動作して数十分以上のオーダーで処理する場合（並列処理）においては効果的である。しかし、分散ストレージシステムのようにシステムに対する処理要求が予想できない場合や、小さなジョブが多数あったり、大きなジョブを小さなタスクに分割して多くのノードに分配したりして処理する場合（分散処理）、復帰にかかる時間の隠蔽ができないという問題がある。【００１４】
このように上記の技術では、消費電力を抑制するためにノードを停止させるとノード復帰にかかる待ち時間のために、処理性能（処理時間）が低下するという問題がある。【００１５】
そこで本発明は、複数のノードを備えた分散システムにおいて、ノードを停止状態に移行させることで分散システム全体の消費電力を抑制しながらも、負荷が大きくなった時の処理性能の低下の抑制を図ることができる分散システム、情報処理装置、分散方法及び分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明による分散システムは通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードと、ジョブを通常ノードに割り当てて実行させる管理ノードとを備え、管理ノードは、省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択するノード選択手段と、ノード選択手段が選択した通常ノードを通常動作状態に復帰させるように制御するノード制御手段とを含み、ノード選択手段は、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択することを特徴とする。【００１７】
本発明による分散システムは、電源制御手段とタスク実行手段とを備える通常ノードと、ジョブの実行命令を受け付けるジョブ受信手段と、ジョブ受信手段が受け付けたジョブを１つまたは複数のタスクに分解し、１台または複数台の通常ノードにタスクを実行させるジョブ管理手段と、通常ノードの電源状態を管理制御するノード電源制御手段とを備える管理ノードとを備えた分散システムであって、電源制御手段は、省電力状態中の消費電力と省電力状態から通常起動状態に復帰する時間とがそれぞれ異なる複数段階の省電力状態に通常ノードを移行させる機能と、省電力状態にある通常ノードを通常起動状態に復帰させる機能とを有し、ジョブ管理手段は、管理ノードが受け付けたジョブの量に応じて、ジョブを分解したタスクを実行させる通常ノード数を決定し、ノード電源制御手段は、通常ノードのうち通常起動状態にありタスク実行が可能な通常ノード数が、ジョブ管理手段が決定したタスクを実行させる通常ノード数に満たない場合に、複数段階の省電力状態のうちの１つ以上の状態にある通常ノードから、タスクを実行させる通常ノード数を満たすだけ通常ノードを選択する起動ノード選択機能を有し、起動ノード選択機能において、複数段階ある省電力状態のうちの通常起動状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に、通常起動状態に復帰させる通常ノードとして選択し、選択した通常ノードに対して、通常起動状態への移行を指示する命令である起動命令を発行し、ジョブ管理手段は、通常ノードのうち通常起動状態にありタスク実行が可能な通常ノードと、ノード電源制御手段が発行した起動命令に従って通常起動状態に復帰した通常ノードとに対してタスクの実行を指示するタスク実行命令を発行し、タスク実行手段は、ジョブ管理手段が発行したタスク実行命令に従ってタスクを実行することを特徴とする。【００１８】
本発明による情報処理装置は、分散システムにおいてジョブを通常ノードに割り当てて実行させる情報処理装置であって、通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードのうちの省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択するノード選択手段と、ノード選択手段が選択した通常ノードを通常動作状態に復帰させるように制御するノード制御手段とを含み、ノード選択手段は、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択することを特徴とする。【００１９】
本発明による分散方法は、ジョブを通常ノードに割り当てて実行させる分散方法であって、通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードのうちの省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択し、選択した通常ノードを通常動作状態に復帰させるように制御し、省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択する際に、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択することを特徴とする。【００２０】
本発明による分散プログラムは、分散システムにおいてジョブを通常ノードに割り当てて実行させるための分散プログラムであって、コンピュータに、通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノードのうちの省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択するノード選択処理と、選択した通常ノードを通常動作状態に復帰させるように制御するノード制御処理とを実行させ、ノード選択処理で、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、複数のノードを備えた分散システムにおいて、ノードを停止状態に移行させることで分散システム全体の消費電力を抑制しながらも、負荷が大きくなった時の処理性能の低下の抑制を図ることができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態における分散システムの構成例を示すブロック図である。
【図２】分散システムおける管理ノードの構成例を示すブロック図である。
【図３】分散システムおける通常ノードの電源状態の一例を示す状態遷移図である。
【図４】分散システムおける通常ノードの各電源状態の消費電力と、各状態遷移にかかる時間との一例を示す表である。
【図５】分散システムのジョブ実行の一例を表すシーケンス図である。
【図６】分散システムにおける管理ノードのノード電源制御部が処理する復帰ノード選択手順の一例を表すフローチャートである。
【図７】分散システムにおいて電源制御ノード決定部が復帰命令を発行した際の一例を示すシーケンス図である。
【図８】分散システムおいてタスク配置決定部２２２がタスク実行命令を発行した際の一例を示すシーケンス図である。
【図９】分散システムにおけるノード電源制御部が処理する電源制御判定処理の処理手順の一例を表すフローチャートである。
【図１０】分散システムにおいてノード電源制御部が停止命令を発行した際の一例を示すシーケンス図である。
【図１１】分散システムにおけるノード電源制御部が処理するノード数調整処理の処理手順の一例を表すフローチャートである。
【図１２】分散システムの最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明による分散システムの実施形態について、図面を参照して説明する。図１は、本実施形態における分散システムの構成例を示すブロック図である。図１に示すように、分散システムは、アクセス経路決定手段を有するネットワークに接続された１つ以上のクライアントノード１００と、１つ以上の管理ノード２００と、１つ以上の通常ノード３００とを含む。図１に示す例では、１つのクライアントノード１００と１つの管理ノード２００とが示されているが、複数のクライアントノード１００と管理ノード２００とを含んでいてもよい。
【００２４】
通常ノード３００は、１ノードずつ個別のノード番号（ノード００１〜ノードＸＸＸ）を有している。具体的には、通常ノード３００は、ノード番号を記憶部に記憶している。
【００２５】
クライアントノード１００は、ジョブ実行を要求するノードである。クライアントノード１００が発行したジョブ実行要求がネットワークを介して管理ノード２００に伝えられる。具体的には、クライアントノード１００は、ネットワークを介して管理ノード２００にジョブ実行要求を送信する。
【００２６】
管理ノード２００は、ジョブ受信部２１０、ジョブ制御部２２０およびノード電源制御部２３０を備えている。
【００２７】
ジョブ受信部２１０は、クライアントノード１００が発行したジョブ実行要求を受け付ける機能を備えている。具体的には、ジョブ受信部２１０は、クライアントノード１００がネットワークを介して送信したジョブ実行要求を受信する。以下、クライアントノード１００がジョブ実行要求を発行するとの表現を用いるが、具体的には、クライアントノード１００がネットワークを介して管理ノード２００にジョブ実行要求を送信することである。
【００２８】
ジョブ制御部２２０は、ジョブ受信部２１０が受け付けたジョブを各通常ノード３００が実行できる単位のタスクとして分割し、通常ノード３００にタスク実行を要求する機能を備えている。具体的には、ジョブ制御部２２０は、ジョブ受信部２１０が受信したジョブ実行要求によって示されるジョブを通常ノード３００が実行できる単位のタスクに分割し、ネットワークを介して通常ノード３００に分割したタスクの実行要求を送信する。
【００２９】
ノード電源制御部２３０は、通常ノード３００の電源状態を管理したり、ノード停止／復帰といった電源制御を行う通常ノード３００を決定し、電源制御要求を発行したりする機能を備えている。具体的には、ノード電源制御部２３０は、電源制御を行う通常ノード３００に対して、ネットワークを介して電源制御要求を送信する。以下、電源制御要求を発行するとの表現を用いるが、具体的には、ネットワークを介して通常ノード３００に電源制御要求を送信することである。
【００３０】
管理ノード２００が発行する電源制御要求には、通常ノード３００を省電力状態へ停止させる停止命令（以下、ノード停止命令ともいう）と、通常ノード３００を省電力状態から復帰させる復帰命令（以下、ノード復帰命令ともいう）との２種類ある。すなわち、通常ノード３００は、停止命令を受信すると起動状態（例えば、後述する実行状態またはアイドル状態。また、通常動作状態や通常起動状態ともいう）から省電力状態に移行し、復帰命令を受信すると省電力状態から起動状態に移行するように制御する。
【００３１】
図２は、管理ノード２００の構成例を示すブロック図である。図２に示すようにジョブ制御部２２０は、ジョブ分解部２２１と、タスク配置決定部２２２と、命令通知部２２３とを備えている。
【００３２】
ジョブ分解部２２１は、ジョブを各通常ノード３００が実行できる単位のタスクとして分割する機能を備えている。具体的には、ジョブ分解部２２１は、ジョブ受信部２１０が受信したジョブ実行要求によって示されるジョブを、通常ノード３００が実行できる単位のタスクに分割する。
【００３３】
タスク配置決定部２２２は、ジョブ分解部２２１が分解したタスクをどの通常ノード３００に実行させるかを決定する機能を備えている。
【００３４】
命令通知部２２３は、タスク配置決定部２２２の決定に従って、通常ノード３００に対して、タスク実行命令や電源制御要求を通知する機能を備えている。以下、タスク実行命令を発行するとの表現を用いるが、具体的には、管理ノード２００が、ネットワークを介して通常ノード３００にタスク実行命令を送信することである。
【００３５】
また、ノード電源制御部２３０は、電源制御ノード決定部２３１を備えている。電源制御ノード決定部２３１は、ジョブ制御部２２０から電源制御要求（または後述するノード起動要求）を受けた際、または所定期間ごとに、電源制御対象とする通常ノード３００および移行する電源状態を決定する機能を備えている。
【００３６】
また、管理ノード２００は、記憶部２４０を備えている。記憶部２４０は、ジョブ制御部２２０およびノード電源制御部２３０にまたがって、各通常ノード３００に対するタスクの分配状況や通常ノード３００のタスク実行状況を管理するためのタスク配置情報と、各通常ノード３００の電源状態を管理するためのノード状態情報とを記憶している。
【００３７】
また、図１に示すように、通常ノード３００は、通信部３１０、タスク実行部３２０、復帰命令受信部３３０および電源制御部３４０を備えている。
【００３８】
通信部３１０は、管理ノード２００が発行したタスク実行命令や、電源制御要求のうちの停止命令を受信する機能を備えている。
【００３９】
タスク実行部３２０は、通信部３１０が受信したタスク実行命令に基づいてタスクを実行する機能を備えている。
【００４０】
復帰命令受信部３３０は、管理ノード２００が発行した電源制御要求のうちの復帰命令を受信する機能を備えている。
【００４１】
電源制御部３４０は、通信部３１０が受信した停止命令や復帰命令受信部３３０が受信した復帰命令に従って電源制御を行う機能を備えている。
【００４２】
なお、本実施形態では、１つの通常ノード３００において、あらかじめ定められた数のタスクを同時処理可能である。以下の例では説明を簡略化するため１つのタスクを実行できるようにする。
【００４３】
図３に、通常ノードで電源制御を行う場合の状態遷移図を示す。通常ノード３００は、タスクを実行していないアイドル状態である場合、省電力効果の異なる３種類の省電力状態（停止状態レベル１、停止状態レベル２、停止状態レベル３）に移行することができる。
【００４４】
省電力状態の例として、ACPI(Advanced Configuration and Power Interface)で規定される省電力状態がある。本実施形態では、停止状態レベル１としてACPIで規定されるS1(プロセッサ給電停止)、停止状態レベル２としてACPIで規定されるS3(メモリのみ給電)、停止状態レベル３としてACPIで規定されるS4(メモリ内容のディスク退避、全電源供給停止)に移行するものとする。ただし、これらの省電力状態でも、復帰命令受信部３３０には電気供給されており、復帰命令受信部３３０は、常に復帰命令を受信できる。また、通常ノード３００は、アイドル状態でなくタスク実行状態であったとしても、実行状態を示すデータをメモリやディスク装置などの記憶装置に保持しておき、アイドル状態を経由して省電力状態に移行することもできる。
【００４５】
ACPIで規定される電源状態S1、S3、S4では、省電力効果はS1、S3、S4の順に小さい。すなわち、S1が最も小さく、次にS3が小さく、S4が最も大きい。一方でアイドル状態から省電力状態に移行したり、省電力状態からアイドル状態に復帰したりする状態遷移時間はS1、S3、S4の順に短い。すなわち、S1が最も短く、次にS3が短く、S4が最も長い。つまり、状態遷移時間が長い省電力状態ほど省電力効果が高い。参考として、図４に各状態の消費電力と各状態遷移にかかる時間との一例を示す。
【００４６】
本実施形態では、省電力状態をACPIで規定される３状態としたが、状態数は複数であればよく、また、省電力にさせるACPIで規定される方式である必要もなく、本発明で制限するものではない。
【００４７】
次に、本実施形態における分散システムにおける管理ノード２００が保持する、タスク配置情報、および、ノード状態情報について説明する。上述のように、タスク配置情報およびノード状態情報は、管理ノード２００の記憶部２４０に記憶されている。
【００４８】
タスク配置情報には、各通常ノード３００がタスク実行中であるか否かを示す情報が含まれる。ノード状態情報には、各通常ノード３００が省電力状態として停止中であるか、または起動中であるかを示す情報が含まれる。例えば、ある通常ノード３００が省電力状態として停止中であれば、ノード状態情報には、その通常ノード３００が停止状態であることを示す情報が含まれる。また、ノード状態情報には、状態ごとに該当する通常ノード３００の個数を示す情報が含まれる。
【００４９】
次に、本実施形態における分散システムのジョブ実行の処理フローについて説明する。
【００５０】
図５は、ジョブ実行の流れを示すシーケンス図である。まず、クライアントノード１００は、ジョブ実行要求を管理ノード２００に送信する。すると、クライアントノード１００からジョブ実行要求を受信した管理ノード２００は、ジョブ分解部２２１において、受け付けたジョブを１つ以上のタスクに分解する[図５に示されるジョブ分解処理]。ここで受け付けたジョブとは、受信したジョブ実行要求によって示されるジョブである。
【００５１】
ジョブ分解処理が完了すると、管理ノード２００は、タスク配置決定部２２２において、分解したタスクをどの通常ノード３００で実行するかを決定する[図５に示されるタスク配置決定処理]。
【００５２】
このタスク配置決定処理では、管理ノード２００は、通常ノード３００の一部が低消費電力状態で停止中であることにより、分解したタスクが起動中の通常ノード３００では実行しきれるか否かを判断する。そして、起動中の通常ノード３００では実行しきれないと判断した場合、管理ノード２００は、低消費電力状態で停止中の通常ノード３００の一部または全てを復帰させる[図５に示されるノード復帰処理]。
【００５３】
ノード復帰処理では、タスク配置決定部２２２は、ノード電源制御部２３０に対して、ノード起動要求とともに復帰すべきノード数を通知する。すると、ノード電源制御部２３０は、復帰対象ノードを決定し、決定した復帰対象の通常ノード３００宛にノード復帰命令を発行する。その後、復帰命令を受信した通常ノード３００は、ノード復帰処理を行い、復帰後にノード復帰応答を管理ノード２００に返信する。ここでのノード復帰処理とは、例えば、通常ノード３００が停止状態からアイドル状態に移行するように制御することである。
【００５４】
また、ノード復帰処理と同時に、タスク配置決定部２２２は、その時点で起動中の通常ノード３００に対して、命令通知部２２３を通じてタスク実行命令を発行する。一方、ノード復帰処理によって復帰させた通常ノード３００に対しては、タスク配置決定部２２２は、ノード復帰応答を受信後に、タスク実行命令を発行する。
【００５５】
タスク実行命令を受信した通常ノード３００は、タスク実行命令に従って、タスクを実行し、タスク実行完了後にタスク完了通知を管理ノード２００に送信する。
【００５６】
管理ノード２００は、タスク完了通知を受信すると、タスクが完了した通常ノード３００を低消費電力状態で停止させるか否かを判定する [電源制御判定処理]。そして、低消費電力状態で停止させると判定した場合には、管理ノード２００は、該当する通常ノード３００に対してノード停止命令を発行する。すると、ノード停止命令を受信した通常ノード３００は、低消費電力状態で停止する。一方で、電源制御判定処理で通常ノード３００を停止しないと判定した場合には、管理ノード２００はそのまま何もせず、該当する通常ノード３００もアイドル状態で待機する。
【００５７】
以下に、管理ノード２００における、ジョブ分解処理、タスク配置決定処理、ノード復帰処理および電源制御判定処理について説明する。また、管理ノード２００がノード復帰命令・タスク実行命令・ノード停止命令の各命令を発行した場合の、管理ノード２００と通常ノード３００との間の処理シーケンスについて説明する。
【００５８】
ジョブ分解処理では、ジョブ分解部２２１は、ジョブを１つ以上、（全通常ノード３００の数−タスク実行中の通常ノード３００の数）個以下のタスクに分解する。このときジョブ分解部２２１は、１つあたり通常ノード３００が１台で処理するタスクとして分解する。例えば、ジョブとしてＮ個のファイルに書かれた数列を１つのファイルにマージしてソートするという処理が与えられたとき、Ｎ−１個のソートタスクと１個の（ソートandファイルマージ）タスクとに分解するという方法が考えられる。
【００５９】
タスク数を小さくして、１タスクの処理量を多くすれば、タスク実行する通常ノード３００が少なくなり、他の通常ノード３００を低消費電力状態に停止することができるので、省電力効果が高い。しかし、ジョブ実行にかかる時間は増大する。逆に、１タスクの処理量を少なくし、タスク数を多くすると、多くの通常ノード３００がタスク実行を処理するので、ジョブ実行にかかる時間は短くなるものの、省電力効果は低くなる。なお、本発明においては、ジョブ分解部２２１でのタスク分解の方法については限定しない。
【００６０】
タスク配置決定処理では、タスク配置決定部２２２は、ジョブ分解処理で分解したタスクを実行する通常ノード３００を決定する。具体的には、タスク配置決定部２２２は、記憶部２４０が記憶するノード状態情報を参照し、タスク数がアイドル状態の通常ノード３００の数以下であるか否か判断する。そして、タスク数がアイドル状態の通常ノード３００の数以下であると判断した場合には、タスク配置決定部２２２は、アイドル状態の通常ノード３００のうち、タスク数個の通常ノード３００をタスク実行するノードとして選択する。
【００６１】
一方、タスク数がアイドル状態の通常ノード３００の数より多いと判断した場合には、タスク配置決定部２２２は、アイドル状態の通常ノード３００全てをタスク実行するノードとして選択し、残りの（タスク数−アイドル状態の通常ノード数）個の通常ノード３００をノード復帰処理により起動し、タスク実行する通常ノード３００として選択する。
【００６２】
タスク実行ノードとして選択された通常ノード３００は、アイドル状態であればタスク配置決定処理直後に、停止状態であればノード復帰処理にてアイドル状態に移行した後に、タスク実行命令に従ってタスク実行を開始する。なお、本発明においては、アイドル状態の通常ノード３００のうち、どの通常ノード３００をタスク実行するノードとして選択するかについての決定方法は限定しない。また、どのタスクをどの通常ノード３００に配置するかについての決定方法も限定しない。
【００６３】
ノード復帰処理では、タスク配置決定部２２２は、ノード電源制御部２３０に対して、ノード起動要求とともに起動するノード数を通知する。図６に、ノード電源制御部２３０が、ノード起動要求を受信し、起動するノード数分の停止状態の通常ノード３００を選択し、復帰命令を通常ノード３００に対して発行する手順を示す。図６に示す復帰ノード選択手順では、停止状態にある通常ノード３００のうち、停止状態レベル１から順に、つまり、省電力効果が低く復帰が早いノードから順に復帰させるノードとして選択し、復帰命令を発行している。
【００６４】
図６に示すように、ノード電源制御部２３０は、タスク配置決定部２２２が出力したノード起動要求を受信する（ステップＳ１０）。ここでは、ノード電源制御部２３０は、ノード起動要求とともに、起動する通常ノードの数を示す値ｎを受信する。
【００６５】
次いで、ノード電源制御部２３０は、停止状態レベルが低い順に、停止状態レベルｋ（ここでは停止状態レベル１）の通常ノード３００の数が、ｘ個（受信した値ｎ）より少ないか否かを判断する（ステップＳ１１、１２）。
【００６６】
停止状態レベルｋの通常ノード３００の数がｘ個より少ないと判断した場合には、ノード電源制御部２３０は、全ての停止状態レベルｋの通常ノード３００に対して復帰命令を発行する（ステップＳ１３）。そして、ノード電源制御部２３０は、ｘの値をｘ−通常ノード３００数（停止状態レベルｋ）とし、停止状態レベルが低い順に停止状態レベル３に至るまで、ステップＳ１２、１３の処理を繰り返す（ステップＳ１４、１５、１６）。その後、ノード電源制御部２３０は、ｎ−ｘ個のノード復帰応答の受信待ちをし（ステップＳ１９）、ノード起動処理を完了する。
【００６７】
一方、停止状態レベルｋの通常ノード３００の数がｘ個以上であると判断した場合には、ノード電源制御部２３０は、停止状態レベルｋの通常ノード３００のうちのｘ個に対して復帰命令を発行する（ステップＳ１７）。その後、ノード電源制御部２３０は、ｎ個のノード復帰応答の受信待ちをし（ステップＳ１８、１９）、ノード起動処理を完了する。
【００６８】
図７は、電源制御ノード決定部２３１が復帰命令を発行して、通常ノード３００が復帰するまでの流れの一例を示すシーケンス図である。
【００６９】
電源制御ノード決定部２３１は、復帰させる通常ノード３００のノード番号を指定して復帰命令を発行する。発行した復帰命令は、命令通知部２２３を経由して、復帰させる対象の通常ノード３００の復帰命令受信部３３０に通知される。
【００７０】
具体的には、電源制御ノード決定部２３１は、復帰させる通常ノードを特定し、特定した通常ノードのノード番号を含む復帰命令を命令通知部２２３に出力する。すると、命令通知部２２３は、ネットワークを介して、ノード番号によって特定される通常ノード３００の復帰命令受信部３３０に復帰命令を送信する。
【００７１】
通常ノード３００の復帰命令受信部３３０は、復帰命令を受信すると、ノードの通電を開始し、電源制御部３４０に対して復帰要求を出力する。すると、電源制御部３４０は、ノード復帰処理を行う。ここでのノード復帰処理とは、例えば、通常ノード３００が停止状態からアイドル状態に移行するように制御することである。
【００７２】
電源制御部３４０によるノード復帰処理が完了すると、通常ノード３００は、通信部３１０を用いて、管理ノード２００に対して、ノード復帰処理が完了したことを示すノード復帰応答を自ノード番号とともに通知する。
【００７３】
管理ノード２００の電源制御ノード決定部２３１は、ノード復帰応答を受信すると、記憶部２４０が記憶するノード状態情報を書き換える。具体的には、電源制御ノード決定部２３１は、ノード復帰応答を受信した通常ノード３００が起動中であることを示すようにノード状態情報を書き換える。
【００７４】
また同時に、電源制御ノード決定部２３１は、タスク配置決定部２２２に対して、停止状態にあった通常ノード３００が復帰したことを通知する。すると、タスク配置決定部２２２は、該当する通常ノード３００に対してタスク実行命令を発行する。
【００７５】
図８は、タスク配置決定部２２２がタスク実行命令を発行して、通常ノード３００がタスク実行を完了するまでの流れの一例を示すシーケンス図である。
【００７６】
タスク配置決定部２２２は、タスクを実行させる通常ノード３００に対してタスク実行命令を通知する前に、タスク配置情報を書き換える。具体的には、タスク配置決定部２２２は、対象の通常ノード３００がタスク実行中であることを示すようにタスク配置情報を書き換える。
【００７７】
タスク配置情報の書き換え後、タスク配置決定部２２２は、命令通知部２２３を介して、タスクを実行させる通常ノード３００に対してタスク実行命令を通知する。
【００７８】
通常ノード３００は、通信部３１０でタスク実行命令を受信すると、受信したタスク実行命令に従って、タスク実行部３２０でタスクを実行する。
【００７９】
タスク実行部３２０によるタスク実行が完了すると、通常ノード３００は、通信部３１０を用いて、タスク完了通知をタスクの実行結果とともに管理ノード２００に通知する。
【００８０】
管理ノード２００のタスク配置決定部２２２は、タスク完了通知を受信すると、タスク配置情報を、タスクが完了した旨に書き換える。すなわち、タスク配置決定部２２２は、対象の通常ノード３００がタスク実行中でないことを示すようにタスク配置情報を書き換える。そして、タスク配置情報の書き換えが完了すると、管理ノード２００は、電源制御判定処理を実行する。
【００８１】
電源制御判定処理では、管理ノード２００は、アイドル状態、停止状態レベル１、停止状態レベル２の優先度順に、あらかじめ設定しておいた各状態の必要ノード数を満たすように停止状態を決定する。アイドル状態、停止状態レベル１、停止状態レベル２の各状態においても必要ノード数を満たしている場合には、停止状態３に停止する。
【００８２】
電源制御ノード決定部２３１は、あらかじめ電源制御判定処理におけるアイドル状態および停止状態レベルごとの必要ノード数の設定値を保持している。この設定値は、固定値でも非固定値でもよい。例えば、固定値で、アイドル状態ノード：０ノード、停止状態レベル１：５ノード、停止状態レベル２：１５ノードというように設定する。また、例えば、非固定値で、アイドル状態ノード：(全ノード数−実行状態ノード数)×０％、停止状態レベル１：(全ノード数−実行状態ノード数)×１０％、停止状態レベル２：(全ノード数−実行状態ノード数)×３０％というように、その時点における各状態におけるノード数から必要ノード数を計算させるという方法もある。
【００８３】
次に、電源制御判定処理の処理手順について説明する。図９は、電源制御判定処理の処理手順の一例を示すフローチャートである。
【００８４】
まず、電源制御ノード決定部２３１は、アイドル状態のノード数とあらかじめ設定しておいた設定値とを比較し、アイドル状態のノード数が設定値よりも小さいか否かを判定する（ステップＳ２１）。そして、設定値よりも小さいと判定した場合には、電源制御ノード決定部２３１は、何も処理を行わずに、電源制御判定処理を完了する。
【００８５】
一方、アイドル状態のノード数が設定値以上であると判定した場合、電源制御ノード決定部２３１は、停止状態レベル１から停止状態レベル２へと順に、停止状態レベルｋにおいて停止中のノード数とあらかじめ停止状態レベルごとに設定しておいた設定数とを比較する。
【００８６】
そして、停止状態レベルｋにおいて停止中のノード数が停止状態レベルｋの設定数に満たない場合には、電源制御ノード決定部２３１は、停止状態レベルｋで停止することを決定する。停止状態レベル１から停止状態レベル２で停止すると決定しなかった場合には、電源制御ノード決定部２３１は停止状態レベル３で停止すると決定する。停止させる状態が決定すると、ノード電源制御部２３０は、停止命令を対象の通常ノード３００に対して発行する。
【００８７】
図９に示す例では、電源制御ノード決定部２３１は、アイドル状態のノード数が停止状態レベルｋ（ここでは停止状態レベル１）の設定値よりも小さいか否かを判定する（ステップＳ２２、２３）。
【００８８】
ステップＳ２３においてアイドル状態の通常ノード数が設定値よりも小さいと判定した場合には、電源制御ノード決定部２３１は、停止状態レベルｋ（ここでは停止状態レベル１）に移行させることを決定し、対象の通常ノード３００に対して停止命令を発行する（ステップＳ２４）。その後、電源制御ノード決定部２３１は、電源制御判定処理を完了する。
【００８９】
一方、ステップＳ２３においてアイドル状態のノード数が設定値以上であると判定した場合には、電源制御ノード決定部２３１は、停止状態レベル３に至るまでステップＳ２３の処理を繰り返す（ステップＳ２５、２６）。その後、電源制御ノード決定部２３１は、停止状態レベル３に移行させることを決定し、対象の通常ノード３００に対して停止命令を発行する（ステップＳ２７）、電源制御判定処理を完了する。
【００９０】
図１０は、ノード電源制御部２３０の電源制御ノード決定部２３１が停止命令を発行して、通常ノード３００が省電力状態で停止するまでの流れの一例を示すシーケンス図である。
【００９１】
電源制御ノード決定部２３１は、まず停止対象の通常ノード３００の状態が停止状態を示すようにノード状態情報を変更する。その後、電源制御ノード決定部２３１は、命令通知部２２３を介して、停止対象の通常ノード３００に停止命令を通知する。通信部３１０で停止命令を受信した通常ノード３００は、電源制御部３４０に停止命令を出力し、停止命令に従って指定された停止レベルで停止するように制御する。
【００９２】
以上の実行フローで、本実施形態の分散システムはジョブを実行する。
【００９３】
なお、電源制御ノード決定部２３１は、アイドル状態および停止状態レベルごとに設定した必要ノード数を満たすように、ジョブ実行とは非同期のタイミングで、停止状態にある通常ノード３００を、より復帰時間の短い停止状態、およびアイドル状態に状態変更をする[ノード数調整処理]。
【００９４】
図１１は、ノード数調整処理で、アイドル状態または停止状態レベルＬにｎ個の通常ノード３００を追加する場合の手順の一例を示すフローチャートである。なお、図１１では簡単化のため、アイドル状態を停止状態レベル０と記すものとする。
【００９５】
図１１に示すように、電源制御ノード決定部２３１は、停止状態レベルの高い順に、停止状態レベルｋ（ここでは停止状態レベル３）の通常ノード３００の数がｘ個（ここではｎ個）より小さいか否か判定する（ステップＳ３１、３２）。
【００９６】
停止状態レベルｋの通常ノード３００の数がｘ個より少ないと判断した場合には、電源制御ノード決定部２３１は、全ての停止状態レベルｋの通常ノード３００を停止状態レベルＬに変更する（ステップＳ３３）。そして、電源制御ノード決定部２３１は、ｘの値をｘ−通常ノード３００数（停止状態レベルｋ）とし、停止状態レベルが高い順に停止状態レベルＬに至るまで、ステップＳ３２、３３の処理を繰り返す（ステップＳ３４、３５、３６）。その後、電源制御ノード決定部２３１は、ノード調整処理を完了する。
【００９７】
一方、停止状態レベルｋの通常ノード３００の数がｘ個以上であると判断した場合には、電源制御ノード決定部２３１は、停止状態レベルｋの通常ノード３００のうちのｘ個を停止状態レベルＬに変更する（ステップＳ３７）。その後、ノード電源制御部２３０は、ｘの値を０とし（ステップＳ３８）、ノード調整処理を完了する。
【００９８】
図１１に示す手順により、より高い停止状態レベルにある通常ノード３００のうちのｎ個の通常ノード３００を停止状態レベルＬに移行させることができる。なお、停止状態にある通常ノード３００を、より低い停止状態レベルに移行させる場合には、例えば、復帰命令によりアイドル状態に復帰させ（例えば図７に示される）、復帰応答受信後に、停止命令により停止状態に停止させる（例えば図１０に示される）。
【００９９】
ノード数調整処理が実施されるタイミングは任意であるが、例えば最後に電源制御要求（停止命令や復帰命令）が発行されてから所定期間後にノード数調整処理を実施するというタイミングをとることが望ましい。
【０１００】
以上が本実施形態における分散システムの説明である。このような形態をとることにより、本発明による分散システムは、ノードを停止状態に移行させることで分散システム全体の消費電力を抑制しながらも、負荷が大きくなった時には、復帰の早い停止状態レベルの低いノードから順に復帰させてタスク実行させることで、処理性能の低下を抑制することができる。
【０１０１】
なお、本発明による分散システムは、本実施形態に限定されるわけではなく、下記のような変更も可能である。
【０１０２】
上記実施形態の分散システムでは、通常ノード３００では、同時に１つのタスクしか実行できない例について説明したが、複数のタスクを同時に実行できてもよい。その場合、タスク配置情報では、割り当て中のタスクを全て管理する必要がある。また、タスク配置決定部２２２がタスクの配置を決定する際には、起動中のノードで実行中タスク数の少ないノードにタスクを多く配置するタスク配置決定方法をとることもできる。
【０１０３】
以上の記載は実施形態に基づいて行ったが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更を加えることができる。
【０１０４】
次に、本発明による分散システムの最小構成について説明する。図１２は、分散システムの最小の構成例を示すブロック図である。図１２に示すように、分散システムは、最小の構成要素として、通常動作状態への復帰時間が異なる複数の省電力状態を有する通常ノード１０と、ジョブを通常ノード１０に割り当てて実行させる管理ノード２０とを備えている。また、管理ノード２０は、ノード選択手段２１と、ノード制御手段２２とを含む。
【０１０５】
図１２に示す最小構成の分散システムでは、ノード選択手段２１は、省電力状態にある通常ノード１０からジョブを割り当てて実行させる通常ノード１０を選択する。ここで、ノード選択手段２１は、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノード１０から順に選択する。そして、ノード制御手段２２は、ノード選択手段２１が選択した通常ノード１０を通常動作状態に復帰させるように制御する。
【０１０６】
従って、最小構成の分散システムによれば、ノードを停止状態に移行させることで分散システム全体の消費電力を抑制しながらも、負荷が大きくなった時には、復帰の早い停止状態レベルの低いノードから順に復帰させてタスク実行させることで、処理性能の低下を抑制することができる。
【０１０７】
なお、本実施形態では、以下の（１）〜（７）に示すような分散システムの特徴的構成が示されている。
【０１０８】
（１）分散システムは、通常動作状態（例えば、実行状態やアイドル状態）への復帰時間が異なる複数の省電力状態を有する通常ノード（例えば、通常ノード３００によって実現される）と、ジョブを通常ノードに割り当てて実行させる管理ノード（例えば、管理ノード２００によって実現される）とを備え、管理ノードは、省電力状態にある通常ノードからジョブを割り当てて実行させる通常ノードを選択するノード選択手段（例えば、タスク配置決定部２２２および電源制御ノード決定部２３１によって実現される）と、ノード選択手段が選択した通常ノードを通常動作状態に復帰させるように制御するノード制御手段（例えば、電源制御ノード決定部２３１によって実現される）とを含み、ノード選択手段は、複数の省電力状態のうちの通常動作状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に選択することを特徴とする。
【０１０９】
（２）分散システムにおいて、通常ノードは、演算処理を実行するプロセッサと、情報を記憶するメモリおよび不揮発性の記憶装置とを少なくとも搭載し、移行可能な省電力状態として、プロセッサの電源のみ停止する第１の省電力状態（例えば、停止状態レベル１）と、演算のコンテキストをメモリに保存し、メモリ以外の給電を停止する第２の省電力状態（例えば、停止状態レベル２）と、演算のコンテキストを不揮発性の記憶装置に保存し、全ての給電を停止する第３の省電力状態（例えば、停止状態レベル３）との３種類の省電力状態とを少なくとも含み、ノード選択手段は、省電力状態にある通常ノードからタスクを実行させる通常ノードを選択する際に、第１の省電力状態にある通常ノード、第２の省電力状態にある通常ノード、第３の省電力状態にある通常ノードの順に優先して選択するように構成されていてもよい。
【０１１０】
（３）分散システムは、電源制御手段（例えば、電源制御部３４０によって実現される）とタスク実行手段（例えば、タスク実行部３２０によって実現される）とを備える通常ノード（例えば、通常ノード３００によって実現される）と、ジョブの実行命令を受け付けるジョブ受信手段（例えば、ジョブ受信部２１０によって実現される）と、ジョブ受信手段が受け付けたジョブを１つまたは複数のタスクに分解し、１台または複数台の通常ノードにタスクを実行させるジョブ管理手段（例えば、ジョブ制御部２２０によって実現される）と、通常ノードの電源状態を管理制御するノード電源制御手段（例えば、ノード電源制御部２３０によって実現される）とを備える管理ノード（例えば、管理ノード２００によって実現される）とを備えた分散システムであって、電源制御手段は、省電力状態中の消費電力と省電力状態から通常起動状態に復帰する時間とがそれぞれ異なる複数段階の省電力状態に通常ノードを移行させる機能と、省電力状態にある通常ノードを通常起動状態に復帰させる機能とを有し、ジョブ管理手段は、管理ノードが受け付けたジョブの量に応じて、ジョブを分解したタスクを実行させる通常ノード数を決定し（例えば、ジョブ分解部２２１とタスク配置決定部２２２が処理を実行することによって実現される）、ノード電源制御手段は、通常ノードのうち通常起動状態にありタスク実行が可能な通常ノード数が、ジョブ管理手段が決定したタスクを実行させる通常ノード数に満たない場合に、複数段階の省電力状態のうちの１つ以上の状態にある通常ノードから、タスクを実行させる通常ノード数を満たすだけ通常ノードを選択する起動ノード選択機能を有し、起動ノード選択機能において、複数段階ある省電力状態のうちの通常起動状態に復帰するまでの時間が短い省電力状態にある通常ノードから順に、通常起動状態に復帰させる通常ノードとして選択し、選択した通常ノードに対して、通常起動状態への移行を指示する命令である起動命令を発行し（例えば、電源制御ノード決定部２３１が処理を実行することによって実現される）、ジョブ管理手段は、通常ノードのうち通常起動状態にありタスク実行が可能な通常ノードと、ノード電源制御手段が発行した起動命令に従って通常起動状態に復帰した通常ノードとに対してタスクの実行を指示するタスク実行命令を発行し、タスク実行手段は、ジョブ管理手段が発行したタスク実行命令に従ってタスクを実行することを特徴とする。
【０１１１】
（４）分散システムにおいて、通常ノードは、演算処理を実行するプロセッサと、情報を記憶するメモリおよび不揮発性の記憶装置とを少なくとも搭載し、電源制御手段は、制御する省電力状態として、プロセッサの電源のみ停止する第１の省電力状態（例えば、停止状態レベル１）と、演算のコンテキストをメモリに保存し、メモリ以外の給電を停止する第２の省電力状態（例えば、停止状態レベル２）と、演算のコンテキストを不揮発性の記憶装置に保存し、全ての給電を停止する第３の省電力状態（例えば、停止状態レベル３）との３種類の省電力状態とを少なくとも含むように構成されていてもよい。
【０１１２】
（５）分散システムにおいて、ノード電源制御手段は、通常起動状態に復帰させる通常ノードを、第１の省電力状態にある通常ノードから選択し、次に、第２の省電力状態にある通常ノードから選択し、次に、第３の省電力状態にある通常ノードから選択するように構成されていてもよい。
【０１１３】
（６）分散システムにおいて、ノード電源制御手段は、タスク実行が完了した通常ノードを、複数段階の省電力状態のうちのいずれかの状態に移行させることを決定し、通常ノードに対し、決定した省電力状態への移行を指示するノード停止命令を発行するように構成されていてもよい。
【０１１４】
（７）分散システムにおいて、ノード電源制御手段は、タスク実行が完了した通常ノードに対してノード停止命令を発行するにあたり、各省電力状態ごとに予め設定された所定数に満たない省電力状態のうち、通常起動状態に復帰するまでの時間が短い省電力状態に移行させることを決定するように構成されていてもよい。
【０１１５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１１６】
（付記１）ノード電源制御手段は、省電力状態にある通常ノードのうち、通常起動状態に復帰するまでの時間が短い省電力状態にある通常ノード数が所定数以下のときに、通常起動状態に復帰するまでの時間が長い省電力状態にある通常ノードのうちの１つまたは複数を、前記通常起動状態に復帰するまでの時間が短い省電力状態に移行させることを決定し、決定した移行対象の通常ノードに対して復帰命令を発行し、該通常ノードが通常起動状態に復帰後に、該通常ノードに対して、ノード停止命令を発行する請求項３から請求項７のうちのいずれか１項に記載の分散システム。
【０１１７】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１８】
この出願は、２０１１年２月２日に出願された日本特許出願２０１１−０２０９４９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１１９】
本発明に係る分散システムは、分散コンピュータや分散データベース、分散ストレージ、並列データ処理システム、並列ファイルシステム、並列データベース、データグリッド、クラスタコンピュータに適用することができる。
【符号の説明】
【０１２０】
１０  通常ノード
２０  管理ノード
２１  ノード選択手段
２２  ノード制御手段
１００  クライアントノード
２００  管理ノード
２１０  ジョブ受信部
２２０  ジョブ制御部
２２１  ジョブ分解部
２２２  タスク配置決定部
２２３  命令通知部
２３０  ノード電源制御部
２３１  電源制御ノード決定部
２４０  記憶部
３００  通常ノード
３１０  通信部
３２０  タスク実行部
３３０  復帰命令受信部
３４０  電源制御部
【図１】
2012105230.tif 000003
【図２】
2012105230.tif 000004
【図３】
2012105230.tif 000005
【図４】
2012105230.tif 000006
【図５】
2012105230.tif 000007
【図６】
2012105230.tif 000008
【図７】
2012105230.tif 000009
【図８】
2012105230.tif 000010
【図９】
2012105230.tif 000011
【図１０】
2012105230.tif 000012
【図１１】
2012105230.tif 000013
【図１２】
2012105230.tif 000014
【国際調査報告】
2012105230.tif 000015
2012105230.tif 000016