【问题标题】:Implementation of Disjoint Sets and Kruskal's Algorithm(and other data structures) in OpenCLOpenCL 中不相交集和 Kruskal 算法(和其他数据结构)的实现
【发布时间】:2013-02-02 17:50:49
【问题描述】:

我想在 OpenCL 中实现不相交集数据结构和 Kruskal 算法。我在 OpenCL 中实现了一些代码,但不知道如何开始使用 OpenCL 中的数据结构。 Aftab Munshi 书中给出的 Djkstra 算法很难理解。谁能建议其他来源...?

【问题讨论】:

    标签: data-structures opencl kruskals-algorithm disjoint-sets


    【解决方案1】:

    我建议你从算法的简单 C 版本开始,例如:

    http://prabhakargouda.hubpages.com/hub/Kruskal-algorithm-implementation-in-C

    评估可以并行完成的工作。在上面的代码中,有几个嵌套的 for 循环可以并行执行。与树中的指针相比,邻接矩阵是一种很好的并行结构。所以尝试利用它。

    请记住,并非算法的所有阶段都可以并行完成。因此,从最里面的 for 循环开始,分阶段实施。

    另外,请注意上面的代码没有版权或许可。所以小心你如何使用它。 请记住在应有的地方提供版权。

    【讨论】:

    • 我已经使用不相交集(快速联合)在 C 中实现了 kruskal 算法......但我不知道 OpenCl 中如何表示数据结构,更具体地说,我不知道如何动态内存分配在 OpenCL 的主机代码中完成,然后这些变量如何在内核中传递。我知道在 OpenCL 内核中不能进行动态内存分配,那么 OpenCL 中的数据结构是如何编程的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多