Danzek::SGE::Fairshare
1. |
Implementing Fairshare |
- User Sets
- Projects
SGE Config FairShare :
---------------------
Scheduler Policies for Job Prioritization in the Sun N1 Grid Engine 6 System
Charu Chaubal
Use Case 1
Set these through "qconf -msconf":
weight_urgency 0.1 Set ten times higher than weight_ticket to
ensure greater precedence
weight_ticket 0.01 Set ten times lower than weight_urgency to
ensure lesser precedence
weight_posix 0 POSIX priority unused
## now called weight_priority
weight_deadline 0 Deadline policy unused
weight_waiting 0 Wait time policy unused
Use qmon policy config:
share_tickets 1,000,000 Arbitrarily large number to enable sharing
functional_tickets 0 Functional policy unused
Create projects:
-- use qmon
Create tree:
-- use qmon
qconf:
[-astnode node_shares_list] add sharetree node(s) [-astree] create/modify the sharetree [-Astree fname] create/modify the sharetree from file [-clearusage] clear all user/project sharetree usage [-dstnode node_list] delete sharetree node(s) [-dstree] delete the sharetree [-mstnode node_shares_list] modify sharetree node(s) [-Mstree fname] modify/create the sharetree from file [-mstree] modify/create the sharetree [-shgrp_tree group] show host group and used hostgroups as tree [-sstnode node_list] show sharetree node(s) [-rsstnode node_list] show sharetree node(s) and its children [-sst] show a formated sharetree [-sstree] show the sharetree
2. |
Adding Urgency to Fairshare |
3. |
Scheduling to Fill Nodes (Rather than Spread Load) |
- Given that we have nodes dynamically allocated to different queues, e.g., serial and multi-host MPI, we want, for example, a node allocated to the serial queue to be filled before the scheduler allocates another node to the serial queue — else we will have many nodes with one serial job and no where to run our big MPI jobs!
- Default scheduling behaviour is to spread load evenly:
- The default behavior of SGE is to distribute jobs evenly across all nodes based on load — this is the opposite of what we want.
- Links:
-
-- http://blogs.sun.com/sgrell/entry/grid_engine_scheduler_hacks_least -- http://idolinux.blogspot.com/2008/10/grid-engine-queuing-to-fill-nodes.html - To view the current node scheduling algorithm:
-
qconf -ssconf | grep load_formula - To make the change to node-filling:
- Change from
load_formula np_load_avgtoload_formula slots - To do the opposite:
-
load_formula -slots