Summary: | Ticket-based multifactor priority depends on user count in each account? | ||
---|---|---|---|
Product: | Slurm | Reporter: | Ryan Cox <ryan_cox> |
Component: | Scheduling | Assignee: | Moe Jette <jette> |
Status: | RESOLVED CANNOTREPRODUCE | QA Contact: | |
Severity: | 4 - Minor Issue | ||
Priority: | --- | CC: | da, sts |
Version: | 2.6.x | ||
Hardware: | Linux | ||
OS: | Linux | ||
Site: | BYU - Brigham Young University | Alineos Sites: | --- |
Atos/Eviden Sites: | --- | Confidential Site: | --- |
Coreweave sites: | --- | Cray Sites: | --- |
DS9 clusters: | --- | HPCnow Sites: | --- |
HPE Sites: | --- | IBM Sites: | --- |
NOAA SIte: | --- | NoveTech Sites: | --- |
Nvidia HWinf-CS Sites: | --- | OCF Sites: | --- |
Recursion Pharma Sites: | --- | SFW Sites: | --- |
SNIC sites: | --- | Linux Distro: | --- |
Machine Name: | CLE Version: | ||
Version Fixed: | Target Release: | --- | |
DevPrio: | --- | Emory-Cloud Sites: | --- |
Description
Ryan Cox
2013-10-30 05:49:20 MDT
My understanding is that it doesn't matter how many users in an account have queued up jobs or what their usage is within that group. I thought ticket-based multifactor was supposed to always rank accounts first then the users inside the account, thus it shouldn't matter if glh43 has 1 user and dhe has 100 or vice versa. Is my understanding incorrect? That is incorrect. Tickets are distributed at each level of the hierarchy according to how over- or under-served the child users/accounts are. In the case of account dhe, tickets are distributed in the following ratios (details below show each stage): Portion of account's tickets User mdevonas tickets = (1024 x 0.0102) / (10.44 + 213.01 + 9.52) = 0.0448 User sgustaf tickets = (8192 x 0.0260) / (10.44 + 213.01 + 9.52) = 0.9143 User yzhang8 tickets = (1024 x 0.0093) / (10.44 + 213.01 + 9.52) = 0.0409 That means user sgustaf should expect a fair share value about 20 times higher than users mdevonas or yzhang8, which matches what we see: # sprio JOBID USER PRIORITY AGE FAIRSHARE JOBSIZE 2302256 sgustaf 8097 27 8070 0 1972208 fslcolla 4372 1000 3373 0 2299766 mdevonas 454 57 396 1 2303855 yzhang8 365 0 361 4 User fslcollab8 fair share will be a about 40% of user sgustaf as we see. All the calculations are below and more information is available at the web site: http://slurm.schedmd.com/priority_multifactor.html http://slurm.schedmd.com/priority_multifactor2.html # sshare -aA glh43,dhe -l Accounts requested: : glh43 : dhe Account User Raw Shares Norm Shares Raw Usage Norm Usage Effectv Usage FairShare -------------------- ---------- ---------- ----------- ----------- ----------- ------------- ---------- dhe 1024 0.007692 4074644021 0.137712 0.137712 0.000004 dhe mdevonas 1024 0.000159 461633029 0.015602 0.015602 0.000000 dhe sgustaf 8192 0.001276 1450630340 0.049027 0.049027 0.000000 dhe yzhang8 1024 0.000159 507071529 0.017138 0.017138 0.000000 glh43 1024 0.007692 10663598743 0.360400 0.360400 0.000000 glh43 fslcollab8 1024 0.000405 8932994373 0.301911 0.301911 0.000000 # sprio JOBID USER PRIORITY AGE FAIRSHARE JOBSIZE PARTITION QOS NICE 2302256 sgustaf 8097 27 8070 0 0 0 0 1972208 fslcolla 4372 1000 3373 0 0 0 0 2299766 mdevonas 454 57 396 1 0 0 0 2303855 yzhang8 365 0 361 4 0 0 0 Account dhe Norm Shares = 0.007692 Account glh43 Norm Shares = 0.007692 Account dhe Effectv Usage = 0.137712 Account glh43 Effectv Usage = 0.360400 fair share = normalized share / effective usage Account dhe fair share = 0.05586 Account glh43 fair share = 0.02134 User mdevonas Norm Shares = 0.000159 User sgustaf Norm Shares = 0.001276 User yzhang8 Norm Shares = 0.000159 User fslcollab8 Norm Shares = 0.000405 User mdevonas Effectv Usage = 0.015602 User sgustaf Effectv Usage = 0.049027 User yzhang8 Effectv Usage = 0.017138 User fslcollab8 Effectv Usage = 0.301911 User mdevonas fair share = 0.0102 User sgustaf fair share = 0.0260 User yzhang8 fair share = 0.0093 User fslcollab8 fair share = 0.0013 ========================= ticket share = (shares x fair share) / (SUM siblings(share x fair share)) Account dhe tickets = (1024 x 0.05586) / (1024 x 0.05586 + 1024 x 0.02134) = 0.7245 Account glh43 tickets = (1024 x 0.02134) / (1024 x 0.05586 + 1024 x 0.02134) = 0.2764 Portion of account's tickets User mdevonas tickets = (1024 x 0.0102) / (10.44 + 213.01 + 9.52) = 0.0448 User sgustaf tickets = (8192 x 0.0260) / (10.44 + 213.01 + 9.52) = 0.9143 User yzhang8 tickets = (1024 x 0.0093) / (10.44 + 213.01 + 9.52) = 0.0409 User fslcollab8 tickets = 1.0 Portion of all tickets User mdevonas tickets = 0.0448 x 0.7245 = 0.0324 User sgustaf tickets = 0.9143 x 0.7245 = 0.6624 User yzhang8 tickets = 0.0409 x 0.7245 = 0.0296 User fslcollab8 tickets = 1.0 x 0.2764 = 0.2764 That makes sense. After following the calculations you provided, the documentation made sense. Basically, we have a problem where our most active user (fslcollab8) was the only one from his account running jobs for a time. He was competing with several users from the second most active account (dhe), several of whom have different shares numbers. Since the calculation at each depth in the tree for shares is (Suser / Ssiblings), fslcollab8 was 1.0 since he was the only active user. dhe's users were at a disadvantage since there were more of them active and that lowered one component of the shares calculation. The other components are essentially constant for us since we treat each account equally. Thus accounts with only one active user have an advantage. We're planning to add a new algorithm to the multifactor plugin that will handle our use case much better. We've modeled it extensively and may code it up and try it out by early next week. It will evaluate each depth and make it so that, all else equal, users from an overserved account will never under any circumstances get a higher priority than users from an underserved account. It assumes a rigid hierarchy and may only be practical for a two level tree (user and account), but that's what we have and it should work well for us. CEA did some work described in the presentation below that will be included in the version 13.12 release. I'm not sure if this will help your situation though. http://slurm.schedmd.com/SUG13/fairshare-improvement-0.4.pdf |