用于将 OpenMP 与 C++ 结合使用的算法库

smi*_*dha 5 c++ parallel-processing multithreading openmp thrust

我在 GNU/Linux 桌面上使用 C++ 编程语言和 GCC。我正在尝试用 C++ 实现一些 PRAM 并行算法。据我了解,在多核 CPU 上使用 OpenMP 或多或少有助于模拟 CREW PRAM 算法。

许多复杂的 PRAM 算法涉及诸如并行前缀求和、排序、对全局地址空间中的向量执行元素操作等操作。

不知何故,经过大约 15 分钟的谷歌搜索后,似乎没有提供此功能的库,即一些开箱即用的基本并行算法或数据结构,如标准模板库。

任何人都可以列出任何这样的库吗?

编辑:本质上,我需要的是与 CUDA 世界中使用的 Thrust 库类似的 OpenMP。http://thrust.github.com/

Jar*_*ock 3

Thrust 支持通过 OpenMP 或 TBB 在多核上并行执行,以及通过 CUDA 在 GPU 上并行执行。来自网站

Thrust 是一个并行算法库,类似于 C++ 标准模板库 (STL)。Thrust 的高级接口极大地提高了程序员的工作效率,同时实现了 GPU 和多核 CPU 之间的性能可移植性。与现有技术(例如 CUDA、TBB 和 OpenMP)的互操作性有助于与现有软件的集成。使用 Thrust 快速开发高性能应用程序!

以下是有关如何访问 Thrust 多核功能的一些附加信息。