【问题标题】:Why does the loop in openmp run sequentially?为什么openmp中的循环是顺序运行的?
【发布时间】:2021-12-10 12:30:31
【问题描述】:

我尝试在 openmp 中运行示例以进行调度,但它的工作是按顺序进行的。

omp_set_num_threads(4);
#pragma omp parallel for schedule(static, 3)
    for (int i = 0; i < 20; i++)
    {
        printf("Thread %d is running number %d\n", omp_get_thread_num(), i);
    }

结果:

Thread 0 is running number 0
Thread 0 is running number 1
Thread 0 is running number 2
Thread 0 is running number 3
Thread 0 is running number 4
Thread 0 is running number 5
Thread 0 is running number 6
Thread 0 is running number 7
Thread 0 is running number 8
Thread 0 is running number 9
Thread 0 is running number 10
Thread 0 is running number 11
Thread 0 is running number 12
Thread 0 is running number 13
Thread 0 is running number 14
Thread 0 is running number 15
Thread 0 is running number 16
Thread 0 is running number 17
Thread 0 is running number 18
Thread 0 is running number 19

如何让代码并行工作?

我正在使用 Microsoft Visual Studio 2017。

【问题讨论】:

    标签: c++ visual-studio openmp schedule


    【解决方案1】:

    在 Microsoft Visual Studio 中,默认情况下禁用 OpenMP 支持。您可以使用/openmp 编译器选项启用它。

    这个选项可以在项目属性中启用,在C/C++->Language->Open MP Support下。

    【讨论】:

      猜你喜欢
      • 2018-03-24
      • 1970-01-01
      • 2013-01-06
      • 2013-01-04
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      相关资源
      最近更新 更多