タグ付けされた質問 「cache-oblivious」

2
外部メモリの指数関数的高速化
バックグラウンド 外部メモリ(DAMモデル)は、実行するI / Oの数(本質的に、キャッシュミスの数)によってアルゴリズムのコストを定義します。これらの実行時間は、一般の用語で与えられる、メモリのサイズ、及びB、一度にメモリに転送することができる単語の数。BとMにそれぞれLとZが使用される場合があります。 MMMBBBLLLZZZBBBMMM 例えば、ソーティングはコストが必要およびナイーブ行列乗算は必要とΘ (nは3 / Bを√Θ(N/BlogM/BN/B)Θ(N/BlogM/B⁡N/B)\Theta(N/B\log_{M/B} N/B)。 Θ(n3/BM−−√)Θ(n3/BM)\Theta(n^3/B\sqrt{M}) このモデルは、またはMの知識を持たない「キャッシュ忘却型アルゴリズム」の分析に使用されます。通常、目標は、キャッシュを無視するアルゴリズムが外部メモリモデルで最適に実行されることです。これは、たとえば、順列問題(Bradal、Faderberg 2003に示されている)のように、常に可能とは限りません。ソートおよび行列乗算の説明を含む、キャッシュを使用しないアルゴリズムの詳細については、Erik Demaineによるこの記事を参照してください。BBBMMM を変更すると、ソートの対数高速化と行列乗算の多項式高速化が発生することがわかります。(この結果は1981年のKung Hongからのものであり、実際にはキャッシュの忘却と外部メモリモデルの形式化の両方に先立っています)。MMM 私の質問はこれです: スピードアップが指数関数的になる場合はありますか?実行時間はf (N 、B )/ 2 O (M )のようなものになります。この説明に適合するキャッシュを意識しないアルゴリズムまたはデータ構造に特に興味がありますが、キャッシュを認識するアルゴリズム/データ構造、または最もよく知られている下限にも満足しています。MMMf(N,B)/2O(M)f(N,B)/2O(M)f(N,B)/2^{O(M)} 一般に、ほとんどのモデルでは、Nが入力サイズであり、明らかにM > wである場合、ワードサイズと想定されます。次に、2 Mの高速化により、Nの多項式高速化が行われます。これは、私が探している問題が存在する場合、それは多項式ではないと信じさせます。(そうでない場合は、キャッシュサイズを定数で変更して、一定数のI / Oを取得できますが、これはありそうにないことです)。w=Ω(logN)w=Ω(log⁡N)w = \Omega(\log N)NNNM>wM>wM > w2M2M2^MNNN

2
キャッシュ忘却型アルゴリズムの出発点は?
キャッシュを気にしないアルゴリズムとデータ構造についてもっと学ぶのは興味深いですが、論文が多すぎてどこから始めればいいのか正直にわかりません。私はこのテーマについてProkupの元の論文を見つけました。これは良い出発点のようですが、このテーマの簡単でわかりやすい紹介がある場合は、むしろそこから始めたいと思います。この件に関する標準的な「頼りになる」参照はありますか? ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.