c++ - C/C++ 中的数据并行库

标签 c++ c parallel-processing openmp

我有一个高度数据并行的 C# 原型(prototype),并且使用 .NETv4 中的 Parallel.For 构造非常成功地实现了数量级的加速。现在我需要用 native 代码编写程序,我想知道我的选择是什么。我更喜欢能够跨各种操作系统和编译器移植的东西,但如果到了紧要关头,我可以选择 Windows/VC++ 的东西。

我研究过 OpenMP,它看起来很有趣,但我不知道其他程序员是否认为这是一个好的解决方案。我也希望得到有关我可以查看的其他可移植库的建议。

最佳答案

如果您对从 Parallel.For 获得的并行性水平感到满意,OpenMP 可能对您来说是一个非常好的解决方案——它做的事情大致相同。还有工作和research正在完成 parallelized implementations标准库中的算法。大量使用标准算法的代码可以通过更少的工作从中获益。

其中一些是使用 OpenMP 完成的,而另一些则是使用手写代码来(尝试)提供更大的好处。从长远来看,我们可能会看到更多后者,但就目前而言,OpenMP 路线可能更实用一些。

关于c++ - C/C++ 中的数据并行库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978118/

相关文章:

c++ - valgrind 疯了还是这是真正的 std 映射迭代器内存泄漏?

c++ - 如何从virustotal.com 中删除恶意软件标记

Python:并行运行n个函数

c - C语言的字数统计程序没有输出

java - 关于使用Java的Titanium并行方言

c - MPI编程中如何随机选择主处理器?

c++ - 使用valijson和Nlohmann的JSON for Modern C++来验证具有子方案的架构

c++ - CPPUNIT:如何使用名称创建 TestFixture 实例

C++动态链接库和void指针

c - Malloc 字符数组动态与静态 C