United States-English |
|
|
HP-UX Reference > Ppthread_scope_options(5)HP-UX 11i Version 3: February 2007 |
|
NAMEpthread_scope_options — list of external options to specify the scheduling contention scope of threads DESCRIPTIONFrom 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 multiple 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. Compile Time OptionsThe options provided at compile time are:
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 provided 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 OptionsUsers 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:
Note: The properties file options mxnfromcompatmode and all1x1 supported on HP-UX 11i v2 will be provided for backward compatibility. However, if any of the above mentioned new properties file options are used, mxnfromcompatmode and all1x1 will not have any effect. 3. Environmental VariablesThere are a set of environment variables which when set can override the scope of the threads specified in the application. These environment variables should be set before starting the application to run. The environmental variables supported for controlling the scope are:
Note: PTHREAD_COMPAT_MODE environment variable that was supported on HP-UX 11i v2 will continue to be supported and will have the same effect as PTHREAD_FORCE_SCOPE_SYSTEM However, if any of the above mentioned new environment variables are set, PTHREAD_COMPAT_MODE will not have any effect. Precedence if multiple options are specified:
EXAMPLES
|
Printable version | ||
|