Installation
Certain applications can benefit from enhanced dispatching priority during
execution. POE provides a service for periodically adjusting the
dispatching limits of a user's task between set limits. Specify
this service by adding entries in the file
/etc/poe.priority, as described below. Each record in
the file associates a set of dispatching parameters (high and low priorities,
duty factor, and adjustment period) with each user authorized to use this
service. The user specifies which service entry to use by setting the
MP_PRIORITY environment variable prior to invoking POE.
There is no command-line equivalent.
The range of parameters permitted in the adjustment record is purposely set
to be as unrestricted as possible. The user and system administrator
(who owns the configuration file) must evaluate the effect of various
parameter settings in their own operating environment. Carefully read
the notes accompanying the file format description. The following are
descriptions of the parameters.
- username
- name of user
- classname
- name assigned to class. The user can select the class by
setting the POE environment variable MP_PRIORITY to this class name
prior to invoking POE.
- hipriority
- the dispatching priority assigned to the favored portion of the cycle
- lopriority
- the dispatching priority assigned to the rest of the cycle
- percenthi
- the percentage of the cycle at which the job is at hipriority
(percent)
- period
- length of adjustment cycle, in seconds
Notes:
- The normal AIX dispatching priority is 60. If both
hipriority and lopriority are set to values less than
60, a compute bound job will prevent other users from being dispatched.
- The hipriority value must be equal to or greater than
12. If the value is between 12 and 20, the job competes with system
processes for cycles, and may disrupt normal system activity.
- If hipriority value is less than 30, keystroke capture will be
inhibited during the hipriority portion of the dispatch
cycle.
- If hipriority is less than 16, the job will not be subject to
the AIX scheduler during the high priority portion of the cycle.
- The lopriority value must be less than or equal to 127.
- If the hipriority value is less than (more favored than) the
priority of the SP Switch fault-service daemon, and if the low priority
portion of the adjustment cycle is less than two seconds, then switch fault
recovery will be unsuccessful, and the node will be disconnected from the
switch.
- The priority adjustment process allows programs using the User Space
access to the SP Switch to maximize their effectiveness in interchanging
data. The process may also be used for programs using IP, either over
the switch or over another supported device. However, if the high
priority phase of the user's program is more favored than the network
processes (typically priorities 36-39), the required IP message passing
traffic may be blocked and cause the program to hang.
- Consult the include file /usr/include/sys/pri.h for
definitions of the priorities used for normal AIX functions.
- The parameter file /etc/poe.priority defines the
scheduling parameters for tasks running on that node. Each node may
have a different priority file.
- The primary performance enhancement is achieved when the user's
application can run with minimal interference from the standard AIX daemons
running on each node. This is achieved when the user's application
is scheduled with a fixed priority more favored than the daemons, which
typically run with a priority setting of 60.
- Status and error messages generated during the priority adjustment process
are written to the file /tmp/pmadjpri.log. Also, any
error or diagnostic information from POE's invocation of the priority
adjustment function will be recorded in the partition manager log (controlled
by the POE MP_PMDLOG environment variable and -pmdlog
flag.)
- The current implementation controls only a single task on a
node. The task may have multiple threads to make use of the processing
resources of an SMP node. The threads of the task will all be assigned
the same priority and will be dispatched as round-robin.
Examples:
userfoo super 12 64 95 10
userfoo sponge 64 120 50 30
edgar default 20 64 95 10
edgar normal 60 60 50 20
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]