Date: Thu, 22 May 1997 08:18:40 +0000 Sender: rsaito@rope.ee.uec.ac.jp コメントです。情報が少なすぎてコメントしずらいです。 RM> =============================================================== RM> 5/22 第10回 meeting の報告 RM> ○ GS <-> メモリ の通信で、読みと書き込みが 重なってしまう部分の処理 RM> RM> # メモリcache を 置いたりする 通信量が 33MHz 以上にあげられるのですか? RM> ○ GS のメモリ容量 総計 < 行列の容量 の場合を考える。 RM> この場合いままで考えてきた、ハウスホルダー変換では、 RM> 外部に、巨大な 行列A 用のメモリ(もしくは低速なデバイス) RM> を持っていると、、GS の数に寄らず、計算速度が大体一定に RM> なってしまう。つまりGS が 一個でも構わないことになる。 RM> (入れ換えには 分割数に関わらず 2N^2 step かかる RM> →つまり、毎回入れ換える必要のないアルゴリズムが必要) RM> これは構成の問題より、アルゴリズムの問題であるが、この場 RM> 合でも、GS を増やしたことによるそれなりに速度の向上が望め RM> るアルゴリズムがあるなら、商業的に意味があるらしい。 > 考えても思いつかない..... それにしてのメモリのお化け... これは考えるのがあまり意味がありません。計算を速くしたいとい うのが要求ですから、memory を増やして対応する。用途に応じて memory を選択出来るようにするのが良いと思います。現在通常の 行列計算は N=1000 から 10000 です。N=100,000 から 1000,000 ぐらいになりますと、行列要素の大半が 0 であったり、単調な値 (つまり計算で簡単に求められる)場合が多いです。行列要素は、い ずれかの方法で計算して memory のなかに入れますから、その作業 を毎回すれば良いのです。 したがって、memory にためこむより、毎回行列要素を計算する手 法が用いられます。その場合には、ハウスホルダー変換のように、 行列要素を変形する手法ではなく、A をそのまま使う アルゴリズ ムがあります。(有名なのは Lanzos 法です。また 共役勾配法によっ て固有ベクトルを求めるのは、求める固有ベクトルの数が、行列の 次元より少ない場合です。) 毎回行列要素を計算する手法は、計算するプログラムを GS 内で計 算出来なければなりませんが、データの入出量はほとんどなくなり ます。Gaussian 94 は最近この手法を用いています。 RM> ○ 演算の 実際の演算時間は? RM> ○ パイプラインのレイテンシーはどのくらい? RM> ○ 掛け算 割算 sqrt の 記述は? これについては? 高田さんから 答えがあったのですか? RM> 課題 : GS のメモリ容量 総計 < 行列の容量 のとき どうするか? RM> 1 うまいアルゴリズムを考える RM> 2 とりあえずswapしながら計算する。(ウルトラ遅い) RM> 3 計算をあきらめる (Nを限定する) 適切な課題でないと思います。3 が適切です。それより 疎行列 (ほとんど 0) や 帯行列の場合の処理に対応した方が良いです。 -------- 電気通信大学電子工学科 齋藤 理一郎 rsaito@tube.ee.uec.ac.jp