Skip to content

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

References

[1] Wikipedia - Group identifier