連立一次方程式ソルバーは、いろいろな種類の問題が解けるということだけでは十分ではなく、利用者が使う数多くのシステムにおいて高いパフォーマンスが得られる必要がある。本研究では、並列ベクトル型コンピューターであるHITACHI SR8000/MPP、FUJITSU VPP800、NECSX-5に加えて、SUN Enterprise3500、SGI 2100、COMPAQ GS80、PentiumIII Clusterといった非ベクトル型コンピューター上においても自動チューニングの必要性を示すことができた。従来のようにアルゴリズムを固定化してしまうと、一部のシステムでは良くても、他のシステムでは高いパフォーマンスが得られないといったことが起こる。これは、浮動小数点レジスタの個数やキャッシュメモリ容量などのCPU特性、通信性能などがシステムによって大きく異なるためである。そこで、いろいろなアルゴリズムをソルバー内に実装し、ソルバーを実行する前や実行の途中に最適なアルゴリズムを選択することで、そのシステムに合ったアルゴリズムを自動的に選択することが可能であるということを示すことができた。 特に連立一次方程式の反復解法では、各反復において疎行列とベクトルの積が必要となり、計算時間の大部分を占める。プロセッサ内の計算部分においては、レジスタの個数を考慮したレジスタブロック化、メモリへの間接参照を少なくするようにした対角ブロック化、それにループアンローリングといった手法も用い、通信部分についてはMPIの集団通信を使う方法、通信回数を少なくする方法、データを詰めて通信量を最小にする方法など、計算部分と通信部分とで分けて実装した。このような実装方法により、自動チューニングするパラメーターが問題に依存したものかシステムに依存したものなのか見分けが付きやすくなるという利点が得られた。
|