大規模で疎な連立1次方程式の効率の良い前処理の実装法を開発した。このような大規模な連立1次方程式は、独立集合を用いて次元数を減少させることで1回の反復にかかる演算量を減少させることができる。次元数を減少させたときにシュールコンプリメントと呼ばれる係数行列が出現するが、このシュールコンプリメントの条件数は通常は悪化するため、シュールコンプリメントを係数とする連立1次方程式には前処理が不可欠となる。ここで、前処理とは元の厳密解を変えることなしに、連立1次方程式の係数行列を解きやすい簡単な形にする手法のことである。通常、前処理行列は元の係数行列の逆行列を近似するように生成される場合が多い。前処理行列を求める方法はいくつか存在するが、本研究ではNewton法による前処理行列を求める方法を取り上げた。従来、Newton法による前処理行列の計算では、行列どうしの乗算が必要であったため、問題の規模によっては実装が不可能な場合もあった。それに対して、本研究では前処理行列とベクトルの演算のみを用いてNewton法の実装を行い、行列どうしの乗算を一切避ける実装法を開発した。このような実装法により従来の計算法では実装が不可能であった規模の問題でも実装を可能にした。また、従来は前処理行列を求める場合、連立1次方程式の問題によってあらかじめ非零要素の位置を決定したり、非零要素を計算したときに0に近い値を0にするドロップアウトという処理が必要であった。それに対して、本研究で提案した実装法では常に前処理行列と任意のベクトルの積しか用いないので、このような前処理行列の非零要素の構造を一切考慮しないで済むことも長所の1つである。 この提案した前処理の実装法を情報処理学会HPC研究会、オーストラリアでのCTAC2004という国際会議及び福岡で開かれたSCAN2004という国際会議で発表をした。 今後の課題は、本研究での前処理の実装法をshift方程式と呼ばれる数組の連立1次方程式に並列に適用できる算法を開発することである。
|