*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> pthread_scope_options (5)              
Title
Content
Arch
Section
 

Contents


 pthread_scope_options(5)                           pthread_scope_options(5)




 NAME    [Toc]    [Back]
      pthread_scope_options - list of external options to specify the
      scheduling contention scope of threads

 DESCRIPTION    [Toc]    [Back]
      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.

      For HP-UX 11i v2 September 2004 and forward, the default contention
      scope will be PTHREAD_SCOPE_SYSTEM.

      HP-UX 11i v2 September 2004 provides some external options 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. 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    [Toc]    [Back]
           Forces the system scope irrespective of scope specified in the
           attribute for thread creation.

      PTHREAD_FORCE_SCOPE_PROCESS    [Toc]    [Back]
           Forces the process scope irrespective of scope specified in the
           attribute for thread creation.

      PTHREAD_DEFAULT_SCOPE_PROCESS    [Toc]    [Back]
           If contention scope is set by pthread_attr_setscope(), that scope
           is considered while creating 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.



 Hewlett-Packard Company            - 1 -      HP-UX 11i Version 2: Sep 2004






 pthread_scope_options(5)                           pthread_scope_options(5)




      Note: If an application is compiled with any of the above options on
      11i v2 September 2004, and it has to run on HP-UX 11i v2, it needs to
      be recompiled.  If it is run without recompilation, it will fail with
      "Unresolved symbol" error.

      PTHREAD_COMPAT_MODE compile option that was supported on HP-UX 11i v2
      will continue to be supported on HP-UX 11i v2 September 2004.
      However, if any of the above mentioned new compile options are used,
      PTHREAD_COMPAT_MODE will not have any effect.  If an application is
      compiled with this option on HP-UX 11i v2 September 2004, it will run
      as it is on HP-UX 11i v2 unlike the new compile options.

    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.

      default_scope_system
         If contention scope is set by pthread_attr_setscope(), that scope
         is considered while creating a thread.  Otherwise,
         PTHREAD_SCOPE_SYSTEM is considered.





 Hewlett-Packard Company            - 2 -      HP-UX 11i Version 2: Sep 2004






 pthread_scope_options(5)                           pthread_scope_options(5)




      Note: The properties file options mxnfromcompatmode and all1x1
      supported on HP-UX 11i v2 will be supported on HP-UX 11i v2 September
      2004 also.  However, if any of the above mentioned new properties file
      options are used, mxnfromcompatmode and all1x1 will not have any
      effect.

    3. Environmental Variables
      There 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:

      PTHREAD_FORCE_SCOPE_SYSTEM    [Toc]    [Back]
           Forces the system scope irrespective of scope specified in the
           attribute for thread creation.

      PTHREAD_FORCE_SCOPE_PROCESS    [Toc]    [Back]
           Forces the process scope irrespective of scope specified in the
           attribute for thread creation.

      PTHREAD_DEFAULT_SCOPE_PROCESS    [Toc]    [Back]
           If contention scope is set by pthread_attr_setscope(), that scope
           is considered while creating a thread.  Otherwise,
           PTHREAD_SCOPE_PROCESS is considered.

      PTHREAD_DEFAULT_SCOPE_SYSTEM    [Toc]    [Back]
           If contention scope is set by pthread_attr_setscope(), that scope
           is considered while creating a thread.  Otherwise,
           PTHREAD_SCOPE_SYSTEM is considered.

      Note: PTHREAD_COMPAT_MODE environment variable that was supported on
      HP-UX 11i v2 will continue to be supported on HP-UX 11i v2 September
      2004.  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:

      +  Environmental variable settings take higher precedence over
         properties file settings which in turn take higher precedence over
         compile time options.

      +  If more than one setting is done in one of the ways specified
         above, force option will take higher precedence over default option
         and the scope set by pthread_attr_setscope().  System scope takes
         more precedence than process scope.  The contention scope set by
         pthread_attr_setscope() takes precedence over external scope
         setting for default scope process and default scope system.





 Hewlett-Packard Company            - 3 -      HP-UX 11i Version 2: Sep 2004






 pthread_scope_options(5)                           pthread_scope_options(5)




    EXAMPLES    [Toc]    [Back]
      1. The following settings are done in properties file:

         force_scope_system 1

         default_scope_process 1

         export PTHREAD_TUNE=1 and
         export PTHREAD_PROPERTY_FILE=user's_properties_file

         should be done for the properties file to be read by the pthread
         library.

         If PTHREAD_PROPERTY_FILE is not set, /usr/lib/libpthread.properties
         will be used.

         With these settings, force_scope_system will take the precedence,
         and system scope will be forced for all thread creations.

      2. If the following options are defined at compile time with -D or
         defined in one of the application header files:
         PTHREAD_DEFAULT_SCOPE_SYSTEM and PTHREAD_FORCE_SCOPE_SYSTEM;

         PTHREAD_FORCE_SCOPE_SYSTEM will take higher precedence, and system
         scope threads will be forced even when pthread_attr_setscope() is
         used to specify the process scope.

      3. If the following environmental variables are set (say, using shposix):


         export PTHREAD_DEFAULT_SCOPE_PROCESS=1

         export PTHREAD_FORCE_SCOPE_SYSTEM=ON

         PTHREAD_FORCE_SCOPE_SYSTEM will take higher precedence, and system
         scope is forced for all the threads created in the process.

      4. If the following environmental variables are set (say, using shposix):


         export PTHREAD_DEFAULT_SCOPE_SYSTEM=on

         export PTHREAD_FORCE_SCOPE_PROCESS=ON

         PTHREAD_FORCE_SCOPE_PROCESS will take higher precedence, and
         process scope is forced for all the threads created in the process.

 SEE ALSO    [Toc]    [Back]
      pthread(3T), pthread_attr_init(3T), pthread_attr_setscope(3T).


 Hewlett-Packard Company            - 4 -      HP-UX 11i Version 2: Sep 2004
[ Back ]
      
      
 Similar pages
Name OS Title
pthread_attr_setscope Tru64 Sets the contention scope attribute of the specified thread attributes object
pthread_attr_getscope Tru64 Obtains the contention scope attribute of the specified thread attributes object
pthread_nsg_get Tru64 Gets the list of threads in a NUMA Scheduling Group (libpthread library)
pthread_attr_setscope IRIX thread scheduling scope attributes
nsg_get_nsgs Tru64 Returns a list NUMA Scheduling Groups (libnuma library)
nsg_get_pids Tru64 Return a list of a NUMA Scheduling Group's process identifiers (libnuma library)
rpccp_help HP-UX Displays a list of commands or the options of a specified command
getopt_long_only OpenBSD get long options from command line argument list
getopt_long OpenBSD get long options from command line argument list
getopt_long FreeBSD get long options from command line argument list
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service