与 OpenMP 的互操作性#
该库的基于 OpenMP 的版本允许使用 OpenMP 进行并行化的应用程序与库之间进行简单的交互。例如,除非允许 OpenMP 嵌套并行性,否则从并行部分调用 NVPL BLAS 函数将导致单线程执行。此外,该库将遵守基于 OpenMP 的线程数设置(例如 omp_set_num_threads()
函数和 OMP_NUM_THREADS
环境变量)。
存在一些限制
目前 NVPL BLAS 不支持线程的动态调整(例如
OMP_DYNAMIC=true
)。为了解决这个问题,如果库函数在这种环境下被调用,库将调用omp_set_dynamic(0)
,调用该函数,并通过调用omp_set_dynamic(1)
重置设置。
另请参阅