(57)【要約】【課題】グリッドコンピューティングの処理能力を確保しつつ消費電力を低減する。【解決手段】複数の計算ノード１〜Ｎの状態（休眠中，実行中又は実行待ち）を特定するための計算ノード状態テーブル２０Ａを有する管理サーバ１０において、状態テーブル更新部３０が各計算ノード１〜Ｎを監視して所定時間ごとに計算ノード状態テーブル２０Ａを更新する。また、増加速度測定部４０が、所定の測定時間ｂに亘って各計算ノード１〜Ｎを監視し、その間に実行中となった計算ノードの増加速度ｄを測定する。そして、計算ノード管理部５０が、測定時間ｂと計算ノードを実行待ち状態へと移行させる移行時間ａとを加算した加算値に増加速度ｄを乗算した乗算値、及び、計算ノード状態テーブル２０Ａを参照して計数した実行待ち状態となっている計算ノードの計数値に基づいて、計算ノード１〜Ｎを休眠状態又は実行待ち状態に変化させる。【選択図】図１
2010186255.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算ノードにジョブを割り振って実行させると共に、前記各計算ノードに関連付けてその状態が休眠中，実行待ち及び実行中のいずれかであるかを特定するための計算ノード状態テーブルを記憶した記憶部を有する管理サーバに、
前記各計算ノードを監視し、前記計算ノード状態テーブル更新する状態テーブル更新部と、
所定の測定時間に亘って前記各計算ノードを監視し、その間に実行中となった計算ノードの増加速度を測定する増加速度測定部と、
前記測定時間と前記計算ノードの休眠状態から実行待ち状態への移行時間とを加算した第１の加算値に前記増加速度を乗算した第１の乗算値、及び、前記計算ノード状態テーブルを参照して計数した実行待ちとなっている計算ノードの計数値に基づいて、前記計算ノードを実行待ち状態から休眠状態、又は、休眠状態から実行待ち状態に変化させる計算ノード管理部と、
を実現させるためのグリッドコンピューティングの管理プログラム。
【請求項２】
前記計算ノード管理部は、前記第１の乗算値に対して所定の余裕値を加算した第２の加算値及び前記計数値に基づいて、前記計算ノードを実行待ち状態から休眠状態、又は、休眠状態から実行待ち状態に変化させることを特徴とする請求項１記載のグリッドコンピューティングの管理プログラム。
【請求項３】
前記管理サーバに、前記増加速度測定部により測定された増加速度が正であるときの増加速度の平均値を演算し、前記余裕値として、前記平均値に前記移行時間を乗算した第２の乗算値を設定する余裕値設定部を更に実現させることを特徴とする請求項１又は請求項２に記載のグリッドコンピューティングの管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グリッドコンピューティングの処理能力を確保しつつ消費電力を低減する技術に関する。
【背景技術】
【０００２】
ネットワークを介して複数のコンピュータを結び付けることで、仮想的な高性能コンピュータシステムを構築するグリッドコンピューティングという技術がある。グリッドコンピューティングでは、処理要求に係るジョブを各コンピュータに割り振って分散処理を行うことで、処理能力の向上を図っている。また、グリッドコンピューティングにおいては、ジョブが振り分けられるコンピュータを「計算ノード」と呼び、計算ノードにジョブを振り分けるなどの管理を行うコンピュータを「管理サーバ」と呼んでいる。
【０００３】
ところで、グリッドコンピューティングでは、計算ノードにジョブが割り振られていないときでも、その計算ノードが常に動作している「実行待ち状態」になっているため、その分の消費電力が無駄になってしまう。そこで、ジョブが割り振られていない計算ノードを「休眠状態」にする一方、ジョブが割り振られた計算ノードの休眠状態を解除することで、消費電力の低減を図った技術が提案されている。ここで、「休眠状態」とは、サスペンドやハイバネーションなどのスリープ状態になることをいう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−９１２５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、計算ノードを休眠状態から実行待ち状態まで移行（覚醒）させるにはある程度の移行時間を要するため、計算ノードにジョブを割り振ってからその休眠状態を解除すると、ジョブの実行が開始されるまでに時間がかかってしまう。このため、従来提案技術では、消費電力の低減が可能であるものの、処理能力の低下を来たしてしまうおそれがあった。
【０００６】
そこで、従来提案技術の問題点に鑑み、計算ノードに割り振るジョブの増減傾向を予測し、計算ノードの休眠状態を先行して解除しておくことで、処理能力を確保しつつ消費電力を低減した技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
このため、複数の計算ノードに関連付けてその状態が休眠中，実行待ち及び実行中のいずれかであるかを特定するための計算ノード状態テーブルを記憶した記憶部を有するサーバが、次のような状態テーブル更新部，増加速度測定部及び計算ノード管理部を備えるようにする。状態テーブル更新部は、各計算ノードを監視して計算ノード状態テーブルを更新する。増加速度測定部は、所定の測定時間に亘って各計算ノードを監視し、その間に実行中となった計算ノードの増加速度を測定する。そして、計算ノード管理部は、測定時間と計算ノードの移行時間とを加算した第１の加算値に増加速度を乗算した第１の乗算値、及び、計算ノード状態テーブルを参照して計数した実行待ちとなっている計算ノードの計数値に基づいて、計算ノードを休眠状態又は実行待ち状態に変化させる。
【発明の効果】
【０００８】
このようにすれば、所定の測定時間の間に測定された計算ノードの増加速度に基づいて、計算ノードを休眠状態から実行待ち状態に覚醒させる時点においてジョブ実行に必要となる計算ノードの数が予測される。そして、計算ノードの予測値と実行待ちとなっている計算ノードの計数値とに基づいて、計算ノードが実行待ち状態から休眠状態、又は、休眠状態から実行待ち状態へと変化される。即ち、計算ノードに割り振るジョブが増加傾向にあるときには、計算ノードの休眠状態を先行して解除しておく一方、計算ノードに割り振るジョブが減少傾向にあるときには、実行待ちとなっているすべての計算ノードを休眠状態へと変化させる。従って、計算ノードに割り振るジョブの増減傾向に応じて計算ノードの状態が変化することから、グリッドコンピューティングの処理能力を確保しつつ消費電力を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】グリッドコンピューティングの第１実施形態を示すシステム構成図
【図２】計算ノード状態テーブルの説明図
【図３】状態テーブル更新処理のフローチャート
【図４】計算ノード管理処理のフローチャート
【図５】増加速度ｄ＞０，測定時間ｂ＞移行時間ａ及び余裕値ｙ＝０であるときの計算ノードの管理状態を示す説明図
【図６】増加速度ｄ＞０，測定時間ｂ＜移行時間ａ及び余裕値ｙ＝０であるときの計算ノードの管理状態を示す説明図
【図７】グリッドコンピューティングの第２実施形態を示すシステム構成図
【図８】余裕値設定処理のフローチャート
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照して本発明を詳述する。
図１は、グリッドコンピューティングの第１実施形態を示す。
グリッドコンピューティングは、複数の計算ノード１〜Ｎと、計算ノード１〜Ｎに処理要求に係るジョブを割り振って実行させる少なくとも１つの管理サーバ１０と、を含んで構成される。
【００１１】
管理サーバ１０には、計算ノード１〜Ｎの状態を特定するための計算ノード状態テーブル２０Ａと、制御因子たる各種定数を定義した定数定義テーブル２０Ｂと、が夫々記憶されるハードディスクドライブなどの記憶部２０が備えられる。なお、記憶部２０としては、ハードディスクドライブに限らず、ＳＳＤ（Solid State Drive），ＥＥＰＲＯＭ（Electrically Erasable programmable Read Only Memory）などの公知の記憶装置を利用することができる。計算ノード状態テーブル２０Ａには、図２に示すように、計算ノード名に関連付けて計算ノードの状態、即ち、休眠状態であることを示す「休眠中」、実行待ち状態であることを示す「実行待ち」、及び、ジョブ実行中であることを示す「実行中」のいずれかが設定される。また、定数定義テーブル２０Ｂには、計算ノード１〜Ｎを休眠状態から実行待ち状態まで移行させるのに要する移行時間ａ[秒]、実行中状態となる計算ノードの増加速度ｄ[ノート゛/秒]を測定する測定時間ｂ[秒]、及び、余裕値ｙ[ノート゛]が任意に書換可能に設定される。ここで、余裕値ｙは、実行すべきジョブが一時的に急増したときに、実行待ち状態の計算ノードが不足することを回避するためのマージンを確保するものであって、管理者がシステム運用状態などに応じて適宜設定する。
【００１２】
管理サーバ１０は、ハードディスクなどにインストールされたグリッドコンピューティングの管理プログラム（以下「管理プログラム」という）を実行することで、状態テーブル更新部３０，増加速度測定部４０及び計算ノード管理部５０を夫々具現化する。ここで、管理プログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなどのコンピュータ読取可能な記録媒体に格納されている。
【００１３】
状態テーブル更新部３０は、計算ノード１〜Ｎを監視し、所定時間ごとに計算ノード状態テーブル２０Ａを更新する。増加速度測定部４０は、定数定義テーブル２０Ｂに設定された測定時間ｂに亘って計算ノード１〜Ｎを監視し、その間に実行中状態となった計算ノードの増加速度ｄを測定する。なお、実行中状態となった計算ノードが減少するときには、計算ノードの増加速度ｄは負の値をとる。計算ノード管理部５０は、計算ノード状態テーブル２０Ａ及び定数定義テーブル２０Ｂを参照し、計算ノード１〜Ｎに割り振るジョブの増減傾向を予測し、その予測結果に応じて計算ノード１〜Ｎを休眠状態又は実行待ち状態にする。
【００１４】
図３は、管理プログラムが実行されたことを契機として、状態テーブル更新部３０が所定時間ごとに繰り返し実行する状態テーブル更新処理のフローチャートを示す。
ステップ１（図では「Ｓ１」と略記する。以下同様）では、状態テーブル更新部３０が、各計算ノード１〜Ｎの状態（休眠状態，実行待ち状態又は実行中状態）を取得する。
【００１５】
ステップ２では、状態テーブル更新部３０が、各計算ノード１〜Ｎの状態に基づいて、計算ノード状態テーブル２０Ａにおいて計算ノード名に関連付けられた状態を更新する。
かかる状態テーブル更新処理によれば、状態テーブル更新部３０が所定時間ごとに計算ノード状態テーブル２０Ａを更新する。このため、計算ノード状態テーブル２０Ａには、計算ノード１〜Ｎの最新の状態が記録されることとなる。なお、システム管理者は、管理サーバ１０の処理能力，移行時間ａ，測定時間ｂなどに応じて所定時間を適宜設定すればよい。
【００１６】
図４は、管理プログラムが実行されたことを契機として、増加速度測定部４０及び計算ノード管理部５０が協働して繰り返し実行する計算ノード管理処理のフローチャートを示す。
【００１７】
ステップ１１では、増加速度測定部４０が、定数定義テーブル２０Ｂに設定された測定時間ｂ[秒]に亘って各計算ノード１〜Ｎを監視し、その間に実行中状態となった計算ノードの増加数[ノート゛]を求める。なお、実行中状態となった計算ノードが減少したときには、増加数は負の値をとる。
【００１８】
ステップ１２では、増加速度測定部４０が、増加数[ノート゛]を測定時間ｂ[秒]で除算することで、単位時間当たりに実行中状態となる計算ノードの増加数を表す増加速度ｄ[ノート゛/秒]を演算する（増加速度ｄ＝増加数／測定時間ｂ）。そして、増加速度測定部４０は、計算ノード管理部５０に対して増加速度ｄを出力する。
【００１９】
ステップ１３では、計算ノード管理部５０が、計算ノード状態テーブル２０Ａを参照して、計算ノード名に関連付けられた状態が「実行待ち」となっている計算ノードの数（計数値）を計数する。
【００２０】
ステップ１４では、計算ノード管理部５０が、計算ノードが休眠状態から実行待ち状態に覚醒する時点において、ジョブ実行に必要となる計算ノードの数を予測する。具体的には、計算ノード管理部５０が、定数定義テーブル２０Ｂを参照して測定時間ｂ，移行時間ａ及び余裕値ｙを読み出し、その測定時間ｂ，移行時間ａ，余裕値ｙ及び増加速度ｄを「（ｂ＋ａ）×ｄ＋ｙ」という予測式に代入して予測値を演算する。
【００２１】
ステップ１５では、計算ノード管理部５０が、計数値が予測値未満であるか否かを判定する。そして、計算ノード管理部５０が、計数値が予測値未満であれば処理をステップ１６へと進める一方（Ｙｅｓ）、計数値が予測値以上であれば処理をステップ１７へと進める（Ｎｏ）。
【００２２】
ステップ１６では、計算ノード管理部５０が、「予測値−計数値」の計算ノードを休眠状態から実行待ち状態へと移行させる。なお、計算ノードが実際に覚醒するのは、移行時間ａが経過した後である。
【００２３】
ステップ１７では、計算ノード管理部５０が、「計数値−ＭＡＸ（予測値，０）＋ｙ」の計算ノードを実行待ち状態から休眠状態へと休眠させる。ここで、ＭＡＸ（予測値，０）は、予測値と０（ゼロ）との大きい値を選択する関数などを示す。
【００２４】
かかる計算ノード管理処理によれば、増加速度測定部４０が、測定時間ｂの間に実行中状態となった計算ノードの増加速度ｄを求める。そして、計算ノード管理部５０が、増加速度ｄにより把握されるジョブの増減傾向を考慮し、計算ノードを休眠状態から実行待ち状態に覚醒させる時点においてジョブ実行に必要となる計算ノードの数を予測する。また、計算ノード管理部５０が、計算ノード状態テーブル２０Ａを参照して実行待ち状態になっている計算ノードの数を計数し、この計数値と予測値とに基づいて、計算ノードを実行待ち状態又は休眠状態に適宜変化させる。
【００２５】
従って、計算ノードに割り振るジョブが増加傾向にあるときには、図５及び図６に示すように、計算ノードの休眠状態を先行して解除し、実行中状態及び実行待ち状態の計算ノードが階段状に増加するようになる。一方、計算ノードに割り振るジョブが減少傾向にあるときには、実行待ち状態となっているすべての計算ノードが休眠状態へと変化される。このため、計算ノードに割り振るジョブの増減傾向に応じてその状態が変化することから、グリッドコンピューティングの処理能力を確保しつつ消費電力を低減することができる。
【００２６】
ところで、グリッドコンピューティングの実際の運用においては、管理者が想定した以上に実行すべきジョブが一時的に急増することがある。この場合、管理者が設定した余裕値ｙが適切なものでないと、実行待ち状態の計算ノードが不足してしまうおそれがある。そこで、次のように、グリッドコンピューティングの実際の運用状況から余裕値ｙを自動的に設定するようにし、実行待ち状態の計算ノードが不足し難くするようにしてもよい。
【００２７】
図７は、運用状況から余裕値ｙを自動的に設定するようにした、グリッドコンピューティングの第２実施形態を示す。なお、第２実施形態は、先の第１実施形態と大部分が共通するので、共通構成については同一符号を付すことで、その説明を省略又は簡略化するものとする。
【００２８】
管理サーバ１０には、図１の第１実施形態の構成に加え、増加速度測定部４０から出力された増加速度ｄに基づいて、定数定義テーブル２０Ｂに記憶された余裕値ｙを自動的に設定する余裕値設定部６０が備えられる。なお、余裕値設定部６０は、管理サーバ１０が管理プログラムを実行することで、具現化される。
【００２９】
図８は、増加速度測定部４０から増加速度ｄを受け取ったことを契機として、余裕値設定部６０が実行する余裕値設定処理のフローチャートを示す。
ステップ２１では、余裕値設定部６０が、増加速度ｄが正、即ち、実行すべきジョブが増加する状況にあるか否かを判定する。そして、余裕値設定部６０が、増加速度ｄが正であれば処理をステップ２２へと進める一方（Ｙｅｓ）、増加速度が０又は負であれば処理を終了させる。
【００３０】
ステップ２２では、余裕値設定部６０が、増加速度ｄの平均値を演算する。増加速度ｄの平均値を演算する手法としては、例えば、順次記憶した増加速度ｄから平均値を求めたり、増加速度ｄの積算値及びその積算数から平均値を求めたりすることができる。
【００３１】
ステップ２３では、余裕値設定部６０が、定数定義テーブル２０Ｂに記憶された余裕値ｙに平均値を設定（上書き）する。
かかる余裕値設定処理によれば、余裕値設定部６０が、グリッドコンピューティングの実際の運用に応じて余裕値ｙを自動的に設定する。このため、グリッドコンピューティングの実際の運用に応じたマージンが確保され、実行待ち状態の計算ノードが不足し難くすることができる。
【符号の説明】
【００３２】
１〜Ｎ  計算ノード
１０    管理サーバ
２０    記憶部
２０Ａ  計算ノード状態テーブル
２０Ｂ  定数定義テーブル
３０    状態テーブル更新部
４０    増加速度測定部
５０    計算ノード管理部
６０    余裕値設定部
【図１】
2010186255.tif 000003
【図２】
2010186255.tif 000004
【図３】
2010186255.tif 000005
【図４】
2010186255.tif 000006
【図５】
2010186255.tif 000007
【図６】
2010186255.tif 000008
【図７】
2010186255.tif 000009
【図８】
2010186255.tif 000010