我有两个彼此无关的功能,例如:
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 for我的循环,但假设它不存在。
答案 0 :(得分:0)
在OpenMP中解决此问题的常用方法是sections
构造。它使您能够定义顺序代码的部分,这些部分可以由不同的线程同时计算。每个部分都以omp section
指令/ pragma。