Sun Microsystems
Products & Services
 
Support & Training
 
 

Previous Previous     Contents     Index     Next Next

ProcedureHow 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.

Steps
  1. Specify 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.

  2. (Optional) Add one user for each scheduling-relevant user.

    See Configuring User Objects With QMON, and the user(5) man page.

  3. Add one project for each scheduling-relevant project.

    See Defining Projects With QMON, and the project(5) man page.

  4. 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.

  5. 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:

    Diagram showing root node with 2 projects. Project A has 75 shares,
Project B has 25 shares.

    If you are creating project-based share-tree scheduling with equal shares for each user, a simple structure might look like the following:

    Diagram showing root node with 2 projects. Each project has the
default user defined. Each user has 10 shares.

    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:

    Diagram showing root node with 2 projects. Each project has 3
users defined. Each user has 10 shares.

    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:

    Diagram showing root node, 2 projects. Project A has the default
user (5 shares), and User2 (90 shares). Project B has the default user (30 shares).

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.

Dialog box titled Functional Policy. Shows category list, category
members, and ratio of tickets. Shows Refresh, Apply, Done, and Help buttons.
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.

Previous Previous     Contents     Index     Next Next