How to Create Project-Based Share-Tree Scheduling
The objective of this setup is to guarantee a certain share assignment of all
the cluster resources to different projects over time.
StepsSpecify the number of share-tree tickets (for example, 1000000) in the
scheduler configuration. See Configuring Policy-Based Resource Management With QMON, and the sched_conf(5) man
page.
(Optional) Add one user for each scheduling-relevant user. See Configuring User Objects With QMON, and the user(5) man page.
Add one project for each scheduling-relevant project. See Defining Projects With QMON, and the project(5) man page.
Use QMON to set up a share tree that reflects the structure
of all scheduling-relevant projects as nodes. See Configuring the Share-Tree Policy With QMON.
Assign share tree shares to the projects. For example, if
you are creating project-based share-tree scheduling with first-come, first-served
scheduling among jobs of the same project, a simple structure might look like the
following:
 If you are creating project-based share-tree scheduling with equal shares for
each user, a simple structure might look like the following:
 If you are creating project-based share-tree scheduling with individual user
shares in each project, add users as leaves to their projects. Then assign individual
shares. A simple structure might look like the following:
 If you want to assign individual shares to only a few users, designate the user default in combination with individual users below a project node. For example,
you can condense the tree illustrated previously into the following:

Configuring the Functional Policy
Functional scheduling is a nonfeedback scheme for determining
a job's importance. Functional scheduling associates a job with the submitting user,
project, department, and job class. Functional scheduling is sometimes called priority
scheduling. The functional policy setup ensures that a defined share is guaranteed
to each user, project, or department at any time. Jobs of users, projects, or departments
that have used fewer resources than anticipated are preferred when the system dispatches
jobs to idle resources.
At the same time, full resource usage is guaranteed, because unused share proportions
are distributed among those users, projects, and departments that need the resources.
Past resource consumption is not taken into account.
Functional policy entitlement to system resources is combined with other entitlements
in determining a job's net entitlement. For example, functional policy entitlement
might be combined with share-based policy entitlement.
The total number of tickets that are allotted to the functional policy determines
the weight of functional scheduling among the three scheduling policies. During installation,
the administrator divides the total number of functional tickets among the functional
categories of user, department, project, job, and job class.
Functional Shares
Functional shares are assigned to every member of each functional category:
user, department, project, job, and job class. These shares indicate what proportion
of the tickets for a category each job associated with a member of the category is
entitled to. For example, user davidson has 200 shares, and user donlee has 100. A job submitted by davidson is entitled
to twice as many user-functional-tickets as donlee's job, no matter
how many tickets there are.
The functional tickets that are allotted to each category are shared among all
the jobs that are associated with a particular category.
Configuring the Functional Share Policy With QMON
At the bottom of the QMON Policy Configuration dialog box,
click Functional Policy. The Functional Policy dialog box appears.
 Function Category List
Select the functional category for which you are defining functional shares:
user, project, department, or job.
Functional Shares Table
The table under Functional Shares is scrollable. The table displays the following
information: A list of the members of the category currently selected from the
Function Category list.
The number of functional shares for each member of the category. Shares
are used as a convenient indication of the relative importance of each member of the
functional category. You can edit this field.
The percentage of the functional share allocation for this category
of functional ticket that this number of functional shares represents. This field
is a feedback device and is not editable.
QMON periodically updates the information displayed in the
Functional Policy dialog box. Click Refresh to force the display to refresh immediately.
To save all node changes that you make, click Apply. To close the dialog box
without saving changes, click Done.
Changing Functional Configurations
Click the jagged arrow above the Functional Shares table to open a configuration
dialog box. For User functional shares, the User Configuration dialog box appears.
Use the User tab to switch to the appropriate mode for changing the configuration
of grid engine users. See Configuring User Objects With QMON.
For Department functional shares, the User Configuration dialog box
appears. Use the Userset tab to switch to the appropriate mode for changing the configuration
of departments that are represented as usersets. See Defining Usersets As Projects and Departments.
For Project functional shares, the Project Configuration dialog box
appears. See Defining Projects With QMON.
For Job functional shares, the Job Control dialog box appears. See "Monitoring and
Controlling Jobs With QMON" in N1 Grid Engine 6
User's Guide.
Ratio Between Sorts of Functional Tickets
To display the Ratio Between Sorts Of Functional Tickets, click the arrow at
the right of the Functional Shares table .
User [%], Department [%], Project [%], Job [%] and Job Class [%] always add
up to 100%.
When you change any of the sliders, all other unlocked sliders change to compensate
for the change.
When a lock is open, the slider that it guards can change freely. The slider
can change either because it is moved or because the moving of another slider causes
this slider to change. When a lock is closed, the slider that it guards cannot change.
If four locks are closed and one lock is open, no sliders can change. User slider - Indicates the percentage of the total functional
tickets to allocate to the users category
Departments slider - Indicates the percentage of the total functional
tickets to allocate to the departments category
Project slider - Indicates the percentage of the total functional
tickets to allocate to the projects category
Job slider - Indicates the percentage of the total functional
tickets to allocate to the jobs category
Configuring the Functional Share Policy From the Command
Line
Note - You can assign functional shares to jobs only using QMON. No command-line interface is available for this function.
To configure the functional share policy from the command line, use the qconf command with the appropriate options. Use the qconf -muser command to configure the user
category. The -muser option modifies the fshare parameter
of the user entry file. See the user(5) man page for information
about the user entry file.
Use the qconf -mu command to configure the department
category. The -mu option modifies the fshare parameter
of the access list file. See the access_list(5) man page for information
about the access list file, which is used to represent departments.
Use the qconf -mprj command to configure the project
category. The -mprj option modifies the fshare parameter
of the project entry file. See the project(5) man page for information
about the project entry file.
Use the qconf -mq command to configure the job
class category. The -mq option modifies the fshare parameter
of the queue configuration file. See the queue_conf(5) man page
for information about the queue configuration file, which is used to represent job
classes.
The weighting between different categories is defined in the scheduler
configuration sched_conf and can be changed using qconf -msconf. The parameters to change are weight_user, weight_department, weight_project, weight_job, and weight_jobclass. The parameter values range between
0 and 1, and the total sum of parameters must add up to 1.
|