4
我有一個程序加速了openMP
,在並行區域內部,函數如std::nth_element
,std::sort
,std::partition
被調用。實際上,這些函數用於處理每個openmp線程對應的數組部分。我應該在openMP並行區域內使用gnu並行模式函數(for循環,任務)
最近,我發現g ++已經實現了上述函數的並行版本,所以我不知道是否應該在#pragma omp task
或#pragma omp for
區域內使用像__gnu_parallel::nth_element
這樣的函數?如果我使用並行模式,線程總數是否會超過omp_set_num_threads()
設置的限制,導致加速性能下降?