首页 > 解决方案 > 在 C++ 中并行化 for 循环的最小代码方法

问题描述

在 2019 年,是否有一种与平台无关(Intel、AMD、Windows、*nix 等)的方法来简单地并行化 for 循环,并且使用最少的额外代码来使用所有可用的内核。在这里,假设 for 循环中的代码是以线程安全的方式编写的。让我们还假设支持最新和最好的语言版本。

假设这个简单的代码就是我所拥有的:

std::vector<SomeObject> objects;
for (const auto& object: objects) {
// do some thread-safe work with object
// how to parallelize this?
}

标签: c++

解决方案


我认为OpenMP是您正在寻找的。

如果您需要在多个节点中计算,请尝试MPI


推荐阅读