外部メモリの指数関数的高速化


15

バックグラウンド

外部メモリ(DAMモデル)は、実行するI / Oの数(本質的に、キャッシュミスの数)によってアルゴリズムのコストを定義します。これらの実行時間は、一般の用語で与えられる、メモリのサイズ、及びB、一度にメモリに転送することができる単語の数。BMにそれぞれLZが使用される場合があります。 MBLZBM

例えば、ソーティングはコストが必要およびナイーブ行列乗算は必要とΘ nは3 / BをΘ(N/BlogM/BN/B)Θ(n3/BM)

このモデルは、またはMの知識を持たない「キャッシュ忘却型アルゴリズム」の分析に使用されます。通常、目標は、キャッシュを無視するアルゴリズムが外部メモリモデルで最適に実行されることです。これは、たとえば、順列問題(Bradal、Faderberg 2003に示されている)のように、常に可能とは限りません。ソートおよび行列乗算の説明を含む、キャッシュを使用しないアルゴリズムの詳細については、Erik Demaineによるこの記事を参照してください。BM

を変更すると、ソートの対数高速化と行列乗算の多項式高速化が発生することがわかります。(この結果は1981年のKung Hongからのものであり、実際にはキャッシュの忘却と外部メモリモデルの形式化の両方に先立っています)。M

私の質問はこれです:

スピードアップが指数関数的になる場合はありますか?実行時間はf N B / 2 O M )のようなものになります。この説明に適合するキャッシュを意識しないアルゴリズムまたはデータ構造に特に興味がありますが、キャッシュを認識するアルゴリズム/データ構造、または最もよく知られている下限にも満足しています。Mf(N,B)/2O(M)

一般に、ほとんどのモデルでは、Nが入力サイズであり、明らかにM > wである場合、ワードサイズと想定されます。次に、2 Mの高速化により、Nの多項式高速化が行われます。これは、私が探している問題が存在する場合、それは多項式ではないと信じさせます。(そうでない場合は、キャッシュサイズを定数で変更して、一定数のI / Oを取得できますが、これはありそうにないことです)。w=Ω(logN)NM>w2MN


推測できますが、?スピードアップB p o l y l o gB として与えられたケースを見つけましたか?N=Bpolylog(B)
vzn

残念ながら、それは私の目的のために点である必要があります。ただし、このリファレンスに興味があります。M
SamM

キャッシュ忘却アルゴリズムに関するウィキペディア。このフィールド表記には微妙な点があります。Demaineのp7脚注では、この領域で、は問題のサイズであり、n = N / Bである場合があります。あなたは使用nは上記と交互にN明らかに両方の入力サイズなど。少なくとも質問を標準化すべきだと思います。Nn=N/BnnN
vzn

一貫性を保つために編集しました。 入力の大きさであり、そしてnはその問題に対する実行時間は、一般の用語で定義されているためだけ行列乗算のために使用されるN × N行列(すなわち、N = N 2Nnn×nN=n2
SAMM

文献をスキャンした後、このケースを見ないでください。たぶんそのような参照はありませんか?たぶん、そのようなアルゴリズムは複雑であり、したがって、そのような高速化を得るために理論的に分析するのが難しいかもしれないといういくつかのケースがあります...?または多分それは考案されなければならないでしょう...?または、おそらくそれは不可能ですか?メモリへのランダムアクセスが可能な最悪のケースであるという考えがありますか?その場合、速度の増加はで線形であるように見えます...?または、メモリへのアクセスのフラクタルパターンが最悪の場合がありますか?このM
一連

回答:


3

質問を理解したかどうかはわかりません。しかし、に指数時間を必要とする問題が含まれているという仮定の下では、MO log N )の場合、指数関数的な数のI / O操作(サイズO log N の同じメモリブロックに、サイクルに入ることなく多項式のステップ数を超えて「滞在」することはできないため)およびM = Nの場合PSPACEMO(logN)O(logN)M=N必要なのは、線形の数のI / O操作だけです。また、このような問題が属していないことを、あなたの観察に関する高速化は、値のために保持しなければならない場合、それは正しいですMですΩ N (それは我々が事業の指数関数的な数を持っている意味しますので)。しかし、高速化がMのより小さい値にのみ適用される場合、直感的には、これは真実ではないと思います。なぜなら、サイズO log N の小さな問題のそれぞれが指数関数を必要とする問題を連結することができるはずだからです独自のサイズの時間、および指数関数的な数のI / O操作(つまり、p oPMΩ(N)MO(logN)、以降 P O のL Y Nはの指数関数的である O 対数Nを)。実際には、 P S P A C E- T Q B Fなどの完全な問題があなたの条件を満たしていると思います。poly(N)poly(N)O(logN)PSPACETQBF


私はあなたの議論のいくつかに従わないのではないかと心配しています。場合、外部メモリの問題は些細なことです。前述のとおり、M = O log N はやや馬鹿げています。これは、メモリのワード数が一定であるということを意味します(外部メモリの一般的な検証方法ではありませんが)。指数関数的なゲインがあったとあなたが言っていることがわかりますが、それは中間値については何も言いません。たとえば、外部メモリの最適なパーティションは2つの用語の最小値です(基本的に、すべてがメモリに収まる場合は、収まらない場合とはまったく異なる処理を行います)。除外できますか?M=Ω(N)M=O(logN)
SamM

1
M=Ω(N)M=N/2

ああ、もちろんあなたは定数因子が重要であることについては正しい。それは非常に理にかなっています。これは確かに良い出発点です。
SamM

I don't have any argument for intermediate values. At a very superficial level, I guess that some backtracking algorithms would have an exponential dependence on the memory size because I/O operations would be required at nodes of lower depth in the search tree. This dependence would apply to intermediate values. This says nothing about the inherent complexity of the problem, of course. Also, if you have M=ω(logN), the pigeonhole (cycling) argument given above would still yield a gain of T(N)/2M where T(N) is the time complexity of the problem.
user8477

-4

this question appears to veer into terra incognita ie unexplored territory. after some thinking & review here are some thoughts/ideas on this apparently very difficult/subtle question which hopefully will be intelligent but are not meant to be definitive.

Demain who you cite writes, "the principle idea [of cache oblivious algorithms] is simple: design external-memory algorithms without knowing B and M。しかし、この単純なアイデアには、驚くほど強力な結果がいくつかあります。」

また、驚くほど微妙な意味を持っているようです。このモデルを極値挙動について分析するのは難しいようで、これまで誰もこれをやったことがないようです。いくつかの調査があり、これまでのところフィールド全体を調査しているようです。これは、フィールドがわずか10年前であることを考えると驚くことではありません。

  • モデルは、より厳密/形式的/理論的/一般的/標準的な分析が可能な場合、チューリングマシンにまだ変換されていないようです。Big-Oh表記の概念全体と、その意味や定数の無関連性などの直感は、キャッシュ忘却型アルゴリズムのこの分野で必ずしも自動的に実行されるわけではありません。たとえば、モデルはすでに定数で動作しているようですBM正確なメモリサイズを測定します。フィールドには、これまでのダイナミクスの基本的な公理のセットがないようです。

  • 翻訳メモリは、チューリングとHartmanis-スターンズによって1936年に発明された時間/スペース階層定理 1965年ザッツ顕著〜3つので発見された(あなたは多少この質問にをほのめかしている)数十年はまだ時間/スペース階層定理は現在、多少と考えられています初級クラスおよび学部クラスで教えられています。このモデルでは、対応する階層定理はまだ確立されていないようです。その方法は簡単な問題ではありません。このモデルは実際には、標準のチューリングマシン(既にかなり複雑なダイナミクスを持っている)よりも「可動部分」が多いようです。つまり、拡張チューリングマシンのようなものです。

  • 別のアイデアは、この外部メモリモデルをなんらかの形でTMに変換することです。これは、キャッシュ忘却アルゴリズムに関する文献/調査には現れていないようです。1つのテープのサイズが「M」で、もう1つのテープのサイズが「M」で、ブロックが「B」のサイズで「M」に転送される2テープTMに関連しているようです。しかし、ここでの難点は、テープへの順次アクセスを使用するチューリングモデルよりもRAMモデルの方が多いことです。一方、これはシングルテープとマルチテープのTM間の変換に関連する微妙な問題にぶつかります。

  • この問題を経験的にシミュレーションで攻撃することをお勧めします。シミュレーションでは、例えば、キャッシュ忘却アルゴリズムに関するクマールのこの素晴らしい調査(2003)のように、文献が注目する傾向があります。キャッシュシミュレーション用のオンラインのプログラムや論文が多数あり、簡単な方法を使用して、大量のコードなしで質問に答えることができます。基本的な考え方の1つは、確率に基づいてメモリの「近くの」領域にアクセスする確率的アルゴリズムを作成することです。ここでの「近く」とは、必ずしも連続したメモリではなく、最近アクセスしたページの追跡に基づいてランダムなメモリページ(ブロック)を選択するアルゴリズムです。べき乗則の使用を提案する「最近アクセスした」リストで「近い」ページを選択する確率を決定します。これは、キャッシュベースのパフォーマンス改善が関係する重要な側面のようです。

  • ここでは、基本的に「コアメモリ」対ディスクメモリの尺度である「M」に基づいた大まかな引数を示します。アルゴリズムの場合、コアメモリが増加すると、アルゴリズム速度の線形改善に[漸近的に]近づくだけで、アルゴリズム速度の超線形増加を得るための「コアメモリ」の追加は、直感的には速度を超えるように思えます。制限と「無料で何かを手に入れる」。しかし、これを証明するほど十分にモデルを把握してはいけません[しかし、明らかに当局/創設者/専門家を含む他の誰も持っていません]。

  • このキャッシュを忘れたアルゴリズムの文献は、Pアルゴリズムに焦点を当てており、これまでのところ、非Pアルゴリズムの分析はまったく見られず、おそらく存在しませんでした。これは、分析が難しすぎるためである可能性があります!その場合、極端な振る舞いに関する質問は、長期的にはこの分野で答えられない可能性があります。

  • Lなどの「小さな」複雑なアルゴリズム、または非P(Expspaceなど)などの「大きな」アルゴリズムがこのモデルでどのように動作するかについては、直感的にも明確ではないか、おそらくまったく研究されていないようです。このモデルは、メモリの局所性を測定しています。これは根本的に異なるように見えますが、時間と空間の階層に絡み合っています。

  • 「反転複雑度」と呼ばれるチューリング機械の複雑度のやや不明瞭な測定値があり、関連する研究、結果、および論文があります。基本的に、TMは一定の時間とスペースをカバーできますが、反転は計算中のテープヘッドの多少独立した測定値です。どちらの場合も、テープヘッドは大きな領域に移動するよりも「小さな」領域に留まる傾向があるため、「高反転」は「高メモリローカリティ」に関連しているようです。

  • この質問とモデルはアムダールズ法を思い起こさせ、収益や残高/トレードオフの減少に関連する未だ発見されていない同様の法律がこの分野で保持または適用される可能性があると疑っています。大まかな推論:キャッシュ忘却アルゴリズム理論は、有限の「ローカル」メモリとコストベースの外部「無限」ディスクの間のバランス/トレードオフに注目しています。これは基本的に「並行して」動作する2つのリソースであり、それらの間に何らかの最適なトレードオフが存在する可能性があります。


2
最初のポイントでは、「より理論的な分析」とはどういう意味ですか?TMにはkレベルのメモリ階層。理想キャッシュモデルは簡単かつ自然に機能し、実際のシステムでのメモリの動作に関して有用なモデルであることが実験的に証明されています。
ジュホ

TMモデルはTCSの基本モデルであり、その複雑さの階層(時間/空間、P / NPなどの基本的な複雑さクラス)間の「ブリッジthms」は、キャッシュ忘却アルゴリズムが明らかにマッピングされていないままです。外部メモリモデルと関連するキャッシュ忘却モデルは、基本的に実世界のパフォーマンス特性をモデル化しようとしていますが、質問によって尋ねられるような、より大きな理論的抽象化にはこれまで興味がありません。
vzn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.