Dealing with Multiple Accounts/Projects
Some research groups may have multiple projects (corresponding to multiple grants, or for record-keeping, etc). In Slurm (Picotte), this is known as an "account".
Picotte
Unlike Grid Engine on Proteus, effective group ID does not matter in
Slurm. So, there is no need to do newgrp
at any time, and there is no
need for a newgrp
line in the .bash_profile
Selecting an Account
If a user has access to multiple accounts, they are allowed to submit
jobs under any of those accounts. To maintain continuity with Proteus,
accounts are named "...Prj
". Account names are case-insensitive, i.e.
"somethingPrj" is identical to "somethingprj" is identical to
"SomeThingPrj".
#SBATCH --account=somethingPrj
Storing Data
Each account should have a corresponding group data directory:
/ifs/groups/somethingGrp
/ifs/groups/otherGrp
Proteus
OBSOLETE -- PROTEUS HAS BEEN DECOMMISSIONED
A "project" is a Grid Engine classification. Every job submitted must be associated with a project. Projects are used to keep track of usage for purposes of fair share scheduling.
Users may be a member of any number of projects. In that way, a user may submit jobs under different projects. The project can be specified in the job script as:
#$ -P somethingPrj
Selecting a Project
Access to a project is granted based on effective group ID.[1]
The command "id" shows group memberships, as well as effective group ID ("gid"):
[juser@proteusi01 ~]$ id
uid=1234(juser) gid=10456(someGrp) groups=10456(someGrp),1234(juser),13930(someFOOGrp)
In this example, the username is "juser". The effective group ID (gid) is 10456. The "groups" field shows all the groups the user is a member of.
To submit a job under the project "someFOOPrj", first change effective group ID:
[juser@proteusi01 ~]$ newgrp someFOOPrj
[juser@proteusi01 ~]$ id
uid=1234(juser) gid=13930(someFOOGrp) groups=10456(someGrp),1234(juser),13930(someFOOGrp)
This change in effective group ID persists until the shell is exited.
Then, in the job script, set the appropriate project; make sure there are no other lines setting the project in the job script:
#$ -P someFOOPrj
Setting effective group ID on login
To set the effective group ID on login, replace any existing "newgrp
xxxGrp" line in your ~/.bash_profile
file with
newgrp someFOOGrp
NOTE: the newgrp command MUST be the last thing in the .bash_profile