我有一个高度数据并行的 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/