研究概要 |
数式の計算の基礎となる基本演算を高性能化するための開発と実証実験を進め,これに基づく新たな式の表現法を提案し性能評価を行った.具体的には,大量のデータを扱う行列やベクトルを対象とし,その基本演算機能の汎用的な効率化を目指して開発と改良を行った.第一に,行列乗算の漸近的高速算法に見られる著しい高速性に着目し,行列要素がどのような形の場合に高速化するか,何に起因するのか,どのような量が計算量的な指標となるか,を計算機実験を繰り返して検討を重ねた.その結果,計算時間が,算術演算の回数による一般的な計算量よりも,比較やメモリアクセスの回数といった情報処理的な計算の複雑さに依存し,巨視的には空間計算量に密接に関連することがわかった.経験則として,Strassen流の高速乗算算法は,行列要素どうしの乗算が加減算よりも高価で,かつ,加減算が式の形や性質をあまり変化させず結果の乗算を複雑化しない場合に著しい効果の得られることを会得した。密な多項式や多倍長整数がその典型例であり,数式処理で多用される法の元での演算も同様の傾向を示す. 第二に,高速算法がより多くの場面で活用されるべくライブラリとして整備することの必要性を認識し,法演算における基本線形演算ライブラリを定義し実験的な実装を行った.実装においては汎用的な方法による高速化の可能性を探った.その手法として,予め計算した値の表を用いる等,除算を除去するための技法を開拓し,また,ストリーミングデータ向けのショートベクターSIMD命令の活用を試みた.これらに関しては,内外の研究者らと情報や意見の交換をしながら開発を進めた.各種技法の性能はハードウェアに大きく依存することが判明し,それ以上のチューニングは行っていない.これらの実験を通してStrassen流の高速乗算算法は疎行列には適さないことを理解したが,これを機に疎行列の表現法についても検討し実験を行った.その結果,行列の表現に2次元配列を用いることは数式処理では必然でないことが判明し,数式処理向けの行列の表現法の検討が第三の及び今後の検討課題となった. 分担者の野呂は,数式処理システムRisa/Asirの保守と改良を行う一方,グレブナー基底計算機能の一層の効率化,有限体上の多項式因数分解算法の開発と実装等,より高機能な代数算法の開拓と効率的な実装法の研究を行った.
|