2010年1月28日木曜日

クラウド環境を利用した Elastic なデータストリーム処理の実現

 さて、卒論生はあと卒論作成と発表が待っていますが、いろいろ来年度のことを考えていきたいと思います。まず、以下の研究テーマに取り組む準備をしていきましょう。

「クラウド環境を利用した Elastic なデータストリーム処理の実現」

 松浦君の現在の研究テーマは、有限セットの計算資源を「ストリーム処理」と「バッチ処理」の2つを状況に応じて動的に負荷分散し、資源の有効活用を目標とした研究です。本研究では「この有限セット」という縛りがなく、クラウド環境を利用すれば事実上、処理をこなすために必要な計算資源を必ず確保できるという前提のもとに(しかし性能は確保されない)、Elastic なデータストリーム処理機構のを実現を目指します。

この研究テーマを遂行するにあたって必要な作業項目を列挙します。

[作業項目]

System S 用クラウド環境の構築
  • クラウド環境 Eucalyptus の鈴村研究室への構築 (GSIC の滝澤さんなどやクラウド研究会の講演でのインストール苦労体験談もあったので、それも参考にする)
  • ハイパーバイザー (KVM/Xen) 上に CentOS 5.2 をインストールし、System S を稼動させ、他ノードで動作することを確認
性能評価、オーバーヘッドの確認
  • ハイパーバイザーの起動までの時間
  • ハイバーバイザー上の System S のオーバーヘッドの調査: ハイパーバイザー上での System S の性能評価。いくつかのアプリケーション(計算は軽いがネットワークに負荷がかかる VWAP (Volume Weight Average Price) 、計算負荷が高い DNA マッピングのストリーム処理)をターゲットに、どのぐらいの性能オーバーヘッドがあるかを調査
Elastic データストリーム処理の実装手法の考案
  • クラウド環境 Eucalyptus を構築: ここでは Amazon のようなレイテンシが比較的大きなものを仮定しているので、Eucalyptus との環境もネットワークシミュレータ ns2 のようなものを使って擬似的にバンド幅及び高レイテンシを実現する必要がある

  • クラウド環境のノードの nodepool への追加機構の実装: 到着データレートとレイテンシを監視し(ここは松浦君のモジュールを使用)、自分の計算資源で間に合うかどうかを精査。必要であったら、必要な数だけクラウド環境の VM イメージを立ち上げる。 System S の場合、~/bin/streams_get_available_hosts というコマンド (自作してもよい)から特定のフォーマットに従えばよいので、そのコマンドをクラウドの VM ノードも用いるような実装にすればよい。ただし、これは、ジョブのサブミット時にしか有効ではなく、ランタイムに動的にノードを増やすことはできないので、仕組みが必要。

  • クラウド環境に対してノード追加・削除のコントロールを出す UDOP の (REST API をたたくだけ?): libvert という VMM を統一的に利用できる C バインディングがあるので、それを用いればできる。

  • 負荷分散アルゴリズムの考案: VM のオーバーヘッドが許容できない場合(予備実験によってある程度のオーバーヘッドは予測できる)、一部の処理を VM なしのノードで実行し、レイテンシが許容できる場合には VM ありのノードに割り振るようなスケジューリング方式を考案(←ここが一番大事)
本研究の貢献
  • VMM の起動オーバーヘッドを加味した投機的な VMM 立ち上げ(タプル数や、時間的な周期がある場合には事前に立ち上げる)
  • VMM に対するレイテンシを考慮した負荷分散アルゴリズム

性能評価のメトリックス
  • レイテンシがどれくらい守れたか?
  • VMMの起動オーバーヘッド

関連研究との違い

  • 研究の評価は、新規性、実現性、Novelty(進歩性、革新性)が挙げられるが、前者の2つは容易に満たされる。最後の進歩性が客観的な指標がではないためなかなか難しいが、チャレンジする問題が非常に難しく、かつ実装自体も困難でかつ苦労したことが評価されれば良い。
  • 参考になる論文は鈴村が調べる

0 件のコメント:

コメントを投稿