gpt4 book ai didi

c++ - 并行操作 std::vector 的不同元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:58 25 4
gpt4 key购买 nike

假设我有一个 std::vector<Object*> . vector 很大(> 1000 个元素)并且每个 Object*需要对其进行大量计算。然后在每个元素上运行每个计算的 for 循环可以很容易地并行化。事实上,我可以并行处理所有 1000 个元素以获得最大加速(“令人尴尬的并行?”)

现在我想知道两件事:

1) 读写 std::vector不同元素是否安全没有锁? (不是修改 vector 本身!)

2) 是否有简单的方法或约定或模式可以遵循来切断 for 循环并分派(dispatch)给线程?

最佳答案

1) 是

2) 您可以使用 OpenMP 来并行处理 vector 。如果您使用的是 Microsoft VC++ 2010,并发库具有 parallel_for 和 parallel_for_each 算法。

关于c++ - 并行操作 std::vector 的不同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7416227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com