OpenMP omp_get_max_threads() return 值

OpenMP omp_get_max_threads() return value

定义OMP_NUM_THREADS环境变量时omp_get_max_threads()return是否是$OMP_NUM_THREADS的值?

在我的系统上看起来是这样 (Linux/gcc)。即使 OMP_NUM_THREADS 设置为离谱的高值...

main 的开头调用它,即不在任何(嵌套的)平行区域内(如果它有所不同)。

你是对的 omp_get_max_threads() returns OMP_NUM_THREADS 的值。您可以根据需要将其设置得尽可能高:线程是一种软件结构,与您拥有的内核数量无关。为此,请使用 omp_get_num_procs()。通常,拥有比核心更多的线程没有多大意义,但它可以:如果线程中的工作非常不同,或者线程可能因为锁等而暂停,您可以通过拥有更多线程来获得更高的处理器利用率比核心。