gpt4 book ai didi

c - 在 C 中并行化 for 循环

转载 作者:太空狗 更新时间:2023-10-29 17:00:28 24 4
gpt4 key购买 nike

我的 C 代码中有一个 for 循环,如下所示:

for(i=0; i<100000; i++){

a[i] = simulate(); // simulate() function simulates some system

}

我们看到每次迭代的计算都是独立于其他迭代的(a[] 中元素的顺序对我来说并不重要)。我想使用多线程并行化这个 for 循环的计算。我不太清楚如何在 C 中执行此操作?我有一台 8 处理器机器,所以我可以并行运行 8 个线程。

最佳答案

在 C* 中没有可移植的并行方式。然而,OpenMP standard得到广泛支持:

#pragma omp parallel for
for(i=0; i<100000; i++){

a[i] = simulate(); // simulate() function simulates some system

}

根据您的编译器,您必须设置一个标志以启用 OpenMP 支持:

  • MSVC: /openmp
  • 海湾合作委员会: -fopenmp

如果您想访问某些 OpenMP 功能,还有一个标题:

#include <omp.h>

编辑:

*(最近批准的)C11 标准通过 <threads.h> 支持线程.

关于c - 在 C 中并行化 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8626371/

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