SHARE_TREE(5)

✨ SHARE_TREE(5) ✨

ok so bestie, this is the manual page for share_tree β€” the Grid Engine share tree file format πŸ’– and yes it's a whole file format, we're doing file formats today, get comfy πŸŽ€


🌸 DESCRIPTION 🌸

so like. the share tree is the vibe-check on long-term resource entitlements πŸ‘‘ β€” it defines them for users and projects, and also for a whole hierarchy of arbitrary groups of those users/projects. it's giving family tree but for resources, fr fr 🌈

⚠️ ngl there's a thing you gotta know: it's normally necessary to maintain users explicitly to use a share tree. don't rely on automatic creation and (specifically) automatic destruction, okay?? or at the very least set auto_user_delete_time to 0. see user(5). this is not optional-coded, it's a real caveat πŸ’…

wanna see your current share tree? slay, use the qconf(1) -sstree or -sst options ✨ and the output follows the share_tree format description, so it'll look like exactly the stuff we're about to describe.

wanna make one, or glow up an existing one? use the -astree and -mstree options to qconf(1) 🫢

and if you want the ✨aesthetic✨ tree view, the -sst option shows a formatted share tree (tree view). main character energy honestly.

individual share tree nodes? you can create, modify, delete, or show them via the -astnode, -dstnode, -mstnode, and -sstnode options to qconf(1) πŸ’–

oh also β€” important detail β€” Grid Engine allows backslashes (\) to be used to escape newline characters. the backslash and the newline both get replaced with a space character before any interpretation happens. so like, the parser does a little makeover first and then reads it πŸ¦‹


πŸŽ€ FORMAT πŸŽ€

the format of a share tree file is defined as follows, bestie:

  • a new node starts with the attribute id, an equal sign, and the numeric identification number of the node. further attributes of that node follow until another id keyword shows up (that's the "new node, who dis" moment) ✨
  • the attribute type defines whether a sharetree node references a user (type=0), or a project (type=1) 🌸
  • the attribute childnodes contains a comma-separated list of child nodes to this node πŸ‘‘
  • the parameter name refers to an arbitrary name for the node, or to a corresponding user (see user(5)) or project (see project(5)) if the node is a leaf node of the share tree. the name of the root node of the tree is "Root" by convention 🫢
  • the parameter shares defines the share of the node among the nodes with the same parent node πŸ’…
  • a user leaf node named 'default' can be defined as a descendant of a project(5) node in the share tree. the default node defines the number of shares for users who are running in the project, but who do not have a user node defined under the project. the default user node is a convenient way of specifying a single node for all users which should receive an equal share of the project resources 🌈 the default node may be specified by itself or with other user(5) nodes at the same level below a project. all users β€” whether explicitly specified as a user node or those which map to the 'default' user node β€” must have a corresponding user(5) object defined in order to get shares. 🚨
πŸ’€ do NOT configure a user(5) object named 'default'. like, don't. that's the one rule. periodt.

πŸ”₯ EXAMPLES πŸ”₯

jobs of projects P1 and P2 get 50 shares, all other jobs get 10 shares. it's giving fair but not too fair πŸ’–

id=0
name=Root
type=0
shares=1
childnodes=1,2,3
id=1
name=P1
type=1
shares=50
childnodes=NONE
id=2
name=P2
type=1
shares=50
childnodes=NONE
id=3
name=default
type=0
shares=10
childnodes=NONE

πŸ¦‹ SEE ALSO πŸ¦‹

sge_intro(1), qconf(1), qmon(1), sge_share_mon(1), project(5), user(5).


see sge_intro(1) for a full statement of rights and permissions πŸ“œ


and that's the whole page bestie!! this iconic little doc is from SGE 8.1.3pre, dated 2011-05-19, and yeah it's literally the SHARE_TREE(5) manual β€” go forth and configure your shares, you've got this πŸ’…βœ¨πŸŽ€