3.1.7 omp_set_dynamic 函式
Omp_set_dynamic 函式啟用或停用動態調整執行緒可供執行平行區域的數目。 格式如下:
#include <omp.h>
void omp_set_dynamic(int dynamic_threads);
如果 dynamic_threads 會評估為非零的值,用於執行後續的平行區域的執行緒數目可能會自動調整以執行階段環境,利用系統資源。 因此,根據使用者指定的執行緒數目是執行緒計數上限。 在執行平行區域小組中的執行緒數目平行該段期間會保持固定和報告的 omp_get_num_threads 函式。
如果 dynamic_threads 會評估為 0,停用動態調整。
這個函式具有前文所述,從程式的一部分呼叫時的效果, omp_in_parallel 函式會傳回零。 如果從程式的一部分呼叫, omp_in_parallel 函數會傳回非零值,這個函式的行為是未定義。
呼叫 omp_set_dynamic 的優先順序必高於 OMP_DYNAMIC 環境變數。
動態調整執行緒的預設值是由實作定義。 如此一來,取決於特定的正確執行的執行緒數目的使用者程式碼應該明確停用動態的執行緒。 實作並不需要提供動態調整執行緒數目,但它們必須提供介面以支援跨所有平台的可攜性。