为什么我要使用Grand Central Dispatch而不是OpenMP?

时间:2009-09-02 16:47:53

标签: macos parallel-processing openmp grand-central-dispatch

Apple在Snow Leopard中引入了Grand Central Dispatch(一个线程池),但还没有说明为什么人们应该在OpenMP上使用它,这是跨平台的,也适用于Leopard。它们都很容易使用,看起来功能相似。那么,有什么想法吗?

3 个答案:

答案 0 :(得分:7)

GCD在运行时评估适当级别的资源以解决问题时要好得多--OpenMP根据环境变量等信息决定调用一组并行任务的线程数。 GCD查看当前系统负载和可用内核数量,并允许运行适当数量的线程 - 随着资源使用情况的实时变化而向上和向后扩展。这意味着GCD计划应该在一般情况下取得更好的结果。当然,如果你已经购买了一组专用的盒子来运行你的代码,那么这是没有实际意义的,因为你的代码几乎没有其他东西可以与之发生冲突。

答案 1 :(得分:2)

既然GCD已经开源,那就是将这两种工具并排放置,看看谁住在最后。

答案 2 :(得分:0)

性能和操作系统级集成?