4
我想在并行外循环中运行一个包含for循环(应该并行运行)的函数。因此,它看起来像下面这样:嵌套并行for循环...“并行外循环”in“并行内循环作为函数”
void myfunction(){
...
#pragma omp parallel for
for (int i=0;i<10;i++){
do something...
}
}
int main(){
#pragma omp parallel for
for(int i=0;i<5;i++){
myfunction();
}
}
鉴于上面的代码,我想在main()
功能循环创建5个并行线程,我想每个5个线程的创建另一个k个线程来运行其自己并行循环。
虽然我知道如果内部循环不在单独的函数中,我知道如何运行嵌套for循环,但我找不到解决这类问题的方法。
实际上,这段代码是用于并行5折交叉验证,其中每个折叠都有一个应该并行化的for循环。
任何人都可以帮助我吗?
这是否与工作的功能?如果是这样,真正的问题是什么? – tadman
@tadman对不起,但我不明白你的问题。我首先要创建5个线程,然后我想为每个线程运行一个并行for循环,每个线程应该独立运行。 – Mansumen
你[搜索](http://stackoverflow.com/questions/13357065/openmp-and-nested-loops)? – Stargateur