Prev Next Index-> contents reference index search external Up-> CppAD multi_thread parallel_ad CppAD-> Install Introduction AD ADFun preprocessor multi_thread utility ipopt_solve Example speed Appendix multi_thread-> parallel_ad thread_test.cpp parallel_ad Headings-> Syntax Purpose Discussion CheckSimpleVector Example Restriction

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/core/parallel_ad.hpp