The
bind-var
ICV
has
been
added,
which
controls
whether
or
not
threads
are
bound
to
processors
(see
Section 2.5.1
on
page 172).
The
value
of
this
ICV
can
be
set
with
the
OMP_PROC_BIND
environment
variable
(see
Section 6.4
on
page 1653).
The
nthreads-var
ICV
has
been
modified
to
be
a
list
of
the
number
of
threads
to
use
at
each
nested
parallel
region
level
and
the
algorithm
for
determining
the
number
of
threads
used
in
a
parallel
region
has
been
modified
to
handle
a
list
(see
Section 2.6.1
on
page 224).
The
final
and
mergeable
clauses
(see
Section 2.10.1
on
page 384)
were
added
to
the
task
construct
to
support
optimization
of
task
data
environments.
The
taskyield
construct
(see
Section 2.10.4
on
page 410)
was
added
to
allow
user-defined
task
scheduling
points.
The
atomic
construct
(see
Section 2.17.7
on
page 652)
was
extended
to
include
read,
write,
and
capture
forms,
and
an
update
clause
was
added
to
apply
the
already
existing
form
of
the
atomic
construct.
Data
environment
restrictions
were
changed
to
allow
intent(in)
and
const-qualified
types
for
the
firstprivate
clause
(see
Section 2.19.4.4
on
page 852).
Data
environment
restrictions
were
changed
to
allow
Fortran
pointers
in
firstprivate
(see
Section 2.19.4.4
on
page 852)
and
lastprivate
(see
Section 2.19.4.5
on
page 862).
New
reduction
operators
min
and
max
were
added
for
C
and
C++
(see
Section 2.19.5
on
page 873).
The
nesting
restrictions
in
Section 2.20
on
page 992
were
clarified
to
disallow
closely-nested
OpenMP
regions
within
an
atomic
region.
This
allows
an
atomic
region
to
be
consistently
defined
with
other
OpenMP
regions
so
that
they
include
all
code
in
the
atomic
construct.
The
omp_in_final
runtime
library
routine
(see
Section 3.2.22
on
page 1086)
was
added
to
support
specialization
of
final
task
regions.
Descriptions
of
examples
(previously
Appendix
A)
were
expanded
and
clarified.
Replaced
incorrect
use
of
omp_integer_kind
in
Fortran
interfaces
with
selected_int_kind(8).