I am trying to use an openmp for loop if a certain condition holds. I could simply use an if else statement to use the parallel for loop if a condition holds, but the code in the for loop is a bit long and it would double the length of the code if I just use the if else statement. So basically, I want a better way to do this:
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
}
}
so I won't have to write the code inside the for loop twice.
Use OpenMP's if
clause to conditionally enable parallelism:
#pragma omp parallel for if(condition_holds)
for(...) {
}
You will probably get an overhead of one additional function call because the loop body is separated into a function by the OpenMP implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With