Parallel processing CUDA/OpenCL中的深度优先搜索
我已经在MPI中实现了并行深度优先搜索算法,我正在考虑尝试在CUDA/OpenCL中也实现它,只是为了好玩/出于好奇。该算法简单但不繁琐。C中的单核版本大约有200行代码Parallel processing CUDA/OpenCL中的深度优先搜索,parallel-processing,cuda,opencl,gpgpu,depth-first-search,Parallel Processing,Cuda,Opencl,Gpgpu,Depth First Search,我已经在MPI中实现了并行深度优先搜索算法,我正在考虑尝试在CUDA/OpenCL中也实现它,只是为了好玩/出于好奇。该算法简单但不繁琐。C中的单核版本大约有200行代码 GPGPU在多大程度上适用于此类问题?在CUDA中实现树搜索操作并不是那么简单。有一些文件,像那一份 “在GPU上探索回溯范式的经验教训” 还有另一个相当简单的实现(我认为这不是一个大规模并行化的实现) “使用CUDA在GPU上加速大图算法” Pawan Harish和P.J.Narayanan 困难来自这样一个事实,
GPGPU在多大程度上适用于此类问题?在CUDA中实现树搜索操作并不是那么简单。有一些文件,像那一份
- “在GPU上探索回溯范式的经验教训”
- “使用CUDA在GPU上加速大图算法” Pawan Harish和P.J.Narayanan
困难来自这样一个事实,即树操作通常涉及决策,并根据决策采取不同的分支。因此,在没有重叠和冗余操作的情况下大规模并行化操作是相当困难的 有一些方法使用堆栈和队列实现来遍历树 您可以在此处找到类似的问题:
“困难来自这样一个事实:树操作通常涉及决策制定,并根据决策采取不同的分支。”@phoad-我等不及动态并行:)有类似“推测执行”的方法。尽管它降低了并行度,但它可能有利于树生长和搜索算法。