• 検索結果がありません。

OpenATLibを利用した疎行列ライブラリの開発と評価

N/A
N/A
Protected

Academic year: 2021

シェア "OpenATLibを利用した疎行列ライブラリの開発と評価"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. 1. はじめに. OpenATLib を利用した 疎行列ライブラリの開発と評価. 科学技術計算などに利用される行列計算ライブラリでは,一部の入力パラメータの 値や積算などの重要な処理におけるアルゴリズムの選択によりその演算時間が大幅に 変化する.一方で,短い時間で演算できる良好なパラメータやアルゴリズムは入力行 列によって異なり,かつ事前予測が難しいものが存在する.そのため,行列計算ライ ブラリのユーザが良好な条件でライブラリを利用するのが困難となっていた. これらの問題を解決する手法として,入力パラメータの決定やアルゴリズム選択の 支援をする自動チューニング方式(AT 方式)が注目されている.これまでに筆者らを 含め様々な研究機関から多くの AT 方式が提案されてきた.これらにより行列計算ラ イブラリのユーザがパラメータやアルゴリズムの選択に悩まずに良好な条件でライブ ラリを利用できるようになってきた. しかし,既存のライブラリでは対応していない特殊な行列を処理する場合や,未だ ライブラリ化されていない新しい解法を使うために行列計算ライブラリを自作する場 合も増えている.これらの自作ライブラリに対し,その作成者が AT 方式を適用する 場合,AT 方式によって解法が複雑化し,プログラム記述のためにコード量が増加する 場合がある.これらの問題のため,作成者が多数の AT 方式を自作ライブラリに適用 するには非常に多くの労力を必要とする.そこで,これまで個別に提案されてきた自 動チューニングの実装に関して再利用性を高める手段が求められている. この課題に対し,筆者らは AT 方式の共通部分を関数として提供する AT インター フェース OpenATLib を提案している.本稿では OpenATLib を利用して疎行列ライ ブラリを作成する.それと同時にその性能を評価して OpenATLib 有効性を検証する ことを目的とする.. 櫻井隆雄† 直野健† 片桐孝洋†† †† 中島研吾 黒田久泰‡,†† 自動チューニングの実装の再利用性を実現するため,筆者らは自動チューニング インターフェース OpenATLib を提案している.本稿では OpenATLib を利用して 疎行列反復解法ライブラリ Xabclib_LANCZOS と Xabclib_GMRES を開発しその性 能を評価した. T2K オープンスパコン(東大版)1 ノード(16 コア)上で様々 なフロリダ大の行列を用いて OpenATLib の自動チューニング機能を評価した結 果,Xabclib_LANCZOS は最大で 22.4 倍,Xabclib_GMRES は最大 3.5 倍の速度向 上を達成した.. Development and Evaluation of Sparse Matrix Library with OpenATLib Takao Sakurai† Ken Naono† Takahiro Katagiri†† Kengo Nakajima†† and Hisayasu Kuroda‡,†† We proposed Auto-tuning interface named OpenATLib to realize reusability for implementation of Automatic Tuning facility (RIAT) for numerical libraries. In this paper, we developed sparse matrix libraries named Xabclib_LANCZOS and Xabclib_GMRES with the help of OpenATLib. Performance evaluation of OpenATLib using several U. Florida matrices with T2K Open Supercomputer (U. Tokyo Combined Cluster) on 1 node (16 cores) indicated that the maximum speedup established 22.4x (Xabclib_LANCZOS) and 3.5x (Xabclib_GMRES).. 2. ATインターフェースOpenATLibとそれを用いた疎行列ライブラリ ATインターフェースOpenATLibの概要 一般にライブラリ作成者は行列計算ライブラリの作成時には,工数を削減するため に一部の演算量の多いルーチン(行列-ベクトル積,直交化など)を対象のハードウェ ア構成向けに最適化された BLAS や Lapack といったサブルーチン群を用いることが多 い.そのため,課題を解決するシステムにおいても BLAS などと同様にサブルーチン 群の形式で提供すればライブラリ作成者が違和感なく使用できると考えられる. 2.1. †. 日立製作所 中央研究所 Central Research Laboratory, Hitachi, Ltd. †† 東京大学情報基盤センター スーパーコンピューティング研究部門 Supercomputing Research Division, Information Technology Center, The University of Tokyo ‡ 愛媛大学 大学院理工学研究科 Graduate School of Engineering, Ehime University. 1. ⓒ2009 Information Processing Society of Japan.

(2) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. そこで,AT 方式の解法に依存しない共通部分を切り出し,それらを Lapack などと 同様に関数の形で提供するサブルーチン群とそれら特有のパラメータを管理する機構 を提供することで,容易に AT 方式を自作ライブラリに組み込むことが可能となる. このサブルーチン群を自動チューニングインターフェース「OpenATLib」と名づけ, その基本構成を図 1 に示した.本インターフェースは①パラメータ自動選択機能,② アルゴリズム自動選択機能,③自動チューニングパラメータ管理機能,から構成され る.本インターフェースを構成する各機能を以下で説明する.. OpenATLibが備えるAT方式 ここでは OpenATLib が備える AT 方式について述べる.現在の OpenATLib はパラメ ータ自動選択機能として Krylov 部分空間法のリスタート周期が小さいかを判断する OpenATI_DAFRT を備えている.また,アルゴリズム自動選択機能として疎行列-ベク トル積の最適実装方式を判断する OpenATI_D{S|U}RMV を備える.以下で各機能の詳 細を述べる. 2.2. ●. OpenATI_DAFRT OpenATI_DAFRT は Krylov 部分空間のリスタート周期を現在の値からより大きな値 とするべきか判定するための機能である. 疎行列解法として代表的な Krylov 部分空間法は計算機上で実行する場合,使用する メモリを実行前に確定させるため Krylov 部分空間の次元数を一定数に制限する.それ より大きくなった場合は得られた最新の近似解を新たな初期値としてリスタートさせ て新たな Krylov 部分空間を生成する.この Krylov 部分空間の最大次元数をリスター ト周期と呼ぶ. 最適なリスタート周期の推定は実行前には困難であるが,実行中であれば残差の履 歴を監視し,残差の停滞を検出することで推定が可能となる. 残差の停滞を示す指標として収束判定 s-t 回目から s 回目の残差の中での最大値を最 小値で割った値を「残差 Max-Min 比」とし,以下では「MM 比」[1]と表記する.s 回 目の収束判定時の i 番目の残差 ri に対する過去 t 回分の MM 比 Ri(s,t)を式で表した ものが以下である.. ①パラメータ自動選択機能は行列計算ライブラリの実行時にリスタート周期のような パラメータの最適値を推定する AT 方式を実装している.ライブラリ作成者が所望 の AT 方式を自作ライブラリに実装する場合に当該方式を関数として提供する. ②アルゴリズム自動選択機能は行列-ベクトル積や直交化処理といったサブルーチン においてそれぞれ複数のアルゴリズムを実装している.そして,入力行列やライブ ラリが使用可能なメモリ量に応じて最適なアルゴリズムを選択する AT 方式を実装 している.ライブラリ作成者が所望の AT 方式を適用したサブルーチンを自作ライ ブラリに実装する場合にそれを関数として提供する. ③自動チューニングパラメータ管理機能は AT 方式により新たに生じるパラメータ (AT パラメータ)のデフォルト値を設定し,大域変数として管理する.普段はデフ ォルト値で動作するが,AT 方式に対して知識のあるライブラリ作成者が AT パラメ ータの変更を望む場合は大域変数にアクセスすることでデフォルト値からの変更 を可能とする.. Ri ( s, t ) =. OpenATLib 自動チューニングパラメータ 管理機能. ATパラメータ変更命令. 関数呼出. 行列計算ライブラリ. パラメータ自動選択関数. アルゴリズム自動選択機能. min z {ri ( z ) ; z = s − t + 1,L, s}. リスタート周期が十分に大きいときは残差が大きく減少して MM 比は大きくなり, 小さいときは残差が停滞するため MM 比は小さくなる. そこで,リスタート周期の大きさを自動的に最適化する場合は MM 比を監視し, MM 比が一定値を下回ったときにリスタート周期を大きくするようにすればよい. OpenATI_DAFRT は入力引数として残差履歴を受け取り,その MM 比を算出する. その結果,MM 比が閾値(デフォルト値は 100)以下であった場合は出力として 1 を 返す.ライブラリ作成者は収束判定のための残差算出後に OpenATI_DAFRT を呼び出 し,その出力が 1 であったときにリスタート周期を大きくするように記述すればよい.. ATパラメータ管理. パラメータ自動選択機能. max z {ri ( z ) ; z = s − t + 1,L, s}. 関数呼出 アルゴリズム自動選択関数. 図1. OpenATLib の基本構成 2. ⓒ2009 Information Processing Society of Japan.

(3) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. ●. OpenATLibを用いた疎行列ライブラリXabclib_LANCZOS,Xabclib_GMRES OpenATLib を実装した疎行列ライブラリとして,標準固有値問題を求解する LANCZOS 法[3]ライブラリ Xabclib_LANCZOS,および連立一次方程式を求解する GMRES 法[4]ライブラリ Xabclib_GMRES を新規開発した[5]. Xabclib_LANCZOS,Xabclib_GMRES は共に OpenATLib が提供するリスタート周 期最適化機能 OpenATI_DAFRT,行列-ベクトル積最適化機能 OpenATI_D{S|U}RMV を実装している.また,Xabclib_GMRES は ILU(0),Jacobi,SSOR の 3 種類の前処 理を備えている.. OpenATI_D{S|U}RMV OpenATI_DSRMV は倍精度型実対称疎行列-ベクトル積,OpenATI_DURMV は倍精度 型実非対称疎行列-ベクトル積の最適なアルゴリズムを判定し実行する機能である. 疎行列-ベクトル積は反復解法において多くの回数が実行され,その演算時間の合計 は解法の中で大きな割合を占める.疎行列-ベクトル積のアルゴリズムは様々なものが 存在するが,実行する計算機環境(特に並列数)や疎行列の内部形状などにより適切 なアルゴリズムは変化する.そのため,一概にどのアルゴリズムが最適のものである とは決め難い.そのため,実行時に環境や行列に応じて最適なアルゴリズムを選択す る方式が必要となる[2]. OpenATI_D{S|U}RMV は解法開始直後の最初の疎行列-ベクトル積の実行時に複数 の実装方式を順番に実行し,演算時間が最も短かった方式で以後の疎行列-ベクトル積 を実行することで最適アルゴリズムの選択を実現している. 以下に示すように OpenATI_DSRMV,OpenATI_DURMV のそれぞれで 3 種のアルゴ リズムを用意している.. 2.3. 3. 性能評価 性能評価環境とテスト行列 開発した OpenATLib および Xabclib_LANCZOS,Xabclib_GMRES の有効性を確認す るためにこれらの性能評価を実施した.本評価は T2K オープンスパコン(東大版)1 ノードを利用した.T2K オープンスパコン(東大版)1 ノードの仕様およびコンパイ ル環境を表 1 に示した. 3.1. OpenATI_DSRMV(対称疎行列用) S1) 内積ループ,外積ループ分割方式 行列-ベクトル積における内積ループ,外積ループを逐次実行する方式.基本的に低 速だが,並列数が大きくなったときに有効な場合がある. S2) ループ融合方式 内積ループ,外積ループをマージし,1 つの 2 重ループで実行する方式.3 方式の中 では多く使われ,安定して高い性能が得られる. S3) ループ融合+リダクション並列方式 S2 の上に並列実行がしやすいように動的作業領域を割当てた方式.並列数が増えた 際に特に有効となる場合が多いが,並列数が少ないと性能が得られない.. 表1. T2K オープンスパコン(東大版)1 ノードの仕様およびコンパイル環境 CPU L2 サイズ 主記憶サイズ. OpenATI_DURMV(非対称疎行列用) U1) ループがコンパイラによりベクトル化されるよう記述した方式 U2) 2 重ループが 8-2 ループアンローリングになるよう明示的にディレクティブを挿 入した方式 U3) ループがコンパイラによりベクトル化されないよう記述した方式. Quad-Core AMD Opteron(tm) Processor 8356 2.3GHz 16core/1node 2MByte/4core 32GByte(8GByte/1Socket). OS. Red Hat Enterprise Linux 5. コンパイラ コンパイル オプション. Intel Fortran Compiler Professional Version 11.0 –O3 –m64 –openmp –mcmodel=medium. テスト行列はフロリダ大学の Sparse Matrix Collection[6]よりそれぞれ 20 個ずつ選出 した.Xabcliob_LANCZOS 用の行列を表 2,Xabclib_GMRES 用の行列を表 3 に示した. 表 2,表 3 では分野ごとに行列をまとめ,さらに次元数の少ない順に並べた. その他の解法固有の条件として,Xabclib_LANCZOS において求める固有値の個数 は 10,Xabclib_GMRES では解ベクトルは全要素が 1,初期近似解ベクトルは全要素 0 とし,前処理として ILU(0)を用いた.. ライブラリ作成者は BLAS2(行列-ベクトル積の標準ライブラリ)と同様に行列-ベ クトル積の実行タイミングで OpenATI_D{S|U}RMV を呼び出せばよい.. 3. ⓒ2009 Information Processing Society of Japan.

(4) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. 表2. Xabclib_LANCZOS 用テスト行列. Matrix vibrobox Lin cfd1 cfd2 gyro t3dl c-71 Si5H12 SiO dawson5 H2O F2 oilpan shipsec1 bmw7st_1 SiO2 shipsec5 Si41Ge41H72 bmw3_2 Ga41As41H72. N 12328 256000 70656 123440 17361 20360 76638 19896 33401 51537 67024 71505 73752 140874 141347 155331 179860 185639 227362 268096. NNZ 177578 1011200 949510 1605669 519260 265113 468096 379247 675528 531157 1141880 2682895 1835470 3977139 3740507 5719417 5146478 7598452 5757996 9378286. 表3 Matrix chem_master1 torso2 torso1 torso3 memplus ex19 poisson3Da airfoil_2d poisson3Db viscoplastic2 xenon1 xenon2 wang4 ecl32 sme3Da sme3Db sme3Dc epb1 epb2 epb3. Field acoustics chemistry fluid dynamics model reduction optimization. structural. Xabclib_GMRES 用テスト行列 N 40401 115967 116158 259156 17758 12005 13514 14214 85623 32769 48600 157464 26068 51993 12504 29067 42930 14734 25228 84617. NNZ 201201 1033473 8516500 4429042 126150 259879 352762 259688 2374949 381326 1181120 3866688 177196 380415 874887 2081063 3148656 95053 175027 463625. Field. 2D/3D. electric circuit fluid dynamics. materials semiconductor device structural. thermal. リスタート周期を固定した方が性能が良かった bmw3_2,c-71 などは,リスタート 回数が比較的少なく演算時間が短いために,自動チューニングにより最適なリスター ト周期を判別する前に終了したと考えられる.逆に,リスタート周期を固定したとき に演算終了まで 1000 回以上の多くのリスタート回数を必要とする t3dl や未収束の Ga41As41H72 などは自動チューニングにより最適なリスタート周期を探索した結果, 数十回のリスタートで演算が終了でき,20 倍近くの速度向上が得られている. 続いて,Xabclib_GMRES において,リスタート周期を同じく 30 に固定した場合と OpenATLib のリスタート周期自動チューニング機能を用いて解いた場合の演算時間を 比較した.自動チューニングにおいてリスタート周期の初期値を 2,最大値を 100 と し,OpenATI_DAFRT の戻り値が1のときに 5 ずつ増加させた.その結果を表 5 に示 した.表中の“M”, “restart”, “time”の意味は表 4 と同一である.前述のように解ベ クトルは全要素が 1,初期近似解ベクトルは全要素 0 とし,前処理として ILU(0)を用. リスタート周期自動チューニングの評価結果 最初にリスタート周期自動チューニング(OpenATI_DAFRT)の効果を評価した. Xabclib_LANCZOS において求める固有値の数を 10 としたときに,リスタート周期 を 30 に固定して解いた場合と,OpenATLib のリスタート周期自動チューニング機能 を用いて解いた場合の演算時間を比較した.自動チューニングにおいてリスタート周 期の初期値を 10,最大値を 150 とし,OpenATI_DAFRT の戻り値が1のときに 5 ずつ 増加させた.その結果を表 4 に示した.表中の“M”は演算終了時のリスタート周期, “restart”は演算終了までに行なったリスタートの回数,“time”は演算時間である. 評価の結果,20 個の行列の中でリスタート周期を 30 に固定した場合と比べて自動 チューニングを用いた場合は 10 個の行列で速度向上し,9 個の行列で速度が低下して いた.残り 1 つの Ga41As41H72 ではリスタート周期を 30 に固定した場合では収束し なかったが,自動チューニングを用いた場合は解が得られた. 3.2. 4. ⓒ2009 Information Processing Society of Japan.

(5) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. いた. 評価の結果,20 個の行列の中でリスタート周期を 30 に固定した場合と比べて自動 チューニングを用いた場合は 12 個の行列で速度向上し,4 個の行列で速度が低下して いた.また,リスタート周期を 30 に固定した場合に未収束になる残り 4 つの行列では 自動チューニングにより解が得られるようになっていた.. 表4. Xabclib_GMRES においても,Xabclib_LANCZOS と同様にリスタート回数の少ない poisson3Da や airfoil_2d などではリスタート周期を固定した方が演算時間が短かく,収 束するまでに必要なリスタート回数の多い sme3Da などでは性能が大きく向上してい た. 以上から,リスタート周期の自動チューニング機能は必ずしも速度向上をもたらす わけではないが,演算時間の大幅な増加や未収束を防げると考えられる.. Xabclib_LANCZOS におけるリスタート周期自動チューニングの効果 行列. 表5. リスタート周期固定 リスタート周期 AT AT による M restart time(sec) M restart time(sec) 速度向上 1.13. vibrobox. 30. 24. Lin. 30. 1047. cfd1. 30. 55. 12.42. cfd2. 30. 45. 18.69. gyro. 30. 10. 1.13. t3dl. 30. 1878. 125.62. c-71. 30. 4. 0.70. Si5H12. 30. 192. SiO. 30. dawson5. 30. H2O. 30. 623. 168.46 130. 40. F2. 30. 27. 15.04. 50. 21. oilpan. 30. 28. 10.63. 45. 24. shipsec1. 30. 26. 20.89. 50. 30. bmw7st_1. 30. 1. 1.06. 15. 5. SiO2. 30. 699. 805.68 145. 45. shipsec5. 30. 53. 27. 60.41. Si41Ge41H72. 30. 411. bmw3_2. 30. 3. Ga41As41H72. 30 10000. Xabclib_GMRES におけるリスタート周期自動チューニングの効果 リスタート周期固定 行列. リスタート周期 AT. M restart time(sec) M. restart time(sec). AT による 速度向上. 35. 20. 1.04. 1.09. chem_master1. 30. 22. 2.55. 52. 14. 2.25. 1.13. 601.65 150. 54. 214.49. 2.81. torso2. 30. 1. 0.68. 7. 2. 0.31. 2.19. 24. 11.16. 1.11. torso1. 30. 1. 2.54. 2. 1. 0.72. 3.53. 70. 28. 21.31. 0.88. torso3. 30. 12. 33.57. 32. 14. 34.11. 0.98. 35. 16. 1.43. 0.79. memplus. 30. 5. 0.25. 22. 10. 0.20. 1.25. 90. 33. 6.69. 18.79. ex19. 30. 1000. - 100. 60. 26.23. -. 25. 17. 1.38. 0.51. poisson3Da. 30. 3. 0.48. 17. 7. 0.54. 0.89. 17.99 115. 34. 9.34. 1.93. airfoil_2d. 30. 7. 0.73. 22. 14. 0.83. 0.88. 161. 24.32 100. 37. 13.72. 1.77. poisson3Db. 30. 7. 10.38. 17. 14. 11.03. 0.94. 1052. 135.75 105. 34. 14.79. 9.18. viscoplastic2. 30. 19. 2.93. 37. 15. 1.70. 1.72. 42.01. 4.01. xenon1. 30. 30. 20.16. 62. 19. 16.18. 1.25. 15.42. 0.97. xenon2. 30. 40. 92.96. 72. 20. 64.29. 1.45. 11.97. 0.89. wang4. 30. 5. 0.37. 17. 9. 0.29. 1.28. 30.58. 0.68. ecl32. 30. 1000. -. 92. 22. 11.61. -. 1.27. 0.83. sme3Da. 30. 670. 215.49 100. 90. 101.33. 2.13. 207.74. 3.88. sme3Db. 30. 1000. - 100. 120. 377.29. -. 0.98. sme3Dc. 30. 1000. - 100. 122. 575.63. -. 59.31. 80. 75. 679.91 150. 40. 274.68. 2.48. epb1. 30. 11. 0.38. 32. 14. 0.35. 1.09. 25. 19. 12.93. 0.33. epb2. 30. 3. 0.22. 12. 9. 0.21. 1.05. - 150. 44. 204.05. -. epb3. 30. 11. 3.22. 42. 14. 3.02. 1.07. 4.20. 5. ⓒ2009 Information Processing Society of Japan.

(6) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. 行列-ベクトル積自動チューニングの評価結果 続いて,行列-ベクトル積の自動チューニング(OpenATI_D{S|U}RMV)の効果を評 価 し た . 本 評 価 で は 複 数 の 行 列 に 対 し て 並 列 数 を 1, 4, 8, 16 と 変 化 さ せ て , OpenATI_D{S|U}RMV に実装されている S1~S3,U1~U3 の各方式の性能を測定した. 図 2 に OpenATI_DSRMV の 3 種の実装方式の演算性能を示した.評価に使用した行 列は表 2 に示した dawson5,F2,Ga41As41H72 の 3 つである.図 2 から S2(ループ融 合方式)は 1SMP のときは 3 つの行列全てで最も性能が良いが,並列数を増やしたと きの加速率が悪く,4SMP 以上では S3(ループ融合+リダクション並列方式)の方が 2 倍近くの高い性能が得られる.しかし,dawson3 のように 16SMP 時に S3 が S2 の性 能を 10%程度下回っている場合もあり,こういった場合に S2 を選択できるため, OpenATI_DSRMV の行列-ベクトル積実行方式選択は有効に働くと考えられる.一方, S1(内積ループ,外積ループ分割方式)は 12 パターンの全てにおいて最も性能が悪 く,より有意な実装方式に入れ替える必要があるとわかった. OpenATI_DURMV の 3 種の実装方式の演算性能を図 3 に示した.この評価に使用し た行列は図 3 に示した memplus,ecl32,sme3Da の 3 つである.図 3 では ecl32,sme3Da の 2 つは全ての並列数において U3(ループがコンパイラによりベクトル化されないよ う記述した方式)で高い性能が得られた.一方,memplus は全ての並列数で U1(ルー プがコンパイラによりベクトル化されるよう記述した方式)が U3 より 10%程度高い 性能が得られた.このように非対称行列では行列によって有効な実装方式が異なるた め,実行時に最適な実装方式を探索する自動チューニングが有効であると考えられる. 以上から,行列-ベクトル積の最適実装方式を探索する自動チューニングには有効で あるといえる.しかし,現状は S1 のように選択されない実装方式も含まれており, より有意な実装方式を検討する必要がある. 3.4 2 つの自動チューニングを合わせた評価結果 最 後 に Xabclib_LANCZOS , Xabclib_GMRES の 2 つ の ラ イ ブ ラ リ に お い て OpenATI_DAFRT ,OpenATI_D{S|U}RMV を同時に動作させたときに,AT を使用しな かった場合と比べてどの程度の性能向上効果が得られるか評価した.評価に用いた行 列は表 2,表 3 で示したものである. 表 6 に Xabclib_LANCZOS でリスタート周期を 30,行列-ベクトル積の実装方式を S2 に固定した場合と比べ,双方を自動チューニングで最適化した場合の性能向上効果 を示した.表中の“M”,“restart”,“time”の意味は表 4 と同一である. リスタート周期の自動チューニングのみの場合,自動チューニングが無い場合と比 べ高い性能が得られた,もしくは解けないものが解けたのは 20 個中 11 個であったが, 行列-ベクトル積の自動チューニングを同時に使用することで 20 個中 16 個で高い性能 が得られるようになった.また,元々高い性能が得られていたものでも性能向上効果 はさらに高くなっており,最も向上率の高かった t3dl においては 22.5 倍も向上してい. た. 表 7 に Xabclib_GMRES でリスタート周期を 30,行列-ベクトル積の実装方式を U3 に固定した場合と比べ,双方を自動チューニングで最適化した場合の性能向上効果を 示した.表中の“M”,“restart”,“time”の意味は表 4 と同一である. Xabclib_GMRES では自動チューニング無の場合と比べて高い性能が得られていた のは 20 個中 16 個とリスタート周期のみの場合と変化が無く,行列-ベクトル積の自動 チューニングの併用による性能向上はあまり見られなかった.最も性能向上率の高か った torso1 においても 3.5 倍のまま変化が無かった.これは自動チューニングの結果 殆どの行列で U3 を使用していたことが原因であった. 以上の結果から,OpenATLib によって提供される自動チューニングにより演算時間 の大幅な増加や未収束を防げ,多くの場合で性能向上が得られることがわかった.し かし,特に行列-ベクトル積の自動チューニングにおいてその実装方式をより有効なも のに変更していく必要があるとわかった.. 3.3. 4. おわりに 本稿では,行列計算ライブラリに対して自動チューニングの実装の再利用性を実現 するために提案された自動チューニングインターフェース OpenATLib を利用して,疎 行列反復解法ライブラリ Xabclib_LANCZOS,Xabclib_GMRES を開発した.同時に OpenATLib の効果を調べることを目的に,開発したライブラリの性能評価を T2K オー プンスパコン(東大版)上でフロリダ大の Sparse Matrix Collection から得た 20 個の行 列を用いて実施した. 評価の結果,OpenATLib により演算時間の大幅な増加や未収束を防げ手いたのと同 時に,多くの場合で性能向上が得られ,Xabclib_LANCZOS では最大で性能が 22.5 倍, Xabclib_GMRES では最大で 3.5 倍となっており,有効性が確認できた. しかし,評価した中で 20%の行列では OpenATLib の使用により性能が劣化してい たこと,Xabclib_GMRES において行列-ベクトル積の自動チューニングの効果が見ら れないなどの問題も明確になった.これらの解決が今後の課題となる. なお,OpenATLib と Xabclib のソースコードは,PC クラスタコンソーシアム経由で 配布される予定である. 謝辞 本研究は文部科学省「e-サイエンス実現のためのシステム統合・連携ソフト ウェアの研究開発」,シームレス高生産・高性能プログラミング環境,の支援を受けて いる.. 6. ⓒ2009 Information Processing Society of Japan.

(7) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. memplus. dawson5 2.5. PERFORMANCE[Gflops]. PERFORMANCE[Gflops]. 0.7 0.6 0.5 S1 S2 S3. 0.4 0.3 0.2 0.1. 2 1.5. U1 U2 U3. 1 0.5 0. 0 1SMP. 4SMP. 8SMP. 1SMP. 16SMP. 4SMP. PERFORMANCE[Gflops]. PERFORMANCE[Gflops]. 1.2 1 0.8 S1 S2 S3. 0.6 0.4 0.2 0 4SMP. 8SMP. 7 6 5 U1 U2 U3. 4 3 2 1 0 1SMP. 16SMP. 4SMP. PERFORMANCE[Gflops]. PERFORMANCE[Gflops]. 1.2 1 0.8. S1 S2 S3. 0.6 0.4 0.2 0. 図2. 4SMP. 8SMP. 16SMP. sme3Da. Ga41As41H72. 1SMP. 16SMP. ecl32. F2. 1SMP. 8SMP. 8SMP. 16SMP. 7 6 5 U1 U2 U3. 4 3 2 1 0 1SMP. OpenATI_DSRMV における 3 種の行列-ベクトル積実装方式の演算性能. 図3 7. 4SMP. 8SMP. 16SMP. OpenATI_DURMV における 3 種の行列-ベクトル積実装方式の演算性能 ⓒ2009 Information Processing Society of Japan.

(8) Vol.2009-HPC-121 No.17 2009/8/5. 情報処理学会研究報告 IPSJ SIG Technical Report. 表6. Xabclib_LANCZOS における 2 つの自動チューニングの効果 AT 無 行列. 表7. Xabclib_GMRES における 2 つの自動チューニングの効果. AT 有. M restart time(sec) 1.13. AT 無. AT による M restart time(sec) 速度向上. vibrobox. 30. 24. Lin. 30. 1047. cfd1. 30. 55. 12.42. 80. cfd2. 30. 45. 18.69. 70. gyro. 30. 10. 1.13. t3dl. 30. 1878. 125.62. c-71. 30. 4. 0.70. Si5H12. 30. SiO. 30. dawson5 H2O. 行列. AT 有. AT による restart time(sec) 速度向上. M restart time(sec) M. 35. 20. 1.12. 1.01. chem_master1. 30. 22. 2.55. 52. 14. 2.22. 1.15. 601.65 150. 54. 190.48. 3.16. torso2. 30. 1. 0.68. 7. 2. 0.30. 2.27. 24. 11.75. 1.06. torso1. 30. 1. 2.54. 2. 1. 0.72. 3.52. 28. 21.35. 0.88. torso3. 30. 12. 33.57. 32. 14. 33.76. 0.99. 35. 16. 0.83. 1.36. memplus. 30. 5. 0.25. 22. 10. 0.20. 1.25. 90. 33. 5.59. 22.46. ex19. 30. 1000. - 100. 54. 21.28. -. 25. 17. 1.17. 0.60. poisson3Da. 30. 3. 0.54. 0.89. 192. 17.99 115. 34. 8.10. 2.22. airfoil_2d. 30. 161. 24.32 100. 37. 14.48. 1.68. poisson3Db. 30. 30. 1052. 135.75 105. 34. 14.68. 9.25. viscoplastic2. 30. 30. 623. 168.46 130. 40. 35.34. 4.77. xenon1. 30. F2. 30. 27. 15.04. 50. 21. 8.74. 1.72. xenon2. oilpan. 30. 28. 10.63. 45. 24. 9.72. 1.09. wang4. shipsec1. 30. 26. 20.89. 50. 30. 29.73. 0.70. bmw7st_1. 30. 1. 1.06. 15. 5. 0.85. 1.25. SiO2. 30. 699. 805.68 145. 45. 137.32. shipsec5. 30. 53. Si41Ge41H72. 30. 411. bmw3_2. 30. 3. Ga41As41H72. 30 10000. 59.31. 0.48. 17. 7. 7. 0.73. 22. 14. 0.83. 0.88. 7. 10.38. 17. 14. 11.04. 0.94. 19. 2.93. 37. 15. 1.74. 1.68. 30. 20.16. 62. 19. 16.47. 1.22. 30. 40. 92.96. 72. 20. 64.31. 1.45. 30. 5. 0.37. 17. 9. 0.29. 1.28. ecl32. 30. 1000. -. 92. 22. 11.66. -. sme3Da. 30. 670. 215.49 100. 87. 97.48. 2.21. 5.87. sme3Db. 30. 1000. - 100. 120. 380.39. -. - 100. 98. 531.37. -. 14. 0.34. 1.12. 75. 27. 36.35. 1.63. sme3Dc. 30. 1000. 679.91 150. 40. 160.70. 4.23. epb1. 30. 11. 0.38. 32. 4.20. 25. 19. 8.63. 0.49. epb2. 30. 3. 0.22. 12. 9. 0.21. 1.05. - 150. 44. 144.12. -. epb3. 30. 11. 3.22. 42. 14. 3.00. 1.07. 3) V. Hernandez, J. E. Roman, and A. Tomas: Evaluation of Several Variants of Explicitly Restarted Lanczos Eigensolvers and Their Parallel Implementations, High Performance Computing for Computational Science - VECPAR 2006, pp.403-416 (2007). 4) Y. Saad: Iterative Methods for Sparse Linear Systems (2nd ed.), SIAM, Philadelphia (2003). Xabclib プロジェクトホームページ http://www.abc-lib.org/Xabclib/index-j.html 5) T. A. Davis: Sparse Matrix collection, http://www.cise.ufl.edu/research/sparse/matrices/. 参考文献 1) 櫻井隆雄, 直野健, 恵木正史, 猪貝光祥, 木立啓之:リスタート付ランチョス法における実行 時パラメータ自動チューニング方式の提案」, 第 111 回ハイパフォーマンスコンピューティング 研究会,情報処理学会研究報告 2007-HPC-111, pp.173-178 (2007). 2) 工藤誠, 黒田久泰, 片桐孝洋, 金田康正:並列疎行列ベクトル積における最適なアルゴリズ ム選択の効果, 第 147 回アーキテクチャ研究会,情報処理学会研究報告 2002-ARC-147, pp.151-156 (2002).. 8. ⓒ2009 Information Processing Society of Japan.

(9)

表 2 Xabclib_LANCZOS 用テスト行列 表 3 Xabclib_GMRES 用テスト行列 Matrix N  NNZ Field  vibrobox  12328  177578 acoustics  Lin  256000  1011200 chemistry  cfd1  70656  949510 cfd2 123440 1605669 fluid  dynamics gyro 17361 519260 t3dl 20360 265113 model  reduction  c-71
表 6 Xabclib_LANCZOS における 2 つの自動チューニングの効果 表 7 Xabclib_GMRES における 2 つの自動チューニングの効果

参照

関連したドキュメント

主として、自己の居住の用に供する住宅の建築の用に供する目的で行う開発行為以外の開

CIとDIは共通の指標を採用しており、採用系列数は先行指数 11、一致指数 10、遅行指数9 の 30 系列である(2017

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

トリガーを 1%とする、デジタル・オプションの価格設定を算出している。具体的には、クー ポン 1.00%の固定利付債の価格 94 円 83.5 銭に合わせて、パー発行になるように、オプション

(7)

SST を活用し、ひとり ひとりの個 性に合 わせた   

運航当時、 GPSはなく、 青函連絡船には、 レーダーを利用した独自開発の位置測定装置 が装備されていた。 しかし、

本稿で取り上げる関西社会経済研究所の自治 体評価では、 以上のような観点を踏まえて評価 を試みている。 関西社会経済研究所は、 年