Я пытаюсь использовать цикл openmp для цикла, если выполняется определенное условие. Я мог бы просто использовать оператор if else для использования цикла parallel for, если условие выполнено, но код в цикле for является немного длинным, и он будет удваивать длину кода, если я просто использую оператор if else. Поэтому в основном я хочу, лучший способ сделать это:условный параллельный цикл openmp
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' будут содержать только вызов. – ilotXXI