英特尔TBB vs CilkPlus
我正在开发针对Intel x86_64机器的C ++时间模拟。 经过一番研究,我发现了两个有趣的库来实现并行化:
正如文档中所述,它们都针对多核处理器的并行性,但还没有计算出哪一个最好。 AFAIK Cilkplus只是简单地实现了三个关键字,以实现更简单的并行性(这导致GCC被重新编译为支持这些关键字); 而TBB只是一个促进更好的平行发展的图书馆。
你会推荐哪一个?
考虑到我在安装CilkPlus时遇到了很多很多问题(仍在尝试和仍然尖叫)。 所以我想知道,我应该先检查TBB吗? Cilkplus比TBB更好吗? 你会推荐什么?
它们是兼容的吗?
我应该如何完成安装CilkPlus(仍在为此祈祷),是否有可能将TBB与它一起使用? 他们可以一起工作吗? 有没有人与CiclkPlus和TBB一起经历过开发? 你会推荐与他们一起工作吗?
谢谢
以下是原始帖子中问题的一些FAQ类型的信息。
Cilk Plus vs. TBB与Intel OpenMP
简而言之,它取决于您尝试实施的并行化类型以及应用程序的编码方式。
此链接还可以帮助:英特尔TBB和Cilk +进行比较
我可以在TBB的背景下回答这个问题。 使用TBB的优点是:
缺点可以
创建任务的开销很高。 用户必须确保问题的大小足以让分区器创建最佳粒度的任务。
我还没有和cilk一起工作,但很明显,如果在这两个域中都有用户,那么大部分都是TBB的用户。 如果英特尔通过更新文件和免费支持来推动TBB,TBB很可能会增长
下一篇: Main differences between threading with shared memory and MPI?