【发布时间】:2017-01-03 19:14:45
【问题描述】:
如果某个条件成立,我正在尝试使用 openmp for 循环。如果条件成立,我可以简单地使用 if else 语句来使用并行 for 循环,但是 for 循环中的代码有点长,如果我只使用 if else 语句,它将使代码的长度加倍。所以基本上,我想要一个更好的方法来做到这一点:
if(condition_holds){
// use parallel for loop
#pragma omp parallel for
for(...){
// Long piece of code
}
}else{
// Don't use parallel for loop
for(...){
// Long piece of code
}
}
这样我就不必在 for 循环中编写两次代码了。
【问题讨论】:
-
你可以用函数或函数对象来包装你的“长代码”,例如拉姆达。两个
for循环都只包含一个调用。