通信衝突削減のための タスク配置最適化の評価 ○森江善之(九州大学/九州システム情報技術研究所), 南里豪志(九州大学),石畑宏明(東京工科大), 井上弘士(九州大学),村上和彰(九州大学) 1 背景・目的 • 背景 – 並列計算機の規模は拡大の傾向 • • – • 計算ノードが多大なため、通信が増加 クロスバを使用することは困難 →ツリー、メッシュ、トーラスなどを採用 通信衝突が増加する 目的 – 通信衝突を削減し、通信性能を向上させる 通信衝突の頻度はタスク配置に依存する タスク配置最適化により通信衝突を回避し 通信性能の向上を目指す 2 通信衝突削減のための タスク配置最適化の評価 • 前提 – ネットワークの各リンクや各スイッチの性能は等しい – 並列プログラムの実行前にタスク配置最適化を行う • 本発表では以下の2つの通信衝突削減のため のタスク配置最適化について評価、考察を行う – ホップ数を評価関数とするタスク配置最適化 – 通信衝突回数を評価関数とするタスク配置最適化 – 比較のため、メッセージサイズはすべて等しいとする 3 ホップ数を評価関数とするタスク配置最適化 n 1 n 1 c(i, j ) H ( (i), ( j )) i 0 j 0 c(i, j ) タスク iからタスク jへ送信されるメッセー ジ数 (i) タスク iが割りつけられた計算 ノードを返す関数 H ( p, q) 計算ノード p, q間のメッセージのホッ プ数 • 通信回数が多いタスク同士は通信距離が近い計算ノードに割り 当てられやすくなり、ネットワーク上で通信衝突が起こりにくくな る 1 2 3 4 5 6 • 計算ノード1から計算ノード 4へメッセージが10個送信 される • 評価関数値=40 出典:T. Agarwal, A.Sharma, L. V. Kale, ``Topology-aware task mapping for reducing communication contention on large parallel machines‘’, Proceedings of IEEE International Parallel and Distributed 4 Processing Symposium 2006, pp.1-10, in 2006 通信衝突回数を評価関数とする タスク配置最適化 • ホップ数の削減≠通信衝突の削減 • 通信衝突自体をチェックしてそれを回避するようにタスクを配置する • 通信衝突回数を知るには・・・ • 同時に実行される通信を知る必要がある • 同時に実行される通信の集合をConcurrent Communication Set(CCS)とする CCS1 CCS2 CCS3 CCS4 CCS3={c12,c43,c56} タスク1 タスク2 タスク3 タスク4 タスク5 タスク6 5 同期をとる MPI_Barrier(comm) If(t %2 == 0) MPI_Send( smsg, t+1 ) El se MPI_Recv( rmsg, t-1) MPI_Barrier(comm) If(t %2== 0) MPI_Recv( smsg1, t+1) else MPI_Send( rsmg1, t-1 ) 5 評価関数 N 1 max (coll(t , (i), (tork(i)))) t 0 i 0...n 1 tork(i) タスク (i) タスク iの送信先タスクを返す 関数 iが割りつけられた計算 ノードを返す関数 coll(t , p, q) CCSがtの際に計算ノード p, q間の 各リンク において要求される最 大のメッセージ数 • 通信衝突回数は3 6 ホップ数を評価関数とするタスク配 置最適化に対する通信衝突回数 を評価管巣とするタスク配置最適 化の性能向上比 ツリートポロジにおいて カーネル部分の通信のみを抽出した プログラムを用いた実験(HOKKE2007) 1.40 1.30 1.20 1.10 um2k cg rd 1.00 0.90 0.80 128 256 512 1024 メッセージサイズ(KB) • • • • 計算ノード – – – CPU : Intel Xeon 3.0GHz メモリ: 7GB ノード数 : 16 コンパイラ : intel C++/Fortran version 9.1 MPIライブラリ : mpich-1.2.7p1 相互結合網 :ギガビットイーサーネット による2段のツリー 7 3Dメッシュにおいてはどうか? • ネットワークトポロジがツリーの場合は直径が 小さいことが多く、ホップ数によるタスク配置 最適化は有効でないと考えられる • ネットワークトポロジが3Dメッシュの場合は直 径が大きくなり、ホップ数によるタスク配置最 適化で十分な効果が得られる可能性が高い 8 3Dメッシュにおける通信衝突削減のための タスク配置最適化の性能評価実験 • 実験の目的 – 3Dメッシュにおける2つの通信衝突削減のためのタスク配置最適 化の評価を行う • 実験方法 – 通信衝突回数を評価関数とするタスク配置最適化とホップ数を評 価関数とするタスク配置最適化を適用し、プログラムの実行時間を 計測するプログラムは1000回実行し、その平均をとる • タスク求解アルゴリズムはSimulated Annealingを用いる • 実験の対象プログラム – CG法の通信パターンを抽出したプログラム • ノード数 – 32, 64, 128 • CCS数 – 4(プロセス数32), 4(プロセス数64), 5(プロセス数128) • メッセージサイズは1MB – 1メッセージを衝突なく送信すると本実験環境では6600usec 9 通信衝突回数を評価関数とする タスク配置最適化 • 3Dメッシュにおけるルーティングを考慮して 同CCSにおいて同一方向に通信を行う時、 通信衝突が起こるとして同様の最適化を行う – 実験環境のルーティング • Dimension Order Routing 10 実験環境 実験環境 BlueGene/L 計算ノード数 1024 CPU PowerPC440 700GHz RAM 1GB OS CNK(Compute Node Kernel) コンパイラ XLC++コンパイラ トポロジ 3Dメッシュ/トーラス 通信帯域幅 1.4Gbps 11 CG法の通信パターン 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 12 実行時間(usec) 実行時間 140000 120000 100000 80000 60000 40000 20000 0 colls hops regular 32 64 ノード数 128 • 規則的にタスクを配置した場合に比べて、通信衝突削減のためのタスク 配置最適化により性能が向上している • ホップ数を評価関数するタスク配置最適化の方が一様に性能が高い • ホップ数を削減することが実行時間を削減することが可能 13 性能差についての考察 • メッセージサイズが大きいため、同期関数のオ ーバヘッドはほとんどみえない • 通信衝突回数を評価関数とするタスク配置最適 化では同期待ちより通信性能が悪化すると考え られる – ホップ数を評価関数とするタスク配置最適化では・・・ • 同期待ちの必要はない • 通信衝突する確率が低いため、同期待ちせずに通信を行 った方が高速になると考えられる 14 ホップ数と実行時間の関係 45000 48000 実行時間(usec) 実行時間(usec) 46000 40000 35000 30000 25000 44000 42000 40000 38000 36000 34000 32000 30000 20000 100 120 140 160 380 ホップ数 32ノード 64ノード • 75000 • 70000 400 420 32ノードよりホップ数と実行時間には相関 関係があること見てとれる 64ノード、128ノードでは相関関係があると は見てとれない – ホップ数のレンジの違い – 標本数が少ない 65000 60000 • 55000 50000 1050 360 ホップ数 80000 実行時間(usec) 340 180 1100 1150 1200 ホップ数 128ノード 1250 1300 • 10000usecの程度の差がある(通信帯域 幅1.4Gbps, メッセージサイズ1MB,CCS 数4~5) 実行時間が短くなっているタスク配置をどう 取りだすか 15 45000 55000 43000 53000 41000 51000 実行時間(usec) 実行時間(usec) 通信衝突回数と実行時間の関係 39000 37000 35000 33000 31000 29000 27000 47000 45000 43000 41000 39000 37000 25000 3 4 5 6 7 通信衝突回数 35000 5 6 7 8 9 通信衝突回数 32ノード 90000 実行時間(usec) 49000 64ノード 85000 • 同じ通信衝突回数でも、 実行時間に 10000usec 程度の違いが発生してお り、衝突回数の見積もりが正しくない 80000 75000 70000 65000 9 10 11 12 13 – 同時にあるリンクに到着した際に通信 帯域を共有しているという仮定に問題 – 実際には片方の通信をブロックしてい る 通信衝突回数 128ノード 16 性能のばらつきの原因 3 3 2 • 評価関数ではリンクの通信帯域を共有するとしているため、メッセ ージはすべて同じタイミングで終わる。よって、上図は通信衝突回 数は3となる • メッセージがそれぞれ違うタイミングでリンクを通過するため、再度 衝突することが考えられる • このことを考慮すると上図では通信衝突回数は4となる 17 まとめ • 対象プログラムがCG法、トポロジが3Dメッシュ の際に、ホップ数を評価関数とするタスク配置 最適化を行った方がより性能向上が見込まれる ことを示した • 実行時間と評価関数値との関係を示し、考察を 行った 18 今後の課題 • ネットワークシミュレータを用いた実験により性能差の 原因を解析する • 3Dメッシュ/トーラスを対象トポロジとした場合の実験 – 128ノードを超えるノード数での実験 – 他の通信パターンでの実験 – 3Dメッシュ/トーラスに適した評価関数の検討・提案 • Fat-Treeを対象トポロジとした場合の実験 • Fat-Treeに適した評価関数の検討・提案 本研究は,「ペタスケール・システムインターコネクト技術の開発」プロジェクト (文部科学省 「次世代IT基盤構築のための研究開発」の研究開発領域「将来 のスーパー コンピューティングのための要素技術の研究開発」(平成17~19 年度)の一つ), 理化学研究所「次世代生命体統合シミュレーションソフトウェア の研究開発」プロジェクトによるものである. 19
© Copyright 2024 ExpyDoc