外部存储器的指数加速
背景 外部存储器或DAM模型通过其执行的I / O数量(本质上是高速缓存未命中的数量)来定义算法的成本。这些运行时间通常以(内存大小)和(一次可以传输到内存的字数)的形式给出。有时和用于和分别。 M中号MB乙BL大号LZžZB乙BM中号M 例如,排序需要的成本,而朴素矩阵乘法则需要。 Θ(N/BlogM/BN/B)Θ(ñ/乙日志中号/乙ñ/乙)\Theta(N/B\log_{M/B} N/B)Θ(n3/BM−−√)Θ(ñ3/乙中号)\Theta(n^3/B\sqrt{M}) 该模型被用来分析“缓存遗忘算法”,它不具备的知识,或。通常,目标是使不受缓存影响的算法在外部存储器模型中达到最佳性能。这并非总是可能的,例如在置换问题中(如Brodal,Faderberg所示,2003年)。请参阅Erik Demaine撰写的这篇文章,以进一步了解对缓存不了解的算法,包括有关排序和矩阵乘法的讨论。B乙BM中号M 我们可以看到,更改会导致排序的对数加速和矩阵乘法的多项式加速。(此结果最初来自Hong,Kung 1981,实际上早于缓存遗忘和外部存储器模型的形式化)。MMM 我的问题是这样的: 在任何情况下,提速都以为指数吗?运行时间将类似于。我对符合此描述但对缓存不了解的算法或数据结构特别感兴趣,但对缓存感知的算法/数据结构甚至是最著名的下限感到满意。MMMf(N,B)/2O(M)f(N,B)/2O(M)f(N,B)/2^{O(M)} 在大多数模型中,通常假设如果为输入大小并且显然,则单词大小。然后的加速比给出的多项式加速比。这使我相信,如果我要查找的问题存在,那不是多项式。(否则,我们可以通过更改常量的大小来获得恒定数量的I / O,这似乎不太可能)。w=Ω(logN)w=Ω(logN)w = \Omega(\log N)NNNM>wM>wM > w2M2M2^MNNN