icde2015 勉強会 新井担当分

10
ICDE2015勉強会 Multicore Triangle Computations Without Tuning J. Shun (CMU) & K. Tangwongsan (Mahidol U., Thailand) 新井 淳也 NTT 1

Upload: junya-arai

Post on 16-Apr-2017

63 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ICDE2015 勉強会 新井担当分

ICDE2015勉強会

Multicore Triangle Computations Without Tuning

J. Shun (CMU) & K. Tangwongsan (Mahidol U., Thailand)

新井 淳也

NTT

1

Page 2: ICDE2015 勉強会 新井担当分

概要

• 並列 triangle counting アルゴリズムの提案• 厳密アルゴリズムと、それを拡張した近似アルゴリズムの2つ

• 近似アルゴリズムの話は割愛

• Cache-oblivious

• CPU キャッシュサイズやキャッシュラインサイズを与えなくても効率的にキャッシュを使用できる

• 並列度やキャッシュミス回数を理論的に分析

• 約60億エッジのグラフの処理を厳密解なら1.5分以下、近似解なら10秒以下で完了• 物理40コア× Hyper-Threading のマシンを使用

• 近似解の誤差は0.4%

2

Page 3: ICDE2015 勉強会 新井担当分

Triangle Counting

• グラフに含まれる三角形を数える

•数えるとグラフの性質が分かる (cf. クラスタ係数)

3

三角形は2つ

Page 4: ICDE2015 勉強会 新井担当分

Latapy のアルゴリズム

•逐次処理で良い性能を示すことが知られているtriangle counting アルゴリズム

4※図は論文から引用

Page 5: ICDE2015 勉強会 新井担当分

Latapy のアルゴリズム

•隣接頂点間で隣接頂点の積集合を求める

5

𝐴+[𝑣] は 𝑣 の隣接頂点集合

intersect(𝐴+[0], 𝐴+[3]) = {1}

intersect(𝐴+[4], 𝐴+[3]) = {1}

• intersect の実装は2通り考えられる: merge-based, hash-based

• 論文では両方分析・評価しているが、このスライドでは merge-based のみ説明

※図は論文から引用

Page 6: ICDE2015 勉強会 新井担当分

提案アルゴリズム

実行時の挙動を Parallel Cache Complexity モデルで分析

6

1. 並列化:parallel for

※並列化のための変更はこれだけ

Sort

2. Cache-oblivious なアルゴリズムで基本的操作を実装

Filter

Scan

Sort & merge

※図は論文から引用

Page 7: ICDE2015 勉強会 新井担当分

Parallel Cache Complexity モデル

•用語• Work: 操作の数

• Depth: クリティカルパスの長さ

• Cache complexity: キャッシュミスの回数

•基本的な並列操作

7

Work Depth Cache complexity

scan 𝑂(𝑛) 𝑂(log 𝑛) scan(𝑛) = 𝑂(𝑛

𝐵)

filter scan と同じ (scan を用いて実装可能)

sort 𝑂(𝑛 log𝑛) 𝑂(log3/2 𝑛) sort(𝑛) = 𝑂(𝑛

𝐵log𝑀/𝐵

𝑛

𝐵)

merge 𝑂(𝑛 + 𝑚) 𝑂 log 𝑛 +𝑚 scan(𝑛 + 𝑚)

Page 8: ICDE2015 勉強会 新井担当分

挙動の分析

8

Sort𝑂(𝑉 log𝑉) work, 𝑂(log3/2 𝑉) depth,

𝑂 sort 𝑉 cache misses

隣接リストへのアクセス𝑂(𝑉) cache misses

配列アクセス𝑂(𝐸) work & cache misses

Filter𝑂(𝐸) work, 𝑂(log𝐸) depth, scan(𝐸) cache misses

Scan𝑂(𝐸) work, 𝑂(log𝐸) depth, 𝑂 scan 𝐸 cache misses

Sort & merge (merge-based intersection)𝑂 𝐸 log𝐸 + 𝑂(𝐸3/2) work, 𝑂 log3/2 𝐸 + 𝑂 log𝐸 depth,

𝑂 sort 𝐸 + 𝑉 + 𝑂 𝐸3/2 𝐵 cache misses

アルゴリズム全体では 𝑶(𝑬𝟑/𝟐) work, 𝑶 log𝟑/𝟐 𝑬 depth, 𝑶 𝑬 + 𝑬𝟑/𝟐 𝑩 cache misses

※図は論文から引用

Page 9: ICDE2015 勉強会 新井担当分

評価• スケーラビリティ: 40コア×HT 環境で逐次性能比 22~50x 高速化

• 既存手法より高速• 逐次性能の比較では1~2倍、並列性能の比較では2~9倍

9

既存逐次アルゴリズム

既存並列アルゴリズム

並列分散処理基盤

提案手法

※図は論文から引用

Page 10: ICDE2015 勉強会 新井担当分

10