从广义上讲,我对P中并行化算法的了解感到好奇。我找到了以下有关该主题的维基百科文章:
http://en.wikipedia.org/wiki/NC_%28complexity%29
本文包含以下句子:
是否NC = P尚不清楚,但是大多数研究人员怀疑这是错误的,这意味着可能存在一些棘手的问题,这些问题“固有地是顺序的”,并且不能通过使用并行性显着加速
听起来合理吗?是否有已知情况无法使用并行处理加快P中的问题?
从广义上讲,我对P中并行化算法的了解感到好奇。我找到了以下有关该主题的维基百科文章:
http://en.wikipedia.org/wiki/NC_%28complexity%29
本文包含以下句子:
是否NC = P尚不清楚,但是大多数研究人员怀疑这是错误的,这意味着可能存在一些棘手的问题,这些问题“固有地是顺序的”,并且不能通过使用并行性显着加速
听起来合理吗?是否有已知情况无法使用并行处理加快P中的问题?
Answers:
甚至不知道NC是否等于P,但是P完全问题似乎本质上很难并行化。其中包括线性编程和Horn-SAT。(相反,NC中的问题似乎很容易并行化。)
请参阅问题NC和P之间的问题:此列表中有多少已解决?参考资料(包括现在可以免费下载的经典教科书的链接),以及有关P中存在但未知可并行化的问题的进一步讨论。
有关NC和P之间的复杂度类别的结构,请参阅问题广义Ladner定理。简要地说,如果它们不同,则严格地说NC和P之间存在无限多个复杂度类别。
看到问题NC = P的后果吗?对于Ryan Williams的一个很好的演示,可以将P中复杂性类的层次结构中的崩溃放大为可能更不可能的崩溃,例如PSPACE = EXP。
值得指出的是,Horn-SAT具有P-complete的一个后果以及上面的链接似乎无法并行化数据库中的一般SQL查询,除非我们也可以重写任何大规模计算以仅使用合理的存储量。这是一个令人费解的差异-我认为陈述压缩的限制是没有争议的,但是我经常看到一些文章似乎是建立在可以并行化任何数据库查询的假设之上的。
好吧,如果有已知的情况,那么我们就可以将P和NC分开。但是,有许多已知的问题是P完全问题(即,在对数空间缩减下),并且与NP完全问题一样,它们也呈现出相同的障碍来显示P = NC。其中包括线性编程和匹配(通常是最大流量)。
Ketan Mulmuley 早在1994年就证明了将P和弱形式的NC(无位操作)分离的结果。从某种意义上说,他目前的P vs NP程序是从中断的地方开始的(非常宽松的方式)。
我回答了类似的问题,科学计算中是否存在无法通过并行计算在计算科学站点上加速的著名问题/算法。让我在这里引用它,因为它为这种问题的一个非常具体的实例提供了实用的观点:
不能通过并行化加快求解Eikonal方程的(著名的)快速行进方法。还有其他方法(例如快速扫描方法)可以更容易地并行化Eikonal方程,但即使在这里,(并行)加速的潜力也受到了限制。
Eikonal方程的问题在于信息流取决于解本身。松散地说,信息沿着特性(即光学中的光线)流动,但是特性取决于解决方案本身。离散的Eikonal方程的信息流甚至更糟,如果需要任何并行加速,则需要附加的近似值(例如快速扫描方法中隐含的近似值)。
要了解并行化的困难,请想象一个不错的迷宫,就像Sethian网页上的一些示例中那样。通过迷宫的最短路径上的像元数目(可能)是解决相应问题的任何(并行)算法的最小步数/迭代次数的下限。
(我之所以写“(可能)是”,是因为众所周知,下界很难证明,并且通常需要对算法使用的运算进行一些合理的假设。)