急きょ計算機を停めないと!?計算を中断・再開できる仮想マシンのススメ

出典: トータル・ディスクロージャ・サイト(事実をありのままに)

目次

ある学生の研究生活にて...

  • 先生「あー、○○分子の○○計算してるそうだけど、明日はマシン停めてね」
  • 学生「え!?先生、おとといから計算させてて、明日までに計算が終わらないかもしれないんですけど・・・」
  • 先生「停電だから、有無を言わさず停まるよ」
  • 学生「そんなー・・・僕の3日間が無に・・・」
  • 先生「(ぅーん、なんとかならんのか?)」

このように、高性能計算につきものの長時間計算では、何らかの要因で計算機の停止を避けられない場合があります。 停めた後に最初から計算をやり直すと、停めるまでの計算が無に帰してしまうため、計算機の費用対効果が下がってしまいます。 計算機の停止をはさんでも計算を続行できる方法はないものでしょうか。

HPCシステムズのご提案

弊社のご提案の一つは、サーバの仮想化ソリューション、エミュレータ等で知られている仮想マシン(VM)技術を適用することです。それにより、計算の中断・再開を可能にいたします。

コラム:仮想マシンとは

仮想マシンとは、簡単に言うと、物理計算機上でシミュレーション実行されている仮想的な計算機(OS)です。 シミュレーションのある時点で変数の値をファイルに書き出しておけば、後でその時点からシミュレーションを 再開できるように、仮想マシン技術では、仮想的な計算機を任意の時点で一時停止(サスペンド)させ、 後で再開(リジューム)させることができます。エミュレータで言うところの「どこでもセーブ」「どこでもロード」 にあたります。

VM上の高性能計算の検証実験 2010/4

仮想マシン上での高性能計算で気になるのは、VMによる計算性能へのオーバーヘッド。 さらに、サスペンドとリジュームに要する時間も実用面では重要になってきます。 また、近年あたりまえになっているマルチコア並列への対応も必要です。

実験環境

  • 無料で利用でき、最大 8-way のマルチコアに対応しているVMソフトウェアである、技術情報の豊富な VMware ESXi 4 を用いました。
  • ゲストOSは弊社で多く採用している CentOS 4.7 Final x86_64 を使用しました。
  • ゲストOSのメモリサイズは 1GB に設定しました。
  • HDD には SEAGATE ST3808110AS(容量:80GB、回転数:7200rpm、キャッシュ:8MB、インターフェイス:Serial ATA II300)を用いました。
  • 実用アプリケーションとしては、CPU処理が実行時間の大部分を占める Gaussian03 Rev. E01 test397 ベンチマークを用いました。

Gaussian test397 を VM 上で

VMによる実行時間の延び

VMを用いない場合(native)に比べて、VMに載せたとき(on ESXi4 without suspend)での計算時間を調べました。 クアッドコアのIntel Xeon W3520を用いたため、4core まで使用できますので、逐次(%nproc=1),SMP2並列(%nproc=2),SMP4並列(%nproc=4) の場合を測定しました。 グラフ中の +?.??% は、native に対する on ESXi4 without suspend の実行時間伸び率です。

ファイル:397onvm1.JPG

最大 +2.43% のオーバーヘッドで計算できました。

1回サスペンド&リジュームをはさんだ場合

1回サスペンド&リジュームをはさんだとき(on ESXi4 1suspend)での、計算時間を調べました。 グラフ中の +?.??% は、native に対する on ESXi4 1suspend の実行時間伸び率です。

ファイル:397onvm2.JPG

結果、1回サスペンド&リジュームをはさんだ場合、最大 +3.46%(4コア時) のオーバーヘッドで計算できました。 サスペンド&リジュームをはさむことでオーバーヘッドが現れることについては、 リジューム時にゲストOSが(メモリ内容を復元しながら動き始めるためか?)スロースタートとなることが挙げられます。 つまり、on ESXi4 1suspend の計算時間にはリジューム時間を含みます。

一方、サスペンドに要する時間は次のとおりでした(vSphere Clientのイベントログから算出しました)。

表1. サスペンドに要する時間
1node 1core 1node 2core 1node 4core
19秒 19秒 20秒

したがって、コア数によらず20秒程度でサスペンドできました。 実際にはサスペンド時間もユーザにとってのコストとなりますので、サスペンド時間を加えたグラフを次に載せます。

ファイル:397onvm3.JPG

計算精度

1core, 2core, 4core のいずれの場合も、native と on ESXi4 without suspend と on ESXi4 1suspend の実行結果は(実行日時以外は)全て一致していましたので、計算精度には全く遜色ありませんでした。

結論

定常時であれば +2.43% のオーバーヘッド、1回サスペンド&リジュームをはさんでも +5.38% のオーバーヘッドで、計算機停止をはさんでも計算を続行できるという機能を実現していることがわかりました。

このオーバーヘッドであれば、計算機停止に対応できるというメリットを考えれば十分許容できる範囲と言えます。このように、VMを用いた方法は、少ないオーバーヘッドで計算機停止をはさんでも計算を続行できるという機能を実現できることがわかりました。

今後の課題

  • サスペンド時間はゲストOSのメモリ量に応じて変化しますので、その検証も引き続き行ってまいります。

お問い合わせ

本稿の仮想マシンソリューションにご興味がおありの方は、トータルディスクロージャーサイトのサポート係へ、件名に「先端技術開発 仮想マシン」という言葉を入れてメールでお問い合わせください。

ヒロちゃん 2010年4月13日 (火) 07:57 (JST)


目次

この記事へのコメントをお寄せください

  • サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください
  • トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
  • あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
  • コメントを書き込む場合は名前にひらがなを織り交ぜてください。
  • あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

<comments hideform="false" />


Comments

村上弘 said ...

単なる興味からの質問です。

マルチノードの複数の仮想計算機上や、シングルノードでも 複数の仮想計算機上でクラスタ並列計算を行っている場合に、 サスペンドとレジュームができる機能をサポートしている そのような連携性を提供している仮想マシンソフト環境や、 方法はあるだろうか?

--村上弘 2010年5月12日 (水) 09:48 (UTC)

ヒロちゃん said ...

ご質問ありがとうございます。

公開されているものは少なく、おおむね研究レベルのものばかりでございますが、サスペンドとレジュームを備えたMPIシステムがございます。 大雑把に申し上げますと、今回取り上げました1ノードのサスペンド(チェックポイント)レジューム(リスタート)機能に、ネットワーク上を流れているパケットも保存して再現する機能を加える、という手法になります。

Fault tolerant MPI というキーワードで多くの研究が見つかります。

--ヒロちゃん 2010年5月14日 (金) 01:07 (UTC)

個人用ツール