Slurm Account Hierarchy¶
The ULHPC resources can be reserved and allocated for the execution of jobs scheduled on the platform thanks to a Resource and Job Management Systems (RJMS) - Slurm in practice. This tool is configured to collect accounting information for every job and job step executed -- see SchedMD accounting documentation.
ULHPC account (login) vs. Slurm [meta-]account
-
Your ULHPC account defines the UNIX user you can use to connect to the facility and make you known to our systems. They are managed by IPA and define your
login
. -
Slurm accounts, refered to as meta-account in the sequel, are more loosely defined in Slurm, and should be seen as something similar to a UNIX group: it may contain other (set of) slurm account(s), multiple users, or just a single user. A user may belong to multiple slurm accounts, but MUST have a DefaultAccount, which is set to your line manager or principal investigator meta-account.
ULHPC Account Tree Hierarchy¶
Every user job runs under a group account, granting access to specific QOS levels.
Such an account is unique within the account hierarchy.
Accounting records are organized as a hierarchical tree according to 3 layers (slurm accounts) as depicted in the below figure (click to enlarge).
At the leaf hierarchy stands the End user <login>
from the IPA IdM database, bringing a total of 4 levels.
Level | Account Type | Description | Example |
---|---|---|---|
L1 | meta-account | Top-level structure / organizations | UL, CRP, Externals, Projects, Trainings |
L2 | meta-account | Organizational Unit (Faculty, ICs, External partner, Funding program...) | FSTM, LCSB, LIST... |
L3 | meta-account | Principal investigators (PIs), project, courses/lectures | <firstname>.<lastname> , <acronym> , <course> |
L4 | login | End-users (staff, student): your ULHPC/IPA login | yourlogin |
Extracting your association tree
By default, you will be able to see only the account hierarchy you belongs too through the association(s) set with your login. You can extract it with:
$ sacctmgr show association where parent=root format="account,user%20,Share,QOS%50" withsubaccounts
Account User Share QOS
---------------------- -------- ----------- --------------------------------------------------
<top> <L1share> besteffort,debug,long,low,normal
<orgunit> <L2share> besteffort,debug,long,low,normal
<firstname>.<lastname> <L3share> besteffort,debug,long,low,normal
<firstname>.<lastname> <login> <L4share> besteffort,debug,long,low,normal
(Admins) Extract the full hierarchy
The below commands assumes you have supervision rights on the root
account.
To list available L1 accounts (Top-level structure / organizations), use
sacctmgr show association where parent=root format="cluster,account,Share,QOS%50"
sacctmgr show association where parent=UL format="cluster,account,Share,QOS%50"
sacctmgr show association where parent=CRP format="cluster,account,Share,QOS%50"
sacctmgr show association where parent=externals format="cluster,account,Share,QOS%50"
sacctmgr show association where parent=projects format="cluster,account,Share,QOS%50"
sacctmgr show association where parent=trainings format="cluster,account,Share,QOS%50"
To quickly list L3 accounts and its subaccounts: sassoc <account>
, or
sacctmgr show association where accounts=<L3account> format="account%20,user%20,Share,QOS%50"
sassoc <login>
, or
sacctmgr show association where users=<login> format="account%20,user%20,Share,QOS%50"
Default account vs. multiple associations
A given user <login>
can be associated to multiple accounts, but have a single DefaultAccount
(a meta-account at L3 level reflecting your line manager (Format: <firstname>.<lastname>
).
To get information about your account information in the hierarchy, use the custom acct
helper function, typically as acct $USER
.
Get ULHPC account information with acct <login>
# /!\ ADAPT <login> accordingly
$ acct <login>
# sacctmgr show user where name="<login>" format=user,account%20,DefaultAccount%20,share,qos%50 withassoc
User Account Def Acct Share QOS
------- ----------------------- ---------------------- ------- ---------------------------------------
<login> project_<name1> <firstname>.<lastname> 1 besteffort,debug,long,low,normal
<login> project_<name2> <firstname>.<lastname> 1 besteffort,debug,high,long,low,normal
<login> <firstname>.<lastname> <firstname>.<lastname> 1 besteffort,debug,long,low,normal
# ==> <login> Default account: <firstname>.<lastname>
<login>
is associated to 3 meta-accounts at the L3 level of the hierarchy (his PI <firstname>.<lastname>
and two projects account), each granting access to potentially different QOS.
The account used upon job submission can be set with the -A <account>
option. With the above example:
$ sbatch|srun|... [...] # Use default account: <firstname>.<lastname>
$ sbatch|srun|... -A project_<name1> [...] # Use account project_<name1>
$ sbatch|srun|... -A project_<name2> --qos high [...] # Use account project_<name2>, granting access to high QOS
$ sbatch|srun|... -A anotheraccount [...] # Error: non-existing association between <login> and anotheraccount
To list all associations for a given user or meta-account, use the sassoc
helper function:
# /!\ ADAPT <login> accordingly
$ sassoc <login>
sacctmgr show [...]
command:
- User information:
sacctmgr show user where name=<login> [withassoc]
(use thewithassoc
attribute to list all associations). - Default account:
sacctmgr show user where name="<login>" format=DefaultAccount -P -n
- Get the parent account:
sacctmgr show account where name=ulhpc format=Org -n -P
To get the current association tree: add withsubaccounts
to see ALL sub accounts
# L1,L2 or L3 account /!\ ADAPT <name> accordingly
sacctmgr show association tree where accounts=<name> format=account,share
# End user (L4)
sacctmgr show association where users=$USER format=account,User,share,Partition,QOS
No association, no job!
It is mandatory to have your login registered within at least one association toward a meta-account (PI, project name) to be able to schedule jobs on the
Impact on FairSharing and Job Accounting¶
Every node in the above-mentioned tree hierarchy is associated with a weight defining its Raw Share in the FairSharing mechanism in place. Different rules are applied to define these weights/shares depending on the level in the hierarchy:
- L1 (Organizational Unit): arbitrary shares to dedicate at least 85% of the platform to serve UL needs and projects
- L2: function of the out-degree of the tree nodes, reflecting also the past year funding
- L3: a function reflecting the budget contribution of the PI/project (normalized on a per-month basis) for the year in exercise.
- L4 (ULHPC/IPA login): efficiency score, giving incentives for a more efficient usage of the platform.
More details are given on this page.
Default vs. Project accounts¶
Default account associations are defined as follows:
- For UL staff or external partners: your direct Line Manager
firstname.lastname
within the institution (Faculty, IC, Company) you belong too. - For students: the lecture/course they are registered too
- Guest student/training accounts are associated to the
Students
meta-account.
- Guest student/training accounts are associated to the
In addition, your user account (ULHPC login) may be associated to other meta-accounts such as projects or specific training events.
To establish job accounting against these extra specific accounts, use:
{sbatch|srun} -A project_<name> [...]
For more details, see Project accounts.
-
restrictions applies and do not permit to reveal all information for other accounts than yours. ↩