pthread_scope_options.5 (2010 09)

p
pthread_scope_options(5) pthread_scope_options(5)
NAME
pthread_scope_options - list of external options to specify the scheduling contention scope of threads
DESCRIPTION
From HP-UX release 11i version 2 and forward, HP-UX supports the "MxN" thread model. With MxN
model, application has the flexibility of selecting the type of thread (determined by the contention scope
specified) in the application. Based on the contention scope, there are two types of threads,
PTHREAD_SCOPE_SYSTEM
threads and PTHREAD_SCOPE_PROCESS
threads.
pthread_attr_init()
can be used to initialize the attribute object. Subsequently,
pthread_attr_setscope()
can be used to set the scope explicitly. If
pthread_attr_setscope()
is not used, the default contention scope is considered.
The default contention scope will be
PTHREAD_SCOPE_SYSTEM
.
Some external options are provided to control the contention scope without modifying the application
source. This is useful for the application developer to check the performance of the application with mul-
tiple thread models before deciding on the thread model appropriate for a particular application.
The external scope options can be specified in three different ways:
1. At compile time.
2. In Properties file.
3. Environment variables.
1. Compile Time Options
The options provided at compile time are:
PTHREAD_FORCE_SCOPE_SYSTEM
Forces the system scope irrespective of scope specified in the attribute for thread creation.
PTHREAD_FORCE_SCOPE_PROCESS
Forces the process scope irrespective of scope specified in the attribute for thread creation.
PTHREAD_DEFAULT_SCOPE_PROCESS
If contention scope is set by pthread_attr_setscope()
, that scope is considered while creat-
ing a thread. Otherwise,
PTHREAD_SCOPE_PROCESS
is considered.
The compile time option can be specified with
-D or by defining the same before including
pthread.h in
application source files. If none of the above mentioned options is specified, system scope threads will be
created unless
pthread_attr_setscope()
, specifies otherwise.
PTHREAD_COMPAT_MODE
compile option is similar to PTHREAD_FORCE_SCOPE_SYSTEM
and is pro-
vided for backward compatibility. However, if any of the above mentioned new compile options are used,
PTHREAD_COMPAT_MODE
will not have any effect.
2. Properties File Options
Users are given the flexibility to use a
libpthread properties file to specify various tunables for the
library, to help in optimizing their applications without making any source code changes. The default
path name of the properties file is /usr/lib/libpthread.properties
. Note that this file will
have to be explicitly created by the user. If the application wants the pthread library to read the tunables
from the properties file, the environment variable
PTHREAD_TUNE has to be set to 1, on, or ON. The
user, through the environment variable PTHREAD_PROPERTY_FILE can specify a different location for
the properties file.
In the properties file, lines beginning with
# are comments. For non-comment lines, the first and second
words are extracted. The first word is expected to be the name of one of the tunables, and the second
word is expected to be the value of that variable.
The properties file supports following tunables to control the scope of threads externally:
force_scope_system
Forces the system scope irrespective of scope specified in the attribute for thread creation.
force_scope_process
Forces the process scope irrespective of scope specified in the attribute for thread creation.
default_scope_process
If contention scope is set by pthread_attr_setscope(), that scope is considered while creating a
thread. Otherwise, PTHREAD_SCOPE_PROCESS is considered.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (4 pages)