Visual C++ 等效于 GCC 实验性并行 for_each?
Posted
技术标签:
【中文标题】Visual C++ 等效于 GCC 实验性并行 for_each?【英文标题】:Visual C++ equivalent to GCC experimental parallel for_each? 【发布时间】:2015-01-30 14:42:13 【问题描述】:在 GCC 中,并行 for_each 有一个方便的实验性功能,这意味着它在迭代器循环上工作得相当优雅。
我对 VC++ 不太熟悉,但我正在处理一个特定于 Windows 的项目。
在某处是否有直接的 MS 等价物?到目前为止,我的搜索不断受到 .NET for_each、过时线程和偶尔出现的 OpenMP 线程的阻碍(它似乎在拆分迭代器时效率很低)。
使用 VS2013 SP4,并且需要将 3rd 方库保持在绝对最低限度并且没有许可问题(因此我没有使用 TBB)。
【问题讨论】:
【参考方案1】:你可以试试Microsoft Parallel Patterns Library (PPL)。它有一个parallel_for_each。
【讨论】:
我不知道它存在,奇怪的是它并没有出现在我的搜索中。非常感谢,会看看的。您是否会碰巧知道实现是否有效地拆分了迭代器,或者是否愚蠢地迭代每个任务/线程的整个序列并且只标记每次迭代的实际调用? (OMP 似乎仍然对我有用)。再次感谢。 @ThE_JacO 我还没有确认,但是当我以其他方式戳它时,我发现 ppl 是一个高质量的实现,所以我假设是这样。以上是关于Visual C++ 等效于 GCC 实验性并行 for_each?的主要内容,如果未能解决你的问题,请参考以下文章
c++11(或更低版本)中 gcc __attribute__((unused)) 的 Visual Studio 等效项?