[英]OpenMP and sections
我有以下代碼:
#pragma omp parallel sections num_threads(2) {
#pragma omp section
Function_1;
#pragma omp section
Function_2;
}
但是在 Function_1 和 Function_2 中,我有一個並行但只有一個線程運行它。 那么,如何並行運行 Function_1 和 Function_2 並在這些函數中運行多個線程?
謝謝!
將一個parallel
區域置於另一個區域內稱為嵌套。 默認情況下,嵌套區域是非活動的,這意味着它們是串行執行的。 為了使它們處於活動狀態,您可以:
OMP_NESTED
設置為true
parallel
區域之前插入以下調用: omp_set_nested(1);
還可以通過以下方式限制嵌套並行工作的級別數:
OMP_MAX_ACTIVE_LEVELS
設置為num
,或omp_set_max_active_levels(num);
其中num
是所需的最大活動級別,例如,值為3
將呈現所有parallel
區域,嵌套深度超過3
級,處於非活動狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.