【发布时间】:2013-05-21 02:00:05
【问题描述】:
我打算开始“玩”跨平台项目的基于任务的并行性。我想使用英特尔线程构建模块。我从 Windows 和 Visual Studio 开始。
由于我目前只想制作原型,我正在考虑仅在 Windows 上“玩”,然后有足够的知识在所有兼容平台上使用该库。
我了解到,自 VS2010 以来,Microsoft 提供了一个类似的库,即并行处理库,它具有(几乎)与 Intel TBB 相同的接口。
一些消息来源(包括 TBB 的团队博客)建议他们一起构建它并且它是同一个库。
但它并不是很明确,因为它经常暗示这两个库之间存在细微差别。
那么,如果有的话,这些区别是什么?我应该直接从最后一个稳定的 ITBB 开始,还是只在原型中使用 Microsoft PPL 并在跨平台上使用 ITBB 是否低风险“真正的”项目?
【问题讨论】:
-
先用PPL再转TBB有什么好处?
-
根据您的任务,也许 OpenMP 就足够了。例如,根据我的经验,它在图像处理方面表现更好。
-
@Alex:确实如此。图像处理是数据并行化的经典而简单的例子。 OP 谈到了基于任务的并行性。无论如何,OpenMP 要简单得多,因此无论如何都应该进行审查。
-
@AndyT:PPL 在我使用的 Visual Studio 2010 中自动可用 - 无需设置,只需包含和编码 - 我不必费心安装任何东西并为每个设置库原型(可以自动化但仍然很耗时 - 即使使用 CMake)。如果我可以在 PPL 中对某些东西进行原型制作,并确保它可以在不使用 ITBB 修改的情况下工作和编译,那么我可以直接从 PPL 开始并在实际项目中使用 ITBB——即跨平台。
-
@AlexFarber:题外话:我需要专门练习基于任务的并行化。我已经知道什么时候 OpenMP 就足够了。
标签: c++ parallel-processing comparison tbb ppl