Prev Next

OpenMP Maximum Thread Number

Syntax
AD<Base>::omp_max_thread(number)

Purpose
By default, for each AD<Base> class there is only one tape that records AD of Base operations. This tape is a global variable and hence it cannot be used by multiple OpenMP threads at the same time. The omp_max_thread function is used to set the maximum number of OpenMP threads that can be active. In this case, there is a different tape corresponding to each AD<Base> class and thread pair.

number
The argument number has prototype
     size_t 
number
It must be greater than zero and specifies the maximum number of OpenMp threads that will be active at one time.

Independent
Each call to Independent(x) creates a new active tape. All of the operations with the corresponding variables must be preformed by the same OpenMP thread. This includes the corresponding call to f.Dependent(x,y) or the ADFun f(x, y) during which the tape stops recording and the variables become parameters.

Restriction
No tapes can be active when this function is called.

Example and Tests
The shell script openmp_run.sh can be used to compile and run the OpenMP examples and tests.
Input File: cppad/local/omp_max_thread.hpp