研究

最近の更新履歴

ストリームコンピューティングとは

1. 背景

近年、センサーデバイス技術やネットワーク技術の発達、IT システムの高度化に伴って、リアルタイムに大量のセンサーデータを取得できる時代が到来している。科学技術計算や産業界においてこれらの高速なデータ処理の需要が高まっており、以下のような様々な応用領域での適応の検討されている。

産業界における情報爆発

携帯電話(GPS センサーや通話記録データ)、車載に搭載される通信機器 、SUICAや PASMO などの IC 乗車券、RFID タグ、Twitter などによるマイクロブログのテキスト情報は、センサーと見立てることができ、これらのセンサーデータを用いた新たなビジネス創造、顧客分析、マーケティン グ活用、ライフログへの活用が注目を浴びている。これらのデータは膨大になってきており、例えば、携帯会社では数千万人の携帯電話データを分析するのに半日以上かかるといわれる。

バイオインフォマティクス: 解析機器の高密度化による情報爆発

次世代 DNA シーケンサーから毎秒出力されるデータ量はムーアの法則を越える速度といわれている。また、X 線回折によるたんぱく質の立体構造解析では 高密度 CCD カメラから出力される画像データは、現在でも1枚 6 MB の画像が10枚であり、次世代機では 24枚の画像が1000枚出力される. このように、 解析機器の高密度化は加速しており、これらのデータを高速処理する IT の実行基盤が不可欠である。特に、次世代 DNA シーケンサーに関しては将来パーソナルゲノム時代が本格化した際に、患者が診察を受け、DNA 塩基配列を取得した同時に、異常の可能性のある SNP などが検索できると、より高度な医療をその日のうちに実現することが可能になる。

このように産業界と科学技術分野が扱うデータの性質こそ違うが、それらのデータ分析の時間が長大化していることが問題視されている。

2. ストリームコンピューティング

上記で掲げた大規模データ処理の高速化に対して、本研究室では、ストリームコンピューティング(又はデータストリーム処理, Data Stream Management System, DSMS)という計算パラダイムによって解決を行う。従来、大規模データ処理を処理するには、一般的には、Store-and-Processing、つまり、一旦データを格納して処理する方式を取ってきたが、ストリームコンピューティングでは、On-the-fly processing, つまり、データを受信した同時に逐次処理していく方式を取る。これによって、出来る限り、データの受信と同時に前処理もしくは本処理を施すことによって、 ディスクに格納されるデータを少なくするか、もしくは必要に応じて圧縮処理をリアルタイムに加えることによって、ストレージへの圧縮を防ぐことができる。 ストリームコンピューティングの基本的な概念はこの On-the-fly processing を基本とするが、本研究室では、このストリームコンピューティングのための汎用的なソフトウェア分散実行基盤、プログラミングモデル、更にその性能最適化手法を研究している。以下は、現在鈴村研究室で行っている研究テーマの一例である。

·  オンライン処理/オフライン処理の動的資源配置・クラウドの活用

本研究では、ストリーム処理(オンライン)とバッチ処理(オフライン)に割くリソースを動的に変化させることによって、システム全体の可用性を向上させる技術の研究開発を行っている。また、その発展研究として、クラウドリソースを用いて必要に応じて必要なだけデータストリーム処理に計算資源を割り当てる手法に関して研究も行っている(詳細は本研究室の公開論文を参考にしてください)

·  GPGPU を用いたストリームコンピューティング処理系の性能最適化

GPGPU (汎用的なグラフィックプロセッシングユニット)は科学技術計算において流体計算や行列演算などを中心にパフォーマンス向上に寄与するような研究があるが、DSMS への適用例はない。特に DSMS では、スループットだけでなく、機械学習による異常検知などレイテンシが重要視されており、CPU と GPU の通信オーバーヘッドを加味すると、GPU を用いて加速化できるかどうかは未知数である。ただし、今まで計算が重く、レイテンシが重要視される場面では扱えなかった機械学習のアルゴリズム(例えば、大きな行列サイズの特異値分解など)がリアルタイムに行える可能性がある。また、GPU と CPU をうまく組み合わせて実行することにより、CPU では非常にレイテンシクリティカルな計算を行い、そのバックグランド処理として、GPU 上で計算処理が重い学習アルゴリズムなどを実行させることもできる。

·  分散実行基盤の構築と拡張

実行時の最適化技術やジョブスケジューリング技術などを考案し、マルチコア・メニーコアや GPU など異機種混在環境から構成される大規模クラスタにおいて高いスケーラビリティを達成する実行基盤を構築する。また、実行基盤としては、既存の利用可能なストリームコンピューティングを実現するシステム(以下、データストリーム処理システム DSMS と省略する) (例: IBM System S) を拡張する形で行う。

·  過負荷時における結果精度の保証技術

Load Shedding 技術とは、ストリーム処理において、リソース(計算資源、ネットワーク資源)に対して処理が間に合わない場合に、処理を間引く技 術である。確率的に間引く手法が最も一般的な手法である。しかしながら、コールセンターにおけるオペレータのリアルタイムな非適切な発言の検知、動画カメ ラによる犯罪検知など、確率的に間引くのではなく、本質的にすべてのデータをリアルタイムに分析する必要があるアプリケーションが多数存在する。しかし、 DSMS を行う計算資源は有限であり、処理できない量のトラフィックが発生した場合には今までの Load Shedding 手法では見落とす可能性が高い。我々は処理が間に合わない場合には、SSD などの高速ストレージに一旦退避し、比較的データレートが低い時に SSD などの高速ストレージに間に合わない量だけを一端退避させておき、データレートが低いときに、その退避したデータに対して処理を加えることによって、多少 はレイテンシは犠牲にするが、結果の精度は保障する仕組みを構築する。