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