如何在 C++ 中使用 openmp 并行 运行 两组代码

How to run two set of code in parallel using openmp in c++

我有两个互不相关的函数,例如:

int add(int num)
{ 
     int sum=0;
     for(i=0;i<num;++i)
         sum+=i;
    return sum;
}

int mul(int num)
{  
    int mul=1;
    for(int i=1;i<num;++i)
       mul * i;
    return mul;
}

我要起诉他们如下:

auto x=add(100);
auto m=mul(200);
cout<<a<< "    " <<m<<endl;

如何使用 OpenMP 运行 并行处理它们?我知道如果我创建一个新线程和 运行 该线程中的一个函数并实现同步机制以确保两个线程在调用 cout 时完成,我可以并行 运行 它们.

我也知道我可以为我的循环使用 openMP parallel,但假设它不存在。

在 OpenMP 中解决此问题的常用方法是 sections 构造。它使您能够定义可由不同线程并发计算的部分顺序代码。每个部分都以 omp section directive/pragma.

开头