本年度は一つのGPUを用いた定型格子のUnion-Findアルゴリズムの開発を行った. 始めに研究計画で予定していたCUDAを用いた新たなUnion-Findアルゴリズムの提案とプログラム実装を行った.従来のCUDAを用いたUnion-Findアルゴリズムは隣接サイトとの比較と更新を更新がなくなるま反復する方法であったが,本研究で提案した手法は隣接サイトとの比較が一度で済むアルゴリズムである.そのため,従来手法よりも高速な計算が可能になると予想される.統計力学の分野で使用されているクラスターアルゴリズムを用い,同じGPUを用いた従来手法と提案手法の性能比較を行った.比較の結果,転移温度直上の2次元イジングモデルでは従来手法よりも40%速くなり,3次元イジングモデルでは従来手法よりも20%速くなることを確かめた.この結果はComputer Physics Communications Vol. 185 p.1038に掲載されており,新たなアルゴリズムのプログラムはComputer Physics Communications Vol. 200 p.400に掲載されている. 次に研究計画の二年目に予定していたOpenACCのプログラム開発を行った.当初CUDAで新たに開発したアルゴリズムをOpenACCに適用させる予定であったが,現在のOpenACCのバージョンではCUDAで使用出来た幾つかの関数が使用できない.この使用できない関数の中に新たなアルゴリズムの核となる部分があったため,従来手法でのOpenACCプログラム開発のみを行った.OpenACCはCUDAと違い,細かなチューニングは出来ないため,CUDAプログラムよりも性能が落ちることが予想される.同じGPUを用いて従来手法のOpenACCプログラムと従来手法のCUDAプログラムの性能比較をしたところ,10%程度OpenACCプログラムが遅いことが分かった.しかし,OpenACCプログラムは通常のCプログラムで書かれており,汎用性が高いものになっている.この結果及びOpenACCのプログラムはComputer Physics Communications Vol. 197 p.298に掲載されている.
|