This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PR37935 - libgomp.texi updates for OpenMP v3


Jakub,

Thanks for proof reading libgomp.texi. I attached the updated varsion.
OK to commit it?

Jakub Jelinek wrote:
>> +Set the default thread stack size in kilobytes, unless the number
>> +is suffixed by @code{B}, @code{K}, @code{M} or @code{G}, in which
>> +case the size is, respectively, in bytes, kilobytes, megabytes
>> +or gigabytes. This is in opposition to @code{pthread_attr_setstacksize}
>> +which gets the number of bytes as an argument. If the stacksize can not
>>     
> "is in opposition to" doesn't sound good to me in this case, but I'm not
> a native speaker, so I could be wrong.
>   

I agree.  (Actually, I copied that part from GOMP_STACKSIZE.) How about:
"That is different from pthread..." ?

Tobias
2008-11-04  Tobias Burnus  <burnus@net-b.de>

        PR libgomp/37935
        * libgomp.texi (Runtime library routines, environment variables):
        Update for OpenMP version 3.0.

Index: libgomp.texi
===================================================================
--- libgomp.texi	(Revision 141575)
+++ libgomp.texi	(Arbeitskopie)
@@ -116,7 +116,7 @@
 
 A complete description of all OpenMP directives accepted may be found in 
 the @uref{http://www.openmp.org, OpenMP Application Program Interface} manual,
-version 2.5.
+version 3.0.
 
 
 @c ---------------------------------------------------------------------
@@ -127,21 +127,31 @@
 @chapter Runtime Library Routines
 
 The runtime routines described here are defined by section 3 of the OpenMP 
-specifications in version 2.5.
+specifications in version 3.0. The routines are structured in following
+three parts:
 
 Control threads, processors and the parallel environment.
 
 @menu
-* omp_get_dynamic::          Dynamic teams setting
-* omp_get_max_threads::      Maximum number of threads
-* omp_get_nested::           Nested parallel regions
-* omp_get_num_procs::        Number of processors online
-* omp_get_num_threads::      Size of the active team
-* omp_get_thread_num::       Current thread ID
-* omp_in_parallel::          Whether a parallel region is active
-* omp_set_dynamic::          Enable/disable dynamic teams
-* omp_set_nested::           Enable/disable nested parallel regions
-* omp_set_num_threads::      Set upper team size limit
+* omp_get_active_level::        Number of active parallel regions
+* omp_get_ancestor_thread_num:: Ancestor thread ID
+* omp_get_dynamic::             Dynamic teams setting
+* omp_get_level::               Number of parallel regions
+* omp_get_max_active_levels::   Maximal number of active regions
+* omp_get_max_threads::         Maximal number of threads of parallel region
+* omp_get_nested::              Nested parallel regions
+* omp_get_num_procs::           Number of processors online
+* omp_get_num_threads::         Size of the active team
+* omp_get_schedule::            Obtain the runtime scheduling method
+* omp_get_team_size::           Number of threads in a team
+* omp_get_thread_limit::        Maximal number of threads
+* omp_get_thread_num::          Current thread ID
+* omp_in_parallel::             Whether a parallel region is active
+* omp_set_dynamic::             Enable/disable dynamic teams
+* omp_set_max_active_levels::   Limits the number of active parallel regions
+* omp_set_nested::              Enable/disable nested parallel regions
+* omp_set_num_threads::         Set upper team size limit
+* omp_set_schedule::            Set the runtime scheduling method
 @end menu
 
 Initialize, set, test, unset and destroy simple and nested locks.
@@ -166,6 +176,63 @@
 * omp_get_wtime::            Elapsed wall clock time.
 @end menu
 
+
+
+@node omp_get_active_level
+@section @code{omp_get_active_level} -- Number of parallel regions
+@table @asis
+@item @emph{Description}:
+This function returns the nesting level for the active parallel blocks,
+which enclose the calling call.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get_active_level();}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{integer omp_get_active_level()}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_level}, @ref{omp_get_max_active_levels}, @ref{omp_set_max_active_levels}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.19.
+@end table
+
+
+
+@node omp_get_ancestor_thread_num
+@section @code{omp_get_ancestor_thread_num} -- Ancestor thread ID
+@table @asis
+@item @emph{Description}:
+This function returns the thread identification number for the given
+nesting level of the current thread. For values of @var{level} outside
+zero to @code{omp_get_level} -1 is returned; if @var{level} is
+@code{omp_get_level} the result is identical to @code{omp_get_thread_num}.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get_ancestor_thread_num(int level);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{integer omp_ancestor_thread_num(level)}
+@item                   @tab @code{integer level}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_level}, @ref{omp_get_thread_num}, @ref{omp_get_team_size}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.17.
+@end table
+
+
+
 @node omp_get_dynamic
 @section @code{omp_get_dynamic} -- Dynamic teams setting
 @table @asis
@@ -193,17 +260,68 @@
 @ref{omp_set_dynamic}, @ref{OMP_DYNAMIC}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.8.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.8.
 @end table
 
 
 
+@node omp_get_level
+@section @code{omp_get_level} -- Obtain the current nesting level
+@table @asis
+@item @emph{Description}:
+This function returns the nesting level for the parallel blocks,
+which enclose the calling call.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get level();}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{integer omp_level()}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_active_level}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.16.
+@end table
+
+
+
+@node omp_get_max_active_levels
+@section @code{omp_set_max_active_levels} -- Maximal number of active regions
+@table @asis
+@item @emph{Description}:
+This function obtains the maximally allowed number of nested, active parallel regions.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get_max_active_levels();}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{int omp_get_max_active_levels()}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_set_max_active_levels}, @ref{omp_get_active_level}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.14.
+@end table
+
+
+
 @node omp_get_max_threads
-@section @code{omp_get_max_threads} -- Maximum number of threads
+@section @code{omp_get_max_threads} -- Maximal number of threads of parallel region
 @table @asis
 @item @emph{Description}:
-Return the maximum number of threads used for parallel regions that do
-not use the clause @code{num_threads}.
+Return the maximal number of threads used for the current parallel region
+that does not use the clause @code{num_threads}.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
@@ -216,10 +334,10 @@
 @end multitable
 
 @item @emph{See also}:
-@ref{omp_set_num_threads}, @ref{omp_set_dynamic}
+@ref{omp_set_num_threads}, @ref{omp_set_dynamic}, @ref{omp_get_thread_limit}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.3.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.3.
 @end table
 
 
@@ -251,7 +369,7 @@
 @ref{omp_set_nested}, @ref{OMP_NESTED}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.10.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.10.
 @end table
 
 
@@ -273,7 +391,7 @@
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.5.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.5.
 @end table
 
 
@@ -306,18 +424,104 @@
 @ref{omp_get_max_threads}, @ref{omp_set_num_threads}, @ref{OMP_NUM_THREADS}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.2.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.2.
 @end table
 
 
 
+@node omp_get_schedule
+@section @code{omp_get_schedule} -- Obtain the runtime scheduling method
+@table @asis
+@item @emph{Description}:
+Obtain runtime the scheduling method. The @var{kind} argument will be
+set to the value @code{omp_sched_static}, @code{omp_sched_dynamic},
+@code{opm_sched_guided} or @code{auto}. The second argument, @var{modifier},
+is set to the chunk size.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{omp_schedule(omp_sched_t * kind, int *modifier);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{subroutine omp_schedule(kind, modifier)}
+@item                   @tab @code{integer(kind=omp_sched_kind) kind}
+@item                   @tab @code{integer modifier}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_set_schedule}, @ref{OMP_SCHEDULE}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.12.
+@end table
+
+
+
+@node omp_get_team_size
+@section @code{omp_get_team_size} -- Number of threads in a team
+@table @asis
+@item @emph{Description}:
+This function returns the number of threads in a thread team to which
+either the current thread or its ancestor belongs. For values of @var{level}
+outside zero to @code{omp_get_level} -1 is returned; if @var{level} is zero
+1 is returned and for @code{omp_get_level} the result is identical
+to @code{omp_get_num_threads}.
+
+@item @emph{C/C++}:
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get_time_size(int level);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{integer function omp_get_team_size(level)}
+@item                   @tab @code{integer level}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_num_threads}, @ref{omp_get_level}, @ref{omp_get_ancestor_thread_num}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.18.
+@end table
+
+
+
+@node omp_get_thread_limit
+@section @code{omp_get_thread_limit} -- Maximal number of threads
+@table @asis
+@item @emph{Description}:
+Return the maximal number of threads of the program.
+
+@item @emph{C/C++}:
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_get_thread_limit();}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{integer function omp_get_thread_limit()}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_max_threads}, @ref{OMP_THREAD_LIMIT}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.13.
+@end table
+
+
+
 @node omp_get_thread_num 
 @section @code{omp_get_thread_num} -- Current thread ID
 @table @asis
 @item @emph{Description}:
-Unique thread identification number. In a sequential parts of the program, 
-@code{omp_get_thread_num} always returns 0. In parallel regions the return
-value varies from 0 to @code{omp_get_max_threads}-1 inclusive. The return 
+Unique thread identification number within the current team.
+In a sequential parts of the program, @code{omp_get_thread_num}
+always returns 0. In parallel regions the return value varies
+from 0 to @code{omp_get_num_threads}-1 inclusive. The return 
 value of the master thread of a team is always 0.
 
 @item @emph{C/C++}:
@@ -331,10 +535,10 @@
 @end multitable
 
 @item @emph{See also}:
-@ref{omp_get_max_threads}
+@ref{omp_get_num_threads}, @ref{omp_get_ancestor_thread_num}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.4.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.4.
 @end table
 
 
@@ -358,7 +562,7 @@
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.6.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.6.
 @end table
 
 
@@ -386,11 +590,37 @@
 @ref{OMP_DYNAMIC}, @ref{omp_get_dynamic}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.7.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.7.
 @end table
 
 
 
+@node omp_set_max_active_levels
+@section @code{omp_set_max_active_levels} -- Limits the number of active parallel regions
+@table @asis
+@item @emph{Description}:
+This function limits the maximally allowed number of nested, active parallel regions.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{omp_set_max_active_levels(int max_levels);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{omp_max_active_levels(max_levels)}
+@item                   @tab @code{integer max_levels}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_max_active_levels}, @ref{omp_get_active_level}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.14.
+@end table
+
+
+
 @node omp_set_nested
 @section @code{omp_set_nested} -- Enable/disable nested parallel regions
 @table @asis
@@ -415,7 +645,7 @@
 @ref{OMP_NESTED}, @ref{omp_get_nested}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.9.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.9.
 @end table
 
 
@@ -443,11 +673,44 @@
 @ref{OMP_NUM_THREADS}, @ref{omp_get_num_threads}, @ref{omp_get_max_threads}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.2.1.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.1.
 @end table
 
 
 
+@node omp_set_schedule
+@section @code{omp_set_schedule} -- Set the runtime scheduling method
+@table @asis
+@item @emph{Description}:
+Sets the runtime scheduling method. The @var{kind} argument can have the
+value @code{omp_sched_static}, @code{omp_sched_dynamic},
+@code{opm_sched_guided} or @code{omp_sched_auto}. Except for
+@code{omp_sched_auto}, the chunk size is set to the value of
+@var{modifier} if positive or to the default value if zero or negative.
+For @code{omp_sched_auto} the @var{modifier} argument is ignored.
+
+@item @emph{C/C++}
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{int omp_schedule(omp_sched_t * kind, int *modifier);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{subroutine omp_schedule(kind, modifier)}
+@item                   @tab @code{integer(kind=omp_sched_kind) kind}
+@item                   @tab @code{integer modifier}
+@end multitable
+
+@item @emph{See also}:
+@ref{omp_get_schedule}
+@ref{OMP_SCHEDULE}
+
+@item @emph{Reference}:
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.11.
+@end table
+
+
+
 @node omp_init_lock
 @section @code{omp_init_lock} -- Initialize simple lock
 @table @asis
@@ -470,7 +733,7 @@
 @ref{omp_destroy_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.1.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.1.
 @end table
 
 
@@ -499,7 +762,7 @@
 @ref{omp_init_lock}, @ref{omp_test_lock}, @ref{omp_unset_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.3.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.3.
 @end table
 
 
@@ -530,7 +793,7 @@
 @ref{omp_init_lock}, @ref{omp_set_lock}, @ref{omp_set_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.5.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.5.
 @end table
 
 
@@ -560,7 +823,7 @@
 @ref{omp_set_lock}, @ref{omp_test_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.4.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.4.
 @end table
 
 
@@ -587,7 +850,7 @@
 @ref{omp_init_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.2.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.2.
 @end table
 
 
@@ -614,7 +877,7 @@
 @ref{omp_destroy_nest_lock}
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.1.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.1.
 @end table
 
 
@@ -642,7 +905,7 @@
 @ref{omp_init_nest_lock}, @ref{omp_unset_nest_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.3.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.3.
 @end table
 
 
@@ -674,7 +937,7 @@
 @ref{omp_init_lock}, @ref{omp_set_lock}, @ref{omp_set_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.5.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.5.
 @end table
 
 
@@ -704,7 +967,7 @@
 @ref{omp_set_nest_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.4.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.4.
 @end table
 
 
@@ -731,7 +994,7 @@
 @ref{omp_init_lock}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.3.2.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.2.
 @end table
 
 
@@ -757,7 +1020,7 @@
 @ref{omp_get_wtime}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.4.2.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.4.2.
 @end table
 
 
@@ -785,7 +1048,7 @@
 @ref{omp_get_wtick}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 3.4.1.
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.4.1.
 @end table
 
 
@@ -797,25 +1060,30 @@
 @node Environment Variables
 @chapter Environment Variables
 
-The variables @env{OMP_DYNAMIC}, @env{OMP_NESTED}, @env{OMP_NUM_THREADS} and 
-@env{OMP_SCHEDULE} are defined by section 4 of the OpenMP specifications in 
-version 2.5, while @env{GOMP_CPU_AFFINITY} and @env{GOMP_STACKSIZE} are GNU 
+The variables @env{OMP_DYNAMIC}, @env{OMP_MAX_ACTIVE_LEVELS},
+@env{OMP_NESTED}, @env{OMP_NUM_THREADS}, @env{OMP_SCHEDULE},
+@env{OMP_STACKSIZE},@env{OMP_THREAD_LIMIT} and @env{OMP_WAIT_POLICY}
+are defined by section 4 of the OpenMP specifications in version 3.0,
+while @env{GOMP_CPU_AFFINITY} and @env{GOMP_STACKSIZE} are GNU 
 extensions.
 
 @menu
-* OMP_DYNAMIC::        Dynamic adjustment of threads
-* OMP_NESTED::         Nested parallel regions
-* OMP_NUM_THREADS::    Specifies the number of threads to use
-* OMP_SCHEDULE::       How threads are scheduled
-* GOMP_CPU_AFFINITY::  Bind threads to specific CPUs
-* GOMP_STACKSIZE::     Set default thread stack size
+* OMP_DYNAMIC::           Dynamic adjustment of threads
+* OMP_MAX_ACTIVE_LEVELS:: Set the maximal number of nested parallel regions
+* OMP_NESTED::            Nested parallel regions
+* OMP_NUM_THREADS::       Specifies the number of threads to use
+* OMP_STACKSIZE::         Set default thread stack size
+* OMP_SCHEDULE::          How threads are scheduled
+* OMP_THREAD_LIMIT::      Set the maximal number of threads
+* OMP_WAIT_POLICY::       How waiting threads are handled
+* GOMP_CPU_AFFINITY::     Bind threads to specific CPUs
+* GOMP_STACKSIZE::        Set default thread stack size
 @end menu
 
 
 @node OMP_DYNAMIC
 @section @env{OMP_DYNAMIC} -- Dynamic adjustment of threads
 @cindex Environment Variable
-@cindex Implementation specific setting
 @table @asis
 @item @emph{Description}:
 Enable or disable the dynamic adjustment of the number of threads 
@@ -827,11 +1095,29 @@
 @ref{omp_set_dynamic}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 4.3
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.3
 @end table
 
 
 
+@node OMP_MAX_ACTIVE_LEVELS
+@section @env{OMP_MAX_ACTIVE_LEVELS} -- Set the maximal number of nested parallel regions
+@cindex Environment Variable
+@table @asis
+@item @emph{Description}:
+Specifies the initial value for the maximal number of nested parallel
+regions. The value of this variable shall be positive integer.
+If undefined, the the number of active levels is unlimited.
+
+@item @emph{See also}:
+@ref{omp_set_max_active_levels}
+
+@item @emph{Reference}: 
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.7
+@end table
+
+
+
 @node OMP_NESTED
 @section @env{OMP_NESTED} -- Nested parallel regions
 @cindex Environment Variable
@@ -847,7 +1133,7 @@
 @ref{omp_set_nested}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 4.4
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.4
 @end table
 
 
@@ -866,7 +1152,7 @@
 @ref{omp_set_num_threads}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, section 4.2
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.2
 @end table
 
 
@@ -879,16 +1165,74 @@
 @item @emph{Description}:
 Allows to specify @code{schedule type} and @code{chunk size}. 
 The value of the variable shall have the form: @code{type[,chunk]} where
-@code{type} is one of @code{static}, @code{dynamic} or @code{guided}. 
-The optional @code{chunk size} shall be a positive integer. If undefined,
+@code{type} is one of @code{static}, @code{dynamic}, @code{guided} or @code{auto}
+The optional @code{chunk} size shall be a positive integer. If undefined,
 dynamic scheduling and a chunk size of 1 is used.
 
+@item @emph{See also}:
+@ref{omp_set_schedule}
+
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specifications v2.5}, sections 2.5.1 and 4.1
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 2.5.1 and 4.1
 @end table
 
 
 
+@node OMP_STACKSIZE
+@section @env{OMP_STACKSIZE} -- Set default thread stack size
+@cindex Environment Variable
+@table @asis
+@item @emph{Description}:
+Set the default thread stack size in kilobytes, unless the number
+is suffixed by @code{B}, @code{K}, @code{M} or @code{G}, in which
+case the size is, respectively, in bytes, kilobytes, megabytes
+or gigabytes. This is different from @code{pthread_attr_setstacksize}
+which gets the number of bytes as an argument. If the stacksize can not
+be set due to system constraints, an error is reported and the initial
+stacksize is left unchanged. If undefined, the stack size is system
+dependent.
+
+@item @emph{Reference}: 
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 4.5
+@end table
+
+
+
+@node OMP_THREAD_LIMIT
+@section @env{OMP_THREAD_LIMIT} -- Set the maximal number of threads
+@cindex Environment Variable
+@table @asis
+@item @emph{Description}:
+Specifies the number of threads to use for the whole program. The
+value of this variable shall be positive integer. If undefined,
+the the number of threads is not limited.
+
+@item @emph{See also}:
+@ref{OMP_NUM_THREADS}
+@ref{omp_get_thread_limit}
+
+@item @emph{Reference}: 
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.8
+@end table
+
+
+
+@node OMP_WAIT_POLICY
+@section @env{OMP_WAIT_POLICY} -- How waiting threads are handled
+@cindex Environment Variable
+@table @asis
+@item @emph{Description}:
+Specifies whether waiting threads should be active or passive. If
+the value is @code{PASSIVE}, waiting threads should not consume CPU
+power while waiting; while the value is @code{ACTIVE} specifies that
+they should.
+
+@item @emph{Reference}: 
+@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 4.6
+@end table
+
+
+
 @node GOMP_CPU_AFFINITY
 @section @env{GOMP_CPU_AFFINITY} -- Bind threads to specific CPUs
 @cindex Environment Variable
@@ -923,12 +1267,15 @@
 @cindex Implementation specific setting
 @table @asis
 @item @emph{Description}:
-Set the default thread stack size in kilobytes. This is in opposition 
-to @code{pthread_attr_setstacksize} which gets the number of bytes as an 
+Set the default thread stack size in kilobytes. This is different from
+@code{pthread_attr_setstacksize} which gets the number of bytes as an 
 argument. If the stacksize can not be set due to system constraints, an 
 error is reported and the initial stacksize is left unchanged. If undefined,
 the stack size is system dependent.
 
+@item @emph{See also}:
+@ref{GOMP_STACKSIZE}
+
 @item @emph{Reference}: 
 @uref{http://gcc.gnu.org/ml/gcc-patches/2006-06/msg00493.html, 
 GCC Patches Mailinglist}, 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]