分散システムの 大規模シミュレーション · 大規模化 •...

17
分散システムの 大規模シミュレーション 首藤 一幸, 華井 雅俊, 杉野 好宏 東京工業大学

Upload: others

Post on 03-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散システムの大規模シミュレーション

首藤一幸,  華井雅俊,  杉野好宏東京工業大学

Page 2: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散システムの大規模シミュレーション

•自律分散システム / peer‐to‐peer を数十億ノード規模でシミュレートする。

• 貢献:シミュレータ構成法

•これまで– PC 1台で 200万ノード (Chordなどの DHT アルゴリズム)

•SimGrid (INRIA), Overlay Weaver (首藤)

•現時点– PC 10台で1億ノード (Gnutella の flooding)

•我々のシミュレータ (杉野, 華井, 首藤) Overlay Weaver

Page 3: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

研究対象の規模•今日の分散システム:1千万ノード

•実験できない!→ネットは大丈夫?•今後: Internet of Things, M2M で数百億

1千万

BitTorrent DHT

Page 4: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

研究対象の規模 (cont’d)

• DYPOP:  Datacenter beside Your telco‐POP– 2011~2012年度NICT 受託研究。理研 (小林), IIJ, 東工大 (首藤)。

PaaS(アプリケーションをホスト)

コンテンツ配信

省電力代理応答

IaaS / 仮想マシンモニタ

仮想マシン基盤資源管理・発見

アクセス網クラウド

エッジノード

資源管理・発見 機構 ホスティング 機構

その他アプリ

エッジへのオフロード

軽量仮想化

コンテンツ資源管理・発見

– アクセス回線を集約する局舎にサーバを置く。DCを分散化。

コンテナ DC

光のアクセス回線数2千万

(写真:あきみちさん)

Page 5: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレーション• 分子, 天体, 流体, 気象, 交通, …,分散システム, …• (空間的)シミュレーション単位間の相互作用を計算し、時間発展させていく– 単位: 粒子, 分割された空間の代表点, ノード– 相互作用: 力, 車の出入り, 通信

•単位時間あたりの影響範囲を限定しない。汎用。大変。– オーバレイ / P2P→全ノード間で通信

Page 6: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

大規模化• 前提:イベント駆動 (event driven) シミュレーション

– 規模の制約は、メモリ容量– 1台の限界を越えようとするなら…

•規模の向上:分散化•かつ、進行速度を一定以上に保つ

– 対象が分散システムなら、実時間より1~2桁遅い程度まで?– 分散化すると、非常に遅くなる!

• dPeerSim:47秒→ 1時間 6分,Chord 32万ノード

– 同期のせい。 シミュレート対象

空間

時間

Page 7: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散化の方針 (1):時刻管理•楽観的な時刻管理:Time Warp [TOPLAS 1985]

– ⇔悲観的

ノード 1

ノード 2

ノード 3

同期悲観的:イベントのたびに同期が要る

楽観的(Time Warp)• まあいいや、と投機的に受信処理してしまう。

• 同期回数が大幅減。• 後でなんとかする:rollback, anti-message, global sync.

Page 8: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散化の方針 (2):ソフトの構成•スケールさせるために、耐故障性が欲しい。

– 数十台~数千台→故障が日常茶飯事•例:MTBF 15,000時間の PC が 24時間稼働10台 98.4%, 100台 85.3%, 500台 44.9%, …

•自分達で作り込むのは、非常に大変。

•汎用の分散処理システムを活用– Hadoop MapReduce– 分散グラフ処理系

• 耐故障の機能(再実行等)

• 動作実績• 世界中• 4,500台

• ソフトウェアの成熟

Page 9: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散化の方針 (2):ソフトの構成•汎用の分散処理システムを活用

– MapReduce 処理系, 分散グラフ処理系, …

汎用分散処理システム(MapReduce, グラフ処理系, …)

分散システム シミュレータ

OverlayWeaver 向けの分散アルゴリズム

実装

API 適応ライブラリ

PCクラスタ,スーパーコンピュータ …

peer-to-peerアルゴリズム,脳/交通網/経済/…モデル

~ 数千台

アプリケーション

シミュレータ

研究・開発対象

Page 10: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散化の方針 (2):ソフトの構成•汎用の分散システム上での課題 & 解決

1. 分散システム(ノードと通信)のモデル化?→ひと工夫で、できた (省略)

2. Bulk Synchronous Parallel (BSP) 並列処理モデルでの時刻の取り扱い?→ Time Warp で解決意外とマッチ

BSP モデル(画像:Wikipedia より)

時間

Page 11: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレータの現状• MapReduce版 by 杉野

– MapReduce: Apache Hadoop を使用– Gnutella の flooding をシミュレート10台で 1億ノード

•分散グラフ処理系版 by 華井– グラフ処理系: Pregel [SIGMOD 2010] にならった自前実装– DHT アルゴリズム Chordをシミュレート10台で 10万ノード

– シミュレーションシナリオを読み込み、実行。– アプリ実装のための API を提供。主に送受信。

Page 12: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレータの動作• MapReduce 版:複雑ネットワーク上の flooding

1 2 3 4 5 6 7010203040506070

100,000ノード10,000ノード1,000ノード100ノード

データ発見時のホップ数

発見件数

– ノード数に対して、ホップ数が対数的に増加– すべての探索が成功

スモールワールド性妥当な シミュレーション結果

Page 13: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレータの動作• 分散グラフ処理系版:DHT アルゴリズム Chord でのホップ数

妥当な シミュレーション結果Chord 論文の図の上にプロット

Page 14: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレーション性能• MapReduce 版

1 2 3 4 5 6 7 8 9 1002004006008001,0001,2001,4001,6001,800 1,000,000ノード

100,000ノード10,000ノード1,000ノード

計算機台数

実行時間(sec)

– 台数に応じて、時間短縮•この性能はどうなのか?これ以上の規模は?

– Hadoop起因のオーバヘッド→高速化の余地

Better

Page 15: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

シミュレーション性能•分散グラフ処理系版

Strong Scaling10,000ノード / 1~7台

Weak Scaling10,000ノード / 台

Better

– 良好にスケール•この性能はどうなのか?これ以上の規模は?

Page 16: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

時刻管理アルゴリズム•楽観的な時刻管理で、同期回数が大幅に減

0 5 10 15 20 25

保守的手法

楽観的手法iterationの平均時間(sec)

0 500 1,000 1,500 2,000 2,500

保守的手法楽観的手法

平均実行時間 (sec)

× 86.8 回

× 14.2 回

大幅な実行時間 減

Page 17: 分散システムの 大規模シミュレーション · 大規模化 • 前提:イベント駆動(event driven) シミュレーション – 規模の制約は、メモリ容量

分散システムの大規模シミュレーション•自律分散システム / peer‐to‐peer を数十億ノード規模でシミュレートしたい

•1億ノードのシミュレート (PC 10台) ができた– 従来の2桁上– うまくいきそう

•今後– 高速化, 大規模化– 他の応用– ネットワークの綿密なシミュレート