C++ 库的 GNU 实现支持并行模式,在此处进行了解释。
- 有使用它的经验吗?好的?坏的?特别是关于正确性,还有性能。
- 是否有一些“或多或少严肃”的项目使用它?
- 您是否将它与全局开启并行开关 -D_GLIBCXX_PARALLEL 一起使用,或者您是否小心地将其与手动开启特定并行化功能一起使用,例如:
__gnu_parallel::sort(v.begin(), v.end());
? - 有没有类似的开源项目?含义:比使用 openMP 更容易并行化。
感谢您的经验。
萨沙
C++ 库的 GNU 实现支持并行模式,在此处进行了解释。
__gnu_parallel::sort(v.begin(), v.end());
?感谢您的经验。
萨沙
回答太晚了,但是:
我会认真考虑英特尔 TBB。我注意到 C++ 标准并行模式中缺少的一件事是并行容器。TBB 容器不遵循 C++ 标准容器的接口,但它们为此提供了理由。此外,TBB 有许多示例和设计模式。
我已经将它用于一些小型项目,对于大型 stl 操作有很好的加速。我从未遇到任何问题(我使用了全局开关)。但是我并没有做太多的基准测试,您可能想参考http://algo2.iti.kit.edu/singler/mcstl/parallelmode_se.pdf和http://ls11-www.cs.uni- 之类的研究dortmund.de/people/gutwen/AD08/VO11_parallel_mode_overview.pdf。
尽管我没有深入研究它,但这似乎很相似。http://thrust.github.com/