研究概要 |
帯行列アルゴリズムは、行列の幾何学的な特性を利用してメモリ上の格納領域を節約するという特徴がある。近年、GPUなどの高速なコプロセッサが普及しているが、高速化の効果が得られるのはメモリ上の連続領域に格納された密行列の積に限られ、帯行列アルゴリズムに対する効果は未知である。そこで、一般的な帯行列格納形式としてB(j-i, i)に格納されているi行j列要素に対して、ホスト上で (前処理)B(j-i, i)->WK(i, j) という変換を行ったうえで、コプロセッサによる高速な密行列積を作用させ、必要に応じて (後処理)WK(i, j)->B(j-i, i) を行った場合の性能を評価した(変換行列は密行列として用意できる)。コプロセッサは主記憶とは別なメモリで演算を行うため、主記憶〈-〉コプロセッサ間のデータ転送が必要になる。マルチコアなどの共有メモリ方式と分散メモリ方式ではCPUとコプロセッサの対応関係が異なる。いずれにせよ、高速化のためにはCommunication Avoiding Algorithmを採用する必要がある。 一方、Grey BallardらによってCommunication Avoiding Symmetric Band Reductionという論文がACM Symposium on Principles and Practice of Parallel Programingに掲載された。そのため、帯行列に対する3重対角化の並列化アルゴリズムに関して最初から見直す必要が生じている。 現在、上記のような帯形式を保ったままでのチューニングが有利なのか、コプロセッサを前提にデータ変換・データ転送を容易にするのが有利なのかのトレードオフについて再検討している。
|