HackerNews

キャッシュフレンドリーで低メモリのランツァスアルゴリズム(Rust)

Cache-Friendly, Low-Memory Lanczos Algorithm in Rust

https://lukefleed.xyz/posts/cache-friendly-low-memory-lanczos/


この記事では、行列関数を計算するための標準的なランツァス法のメモリ要件の厳しさに対する解決策を探ります。特に、大規模な問題(例えば、500,000変数で1000回の反復を必要とする場合)では、基底行列を保存するだけで約4GBのメモリが必要です。本記事では、O(n)のメモリしか必要としない2パスのランツァスアルゴリズムを紹介し、これは行列-ベクトルの積の数を倍増させるものの、特定の問題では計算速度が向上する可能性があることを説明します。また、メモリと計算のトレードオフや、密行列に対するスケーラビリティの問題についても考察されます。全てのコードはGitHubで入手可能で、詳細な技術報告も提供されています。