SlideShare a Scribd company logo
汎用グラフ処理モデル	
  GIM-­‐V	
  の	
  
複数GPUによる大規模計算と	
  
データ転送の最適化	
白幡 晃一*1,佐藤 仁*1,*3,鈴村 豊太郎*1,*2,*3,松岡 聡*1,*3,*4	
  
*1	
  東京工業大学	
  
*2	
  IBM	
  東京基礎研究所	
  
*3	
  科学技術振興機構	
  
*4	
  国立情報学研究所	
  
1
GPGPU	
  を用いた大規模グラフ処理	
•  大規模グラフの出現	
  
–  幅広い応用例	
  
ソーシャルネットワークに対する解析,道路ネットワークの	
  
経路探索,スマートグリッド,創薬,遺伝子解析	
  
–  数百万頂点〜数兆頂点,数億枝〜数百兆枝から	
  
なる超大規模なグラフ解析	
  
•  ex)	
  Facebook	
  ユーザ	
  8	
  億人以上,平均130人の友人	
  
   →	
  8	
  億頂点,1000	
  億枝	
  
•  ex2)	
  全米道路ネットワーク	
  →	
  2400万頂点,5800万枝	
  
 → 大規模グラフの高速処理が必要	
  
	
  
•  高速大規模グラフ処理手法	
  
–  MapReduce	
  
•  ペタバイト級の大規模データ処理	
  
•  自動的なメモリ階層の管理	
  
•  ストリームによるリアルタイム処理	
  
–  GPGPU	
  
•  スーパーコンピュータやクラウドに搭載	
  
•  コア数,メモリバンド幅の活用による高速処理	
  
	
  
2	
→ GPGPU を用いた MapReduce	
  型大規模グラフ 処理の高速化	
  
GPGPU	
  を用いた大規模グラフ処理に
おける問題点	
•  MapReduce	
  型汎用グラフ処理モデル
への	
  GPU	
  の適用	
  
GPU	
  の使用によりどの程度高速化できる
か明らかでない	
  
データ転送オーバーヘッド等の要因	
  
•  超大規模グラフへの対応	
  
–  複数	
  GPU	
  化	
  
CPU-­‐GPU	
  間,ノード間の通信による遅延	
  
通信量の削減が必要	
  
–  メモリあふれ	
  
GPU	
  は CPU	
  に比べメモリ容量が少ない	
  
–  ex)	
  TSUBAME2.0	
  (GPU	
  3GB,	
  CPU	
  54GB)	
  
–  CPU	
  メモリやローカルストレージの活用	
  
–  効率的なメモリ階層の管理	
  
3	
GPU	
  
メモリ	
CPU	
  
メモリ	
ディスク	
速度	
サイズ	
速
遅
小
大
解決法:	
  複数GPUによる大規模化と,	
  
グラフ分割によるデータ転送量の削減	
•  MapReduce	
  型汎用処理モデルへ
の	
  GPU	
  の適用による効果を調査	
  
既存実装との比較	
  
•  既存の	
  CPU	
  実装	
  
•  MapReduce	
  型でない最適化実装	
  
•  超大規模グラフへの対応方法	
  
–  複数	
  GPU	
  化によりメモリ量を増加	
  
データの割り振りによる通信量を削減	
  
解法の一つとして,前処理としてグラフ分割	
  
→	
  Shuffle	
  処理での転送量を抑制	
  
–  メモリではないローカルストレージも	
  
活用	
  
•  データをファイルシステムから次々に	
  
読み	
  GPU	
  へデータを転送	
  
•  最適なデータ配置のスケジューリング	
   4
解決法:	
  複数GPUによる大規模化と,	
  
グラフ分割によるデータ転送量の削減	
•  MapReduce	
  型汎用処理モデルへ
の	
  GPU	
  の適用による効果を調査	
  
既存実装との比較	
  
•  既存の	
  CPU	
  実装	
  
•  MapReduce	
  型でない最適化実装	
  
•  超大規模グラフへの対応方法	
  
–  複数	
  GPU	
  化によりメモリ量を増加	
  
データの割り振りによる通信量を削減	
  
解法の一つとして,前処理としてグラフ分割	
  
→	
  Shuffle	
  処理での転送量を抑制	
  
–  メモリではないローカルストレージも	
  
活用	
  
•  データをファイルシステムから次々に	
  
読み	
  GPU	
  へデータを転送	
  
•  最適なデータ配置のスケジューリング	
   5	
本発表
目的と成果	
•  目的	
  
大規模グラフ処理への複数	
  GPU	
  化とデータ転送量	
  
削減の有効性の検証	
  
•  成果	
  
– MapReduce	
  型汎用グラフ処理モデルの複数	
  GPU	
  に
よる高速化	
  
•  Map	
  は GPU	
  により	
  7.2	
  倍の高速化	
  
•  Sort,	
  Reduce	
  は性能改善の余地あり	
  
– メモリ内にデータが収まる場合の,グラフ分割の有効
性	
  
•  グラフ分割を行った場合にデータ転送量を	
  54	
  %	
  削減	
  
•  GPU	
  毎の負荷の不均衡によりグラフ処理の実行時間が増
加	
 6
背景	
7
既存の大規模グラフ処理システム	
•  PEGASUS	
  
–  Hadoop	
  ベースのグラフライブラリ	
  
–  GIM-­‐V	
  (Generalized	
  Iterated	
  
Matrix-­‐Vector	
  mulUplicaUon)	
  に	
  
よる計算	
  
•  反復行列ベクトル積の一般化	
  
–  頂点をベクトル,枝を隣接行列で表現	
  
•  典型的なグラフ処理を記述可能	
  
•  MapReduce	
  により記述可能	
  
	
  
→ GPU	
  の使用によりどれほど	
  
  高速化できるかは定かではない	
  
8	
=	
 ×G	
v’	
 M	
 v
大規模グラフ処理モデル	
  GIM-­‐V	
9	
*1	
  :	
  Kang,	
  U.	
  et	
  al,	
  “PEGASUS:	
  A	
  Peta-­‐Scale	
  Graph	
  Mining	
  System-­‐	
  ImplementaUon	
  	
  
and	
  ObservaUons”,	
  IEEE	
  INTERNATIONAL	
  CONFERENCE	
  ON	
  DATA	
  MINING	
  2009	
=	
 ×G	
v’i	
 mi,j	
vj	
v’	
 M	
combineAll	
combine2	
assign	
 v	
i	
j	
i	
•  Generalized	
  IteraUve	
  Matrix-­‐Vector	
  mulUplicaUon*1	
  
–  反復行列ベクトル積の一般化	
  
–  v’	
  =	
  M	
  ×G	
  v	
  	
  	
  where	
  
	
  v’i	
  =	
  assign(vj	
  ,	
  combineAllj	
  ({xj	
  |	
  j	
  =	
  1..n,	
  xj	
  =	
  combine2(mi,j,	
  vj)}))	
  	
  
	
  (i	
  =	
  1..n)	
  
•  上記3つの関数を実装することで,様々なグラフ処理を記述可能	
  
–  演算は収束するまで反復して実行	
  
–  GIM-­‐V	
  を 2	
  ステージの MapReduce	
  により記述可能	
  
→	
  既存の	
  GPU	
  向け MapReduce	
  フレームワーク(Mars)上に実装	
  
•  MapReduce-­‐1	
10	
MapReduce	
  による	
  GIM-­‐V	
  計算	
=	
 ×G	
vj	
v’	
 M	
 v	
combine2	
j	
j	
mi2,j	
mi1,j	
i1	
i2	
10	
=	
 ×G	
v’i	
vi	
v’	
 M	
combineAll	
assign	
 v	
j1	
i	
i	
j2	
mi,j2	
mi,j1	
•  MapReduce-­‐2
問題:	
  ノード間データ転送量の増加	
グラフが大規模化するほどノード間転送が増加	
  
– 大規模グラフを大規模計算環境を用いて処理	
  
→	
  大規模になるほどデータ転送量が増加	
  
– グラフ処理ではノード間をまたぐ枝の数	
  
(エッジカット)の大きさに依存	
  
→	
  グラフ分割を行い,エッジカット削減による最適化	
  
11	
Ein	
 Eout	
Eout	
 Ein
12	
提案
提案:	
  複数 GPU	
  による大規模化と,グラフ
分割によるデータ転送量の削減	
•  複数	
  GPU	
  の使用によりメモリ量を増加	
  
–  既存の	
  GPU	
  向け MapReduce	
  実装である Mars	
  
を	
  MPI	
  により複数	
  GPU	
  向けに改良	
  
•  複数 MapReduce	
  ステージの連結	
  
•  Shuffle	
  における全対全通信の実装	
  
•  収束判定	
  
–  複数 GPU	
  向け	
  GIM-­‐V	
  への	
  CPU-­‐GPU	
  間通信の
実装	
  
•  ノード間通信における	
  CPU-­‐GPU	
  通信の実装	
  
•  反復処理への	
  CPU-­‐GPU	
  間通信の実装	
  
•  グラフ分割による性能最適化	
  
–  クラスタごとにグラフを分割し,エッジカットの	
  
最小化によりノード間通信量を削減	
  
–  GIM-­‐V	
  の前処理として,GPU	
  の数に分割	
  
OSS	
  である	
  METIS	
  ライブラリを使用	
  
13
Mars	
  の構造	
•  Mars*1	
  :	
  既存の	
  GPU	
  用 MapReduce	
  フレームワーク	
  
–  Map,	
  Reduce	
  関数を	
  CUDA	
  カーネルとして実装	
  
•  GPU	
  のスレッド単位で	
  Mapper,	
  Reducer	
  を呼び出し	
  
•  Map/Reduce	
  Count	
  →	
  Prefix	
  sum	
  → Map/Reduce	
  の順に実行	
  
–  Shuffle	
  フェーズは	
  GPU	
  ベースの Bitonic	
  Sort	
  を実行	
  
–  Map	
  開始時に	
  CPU-­‐GPU	
  間の通信	
  
14	
Pre	
  
process	
Map	
  
Split	
Prefix	
  
Sum	
Map	
  
Count	
Map	
  
Count	
Map	
  
Map	
  
Sort	
Reduce	
  
Split	
Prefix	
  
Sum	
Reduce	
  
Count	
Reduce	
  
Count	
Reduce	
Reduce	
Map	
  Stage	
Reduce	
  Stage	
Shuffle	
  Stage	
GPU	
  Processing	
 Mars	
  Scheduler	
*1	
  :	
  Fang	
  W.	
  et	
  al,	
  “Mars:	
  AcceleraUng	
  MapReduce	
  with	
  Graphics	
  Processors”,	
  Parallel	
  and	
  Distributed	
  Systems,	
  2011	
→	
  Mars	
  を複数	
  GPU	
  による	
  GIM-­‐V	
  処理向けに改良	
  
複数	
  GPU	
  上への	
  GIM-­‐V	
  の実装	
Map	
 Sort	
Map	
 Sort	
Reduce	
Reduce	
GPU	
  Processing	
 Scheduler	
Upload	
  	
  
CPU	
  →	
  GPU	
Download	
  
GPU	
  →	
  CPU	
Download	
  
	
  GPU	
  →	
  CPU	
Upload	
  
CPU	
  →	
  GPU	
Mars	
  上への MPI	
  による	
  GIM-­‐V	
  のマルチノード実装	
  
–  複数の MapReduce	
  ステージを連続して実行	
  
•  反復の開始時と終了時に	
  CPU-­‐GPU	
  間の通信	
  
•  後処理で収束判定の計算	
  
–  Shuffle	
  でノード間通信	
  
•  MPI_Alltoallv	
  関数により全対全通信	
  
	
  CPU-­‐GPU	
  間の通信が発生	
  
•  各ノードがローカルソート	
  
–  収束判定	
  
•  各ノードがローカルに収束した頂点数をカウント	
  
•  MPI_Allreduce	
  関数により各ノードの収束した頂点数の合計を計算	
  
15
グラフ分割による性能最適化	
•  前処理としてグラフ分割	
  
–  クロネッカーグラフ	
  
•  SNS	
  などの現実世界のグラフの	
  
代表的なモデル	
  
•  スケールフリー性	
  
再帰的に大きなクラスタが現れる性質	
  
–  クラスタごとにグラフを分割し,エッジ
カットの最小化によりノード間データ
通信量を削減	
  
–  グラフ分割アルゴリズム	
  
	
  MulUlevel	
  k-­‐way	
  parUUoning	
  *1	
  
–  G	
  =	
  (V,	
  E)	
  に対し,O(|E|)	
  の時間計算量	
  
–  メッセージパッシングを用いる並列	
  
アルゴリズムも存在	
  
16	
*1	
  :	
  George	
  Karypis	
  and	
  Vipin	
  Kumar,	
  “MulUlevel	
  k-­‐way	
  ParUUoning	
  Scheme	
  for	
  Irregular	
  Graphs”,	
  	
  
Journal	
  of	
  Parallel	
  and	
  Distributed	
  CompuUng,	
  1998
•  OSS	
  である	
  METIS	
  を使用	
  
–  GPU	
  の数に一致させて分割	
  
–  各	
  GPU	
  は自分が担当する頂点番号データも保持	
  
Shuffle	
  時の通信は,各	
  GPU	
  が持つ頂点番号データに一致さ
せて頂点と枝を割り振り	
  
•  全ノードが並列で入力ファイルの読み込み	
  
–  グラフ分割の結果を各	
  GPU	
  が読み込み	
  
–  (グラフ分割を行わない場合)MPI-­‐IO	
  による並列読み
込み	
17	
グラフ分割の実装	
Graph	
  
ParUUon	
GIM-­‐V	
  Stage	
  1	
Read	
  
input	
  	
  	
GIM-­‐V	
  Stage	
  2	
Write	
  
output	
GPU	
  Processing	
 Scheduler	
Preprocess	
Convergence	
  
Test	
Postprocess	
GIM-­‐V
18	
評価
実験	
•  検証事項	
  
–  複数	
  GPU	
  による	
  GIM-­‐V	
  処理の高速化	
  
–  グラフ分割によるデータ転送量削減の有効性	
  
•  測定内容	
  
グラフ処理アプリの反復処理 1 ラウンドの平均時間を測定	
  
•  複数	
  GPU	
  によるスケーラビリティの測定	
  
•  CPU	
  版	
  Mars	
  との比較	
  
•  グラフ分割の有無による比較	
  
•  方法	
  
–  PageRank	
  アプリケーション	
  
ウェブページの重要度を決定	
  
–  入力データ	
  
•  クロネッカーグラフを人工的に生成	
  
Graph	
  500	
  の Generator	
  により生成	
  
•  パラメータ	
  
–  SCALE:	
  頂点数の	
  2	
  の対数	
  
–  辺の数 =	
  頂点数	
  ×	
  16	
  
19	
0.19	
 0.05	
0.57	
   0.19	
  
0.19	
   0.05	
  
i1 	
  j1	
  
i2 	
  j2	
  
…	
  
i2
x 	
  j2
x	
<key,	
  value>	
隣接行列	
格納する割合	
  
実験環境	
•  TSUBAME2.0	
  
–  CPU	
  6	
  コア	
  x	
  2	
  ソケット,24	
  スレッド	
  
(HyperThread	
  オン),GPU	
  3台	
  
–  GPU	
  
•  CUDA	
  Driver	
  Version:	
  4.0	
  
•  CUDA	
  RunUme	
  Version:	
  4.0	
  
•  Compute	
  Capability:	
  2.0	
  
•  共有/L1 キャッシュサイズ:	
  64	
  KB	
  
•  Mars	
  
–  Mars	
  GPU	
  
•  1ノード当たり	
  1GPUで実行	
  
•  スレッド数は異なる	
  key	
  の個数に等しい	
  
–  スレッドブロック当たり	
  256	
  スレッド	
  
–  Mars	
  CPU	
  
•  1	
  ノード当たり	
  1コアで実行	
  
•  CUDA	
  カーネルの代わりに	
  C	
  言語で実装	
  
•  Sort	
  はクイックソートを実装	
  
•  METIS	
  
–  CPU	
  1	
  コアを使用して実行	
  
20	
CPU	
 GPU	
種類	
 Intel®	
  Xeon®	
  X5670	
 Tesla	
  M2050	
  	
物理コア数	
 12	
 448	
周波数	
 2.93	
  GHz	
 1.15	
  GHz	
メモリ	
 54	
  GB	
 2.7	
  GB	
  (Global)	
コンパイラ	
 gcc	
  4.3.4	
 nvcc	
  3.2
21	
複数	
  GPU	
  の使用による	
  GIM-­‐V	
  処理
の高速化の検証
複数	
  GPU	
  によるスケーラビリティ	
•  ストロングスケールを測定	
  
SCALE=19	
  に固定	
  
22	
1	
  
10	
  
100	
  
GIM-­‐V	
  scaling	
  	
  
Ideal	
  scaling	
  	
  
•  ウィークスケールを測定	
  
1	
  GPU	
  当たり	
  SCALE=18	
  
良好なスケール	
32	
  GPU	
  以降はスケールしていない	
  
・データ転送時間の増加	
  
・Reduce	
  の実行時間が一定	
1	
  
10	
  
100	
  
Speed	
  up	
  [8mes]	
GIM-­‐V	
  scaling	
  
Ideal	
  Scaling	
  
Mars	
  GPU	
  と	
  Mars	
  CPU: 実行時間の比較	
•  Marsに対して,Map,	
  Sort,	
  Reduce	
  を	
  CPU	
  で実行する場合を比較	
  
128	
  ノードを使用	
  
1	
  
10	
  
100	
  
1000	
  
10000	
  
100000	
  
14	
   15	
   16	
   17	
   18	
   19	
   20	
   21	
   22	
   23	
   24	
   25	
   26	
  
Elapsed	
  Time	
  [ms]	
SCALE	
128GPU	
  
128CPU	
  
23	
GPU	
  の使用による優位性は見えていない	
  
→	
  Sort,	
  Reduce	
  が	
  GPU	
  を使用しても加速されていないため
24	
Mars	
  GPU	
  と	
  Mars	
  CPU:	
  実行時間の内訳	
•  高速化されている部分とされていない部分がある	
  
–  SCALE=25	
  で Map	
  フェーズは	
  7.2	
  倍高速	
  
–  Sort,	
  Reduce	
  は高速化されていない	
  
–  Map	
  のみ	
  GPU	
  を使用した場合,SCALE=25 で	
  1.12	
  倍の高速化	
  
•  Sort	
  の実装を改善する必要性	
  
–  Mars	
  の	
  Sort	
  実装の改良	
  
–  Radix	
  Sort	
  等のアルゴリズムの使用	
0	
  
1000	
  
2000	
  
3000	
  
4000	
  
5000	
  
6000	
  
7000	
  
8000	
  
14	
  15	
  16	
  17	
  18	
  19	
  20	
  21	
  22	
  23	
  24	
  25	
  14	
  15	
  16	
  17	
  18	
  19	
  20	
  21	
  22	
  23	
  24	
  25	
  
Elspsed	
  Time	
  [ms]	
SCALE	
  on	
  Mars	
  GPU	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  SCALE	
  on	
  Mars	
  CPU	
Reduce	
  
Sort	
  	
  
Copy	
  
Map	
  
25	
グラフ分割によるデータ転送量削減
による効果の検証
グラフ分割の有無による	
  GIM-­‐V	
  の比較	
•  前処理としてグラフ分割を行う場合と行わない場合を比較	
  
–  32	
  GPU	
  を使用	
  
1	
  
10	
  
100	
  
1000	
  
10000	
  
14	
   15	
   16	
   17	
   18	
  
Elapsed	
  Time	
  [ms]	
SCALE	
32GPU	
  
32GPU	
  with	
  METIS	
  
26	
グラフ分割により実行時間が増加	
  
→	
  GPU	
  毎の負荷が不均衡になり,同期を取る際に負荷が大きい  
GPU	
  の実行時間に律速されるため	
  
Shuffle	
  における	
  MPI	
  によるデータ転送時間	
•  MPI_Alltoallv	
  関数によるデータ転送部分の時間を測定	
  
–  グラフ分割により一定の効果	
  
最大	
  54	
  %	
  削減	
  
–  データ転送時間の全体に占める割合が小さい為,全体の実行時間に
は影響を与えていない	
  
•  TSUBAME2.0	
  ではネットワークバンド幅が大きいため	
  
•  しかし,将来的にはネットワーク性能がボトルネックになる可能性あり	
  
0	
  
5	
  
10	
  
15	
  
20	
  
25	
  
30	
  
35	
  
14	
   15	
   16	
   17	
   18	
   19	
  
Elapsed	
  Time	
  [ms]	
SCALE	
NO_CUT	
  32GPU	
  
METIS_CUT	
  32GPU	
  
27
実験のまとめ	
•  GIM-­‐V	
  の	
  GPU	
  による高速化	
  
–  複数	
  GPU	
  の使用によるスケーラビリティ	
  
•  ストロングスケール	
  
–  32	
  GPU	
  以上の場合にデータ転送量増加,Reduce	
  の実行時間が一定	
  
•  ウィークスケール	
  
–  64	
  GPU	
  まで良好なスケールを確認	
  
–  GPU	
  と	
  CPU	
  の性能比較	
  
•  現状では	
  Map	
  のみを GPU	
  で実行する場合が最適	
  
–  SCALE=25 で	
  1.12	
  倍の高速化	
  
–  Sort	
  はアルゴリズムの変更により改良される可能性	
  
–  Reduce	
  は高速化される場合とされない場合がある	
  
•  メモリ内にデータが収まる場合の,グラフ分割の有効性	
  
–  グラフ分割により	
  GPU	
  毎の負荷が不均衡になる現象	
  
–  分割によりデータ転送時間は 54%	
  削減	
  
28	
→	
  GPU,	
  CPU	
  の性能や通信量等を考慮した動的な自動	
  
  チューニングを行うことを検討
関連研究	
•  既存の大規模グラフ処理システム	
  	
  
–  Pregel*1	
  :	
  Master/Worker	
  モデルによるC++の実装	
  
Worker	
  毎に頂点を分担して計算	
  
–  Parallel	
  BGL*2	
  :	
  MPI	
  ベースの	
  C++	
  並列グラフ処理ライブラリ	
  
•  GPU,MapReduce	
  を用いたグラフ処理	
  
–  GPU	
  を用いて最短路問題を解くアルゴリズム*3	
  
幅優先探索,単一始点最短路問題を高速に計算	
  
–  Graph500	
  *4	
  のリファレンス実装に MapReduce	
  を用いた最短路問題
が公開される予定	
  
•  マルチ	
  GPU	
  上,マルチノード上での MapReduce	
  実装	
  
–  GPMR*5	
  :	
  既存のマルチGPU上での MapReduce	
  実装	
  
–  MapReduce-­‐MPI*6	
  :	
  MPI	
  を使用した MapReduce	
  ライブラリ	
  
	
  
→ グラフの性質を考慮した,GPU	
  による効率的な MapReduce	
  処理	
  
29	
*1	
  :	
  Malewicz,	
  G.	
  et	
  al,	
  “Pregel:	
  A	
  System	
  for	
  Large-­‐Scale	
  Graph	
  Processing”,	
  SIGMOD	
  2010.	
  
*2	
  :	
  Gregor,	
  D.	
  et	
  al,	
  “The	
  parallel	
  BGL:	
  A	
  Generic	
  Library	
  for	
  Distributed	
  Graph	
  ComputaUons”,	
  	
  POOSC	
  2005.	
  
*3	
  :	
  Harish,	
  P.	
  et	
  al,	
  “AcceleraUng	
  large	
  graph	
  algorithms	
  on	
  the	
  GPU	
  using	
  CUDA”,	
  HiPC	
  2007.	
  
*4	
  :	
  David	
  A.	
  Bader	
  	
  et	
  al,	
  “The	
  Graph	
  500	
  List”	
  
*5	
  :	
  Stuart,	
  J.A.	
  et	
  al,	
  “MulU-­‐GPU	
  MapReduce	
  on	
  GPU	
  Clusters”,	
  IPDPS	
  2011.	
  
*6	
  :	
  Plimpton,	
  S.J.	
  et	
  al,	
  “MapReduce	
  in	
  MPI	
  for	
  Large-­‐scale	
  Graph	
  Algorithms”,	
  	
  Parallel	
  CompuUng	
  2011.	
  
まとめと今後の課題	
•  まとめ	
  
–  複数	
  GPU	
  上での	
  GIM-­‐V	
  処理の高速化	
  
•  Map	
  フェーズは GPU	
  により	
  7.2	
  倍の高速化	
  
•  Sort,	
  Reduce	
  フェーズについては性能改善の余地あり	
  
–  GPU	
  メモリ内にデータが収まる場合の,グラフ分割の有効性	
  
•  グラフ分割を行った場合に	
  Shuffle	
  でのノード間通信量を 54%	
  削減	
  
•  GPU	
  毎の負荷の不均衡により	
  GIM-­‐V	
  処理の実行時間は増加	
  
•  今後の課題	
  
–  実装の最適化	
  
•  Sort,	
  Reduce	
  フェーズの性能改善	
  
•  グラフ分割の最適化	
  
•  ノード内複数	
  GPU	
  対応	
  
–  GPU	
  メモリに載り切らない入力データへの対応	
  
•  メモリではないローカルのストレージも活用	
  
•  効率的なメモリ階層の管理	
  
•  動的な自動チューニング	
  
30

More Related Content

What's hot

2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
智啓 出川
 
GRASSセミナー基礎編
GRASSセミナー基礎編GRASSセミナー基礎編
GRASSセミナー基礎編
Kanetaka Heshiki
 
Debianでタイルマップサービスを作ってみた
Debianでタイルマップサービスを作ってみたDebianでタイルマップサービスを作ってみた
Debianでタイルマップサービスを作ってみた
Keisuke Nakao
 
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
Taro Matsuzawa
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
智啓 出川
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
智啓 出川
 
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
智啓 出川
 
FOSS4Gを利用した水害時避難経路検索システムの構築
FOSS4Gを利用した水害時避難経路検索システムの構築FOSS4Gを利用した水害時避難経路検索システムの構築
FOSS4Gを利用した水害時避難経路検索システムの構築Yoichi Kayama
 
地質災害関連分野への展開(GEO Grid成果報告会2012)
地質災害関連分野への展開(GEO Grid成果報告会2012)地質災害関連分野への展開(GEO Grid成果報告会2012)
地質災害関連分野への展開(GEO Grid成果報告会2012)
Naotaka YAMAMOTO CHIKASADA
 
Foss4 gマイクロジオデータ解析入門
Foss4 gマイクロジオデータ解析入門Foss4 gマイクロジオデータ解析入門
Foss4 gマイクロジオデータ解析入門
Hiroaki Sengoku
 
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
智啓 出川
 
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析
Mayumit
 
2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
智啓 出川
 
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
智啓 出川
 
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
Preferred Networks
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
智啓 出川
 

What's hot (20)

2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
 
GRASSセミナー基礎編
GRASSセミナー基礎編GRASSセミナー基礎編
GRASSセミナー基礎編
 
Debianでタイルマップサービスを作ってみた
Debianでタイルマップサービスを作ってみたDebianでタイルマップサービスを作ってみた
Debianでタイルマップサービスを作ってみた
 
GPS で色々遊ぶ
GPS で色々遊ぶGPS で色々遊ぶ
GPS で色々遊ぶ
 
Koedo71-matoken
Koedo71-matokenKoedo71-matoken
Koedo71-matoken
 
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
 
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
 
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
 
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細(様々なメモリの利用)
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
 
FOSS4Gを利用した水害時避難経路検索システムの構築
FOSS4Gを利用した水害時避難経路検索システムの構築FOSS4Gを利用した水害時避難経路検索システムの構築
FOSS4Gを利用した水害時避難経路検索システムの構築
 
地質災害関連分野への展開(GEO Grid成果報告会2012)
地質災害関連分野への展開(GEO Grid成果報告会2012)地質災害関連分野への展開(GEO Grid成果報告会2012)
地質災害関連分野への展開(GEO Grid成果報告会2012)
 
Foss4 gマイクロジオデータ解析入門
Foss4 gマイクロジオデータ解析入門Foss4 gマイクロジオデータ解析入門
Foss4 gマイクロジオデータ解析入門
 
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
 
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析
 
2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理
 
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
 
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
 
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
 

Similar to 汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化

第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
dasyprocta
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
 
異種クラスタを跨がる仮想マシンマイグレーション機構
異種クラスタを跨がる仮想マシンマイグレーション機構異種クラスタを跨がる仮想マシンマイグレーション機構
異種クラスタを跨がる仮想マシンマイグレーション機構
Ryousei Takano
 
Math works gdlc2019
Math works gdlc2019Math works gdlc2019
Math works gdlc2019
Hirokuni Uchida
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
Hiroki Nakahara
 
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
RCCSRENKEI
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA Japan
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
Kimikazu Kato
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
智啓 出川
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
 
ICDE2014 勉強会 新井担当分
ICDE2014 勉強会 新井担当分ICDE2014 勉強会 新井担当分
ICDE2014 勉強会 新井担当分
Junya Arai
 
200730material fujita
200730material fujita200730material fujita
200730material fujita
RCCSRENKEI
 
Hpc148
Hpc148Hpc148
Hpc148
N.Nakasato
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
Norishige Fukushima
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
Kohei KaiGai
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
 

Similar to 汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化 (20)

第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
異種クラスタを跨がる仮想マシンマイグレーション機構
異種クラスタを跨がる仮想マシンマイグレーション機構異種クラスタを跨がる仮想マシンマイグレーション機構
異種クラスタを跨がる仮想マシンマイグレーション機構
 
Math works gdlc2019
Math works gdlc2019Math works gdlc2019
Math works gdlc2019
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 
電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2電子動力学アプリケーションの最適化2
電子動力学アプリケーションの最適化2
 
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
 
StreamGraph
StreamGraphStreamGraph
StreamGraph
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
ICDE2014 勉強会 新井担当分
ICDE2014 勉強会 新井担当分ICDE2014 勉強会 新井担当分
ICDE2014 勉強会 新井担当分
 
200730material fujita
200730material fujita200730material fujita
200730material fujita
 
Hpc148
Hpc148Hpc148
Hpc148
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
 
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 

More from Koichi Shirahata

Performance Analysis of Lattice QCD with APGAS Programming Model
Performance Analysis of Lattice QCD with APGAS Programming ModelPerformance Analysis of Lattice QCD with APGAS Programming Model
Performance Analysis of Lattice QCD with APGAS Programming Model
Koichi Shirahata
 
Hybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
Hybrid Map Task Scheduling for GPU-based Heterogeneous ClustersHybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
Hybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
Koichi Shirahata
 
A GPU Implementation of Generalized Graph Processing Algorithm GIM-V
A GPU Implementation of Generalized Graph Processing Algorithm GIM-VA GPU Implementation of Generalized Graph Processing Algorithm GIM-V
A GPU Implementation of Generalized Graph Processing Algorithm GIM-V
Koichi Shirahata
 
Performance Analysis of Lattice QCD on GPUs in APGAS Programming Model
Performance Analysis of Lattice QCD on GPUs in APGAS Programming ModelPerformance Analysis of Lattice QCD on GPUs in APGAS Programming Model
Performance Analysis of Lattice QCD on GPUs in APGAS Programming Model
Koichi Shirahata
 
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
Koichi Shirahata
 
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
Koichi Shirahata
 
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
Koichi Shirahata
 
Performance Analysis of MapReduce Implementations on High Performance Homolog...
Performance Analysis of MapReduce Implementations on High Performance Homolog...Performance Analysis of MapReduce Implementations on High Performance Homolog...
Performance Analysis of MapReduce Implementations on High Performance Homolog...
Koichi Shirahata
 

More from Koichi Shirahata (8)

Performance Analysis of Lattice QCD with APGAS Programming Model
Performance Analysis of Lattice QCD with APGAS Programming ModelPerformance Analysis of Lattice QCD with APGAS Programming Model
Performance Analysis of Lattice QCD with APGAS Programming Model
 
Hybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
Hybrid Map Task Scheduling for GPU-based Heterogeneous ClustersHybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
Hybrid Map Task Scheduling for GPU-based Heterogeneous Clusters
 
A GPU Implementation of Generalized Graph Processing Algorithm GIM-V
A GPU Implementation of Generalized Graph Processing Algorithm GIM-VA GPU Implementation of Generalized Graph Processing Algorithm GIM-V
A GPU Implementation of Generalized Graph Processing Algorithm GIM-V
 
Performance Analysis of Lattice QCD on GPUs in APGAS Programming Model
Performance Analysis of Lattice QCD on GPUs in APGAS Programming ModelPerformance Analysis of Lattice QCD on GPUs in APGAS Programming Model
Performance Analysis of Lattice QCD on GPUs in APGAS Programming Model
 
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
 
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
Out-of-core GPU Memory Management for MapReduce-based Large-scale Graph Proce...
 
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
A Scalable Implementation of a MapReduce-based Graph Processing Algorithm for...
 
Performance Analysis of MapReduce Implementations on High Performance Homolog...
Performance Analysis of MapReduce Implementations on High Performance Homolog...Performance Analysis of MapReduce Implementations on High Performance Homolog...
Performance Analysis of MapReduce Implementations on High Performance Homolog...
 

Recently uploaded

JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (8)

JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

汎用グラフ処理モデルGIM-Vの複数GPUによる大規模計算とデータ転送の最適化

  • 1. 汎用グラフ処理モデル  GIM-­‐V  の   複数GPUによる大規模計算と   データ転送の最適化 白幡 晃一*1,佐藤 仁*1,*3,鈴村 豊太郎*1,*2,*3,松岡 聡*1,*3,*4   *1  東京工業大学   *2  IBM  東京基礎研究所   *3  科学技術振興機構   *4  国立情報学研究所   1
  • 2. GPGPU  を用いた大規模グラフ処理 •  大規模グラフの出現   –  幅広い応用例   ソーシャルネットワークに対する解析,道路ネットワークの   経路探索,スマートグリッド,創薬,遺伝子解析   –  数百万頂点〜数兆頂点,数億枝〜数百兆枝から   なる超大規模なグラフ解析   •  ex)  Facebook  ユーザ  8  億人以上,平均130人の友人      →  8  億頂点,1000  億枝   •  ex2)  全米道路ネットワーク  →  2400万頂点,5800万枝    → 大規模グラフの高速処理が必要     •  高速大規模グラフ処理手法   –  MapReduce   •  ペタバイト級の大規模データ処理   •  自動的なメモリ階層の管理   •  ストリームによるリアルタイム処理   –  GPGPU   •  スーパーコンピュータやクラウドに搭載   •  コア数,メモリバンド幅の活用による高速処理     2 → GPGPU を用いた MapReduce  型大規模グラフ 処理の高速化  
  • 3. GPGPU  を用いた大規模グラフ処理に おける問題点 •  MapReduce  型汎用グラフ処理モデル への  GPU  の適用   GPU  の使用によりどの程度高速化できる か明らかでない   データ転送オーバーヘッド等の要因   •  超大規模グラフへの対応   –  複数  GPU  化   CPU-­‐GPU  間,ノード間の通信による遅延   通信量の削減が必要   –  メモリあふれ   GPU  は CPU  に比べメモリ容量が少ない   –  ex)  TSUBAME2.0  (GPU  3GB,  CPU  54GB)   –  CPU  メモリやローカルストレージの活用   –  効率的なメモリ階層の管理   3 GPU   メモリ CPU   メモリ ディスク 速度 サイズ 速 遅 小 大
  • 4. 解決法:  複数GPUによる大規模化と,   グラフ分割によるデータ転送量の削減 •  MapReduce  型汎用処理モデルへ の  GPU  の適用による効果を調査   既存実装との比較   •  既存の  CPU  実装   •  MapReduce  型でない最適化実装   •  超大規模グラフへの対応方法   –  複数  GPU  化によりメモリ量を増加   データの割り振りによる通信量を削減   解法の一つとして,前処理としてグラフ分割   →  Shuffle  処理での転送量を抑制   –  メモリではないローカルストレージも   活用   •  データをファイルシステムから次々に   読み  GPU  へデータを転送   •  最適なデータ配置のスケジューリング   4
  • 5. 解決法:  複数GPUによる大規模化と,   グラフ分割によるデータ転送量の削減 •  MapReduce  型汎用処理モデルへ の  GPU  の適用による効果を調査   既存実装との比較   •  既存の  CPU  実装   •  MapReduce  型でない最適化実装   •  超大規模グラフへの対応方法   –  複数  GPU  化によりメモリ量を増加   データの割り振りによる通信量を削減   解法の一つとして,前処理としてグラフ分割   →  Shuffle  処理での転送量を抑制   –  メモリではないローカルストレージも   活用   •  データをファイルシステムから次々に   読み  GPU  へデータを転送   •  最適なデータ配置のスケジューリング   5 本発表
  • 6. 目的と成果 •  目的   大規模グラフ処理への複数  GPU  化とデータ転送量   削減の有効性の検証   •  成果   – MapReduce  型汎用グラフ処理モデルの複数  GPU  に よる高速化   •  Map  は GPU  により  7.2  倍の高速化   •  Sort,  Reduce  は性能改善の余地あり   – メモリ内にデータが収まる場合の,グラフ分割の有効 性   •  グラフ分割を行った場合にデータ転送量を  54  %  削減   •  GPU  毎の負荷の不均衡によりグラフ処理の実行時間が増 加 6
  • 8. 既存の大規模グラフ処理システム •  PEGASUS   –  Hadoop  ベースのグラフライブラリ   –  GIM-­‐V  (Generalized  Iterated   Matrix-­‐Vector  mulUplicaUon)  に   よる計算   •  反復行列ベクトル積の一般化   –  頂点をベクトル,枝を隣接行列で表現   •  典型的なグラフ処理を記述可能   •  MapReduce  により記述可能     → GPU  の使用によりどれほど     高速化できるかは定かではない   8 = ×G v’ M v
  • 9. 大規模グラフ処理モデル  GIM-­‐V 9 *1  :  Kang,  U.  et  al,  “PEGASUS:  A  Peta-­‐Scale  Graph  Mining  System-­‐  ImplementaUon     and  ObservaUons”,  IEEE  INTERNATIONAL  CONFERENCE  ON  DATA  MINING  2009 = ×G v’i mi,j vj v’ M combineAll combine2 assign v i j i •  Generalized  IteraUve  Matrix-­‐Vector  mulUplicaUon*1   –  反復行列ベクトル積の一般化   –  v’  =  M  ×G  v      where    v’i  =  assign(vj  ,  combineAllj  ({xj  |  j  =  1..n,  xj  =  combine2(mi,j,  vj)}))      (i  =  1..n)   •  上記3つの関数を実装することで,様々なグラフ処理を記述可能   –  演算は収束するまで反復して実行   –  GIM-­‐V  を 2  ステージの MapReduce  により記述可能   →  既存の  GPU  向け MapReduce  フレームワーク(Mars)上に実装  
  • 10. •  MapReduce-­‐1 10 MapReduce  による  GIM-­‐V  計算 = ×G vj v’ M v combine2 j j mi2,j mi1,j i1 i2 10 = ×G v’i vi v’ M combineAll assign v j1 i i j2 mi,j2 mi,j1 •  MapReduce-­‐2
  • 11. 問題:  ノード間データ転送量の増加 グラフが大規模化するほどノード間転送が増加   – 大規模グラフを大規模計算環境を用いて処理   →  大規模になるほどデータ転送量が増加   – グラフ処理ではノード間をまたぐ枝の数   (エッジカット)の大きさに依存   →  グラフ分割を行い,エッジカット削減による最適化   11 Ein Eout Eout Ein
  • 13. 提案:  複数 GPU  による大規模化と,グラフ 分割によるデータ転送量の削減 •  複数  GPU  の使用によりメモリ量を増加   –  既存の  GPU  向け MapReduce  実装である Mars   を  MPI  により複数  GPU  向けに改良   •  複数 MapReduce  ステージの連結   •  Shuffle  における全対全通信の実装   •  収束判定   –  複数 GPU  向け  GIM-­‐V  への  CPU-­‐GPU  間通信の 実装   •  ノード間通信における  CPU-­‐GPU  通信の実装   •  反復処理への  CPU-­‐GPU  間通信の実装   •  グラフ分割による性能最適化   –  クラスタごとにグラフを分割し,エッジカットの   最小化によりノード間通信量を削減   –  GIM-­‐V  の前処理として,GPU  の数に分割   OSS  である  METIS  ライブラリを使用   13
  • 14. Mars  の構造 •  Mars*1  :  既存の  GPU  用 MapReduce  フレームワーク   –  Map,  Reduce  関数を  CUDA  カーネルとして実装   •  GPU  のスレッド単位で  Mapper,  Reducer  を呼び出し   •  Map/Reduce  Count  →  Prefix  sum  → Map/Reduce  の順に実行   –  Shuffle  フェーズは  GPU  ベースの Bitonic  Sort  を実行   –  Map  開始時に  CPU-­‐GPU  間の通信   14 Pre   process Map   Split Prefix   Sum Map   Count Map   Count Map   Map   Sort Reduce   Split Prefix   Sum Reduce   Count Reduce   Count Reduce Reduce Map  Stage Reduce  Stage Shuffle  Stage GPU  Processing Mars  Scheduler *1  :  Fang  W.  et  al,  “Mars:  AcceleraUng  MapReduce  with  Graphics  Processors”,  Parallel  and  Distributed  Systems,  2011 →  Mars  を複数  GPU  による  GIM-­‐V  処理向けに改良  
  • 15. 複数  GPU  上への  GIM-­‐V  の実装 Map Sort Map Sort Reduce Reduce GPU  Processing Scheduler Upload     CPU  →  GPU Download   GPU  →  CPU Download    GPU  →  CPU Upload   CPU  →  GPU Mars  上への MPI  による  GIM-­‐V  のマルチノード実装   –  複数の MapReduce  ステージを連続して実行   •  反復の開始時と終了時に  CPU-­‐GPU  間の通信   •  後処理で収束判定の計算   –  Shuffle  でノード間通信   •  MPI_Alltoallv  関数により全対全通信    CPU-­‐GPU  間の通信が発生   •  各ノードがローカルソート   –  収束判定   •  各ノードがローカルに収束した頂点数をカウント   •  MPI_Allreduce  関数により各ノードの収束した頂点数の合計を計算   15
  • 16. グラフ分割による性能最適化 •  前処理としてグラフ分割   –  クロネッカーグラフ   •  SNS  などの現実世界のグラフの   代表的なモデル   •  スケールフリー性   再帰的に大きなクラスタが現れる性質   –  クラスタごとにグラフを分割し,エッジ カットの最小化によりノード間データ 通信量を削減   –  グラフ分割アルゴリズム    MulUlevel  k-­‐way  parUUoning  *1   –  G  =  (V,  E)  に対し,O(|E|)  の時間計算量   –  メッセージパッシングを用いる並列   アルゴリズムも存在   16 *1  :  George  Karypis  and  Vipin  Kumar,  “MulUlevel  k-­‐way  ParUUoning  Scheme  for  Irregular  Graphs”,     Journal  of  Parallel  and  Distributed  CompuUng,  1998
  • 17. •  OSS  である  METIS  を使用   –  GPU  の数に一致させて分割   –  各  GPU  は自分が担当する頂点番号データも保持   Shuffle  時の通信は,各  GPU  が持つ頂点番号データに一致さ せて頂点と枝を割り振り   •  全ノードが並列で入力ファイルの読み込み   –  グラフ分割の結果を各  GPU  が読み込み   –  (グラフ分割を行わない場合)MPI-­‐IO  による並列読み 込み 17 グラフ分割の実装 Graph   ParUUon GIM-­‐V  Stage  1 Read   input     GIM-­‐V  Stage  2 Write   output GPU  Processing Scheduler Preprocess Convergence   Test Postprocess GIM-­‐V
  • 19. 実験 •  検証事項   –  複数  GPU  による  GIM-­‐V  処理の高速化   –  グラフ分割によるデータ転送量削減の有効性   •  測定内容   グラフ処理アプリの反復処理 1 ラウンドの平均時間を測定   •  複数  GPU  によるスケーラビリティの測定   •  CPU  版  Mars  との比較   •  グラフ分割の有無による比較   •  方法   –  PageRank  アプリケーション   ウェブページの重要度を決定   –  入力データ   •  クロネッカーグラフを人工的に生成   Graph  500  の Generator  により生成   •  パラメータ   –  SCALE:  頂点数の  2  の対数   –  辺の数 =  頂点数  ×  16   19 0.19 0.05 0.57   0.19   0.19   0.05   i1  j1   i2  j2   …   i2 x  j2 x <key,  value> 隣接行列 格納する割合  
  • 20. 実験環境 •  TSUBAME2.0   –  CPU  6  コア  x  2  ソケット,24  スレッド   (HyperThread  オン),GPU  3台   –  GPU   •  CUDA  Driver  Version:  4.0   •  CUDA  RunUme  Version:  4.0   •  Compute  Capability:  2.0   •  共有/L1 キャッシュサイズ:  64  KB   •  Mars   –  Mars  GPU   •  1ノード当たり  1GPUで実行   •  スレッド数は異なる  key  の個数に等しい   –  スレッドブロック当たり  256  スレッド   –  Mars  CPU   •  1  ノード当たり  1コアで実行   •  CUDA  カーネルの代わりに  C  言語で実装   •  Sort  はクイックソートを実装   •  METIS   –  CPU  1  コアを使用して実行   20 CPU GPU 種類 Intel®  Xeon®  X5670 Tesla  M2050   物理コア数 12 448 周波数 2.93  GHz 1.15  GHz メモリ 54  GB 2.7  GB  (Global) コンパイラ gcc  4.3.4 nvcc  3.2
  • 21. 21 複数  GPU  の使用による  GIM-­‐V  処理 の高速化の検証
  • 22. 複数  GPU  によるスケーラビリティ •  ストロングスケールを測定   SCALE=19  に固定   22 1   10   100   GIM-­‐V  scaling     Ideal  scaling     •  ウィークスケールを測定   1  GPU  当たり  SCALE=18   良好なスケール 32  GPU  以降はスケールしていない   ・データ転送時間の増加   ・Reduce  の実行時間が一定 1   10   100   Speed  up  [8mes] GIM-­‐V  scaling   Ideal  Scaling  
  • 23. Mars  GPU  と  Mars  CPU: 実行時間の比較 •  Marsに対して,Map,  Sort,  Reduce  を  CPU  で実行する場合を比較   128  ノードを使用   1   10   100   1000   10000   100000   14   15   16   17   18   19   20   21   22   23   24   25   26   Elapsed  Time  [ms] SCALE 128GPU   128CPU   23 GPU  の使用による優位性は見えていない   →  Sort,  Reduce  が  GPU  を使用しても加速されていないため
  • 24. 24 Mars  GPU  と  Mars  CPU:  実行時間の内訳 •  高速化されている部分とされていない部分がある   –  SCALE=25  で Map  フェーズは  7.2  倍高速   –  Sort,  Reduce  は高速化されていない   –  Map  のみ  GPU  を使用した場合,SCALE=25 で  1.12  倍の高速化   •  Sort  の実装を改善する必要性   –  Mars  の  Sort  実装の改良   –  Radix  Sort  等のアルゴリズムの使用 0   1000   2000   3000   4000   5000   6000   7000   8000   14  15  16  17  18  19  20  21  22  23  24  25  14  15  16  17  18  19  20  21  22  23  24  25   Elspsed  Time  [ms] SCALE  on  Mars  GPU                                                                                    SCALE  on  Mars  CPU Reduce   Sort     Copy   Map  
  • 26. グラフ分割の有無による  GIM-­‐V  の比較 •  前処理としてグラフ分割を行う場合と行わない場合を比較   –  32  GPU  を使用   1   10   100   1000   10000   14   15   16   17   18   Elapsed  Time  [ms] SCALE 32GPU   32GPU  with  METIS   26 グラフ分割により実行時間が増加   →  GPU  毎の負荷が不均衡になり,同期を取る際に負荷が大きい   GPU  の実行時間に律速されるため  
  • 27. Shuffle  における  MPI  によるデータ転送時間 •  MPI_Alltoallv  関数によるデータ転送部分の時間を測定   –  グラフ分割により一定の効果   最大  54  %  削減   –  データ転送時間の全体に占める割合が小さい為,全体の実行時間に は影響を与えていない   •  TSUBAME2.0  ではネットワークバンド幅が大きいため   •  しかし,将来的にはネットワーク性能がボトルネックになる可能性あり   0   5   10   15   20   25   30   35   14   15   16   17   18   19   Elapsed  Time  [ms] SCALE NO_CUT  32GPU   METIS_CUT  32GPU   27
  • 28. 実験のまとめ •  GIM-­‐V  の  GPU  による高速化   –  複数  GPU  の使用によるスケーラビリティ   •  ストロングスケール   –  32  GPU  以上の場合にデータ転送量増加,Reduce  の実行時間が一定   •  ウィークスケール   –  64  GPU  まで良好なスケールを確認   –  GPU  と  CPU  の性能比較   •  現状では  Map  のみを GPU  で実行する場合が最適   –  SCALE=25 で  1.12  倍の高速化   –  Sort  はアルゴリズムの変更により改良される可能性   –  Reduce  は高速化される場合とされない場合がある   •  メモリ内にデータが収まる場合の,グラフ分割の有効性   –  グラフ分割により  GPU  毎の負荷が不均衡になる現象   –  分割によりデータ転送時間は 54%  削減   28 →  GPU,  CPU  の性能や通信量等を考慮した動的な自動     チューニングを行うことを検討
  • 29. 関連研究 •  既存の大規模グラフ処理システム     –  Pregel*1  :  Master/Worker  モデルによるC++の実装   Worker  毎に頂点を分担して計算   –  Parallel  BGL*2  :  MPI  ベースの  C++  並列グラフ処理ライブラリ   •  GPU,MapReduce  を用いたグラフ処理   –  GPU  を用いて最短路問題を解くアルゴリズム*3   幅優先探索,単一始点最短路問題を高速に計算   –  Graph500  *4  のリファレンス実装に MapReduce  を用いた最短路問題 が公開される予定   •  マルチ  GPU  上,マルチノード上での MapReduce  実装   –  GPMR*5  :  既存のマルチGPU上での MapReduce  実装   –  MapReduce-­‐MPI*6  :  MPI  を使用した MapReduce  ライブラリ     → グラフの性質を考慮した,GPU  による効率的な MapReduce  処理   29 *1  :  Malewicz,  G.  et  al,  “Pregel:  A  System  for  Large-­‐Scale  Graph  Processing”,  SIGMOD  2010.   *2  :  Gregor,  D.  et  al,  “The  parallel  BGL:  A  Generic  Library  for  Distributed  Graph  ComputaUons”,    POOSC  2005.   *3  :  Harish,  P.  et  al,  “AcceleraUng  large  graph  algorithms  on  the  GPU  using  CUDA”,  HiPC  2007.   *4  :  David  A.  Bader    et  al,  “The  Graph  500  List”   *5  :  Stuart,  J.A.  et  al,  “MulU-­‐GPU  MapReduce  on  GPU  Clusters”,  IPDPS  2011.   *6  :  Plimpton,  S.J.  et  al,  “MapReduce  in  MPI  for  Large-­‐scale  Graph  Algorithms”,    Parallel  CompuUng  2011.  
  • 30. まとめと今後の課題 •  まとめ   –  複数  GPU  上での  GIM-­‐V  処理の高速化   •  Map  フェーズは GPU  により  7.2  倍の高速化   •  Sort,  Reduce  フェーズについては性能改善の余地あり   –  GPU  メモリ内にデータが収まる場合の,グラフ分割の有効性   •  グラフ分割を行った場合に  Shuffle  でのノード間通信量を 54%  削減   •  GPU  毎の負荷の不均衡により  GIM-­‐V  処理の実行時間は増加   •  今後の課題   –  実装の最適化   •  Sort,  Reduce  フェーズの性能改善   •  グラフ分割の最適化   •  ノード内複数  GPU  対応   –  GPU  メモリに載り切らない入力データへの対応   •  メモリではないローカルのストレージも活用   •  効率的なメモリ階層の管理   •  動的な自動チューニング   30