Kla*_*aim 28 c++ parallel-processing comparison tbb ppl
我打算开始为一个跨平台项目"玩"基于任务的并行性.我想使用英特尔线程构建模块.我从Windows和Visual Studio开始.
因为我只是想要原型,我正在考虑只在Windows上"玩",然后有足够的知识在所有兼容平台上使用该库.
我了解到,自VS2010以来,Microsoft提供了一个类似的库,并行处理库,它具有(几乎)与英特尔TBB相同的接口.
一些消息来源建议,包括TBB的团队博客,他们一起构建它,并且它是相同的库.
然而,它并不是真正明确的,因为它经常表明两个库之间存在细微差别.
那么,如果有的话,这些差异是什么?我应该直接与去年稳定该局启动或者是低风险的原型与微软PPL只是玩,跨平台的"真实"的项目上使用该局?
Ale*_*nov 28
TBB是PPL的超集(如在VS2010中),因此它提供了所有PPL API以及PPL没有的自己的API.
请注意,namespace Concurrency在VS2010中还包含并发运行时(ConcRT,其上构建了PPL),异步代理等的API .TBB没有大部分内容,尽管它有一些(例如critical_section).作为异步代理的替代方案,最新版本的TBB具有新的流程图API.
理论上,要从PPL切换到TBB,您只需要替换从ppl.h(带有TBB,标头进入<tbbdir>/include/tbb/compat)的路径,当然还要链接TBB DLL.但是在这种情况下,您将仅限于PPL API.要使用"额外" TBB API中不存在PPL(如parallel_pipeline,parallel_reduce,concurrent_priority_queue等),你需要从一开始就与TBB工作.
| 归档时间: |
|
| 查看次数: |
6494 次 |
| 最近记录: |