[slurm-users] Reservation to exceed time limit on a partition for a user

Carsten Beyer beyer at dkrz.de
Thu Jan 3 09:44:25 MST 2019


Hi Matthew,

we use QOS for this and add it to the SLURM user, who needs to exceed 
the partition time limit. You can also set a time limit in the QOS, so 
that a user cannot exceed the 'limits' too much. Example from our system 
with 8 hour runlimit per job:

# grep -i qos slurm.conf
PriorityWeightQOS=1000
AccountingStorageEnforce=limits,qos
#

# sacctmgr -s show qos ch0636 format=Name,Flags%32,MaxWall
       Name                            Flags     MaxWall
---------- -------------------------------- -----------
     ch0636   DenyOnLimit,PartitionTimeLimit    12:00:00
#
# scontrol show part compute
PartitionName=compute
    AllowGroups=ALL DenyAccounts=bmx825,mh1010 AllowQos=ALL
    AllocNodes=ALL Default=NO QoS=N/A
    DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 
Hidden=NO
    MaxNodes=512 MaxTime=08:00:00 MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
    Nodes=m[10000-11420,11440-11545,11553-11577]
    PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO 
OverSubscribe=EXCLUSIVE
    OverTimeLimit=NONE PreemptMode=OFF
    State=UP TotalCPUs=74496 TotalNodes=1552 SelectTypeParameters=NONE
    DefMemPerCPU=1280 MaxMemPerCPU=5360

With the flag PartitionTimeLimit a user can override the MaxTime of a 
partition and with DenyOnLimit you can limit the maxwall of the job. The 
QOS is added to the user like this:

# sacctmgr -s show user foo format=User,Account,MaxJobs,QOS%30
       User    Account MaxJobs QOS
---------- ---------- ------- ------------------------------
        foo     ch0636      20 ch0636,express,normal
        foo  noaccount       0 normal
        foo     mh0469      20 express,normal
#

The user also needs to add the QOS with '#SBATCH --qos=ch0636' in his 
job description.

Cheers,
Carsten
-- 

  
Carsten Beyer
Abteilung Systeme

Deutsches Klimarechenzentrum GmbH (DKRZ)
Bundesstraße 45a * D-20146 Hamburg * Germany

Phone:  +49 40 460094-221
Fax:    +49 40 460094-270
Email:  beyer at dkrz.de
URL:    http://www.dkrz.de

Geschäftsführer: Prof. Dr. Thomas Ludwig
Sitz der Gesellschaft: Hamburg
Amtsgericht Hamburg HRB 39784

On 03.01.2019 16:23, Matthew BETTINGER wrote:
> Answering my own question here.  I created a hidden partition which shows like this
>
> PartitionName=FOO
>     AllowGroups=ALL AllowAccounts=rt AllowQos=ALL
>     AllocNodes=ALL Default=NO QoS=N/A
>     DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=YES GraceTime=0 Hidden=YES
>     MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
>     Nodes=nid00[192-255]
>     PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=NO
>     OverTimeLimit=NONE PreemptMode=OFF
>     State=UP TotalCPUs=1280 TotalNodes=64 SelectTypeParameters=NONE
>     DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
>
> I can run jobs in there but if I set it to just a user (myself) then the job does not run.  I may have to just make this partition like this until I can figure out the correct way since we need this to run today.
>
> On 1/3/19, 8:41 AM, "Matthew BETTINGER" <matthew.bettinger at external.total.com> wrote:
>
>      Hello,
>      
>      We are running slurm 17.02.6 with accounting on a cray CLE system.
>      
>      We currently have a 24 hour job run limit on our partitions and a user needs to run a job which will exceed 24 hours runtime.  I tried to make a reservation as seen below allocating the user 36 hours to run his job but it was killed at the 24 hour run limit.  Can someone explain what is going on and what is the proper way to allow a user to exceed the partition time limit without having to modify slurm.conf and push it out to all of the nodes, run ansible plays  and reconfigure etc.  I thought that this is what reservation was for.
>      
>      Here is the reservation I created that failed when it ran over 24 hours
>      
>      scontrol show res
>      ReservationName=CoolBreeze StartTime=2018-12-27T10:08:11 EndTime=2018-12-28T22:08:11 Duration=1-12:00:00
>      Nodes=nid00[192-239] NodeCnt=48 CoreCnt=480 Features=(null) PartitionName=GPU Flags=
>      TRES=cpu=960
>      Users=coolbreeze Accounts=(null) Licenses=(null) State=ACTIVE BurstBuffer=(null) Watts=n/a
>      
>      Here is the partition with the resources the user needs to run on
>      
>      PartitionName=GPU
>         AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
>         AllocNodes=ALL Default=NO QoS=N/A
>         DefaultTime=01:00:00 DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
>         MaxNodes=UNLIMITED MaxTime=1-00:00:00 MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED
>         Nodes=nid00[192-255]
>         PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=EXCLUSIVE
>         OverTimeLimit=NONE PreemptMode=OFF
>         State=UP TotalCPUs=1280 TotalNodes=64 SelectTypeParameters=NONE
>         DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
>      
>      Thanks!
>      
>      
>      
>      
>




More information about the slurm-users mailing list