Prev Next ta_parallel_setup

@(@\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }@)@
Setup thread_alloc For Use in Multi-Threading Environment


By default there is only one thread and all execution is in sequential mode, i.e., multiple threads are not sharing the same memory; i.e. not in parallel mode.

It should be faster, even when num_thread is equal to one, for thread_alloc to hold onto memory. This can be accomplished using the function call
see hold_memory .

This argument has prototype
and must be greater than zero. It specifies the number of threads that are sharing memory. The case num_threads == 1 is a special case that is used to terminate a multi-threading environment.

This function has prototype
It must return true if there is more than one thread currently executing. Otherwise it can return false.

In the special case where num_threads == 1 , the routine in_parallel is not used.

This function has prototype
It must return a thread number that uniquely identifies the currently executing thread. Furthermore
     0 <= 
thread_num() < num_threads
. In the special case where num_threads == 1 , the routine thread_num is not used.

Note that this function is called by other routines so, as soon as a new thread is executing, one must be certain that thread_num() will work for that thread.

The function parallel_setup must be called before the program enters parallel execution mode. In addition, this function cannot be called while in parallel mode.

The files simple_ad_openmp.cpp , simple_ad_bthread.cpp , and simple_ad_pthread.cpp , contain examples and tests that use this function.
Input File: cppad/utility/thread_alloc.hpp