通过pthreads采用Cilk ++

时间:2012-08-28 11:17:52

标签: c++ multithreading pthreads cilk cilk-plus

我有一段时间有这个问题。我在Cilk ++上看到麻省理工学院开放式课件讲座 使用线程的界面看起来很直接,工具似乎很有用。讲师解释了使用Cilk ++而不是pthread或OpenMP的优点。通过一般的书店浏览,我曾经看过一本关于Cilk ++的书。

但是尽管麻省理工学院会对英国公司拥有的Cilk ++所说的所有好事,似乎很少采用它。

这一点的证据,无论多么微小或倾斜,都可能是缺乏出版的书籍以及SO上的数字或追随者或标记问题。 (在撰写本文时)

亚马逊搜索给了 1. Cilk ++ 2结果
2. pthreads 166结果
3. OpenMP 278结果

SO标签
1. Cilk 11粉丝
2. OpenMP 242粉丝
3. pthreads 258粉丝

Cilk ++缓慢/少采用的可能原因是什么?

1 个答案:

答案 0 :(得分:2)

我认为心灵分享是人们不采用新技术的最大原因之一。在cilk ++的情况下,它涵盖了“通过boost.thread,posix线程,openMP和C ++ 11中的新功能”等多种替代技术覆盖的“足够完成工作”的领域。

任何新技术的采用曲线在开始时都非常缓慢。一些想法需要10年或更长时间才能实现(悲伤但真实)。其他人被纳入现有的想法。有些人失去了历史,因为他们很糟糕,有些人虽然很聪明,但却失去了历史。

我认为英特尔决定保留Cilk ++的开源并在gcc中保持对它的支持将有所帮助(假设他们使cilk ++符合C ++ 11)。我的感觉是,如果它起飞,它最终会被归入C ++,这不是坏事。

2018年11月更新

cilk支持是removed from gcc8。这可能是intel deprecating it的背面,支持openMP和TBB。 ISO C ++的并发性最近和正在进行的一些增加使得cilk的语法糖不那么重要,并且库解决方案更加可取(为了跟上步伐)。

基于任务的并行性包含在parallelism ts中,因此非常接近标准化(作为可选的额外内容)。

历史大致如下