POWER8プロセッサ上でのTop-downアプローチによる幅優先探索の階層的並列処理
2
0
0
全文
(2) IURQWLHUЋ^VRXUFH` QH[WЋ^` SDUHQWVЋ^͐` ZKLOHIURQWLHUӆ^`GR _WRSGRZQVWHS YHUWLFHVIURQWLHUQH[WSDUHQWV
(3) _IURQWLHUЋQH[W _QH[WЋ^` UHWXUQSDUHQWV. . )XQFWLRQWRSGRZQVWHS YHUWLFHVIURQWLHUQH[WSDUHQWV
(4) IRUYѮIURQWLHUGR )URQWLHU㛫୪ิฎ⌮ _IRUQѮ QHLJKERUV>Y@GR1HLJKERU㛫୪ิฎ⌮ __LISDUHQWV>Q@ WKHQ ___SDUHQWV>Q@ЋY ___QH[WЋQH[WҐ ^Q`. 図 1 Top-down アプローチによる幅優先探索のアルゴ リズム.. Top-down アプローチによる幅優先探索の階層的並 列処理 本章では,Top-down アプローチによる幅優先探索に おいて,複数レベルの並列性を利用する階層的並列処理 手法について述べる. 2. 2.1 Frontier 間の並列処理 幅優先探索のアルゴリズムは図 1 の 1∼8 行目に示す 通りであり,5 行目から関数 top-down-step() を呼び出 す形となる.関数 top-down-step() は 9∼13 行目に示す 通りであり,従来の Top-down アプローチでは,9 行目 の探索最前線 Frontier 間で並列処理を行う.なお,10 行 目の隣接頂点 Neighbor 間の並列性は利用せず,逐次に 実行される. ここで,図 2 のような Frontier=4,各 Frontier の Neighbor=4 のグラフを用いて,4 スレッド(INSIDE=1) の割り当てを示す.Frontier のノード 2∼5 は,それぞ れ 4 スレッドに割り当てられ,並列処理が行われる.な お,Frontier 数がスレッド数より大きい場合には,複数 の Frontier を各スレッドが実行する. 2.2 Frontier 間・Neighbor 間の階層的並列処理 本稿で提案する階層的並列処理では,図 1 のアルゴリ ズムにおいて,9 行目の探索最前線 Frontier 間で複数ス レッドグループを用いて並列処理を行い,10 行目の隣接 頂点 Neighbor 間でスレッドグループ内の複数スレッド (INSIDE 数)を用いて,階層的な並列処理を実現する. ここで,図 2 のような Frontier=4,各 Frontier の † 明治大学総合数理学部ネットワークデザイン学科. Department of Network Design, School of Interdisciplinary Mathematical Sciences, Meiji University. 1-31. 䠖 ෆ㒊䝇䝺䝑䝗0 䠖 ෆ㒊䝇䝺䝑䝗1. 1. 㻲㼞㼛㼚㼠㼕㼑㼞 2. 6. 7. 8. 9. 㻲㼞㼛㼚㼠㼕㼑㼞. 㻲㼞㼛㼚㼠㼕㼑㼞. 㻲㼞㼛㼚㼠㼕㼑㼞. 3. 4. 5. 10 11 12 13. 14 15 16 17. 18 19 20 21. 㻺㼑㼕㼓㼔㼎㼛㼞. 㻺㼑㼕㼓㼔㼎㼛㼞. 㻺㼑㼕㼓㼔㼎㼛㼞. 㻺㼑㼕㼓㼔㼎㼛㼞. 㼀䡄䡎㼑㼍㼐㻳㼞㼛㼡㼜㻝. 㼀䡄䡎㼑㼍㼐㻳㼞㼛㼡㼜㻞. 㼀䡄䡎㼑㼍㼐㻳㼞㼛㼡㼜㻟. 㼀䡄䡎㼑㼍㼐㻳㼞㼛㼡㼜㻠. 図 2 幅優先探索の階層的並列処理におけるスレッド割 り当て.. Neighbor=4 のグラフを用いて,8 スレッド(INSIDE=2) の割り当てを示す.Frontier のノード 2∼5 は,それぞれ 4 つのスレッドグループ(INSIDE=2)に割り当てられ, 並列処理が行われる.次に,Frontier の隣接頂点 Neighbor は,スレッドグループ内の 2 スレッド(INSIDE=2 の 場合)にサイクリックに割り当てられて並列処理される. なお,Frontier 数がスレッドグループ数より大きい場 合には,複数の Frontier を各スレッドグループが実行 し,Neighbor 数が INSIDE 数より大きい場合には,複 数の Neighbor をスレッドグループ内の各スレッドが実 行する. POWER8 プロセッサ上での性能評価 本章では,POWER8 システム上で Graph500 ベンチ マーク [1] を用いて,幅優先探索の階層的並列処理の性 能評価を行う.. 3. 3.1 性能評価の環境 性能評価に用いる POWER8 システムのアーキテク チャを表 1 に示す.POWER8 プロセッサは 12 コア構成と. Copyright 2017 Information Processing Society of Japan. All Rights Reserved..
(5) 情報処理学会第 79 回全国大会. 表 1 POWER8 システムのアーキテクチャ.. /E^/сϭ. ㏿ᗘྥୖ⋡ಸ. マシン IBM POWER S812L CPU POWER8 3.026GHz コア数 12 SMT 数 8 メモリ 128GB メモリバンド幅 192GB/S OS(LINUX) RHEL7 FOR POWER C 言語処理系 gcc ver.4.8.5. ϭϱ͘ϱ ϭϯ͘ϭ ϭϯ͘Ϭ. POWER8 上での Graph500 のスレッド毎の性 能評価 本節では,POWER8 上での Graph500 のスレッド毎 の性能評価を行う.図 4 の実行結果では,Graph500 の SCALE=22 において,コア数=12 とし,スレッド数を 12,24,48,96 まで変化させて,逐次実行比を測定した. それぞれのスレッド数において,従来手法の INSIDE=1, 提案手法の INSIDE=2,4 を測定した.これらの結果か ら,いずれのスレッド数においても,INISDE=2 が最も 速度向上率が高く,Frontier 並列性と Neighbor 並列性 の両方が引き出されていることがわかる.Neighbor 並 列は,Frontier 並列に比べて,並列処理の単位となるタ スク粒度(granularity)が小さいため,INSIDE=2 の場 合が INSIDE=4 の場合より優れた結果となっている. な お ,ス レッド 数=96 の 場 合 は ,従 来 手 法(INSIDE=1)では逐次実行比 10.6 倍の速度向上であるが, 提案手法(INSIDE=2)では逐次実行比 14.2 倍の速度 向上が得られている.この場合,Frontier 並列に 48 ス レッドグループが使用され,Neighbor 並列にスレッド グループ内の 2 スレッドが使用されたことになる.. 1-32. Ϯϭ. ϭϬ͘ϰ. ϮϮ ^>. ϭϮ͘Ϯ ϭϭ͘ϭ. Ϯϯ. Ϯϰ. 図 3 96 スレッド(INSIDE=1,2)における SCALE 毎 の速度向上率. INSIDE=1. 3.2. 3.3. ϭϭ͘ϴ ϭϬ͘ϱ. 16.000 14.000 12.000 10.000 8.000 6.000 4.000 2.000 0.000. INSIDE=2. INSIDE=4 14.24 11.30. 4.48 4.37 3.69. 12. POWER8 上での Graph500 の SCALE 毎の 性能評価 本節では,POWER8 上での Graph500 の SCALE 毎 の性能評価を行う.図 3 の実行結果では,Graph500 の SCALE=20 から 24 まで変化させており,それぞれの SCALE において,従来の Frontier 並列性(INSIDE=1) のみを利用した並列実行,提案する Frontier 並列性・ Neighbor 並列性(INSIDE=2)を利用した並列実行を 96 スレッドで行い,逐次実行比を表している.このグ ラフから SCALE=22 のときに,提案手法(INSIDE=2) は従来手法(INSIDE=1)に比べて 25.9%の速度向上が 得られており,最も性能がよいことがわかる.. ϭϰ͘Ϯ ϭϯ͘ϭ. ϮϬ. ㏿ᗘྥୖ⋡[ಸ]. なっているが,SMT(Simultaneous Multithreading)=8 とすることにより,96 スレッドの実行が可能となる.メ モリバンド幅は 192GB/S であり比較的大きい.OS は RHEL7 FOR POWER である. 本 性 能 評 価 で は Graph500 の 幅 優 先 探 索 コ ー ド [1] を ベ ー ス に ,提 案 す る 階 層 的 並 列 処 理 を OpenMP に よ り 実 装 し た .OpenMP 実 装 に お い て,#pragma omp parallel を用いており,各スレッ ドは omp_get_thread_num() によりスレッド番号を取 得し,探索領域に対応したコードを実行する.具体的に は,Frontier ノードをスレッドグループ(INSIDE 数の スレッドをもつグループ)にサイクリック割り当てし, その Frontier 内の Neighbor ノードはスレッドグループ 内のスレッドに対してサイクリック割り当てを行う.. ϭϴ͘ϬϬϬ ϭϲ͘ϬϬϬ ϭϰ͘ϬϬϬ ϭϮ͘ϬϬϬ ϭϬ͘ϬϬϬ ϴ͘ϬϬϬ ϲ͘ϬϬϬ ϰ͘ϬϬϬ Ϯ͘ϬϬϬ Ϭ͘ϬϬϬ. /E^/сϮ. 7.26 6.02 5.77. 8.87. 8.67. 24 䝇䝺䝑䝗ᩘ. 11.42 10.55. 48. 96. 図 4 SCALE=22 におけるスレッド毎の速度向上率. おわりに 本稿では,Graph500 ベンチマークの Top-down アプ ローチによる幅優先探索において,複数レベルの並列 性を利用する階層的並列処理手法を提案した.本手法 では,従来の探索最前線 Frontier レベルの並列性に加え て,隣接頂点 Neighbors レベルの並列性を利用しており, Frontier レベルの並列性が十分でない場合にも,隣接頂 点 Neighbors レベルの並列性を効果的に利用すること が可能となる.提案手法は並列システム IBM POWER S812L 上で OpenMP 実装されており,12 コア(SMT=8, 96 スレッド)上で実行した結果,SCALE=22 の場合に 逐次実行比で 14.2 倍の速度向上が得られ,提案手法の 有効性が確認された.. 4. 参考文献 [1] Graph500. Graph500 Benchmark Code for Energy Measurements, http://green.Graph500.org.. [2] S.Beamer, A.Buluc, K.Asanovic, D.A.Patterson. Distributed Memory Breadth-First Search Revisited: Enabling Bottom-Up Search, Technical Report No.UCB/EECS-2013-2, University of California at Berkeley, 2013. [3] 上野,鈴村,丸山,松岡. 大規模分散メモリ環境におけ るハイブリッド BFS の最適化, 情報処理学会研究報告, Vol.2014-HPC-146,No.21,2014. [4] 田邊,冨森,高田,城.Graph500 の Hybrid 解法に内在 する局所性,情報処理学会研究報告,Vol.2013-HPC-140, No.27,2013. [5] 安井,藤澤. NUMA を考慮した幅優先探索, 情報処理 学会研究報告,Vol.2014-AL-147,No.8,2014.. Copyright 2017 Information Processing Society of Japan. All Rights Reserved..
(6)
図
関連したドキュメント
4.4 前倒しおよび先送りの範囲の設定 前倒しの範囲は,管理目標値である健全度 2 から 3 未 満とし,先送りは健全度 2 から
血は約60cmの落差により貯血槽に吸引される.数
CIとDIは共通の指標を採用しており、採用系列数は先行指数 11、一致指数 10、遅行指数9 の 30 系列である(2017
層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS
断するだけではなく︑遺言者の真意を探求すべきものであ
此準備的、先駆的の目的を過 あやま りて法律は自からその貴尊を傷るに至
41 の 2―1 法第 4l 条の 2 第 1 項に規定する「貨物管理者」とは、外国貨物又 は輸出しようとする貨物に関する入庫、保管、出庫その他の貨物の管理を自
[r]