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_avg
toload_formula slots
- To do the opposite:
-
load_formula -slots