5

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

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

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

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

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

4

1 回答 1

3

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

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

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

于 2012-07-13T19:16:31.853 回答