Project groups use a ProjectGroup section to build a hierarchical project structure, and allow you to set limits on projects spanning multiple clusters.
Depending on your license usage, you can configure different project groups for different license features, or reuse the same hierarchical structure.
Each license feature in project mode can either use projects or project groups. Changing from projects to project groups involves adding a ProjectGroup section and changing the license token distribution configured in the Feature section. Other configuration remains the same.
ProjectGroup sections use configured projects (each with a Projects section in the lsf.licensescheduler file) to form a hierarchical structure for each feature.
This hierarchy is implemented by the project group configuration:
Begin ProjectGroupGROUP SHARES OWNERSHIP LIMITS NON_SHARED(topgrp (g1 g2)) (1 1) (- -) (10 10) (4 4)(g1 (g3 g4)) (1 1) (- -) (10 10) (- 4)(g2 (g5 g6)) (1 1) (- -) (- 5) (2 2)(g3 (p1 p2 p3)) (1 1 2) () (3 4 5) ()(g4 (p4 p5 p6)) (1 1 1) (1 1 1) () (- 3 -)(g5 (p7 p8 p9)) (1 1 1) (2 - 2) () (1 - 1)(g6 (p10 p11 p12)) (1 1 1) (2 2 2) (4 4 4) (1 - 1)End ProjectGroup
License feature configuration using this project group:
Begin FeatureNAME = AppZGROUP_DISTRIBUTION = topgrpSERVICE_DOMAINS = LanServer WanServerEnd Feature
Using the LIMITS column allows you to limit token use, so sometimes tokens are not distributed even if they are available. By default, License Scheduler distributes all available tokens if possible. For example, if total of 6 licenses are available:
Begin ProjectGroupGROUP SHARES OWNERSHIP LIMITS NON_SHARED(Root(A B)) (1 1) () () ()(A (c d)) (1 1) () (1 1) ()(B (e f)) (1 1) () () ()End ProjectGroup
When there is no demand for license tokens, License Scheduler only allocates 5 tokens according to the distribution. License Scheduler gives 3 tokens to group A and 3 tokens to group B, but project c and project d are limited to 1 token each, so 1 token will not be allocated within group A. As more demand comes in for project e and project f, the unallocated tokens are distributed to group B.
The optional PRIORITY parameter in the ProjectGroup section, if defined, is used for preemption instead of basing preemption on the accumulated inuse for each project.
PRIORITY can be set for all members in the project group hierarchy.
Begin ProjectGroupGROUP SHARES OWNERSHIP LIMITS NON_SHARED PRIORITY(root(A B C)) (1 1 1) () () () (3 2 -)(A (P1 D)) (1 1) () () () (3 5)(B (P4 P5)) (1 1) () () () ()(C (P6 P7 P8)) (1 1 1) () () () (8 3 -)(D (P2 P3)) (1 1) () () () (2 1)End ProjectGroup
By default, priority is evaluated from top to bottom. The priority of a given node is first decided by the priorities of its parent nodes. The values are only comparable between siblings.
The following figure illustrates the example configuration:
The priority of each node is shown beside the node name. If priority is not defined, by default is set to 0 (nodes P4 and P5 under node B).
To find the highest priority leaf node in the tree, Platform License Scheduler traverses the tree from root to node A to node D to project P2.
To find the lowest priority leaf node in the tree, License Scheduler traverses the tree from root to node C to project P8.
When two nodes have the same priority, for example, projects P4 and P5, priority is determined by accumulated inuse usage at the time the priorities are evaluated.
When a leaf node in branch A wants to preempt a token from branch B or C, branch C is picked because it has a lower priority than branch B.
blinfo -G
GROUP SHARES OWNERSHIP LIMITS NON_SHARED(topgrp (g1 g2)) (1 1) (4 4) (10 10) (4 4)(g1 (g3 g4)) (1 1) (2 4) (10 10) (- 4)(g2 (g5 g6)) (1 1) (2 2) (- 5) (2 2)(g3 (p1 p2 p3)) (1 1 2) () (3 4 5) ()(g4 (p4 p5 p6)) (1 1 1) (1 3 1) () (- 3 -)(g5 (p7 p8 p9)) (1 1 1) (2 - 2) () (1 - 1)(g6 (p10 p11 p12)) (1 1 1) (2 2 2) (4 4 4) (1 - 1)
blstat -G
FEATURE: p1_f1SERVICE_DOMAINS:TOTAL_INUSE: 0 TOTAL_RESERVE: 0 TOTAL_FREE: 5 OTHERS: 0SHARE_INFO_FOR: /topgrpGROUP/PROJECT SHARE OWN INUSE RESERVE FREE DEMANDg2 100.0 % 4 0 0 4 0SHARE_INFO_FOR: /topgrp/g2GROUP/PROJECT SHARE OWN INUSE RESERVE FREE DEMANDp3 50.0 % 0 0 0 2 0p4 50.0 % 0 0 0 2 0FEATURE: p1_f2SERVICE_DOMAINS:TOTAL_INUSE: 0 TOTAL_RESERVE: 0 TOTAL_FREE: 10 OTHERS: 0SHARE_INFO_FOR: /topgrpGROUP/PROJECT SHARE OWN INUSE RESERVE FREE DEMANDg2 100.0 % 4 0 0 4 0SHARE_INFO_FOR: /topgrp/g2GROUP/PROJECT SHARE OWN INUSE RESERVE FREE DEMANDp3 50.0 % 0 0 0 2 0p4 50.0 % 0 0 0 2 0