地球の未来を支えるHPCシステムズのSGN(スマートグリッドネットワーク)

HPCクラスタ節電ソリューション(HPCESS)

HPCESS ~High Performance Computation Energy Saving Solution~

HPCクラスタは大きな電力を消費しますが、フル稼働状態になっていない場合も多く見受けられます。稼動状態でないアイドリングしているコンピュータは無駄に電力を消費していますが、これまでは放置されてきました。HPCESSはアイドリングしているコンピュータを自動的に検出し、電力を消費しないよう停止させます。計算が増えてきたら、停止しているコンピュータを自動的に立ち上げ、計算に参加させます。また、HPCESSは消費電力を最小限に抑えるように、計算をするコンピュータを適切に選択します。1台のコンピュータに少ない計算しかさせない場合、計算時間は短くなりますが、電力効率(仕事量/消費電力)は低くなります。反対に、1台のコンピュータに多すぎる計算をさせると、電力効率が上限になりますが、計算時間が異常に長くなります。HPCESSは計算時間をできるだけ長くしないで、電力効率を最適化します。一般にHPCクラスタの平均稼働率が低いほうが、節電効果は大きく見込めます。平均稼働率が100%(常にフル稼働)の場合は、同一ハードウェアでは節電はできません。以下に節電効果の試算の一例を紹介します。
■ HPCESSによる節電効果の試算
  • 平均稼働率90%の場合 ⇒ 7%節電可能、計算時間は1.03倍に延びる。
  • 平均稼働率80%の場合 ⇒ 14%節電可能、計算時間は1.06倍に延びる。
  • 平均稼働率70%の場合 ⇒ 21%節電可能、計算時間は1.09倍に延びる。
  • 平均稼働率60%の場合 ⇒ 29%節電可能、計算時間は1.12倍に延びる。
  • 平均稼働率50%の場合 ⇒ 37%節電可能、計算時間は1.14倍に延びる。
  • 平均稼働率40%の場合 ⇒ 46%節電可能、計算時間は1.16倍に延びる。
  • 平均稼働率20%の場合 ⇒ 66%節電可能、計算時間は1.19倍に延びる。
  • 平均稼働率10%の場合 ⇒ 78%節電可能、計算時間は1.19倍に延びる。

平均稼働率が0%の場合、言うまでもありませんが、常に電源を切ることで100%の節電が可能になります。アプリケーションの性質や稼動状態の違いで、上記と同じになるとは限りませんが、同様の傾向になるものと推定されます。

ポイントは「アイドリングストップ」

アイドリングストップ、という言葉を聞いたことがない人は少ないでしょう。自動車やオートバイの停止中にエンジンを止めることを意味し、無駄な燃料消費と二酸化炭素の排出を抑え、地球温暖化を防止する効果があるとされています。アイドリングとは、車は走っていないが、いつでも動かせるようにエンジンが待機している状態をいいます。昔は長時間アイドリング状態のままにしておくこともありましたが、アイドリング時の排気ガスによる大気汚染が問題となり、「アイドリングストップ運動」が広まることとなりました。近年では、自動でアイドリングストップを実行する機能を搭載した自動車も販売されています。このアイドリング、自動車やオートバイにだけ存在しているわけではありません。実はコンピュータにも、アイドリングと呼ばれる状態があるのです。車と同様に、電源は入っているけれども、何の仕事もしていない待機状態。それが、コンピュータのアイドリングです。コンピュータがアイドリング時にどの程度の電力を使っているか計測してみると、何の仕事もしていないにも関わらず、フル稼働時のおよそ30%から40%の電力を消費していることが分かります。これは大きな無駄と言えます。この数値は、最新のコンピュータで測定した結果であり、古いコンピュータになると、この無駄はもっと大きなものとなります。車の場合、アイドリング時にエンジンを切ることで、排気ガスを削減できますが、コンピュータの場合は、アイドリング状態からスリープ状態に変えることで、消費を削減できます。アイドリング状態で、フル稼働時の30%から40%を占めていた消費電力は、スリープ状態になると数%程度にまで抑えることができるのです。アイドル状態も、スリープ状態も、何の仕事もしていないのはどちらも同じです。コンピュータでも、自動車と同様にアイドリングストップ――コンピュータが何もしていないときにスリープ状態にする――を実行すれば、無駄な消費電力を大幅に削減できることがおわかりいただけるのではないかと思います。

HPCESSはシミュレーション用コンピュータの節電対策にも有効

さて、大量の電力を消費するコンピュータの使い方として、コンピュータ・シミュレーションがあります。たとえば毎日テレビで目にする天気予報も、コンピュータによるシミュレーションで予測が行われています。処理するデータ量が膨大なシミュレーションには、コンピュータは1台だけでなく、何百台、何千台も必要となります。この複数のコンピュータはネットワークでつながれており、そのネットワーク全体を、英語で「房」を意味するクラスタという単語を用い、コンピュータ・クラスタと呼びます。では、このコンピュータ・クラスタの消費電力を抑えることは可能でしょうか?「房」を形作るコンピュータの中に、アイドル状態のコンピュータがあれば、スリープ状態にすることによって大幅に消費電力を削減できることは、上に記したとおりです。つまり、この問いは、コンピュータ・クラスタはアイドリングしているか?と言い換えることができます。アイドリングしているのであれば、消費電力は削減できます。コンピュータ・クラスタでは、全てのコンピュータが常時フル稼働しているとは限りません。たとえばここで、平均稼働率が50%のコンピュータ・クラスタについて考えてみましょう。この場合、半数のコンピュータが動いており、残り半分のコンピュータが動いていない(=アイドル状態にある)のかというと、そうではありません。なぜなら、1台のコンピュータの中には、計算を行う装置が複数備えられているからです。平均稼働率が50%のコンピュータ・クラスタでは、全てのコンピュータが、それぞれに備えられている計算装置の半数を動かして計算しています。100人が協力して仕事をしていると考えると、100人全員が、全力を出し切ることなく、50%の力で働いているのです。なぜこのような方法をとるのかというと、100%の力を出し切る、つまり全ての計算装置を使うと、コンピュータの性能が若干落ちてしまうからです。すると、シミュレーションを終えるまでの時間が多少長くなってしまいます。100人全員が仕事をしているので、このとき、何もしていない人間はいません。つまり、アイドル状態にあるコンピュータはないといえます。となると、コンピュータ・クラスタでは、アイドリングストップを行い消費電力を削減することは無理、となってしまいます。しかし、仕事のやり方を変えることで、アイドル状態のコンピュータを生み出すことができます。100人全員が同時に仕事にとりかかるのではなく、50人が全力を出して仕事を行い、残り50人には、何もさせずに休んでいてもらうのです。仕事の総量は変わりません。この休んでいる50人が、アイドル状態のコンピュータです。1台のコンピュータになるべく多くの計算を行わせ、アイドル状態のコンピュータを多く生み出します。そして、そのアイドル状態のコンピュータをスリープさせることで消費電力を大幅に抑えるのです。先に触れたとおり、この方法をとるとコンピュータの性能はわずかに落ちてしまいますが、得られる電力削減の効果に比べれば、性能低下はわずかであるといえます。東日本大震災以降、電力が不足し、節電の必要性が叫ばれています。多少の性能を犠牲にしても、アイドリングストップを優先し、消費電力の削減と、地球に優しい運用方法を考えてみてはどうでしょうか。

ジョブスケジューラを上手に活用してムダな電力を大幅カット!

コンピュータ・クラスタを有効に使うためには、ジョブスケジューラが必要になります。ジョブとは、コンピュータにさせる仕事の単位であり、ジョブスケジューラは、「ジョブをいつ行うか」ということを前もってセットして自動でジョブを実行できる、ジョブ管理システムの1機能です。ジョブスケジューラでは、例えば、ジョブAを開始する時刻や、ジョブAが正常終了したらジョブBを実行するなどの設定ができます。ジョブAが異常終了した場合に、そのままジョブBをするのか、それともジョブBは未実行のままにするのか、などということを決めることもできます。10台のコンピュータで構成されているクラスタがあるとします(分かりやすくするため、すべてのコンピュータは1コアとします)。11のシミュレーションを実行したい場合、コンピュータが1台足りません。するとジョブスケジューラは、11個目のシミュレーションの実行を停めておき、他の10個のシミュレーションのどれか1つが終わったら、空いたコンピュータにすかさず11個目のシミュレーションを実行させる、といったことができるのです。コンピュータ・クラスタにはジョブスケジューラが欠かせません。もしジョブスケジューラがなかったら、空いているコンピュータを人間が探し、手動でジョブを実行させなければいけなくなります。何百台、何千台とあるコンピュータの"房"の中から空いているコンピュータの"粒"を探し出すのはとても大変です。本当は1時間前にすでに空いていたのに、見つけるまで時間がかかってしまい、その1時間を無駄にしてしまう、といったことが起こりえます。さらに、空きが生じるまで延々と待っている必要もあります。人間とは違い、コンピュータは24時間動き続けます。空きが生じるのは夜中になるかもしれません。無人で作動するジョブスケジューラがあれば、夜中だろうと、早朝だろうと、いつでもコンピュータに空きが生じ次第、すぐさまジョブを実行させることができます。ジョブスケジューラには、どういう順番でジョブをコンピュータに投入していくか、管理する人間が自由に指示を出すことができます。まったく何もしていないコンピュータに対し、新たに要求が来たジョブを実行させる、というのが従来の普通のやり方でした。しかし現在は事情が異なり、消費電力を削減する、という新たな必要性が生じています。では、ジョブスケジューラの機能をうまく活かし、コンピュータ・シミュレーションの消費電力を削減するにはどうすればいいのでしょうか。
ジョブスケジューラは、「どのコンピュータが空いているか」、「どのコンピュータでどういうジョブが流れているか」を常に監視・把握しています。つまり、まったくジョブが流れていないコンピュータがあれば、ジョブスケジューラならすぐに見つけ出すことができるのです。そのような何もしていないコンピュータをすべてスリープさせてしまえば、無駄な電力使用を抑えることができます。消費電力を抑えるためには、これまでの、1台のコンピュータで実行するジョブの数を最小限に抑える、という優先順位とは全く逆に、できるだけ1台のコンピュータにジョブを詰め込む、という方法でジョブスケジューラに指示を出すのが望ましいといえます。全く使っていないコンピュータにはジョブを流さず、スリープさせておき、コアが1個でも空いているコンピュータがあれば、そのコンピュータにジョブを流す、という優先順位です。スリープさせているコンピュータの台数を常に最大にするのです。そして、コアに空きのあるコンピュータがなくなったら、スリープさせているコンピュータのスリープを解除し、ジョブを投入します。
これまでのジョブスケジューラに、「何もしていないコンピュータをすべてスリープさせる」「コアに空きのあるコンピュータがなくなったらスリープを解除する」という新たな機能を2つ付け加え、ジョブを投入する順番をこれまでとは逆の、「できるだけ1台のコンピュータにジョブを詰め込む」やり方にします。この3つだけで、無駄に消費する電力を大幅にカットすることができるのです。
検証記録:
※詳細は以下のフォームからお問合せください。
お問い合わせ先

HPCシステムズ株式会社
〒108-0022
東京都港区海岸3-9-15
LOOP-X8階
TEL:03-5446-5531
FAX:03-5446-5550

関連リンク