分散フレームワークAlice上のMeta Computationとその応用

概要

Aliceに動的トポロジーを管理する機能とMeta Computationを追加した。

画面共有システムTreeVNCをAliceを用いて実装することでAliceに実用的なアプリケーションを記述する能力を確認した。


研究の背景と目的

分散プログラムには信頼性とスケーラビリティが必要である。

その両方を兼ね備えたアプリケーションの作成は容易ではない。

マシンがメニコア化しているため分散プログラムにも並列性が求められる。

これら全てを兼ね備えた分散プログラムの記述をサポートするフレームワークがAliceである。

Aliceの計算モデル

AliceはデータをData Segment、タスクをCode Segmentという単位に分割してプログラミングを行う。

実用的なアプリケーションに必要な機能

Aliceの基本機能でアプリケーションを記述できることは確認された。

一方で実用的なアプリケーションには

というものが求められる。

実際のアプリケーションではノードの切断や接続が不定期に起こる。

Meta Computation

Meta ComputationはComputationを支えるComputationである。

AliceのComputationはkeyによりData Segmentを待ち合わせてCode Segmentを実行することである。

Data Segmentの待ち合わせを行う、Code Segmentを実行をするためにはAlice自身が必要である。

従って、AliceのMeta ComputationはAliceと言える。

Meta Computationの実装

今回新しく実装したMeta Computationは

RingTopologyによる評価

改善効果をRingTopologyの例題により計測した。

リングトポロジーを構成し、Messageが100周する時間を計り、1周あたりの平均時間を求めた。

先行研究であるFederated Lindaも比較した。

RingTopologyの測定結果

赤の実線が改善後のAlice、青の破線が改善前のAliceそして緑の点線がFedLindaである。

改善後は改善前と比べ12%性能が向上した。Federated Lindaと同等の性能を持つ

bitonic sortによる評価

改善効果をbitonic sortの例題により計測した。分割数は4つで行った。

改善前改善後
実行時間(ms)164.8112.1

改善後は改善前と比べ32%性能が向上した。

TreeVNCとAliceVNCとの比較

共有画面システムであるTreeVNCとTreeVNCAlice上で実装したAliceVNCをコードの量から比較した

行数単語数
TreeVNC504914191
AliceVNC
989
2355

Aliceを使うことで記述するソースコードを80%減らすことができる

実験の考察

結論

本研究ではAliceに動的なトポロジーの対応機能とMeta Computationの追加を行った。

その結果、画面共有システムであるTreeVNCをAlice上で実装することができた。

Aliceの性能改善を行った結果、リングの実験では12%、sortの例題では32%性能を改善できた。

Aliceに実用的なアプリケーションを記述する能力があることを確認できた。

今後の課題

AliceVNCとTreeVNC

TCP_NODELAYとTCP_DELAYとの比較

TCP_DELAYはパケットを送信する際に小さいパケットを送るのではなく、まとめて大きいパケットとして送る手法。飛び交うパケットを減らすことで通信効果を向上させる