NAG Library Function Document
nag_omp_get_thread_num (x06adc) returns the OpenMP thread number of the calling thread.
, for multi-threaded implementations, returns the calling OpenMP thread's unique thread number within the current team. The master thread will always return
. The remaining threads will return a value between
and the value returned by nag_omp_get_num_threads (x06abc)
If this function is called from a sequential part of a multi-threaded program then it will return the value .
In serial implementations of the NAG C Library this function will always return
. See the x06 Chapter Introduction
for a discussion of the behaviour of these functions when called in serial.
OpenMP Specifications http://openmp.org/
Chapman B, Jost G and van der Pas R (2008) Using OpenMP Portable Shared Memory Parallel Programming The MIT Press
Error Indicators and Warnings
Parallelism and Performance
nag_omp_get_thread_num (x06adc) is not threaded in any implementation.
In this example we presume a multi-threaded implementation of the NAG C Library. We call nag_omp_get_thread_num (x06adc) both outside and inside an OpenMP active parallel region. Outside we expect a single thread to display the value . Inside the region we use the value to have only the master thread display the result.
We also call nag_omp_in_parallel (x06afc)
inside and outside of the region. Outside we expect it to return
, as we are not in an active parallel region, and inside we expect to see the value
, indicating that the parallel region is an active one.
If you use a serial implementation of the NAG library, regardless of whether the code is compiled with OpenMP or not, nag_omp_get_num_threads (x06abc)
will always return
and nag_omp_get_thread_num (x06adc)
and nag_omp_in_parallel (x06afc)
will always return
. The appropriate results file will be included with the distribution material for your implementation.
Program Text (x06adce.c)
Program Results (x06adce.r)