外部存储器的指数加速


15

背景

外部存储器或DAM模型通过其执行的I / O数量(本质上是高速缓存未命中的数量)来定义算法的成本。这些运行时间通常以(内存大小)和(一次可以传输到内存的字数)的形式给出。有时和用于和分别。 中号大号ž中号

例如,排序需要的成本,而朴素矩阵乘法则需要。 Θñ/日志中号/ñ/Θñ3/中号

该模型被用来分析“缓存遗忘算法”,它不具备的知识,或。通常,目标是使不受缓存影响的算法在外部存储器模型中达到最佳性能。这并非总是可能的,例如在置换问题中(如Brodal,Faderberg所示,2003年)。请参阅Erik Demaine撰写的这篇文章,以进一步了解对缓存不了解的算法,包括有关排序和矩阵乘法的讨论。中号

我们可以看到,更改会导致排序的对数加速和矩阵乘法的多项式加速。(此结果最初来自Hong,Kung 1981,实际上早于缓存遗忘和外部存储器模型的形式化)。M

我的问题是这样的:

在任何情况下,提速都以为指数吗?运行时间将类似于。我对符合此描述但对缓存不了解的算法或数据结构特别感兴趣,但对缓存感知的算法/数据结构甚至是最著名的下限感到满意。Mf(N,B)/2O(M)

在大多数模型中,通常假设如果为输入大小并且显然,则单词大小。然后的加速比给出的多项式加速比。这使我相信,如果我要查找的问题存在,那不是多项式。(否则,我们可以通过更改常量的大小来获得恒定数量的I / O,这似乎不太可能)。w=Ω(logN)NM>w2MN


可以猜测,但是?找到一个以加速给出的案例,足够了吗?N=pØÿØG
vzn

不幸的是,它必须以表示。不过,我会对参考资料感兴趣。中号
SamM

关于缓存遗忘算法的维基百科。在此字段表示法中有些细微之处。Demaine的p7脚注在该区域表示,是问题的大小,有时,其中是块数,“但小写字母表示似乎已不受欢迎”。您可以使用上面的,或者显然使用作为输入大小。认为您至少应该规范您的问题。ññ=ñ/ñññ
vzn13年

我对其进行了编辑以保持一致性。 是输入的大小,并且仅用于矩阵乘法,因为该问题的运行时间通常根据 ×矩阵来定义(即)n n × n N = n 2ññn×nN=n2
SamM 2013年

扫描文献后看不到这种情况。也许没有这样的参考?也许在某些情况下,任何这样的算法都可能很复杂,因此很难从理论上进行分析来获得这样的加速...?还是必须要人为...?或者,也许不可能?是否有可能会认为最坏的情况是随机访问内存?在这种情况下,速度的增加似乎是线性...?还是最糟糕的情况是某种访问内存的分形模式?这个研究领域只有十年多一点的历史...M
vzn

Answers:


3

我不确定我是否理解这个问题。但是在我看来,假设包含需要指数时间的问题,那么这些问题就可以满足您的要求,因为如果MO log N ,则需要指数数量的I / O操作(因为您不能在一个大小为O log N 的同一个内存块中“停留” 多于多项式的步数而不进入一个循环),并且如果M = NPSPACE中号Ø日志ñØ日志ñ中号=ñ您只需要线性数量的I / O操作。此外,关于你的观察,这种问题不能属于,它是正确的,如果增速必须持有的价值观中号Ω ñ (因为这将意味着我们有业务的一个指数)。但是,如果加速仅适用于较小的M值,则直觉上我认为这是不对的,因为我认为应该设计一个问题,实际上是大小为O log N 的较小问题的串联,每个问题都需要指数级的时间以其自身大小以及I / O操作的指数数量(即p oP中号Ωñ中号Ø日志ñ,因为 p o l y N O log N )中是指数的。实际上,我相信 P S P A C E-完全问题(例如 T Q B F)可以满足您的条件。pØÿñpØÿñØ日志ñP小号P一种CËŤF


恐怕我不听从您的一些论点。如果,则外部存储器中的任何问题都是微不足道的。正如我提到的那样,M = O log N 有点愚蠢,因为这意味着内存中只有恒定数量的单词(可能,但通常不会检查外部内存)。我明白您在说的是指数级增长,但这并没有说明中间值。例如,外部存储器中的最佳分区是两个项的最小值(本质上,如果所有内容都适合存储,我们所做的事情与不存在的事情完全不同)。你可以排除吗?M=Ω(N)M=O(logN)
山姆

1
我不明白,如果为什么外部存储器中的任何问题都是微不足道的。如果M = N / 2并且该算法花费了指数时间,那么您可能被迫在内存的两半之间来回交换(可以这么说)。M=Ω(N)M=N/2
user8477 2013年

啊,当然,常数是很重要的。这很有道理;这当然是一个很好的起点。
SamM 2013年

我没有中间值的任何论点。在非常肤浅的层面上,我猜想某些回溯算法将对内存大小具有指数依赖性,因为在搜索树中深度较低的节点上将需要I / O操作。这种依赖性将适用于中间值。当然,这并没有说明问题的内在复杂性。同样,如果您有,则上面给出的信鸽(循环)参数仍将获得T N / 2 M的增益,其中T N 是问题的时间复杂度。M=ω(logN)T(N)/2MT(N)
user8477

-4

这个问题似乎改变方向进入未知领域即处女地。经过一番思考和回顾后,这里有一些关于这个看似非常困难/微妙的问题的想法/想法,希望这将是明智的,但并不意味着是确定的。

引用的Dean写道:“(缓存忽略算法)的基本思想很简单:在不了解M的情况下设计外部存储器算法。但是,这个简单的思想会产生令人惊讶的强大结果。”BM

它似乎也具有令人惊讶的微妙含义。似乎很难分析这种模型的极端行为,而且到目前为止,似乎没有人做过。有一些调查,到目前为止,他们似乎在调查整个领域。考虑到该领域只有大约十年的历史,这不足为奇。

  • 该模型似乎尚未转换为图灵机,但可能会进行更严格/正式/理论/一般/标准的分析。Big-Oh表示法的整个概念及其含义和直觉(例如常量的不相关性)不一定会自动在此区域中被遗忘的高速缓存算法使用。例如,该模型似乎已经在使用常数来测量确切的内存大小。到目前为止,该领域似乎还没有一套基本的动力学原理。B,M

  • TM是由Turing和Hartmanis-Stearns 时空空间定理(您可能在这个问题上有些暗示)于1936年发明的。这是一个了不起的〜3 十年,但是现在时空空间定理在某种程度上被认为是小学和本科班教学。在该模型中似乎还没有建立相应的层次定理,而如何做到这一点也不是小问题。实际上,该模型似乎比标准的Turing机器(已经具有相当复杂的动力学)具有更多的“运动部件”,即就像增强型Turing机器一样。

  • 另一个想法是将这种外部存储模型以某种方式转换为TM,这在似乎没有使用缓存的算法的文献/调查中也没有出现,并且也许看到了Hartmanis-Stearns层次定理是如何转换的。它似乎与两个磁带TM有关,其中一个磁带的大小为“ M”,另一磁带为无限,并且块以“ B”的大小传输到“ M”。但是,这里的一个困难是它更多地是RAM模型,而不是使用顺序访问磁带的Turing模型。另一方面,这可能会导致与单磁带TM和多磁带TM之间的转换有关的微妙之处。

  • 建议用模拟经验地解决这个问题,这是文献倾向于关注的地方,例如Kumar对Cache遗忘算法(2003)所做的一次伟大的调查。在线上有许多用于缓存模拟的程序和论文,并且使用一些简化操作可能不需要大量代码即可回答您的问题。一个基本思想是创建概率算法,该算法根据概率访问“附近”的内存区域。这里的“附近”不一定是连续的内存,而是一种算法,该算法根据对自己最近访问的页面的跟踪来选择随机的内存页面(块)。建议使用幂律确定在“最近访问”列表中选择“附近”页面的可能性。这似乎是与基于缓存的性能改进相关的关键方面。

  • 这是一个基于“ M”的粗略论点,它基本上是“核心内存”与磁盘内存的度量。对于一种算法,人们会期望随着核心内存的增加,渐近地接近于算法速度的线性提高,而添加“核心内存”以实现算法速度的任何超线性增长在直觉上似乎就像是超过了速度限制和“一无所获”。但是,对模型的掌握不足以证明这一点[但显然没有其他人,包括当局/创始人/专家]也没有。

  • 这种对高速缓存不了解的算法文献集中在P算法上,到目前为止,对非P算法的分析都没有发现任何情况,也许根本不存在。这可能是因为分析太困难了!在这种情况下,从长远来看,有关极端行为的问题可能在该领域无法得到解答。

  • 关于“小”复杂度算法(例如L)或“大”算法(例如non-P(例如Expspace等))在此模型中的行为,甚至还没有直观直观的了解,或者可能还没有研究。该模型正在测量内存局部性,这似乎在根本上是不同的,但与时间和空间层次结构交织在一起。

  • 图灵机复杂度的度量有些模糊,称为“逆向复杂度”,其中包含一些相关的研究,结果和论文。TM基本上可以覆盖一定的时间和空间,但是在计算过程中,反转是对磁带头的某种独立测量。似乎“高反转”可能与“高存储位置”有关,因为在两种情况下,磁带头都倾向于停留在“较小”区域,而不是移入较大区域。

  • 这个问题和模型使我想起了阿姆达尔定律,并怀疑与收益递减或余额/折衷有关的某种尚未发现的类似法律可能在该领域适用或适用。粗略的推理:缓存遗忘算法理论正在研究有限的“本地”内存和基于成本的外部“无限”磁盘之间的平衡/折衷。这基本上是两个“并行”运行的资源,它们之间可能存在某种最佳折衷。


2
k

TM模型是TCS的基本模型,其复杂性层次结构(时间/空间,基本复杂性类,例如P / NP等)之间的“桥接阈值”与缓存无关的算法显然仍有待映射。外部存储器模型和相关的高速缓存遗忘模型基本上是在尝试对现实世界的性能特征进行建模,并且迄今为止,文献对更大的理论抽象(例如,由问题提出的问题)并不感兴趣。
vzn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.