Enable AD Calculations During Parallel Mode
Keywords: enable ad calculations during parallel mode syntax purpose discussion checksimplevector example restriction

| Prev | Next |  |  |  |  | parallel_ad |

Enable AD Calculations During Parallel Mode
Syntax
`parallel_ad<Base>()`
Purpose
The function `parallel_ad<Base>()` must be called before any `AD<Base>` objects are used in parallel mode. In addition, if this routine is called after one is done using parallel mode, it will free extra memory used to keep track of the multiple `AD<Base>` tapes required for parallel execution.
Discussion
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 threads at the same time. The parallel_setup function informs CppAD of the maximum number of threads that can be active in parallel mode. This routine does extra setup (and teardown) for the particular `Base` type.
CheckSimpleVector
This routine has the side effect of calling the routines `
CheckSimpleVector< Type, CppAD::vector<Type> >()
` where `Type` is `Base` and `AD<Base>` .
Example
The files team_openmp.cpp , team_bthread.cpp , and team_pthread.cpp , contain examples and tests that implement this function.
Restriction
This routine cannot be called in parallel mode or while there is a tape recording `AD<Base>` operations.

Input File: cppad/local/parallel_ad.hpp