Graph 为什么BFS比DFS更适合并行化?

Graph 为什么BFS比DFS更适合并行化?,graph,depth-first-search,breadth-first-search,parallel-processing,Graph,Depth First Search,Breadth First Search,Parallel Processing,我读到BFS算法比DFS更适合并行实现。我很难理解为什么这是真的。有人能解释一下吗 谢谢这里有一些关于DFS和BFS的好信息: 特别是演示了BFS如何使用更多的并行概念。我认为BFS可以并行实现,但是没有针对DFS的并行解决方案。 DFS是一种线性算法,每个孩子调用一次。BFS是一种传播边界的过程“传播”意味着将其所有未访问的相邻顶点推到一个队列中,它们可以独立地进行处理 在DFS中,顶点沿着a->B->C等方向逐个访问。访问B必须发生在访问C之前。这是一个顺序过程,不容易并行化 但

我读到BFS算法比DFS更适合并行实现。我很难理解为什么这是真的。有人能解释一下吗


谢谢这里有一些关于DFSBFS的好信息:

特别是演示了BFS如何使用更多的并行概念。我认为BFS可以并行实现,但是没有针对DFS的并行解决方案。
DFS是一种线性算法,每个孩子调用一次。

BFS是一种传播边界的过程“传播”意味着将其所有未访问的相邻顶点推到一个队列中,它们可以独立地进行处理

在DFS中,顶点沿着a->B->C等方向逐个访问。访问B必须发生在访问C之前。这是一个顺序过程,不容易并行化


但事实是BFS和DFS都很难并行化,因为所有处理节点都必须知道全局信息。访问全局变量总是需要节点之间的同步和通信。

除非空间有分支,否则这不是搜索。当发现分支时(使用正确的语言/工具)直接进行分叉,提供并行DFS搜索。通信可以被限制为在树上“向上”传递信息,并且可以在不锁定数据的情况下完成;只需保存一个答案数组,每个分支一个,让父级等待子级搜索完成(DFS中也会发生这种情况)。几乎所有的高性能国际象棋程序都是这样做的。。。。平均分支因子为2时,深度为10的DFS空间有2^10个分支。。。这是一个巨大的潜在并行性。即使平均分支因子远低于2,在这种搜索中也会产生有趣的并行性。