Interoperability with OpenMP¶
The OpenMP-based version of the library allows a simple interaction between an
application that uses OpenMP for parallelization and the library.
For instance, calling NVPL BLAS functions from the parallel section would lead
to a single-threaded execution unless OpenMP nested parallelism is allowed.
Also, the library would comply with OpenMP-based setting of number of threads
(such as omp_set_num_threads()
function and OMP_NUM_THREADS
environment
variable).
There are some limitations:
Currently NVPL BLAS doesn’t support dynamic adjustment of threads (e.g.
OMP_DYNAMIC=true
). To work-around this, in case the library function is invoked in such environment, the library would callomp_set_dynamic(0)
, call the function, and reset the setting by callingomp_set_dynamic(1)
.
See also