[英]openmp conditional parallel loop
如果某個條件成立,我會嘗試使用 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 循環中編寫代碼兩次。
使用 OpenMP 的if
子句有條件地啟用並行性:
#pragma omp parallel for if(condition_holds)
for(...) {
}
您可能會得到一個額外函數調用的開銷,因為循環體被 OpenMP 實現分成了一個函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.