<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><div>    Hello Peter,<br></div><div><br></div><div><div>In order to run non-gres and gres jobs on the g1 node, you should try to limit the memory requested for each job, for instance if suitable:</div><div><br></div><div># sbatch --wrap="sleep 100 && env" -o singlecpu.log -c 3 -J cpu --mem=100</div><div><br></div><div># sbatch --wrap="sleep 6 && env" -o gres.log -c 1 -J gpu --gres=gpu:1 --mem=100</div></div><div><br></div><div><br></div><div>Indeed, it looks like the job 11 is using the whole memory of the node g1:<br></div><div><br></div><div># scontrol show job -dd 11</div><div>JobId=11 JobName=wrap</div><div>...<br></div><div>      Nodes=g1 CPU_IDs=0-2 Mem=<strong>4000</strong> GRES_IDX=</div><div>...<br></div><div><br></div><div># scontrol show node -dd g1</div><div>NodeName=g1 CoresPerSocket=4<br>    CPUAlloc=3 CPUTot=4 CPULoad=N/A</div><div>...<br></div><div>    RealMemory=<strong>4000</strong> AllocMem=<strong>4000</strong> FreeMem=N/A Sockets=1 Boards=1</div><div>...<br></div><div><br></div><div>According to your slurm.conf (<a href="https://raw.githubusercontent.com/psteinb/docker-centos7-slurm/18.08.5-with-gres/slurm.conf">https://raw.githubusercontent.com/psteinb/docker-centos7-slurm/18.08.5-with-gres/slurm.conf</a>), the memory is a consumable resource :<br></div><div><pre>SelectType=<strong>select/cons_res</strong>
SelectTypeParameters=<strong>CR_Core_Memory</strong></pre></div><div>Therefore, there's no more memory available for incoming jobs (jobs 15 and 16).<br></div><div><br></div><div><br></div><div>Regards,<br></div><div><br></div><div>   Philippe DS<br></div><div><br></div><hr id="zwchr"><div style="color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;" data-mce-style="color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>De: </b>"Peter Steinbach" <steinbac@mpi-cbg.de><br><b>À: </b>slurm-users@lists.schedmd.com<br><b>Envoyé: </b>Mercredi 20 Mars 2019 10:19:07<br><b>Objet: </b>Re: [slurm-users] Sharing a node with non-gres and gres jobs<br><div><br></div>Hi Chris,<br><div><br></div>I changed the initial state a bit (the number of cores per node was <br>misconfigured):<br>https://raw.githubusercontent.com/psteinb/docker-centos7-slurm/18.08.5-with-gres/slurm.conf<br><div><br></div>But that doesn't change things. Initially, I see this:<br><div><br></div># sinfo -N -l<br>Wed Mar 20 09:03:26 2019<br>NODELIST   NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK <br>WEIGHT AVAIL_FE REASON<br>g1             1      gpu*     unknown    4    1:4:1   1000        0 <br>  1   (null) none<br>g2             1      gpu*     unknown    4    1:4:1   1000        0 <br>  1   (null) none<br>g3             1      gpu*     unknown    4    1:4:1   1000        0 <br>  1   (null) none<br><div><br></div>[root@ernie /]# sbatch --wrap="sleep 600 && env" -o non-gres.log -c 3<br>Submitted batch job 11<br>[root@ernie /]# squeue<br>              JOBID PARTITION     NAME     USER ST       TIME  NODES <br>NODELIST(REASON)<br>                 11       gpu     wrap     root  R       0:03      1 g1<br>[root@ernie /]# scontrol show job -dd 11<br>JobId=11 JobName=wrap<br>    UserId=root(0) GroupId=root(0) MCS_label=N/A<br>    Priority=4294901750 Nice=0 Account=(null) QOS=normal<br>    JobState=RUNNING Reason=None Dependency=(null)<br>    Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0<br>    DerivedExitCode=0:0<br>    RunTime=00:00:12 TimeLimit=5-00:00:00 TimeMin=N/A<br>    SubmitTime=2019-03-20T09:12:45 EligibleTime=2019-03-20T09:12:45<br>    AccrueTime=Unknown<br>    StartTime=2019-03-20T09:12:47 EndTime=2019-03-25T09:12:47 Deadline=N/A<br>    PreemptTime=None SuspendTime=None SecsPreSuspend=0<br>    LastSchedEval=2019-03-20T09:12:47<br>    Partition=gpu AllocNode:Sid=ernie:1<br>    ReqNodeList=(null) ExcNodeList=(null)<br>    NodeList=g1<br>    BatchHost=localhost<br>    NumNodes=1 NumCPUs=3 NumTasks=1 CPUs/Task=3 ReqB:S:C:T=0:0:*:*<br>    TRES=cpu=3,mem=4000M,node=1,billing=3<br>    Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*<br>      Nodes=g1 CPU_IDs=0-2 Mem=4000 GRES_IDX=<br>    MinCPUsNode=3 MinMemoryNode=4000M MinTmpDiskNode=0<br>    Features=(null) DelayBoot=00:00:00<br>    OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)<br>    Command=(null)<br>    WorkDir=/<br>    StdErr=//non-gres.log<br>    StdIn=/dev/null<br>    StdOut=//non-gres.log<br>    Power=<br><div><br></div>[root@ernie /]# scontrol show node -dd g1<br>NodeName=g1 CoresPerSocket=4<br>    CPUAlloc=3 CPUTot=4 CPULoad=N/A<br>    AvailableFeatures=(null)<br>    ActiveFeatures=(null)<br>    Gres=gpu:titanxp:2<br>    GresDrain=N/A<br>    GresUsed=gpu:titanxp:0(IDX:N/A)<br>    NodeAddr=127.0.0.1 NodeHostName=localhost Port=0<br>    RealMemory=4000 AllocMem=4000 FreeMem=N/A Sockets=1 Boards=1<br>    State=MIXED ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A<br>    Partitions=gpu<br>    BootTime=2019-03-18T10:14:18 SlurmdStartTime=2019-03-20T09:07:45<br>    CfgTRES=cpu=4,mem=4000M,billing=4<br>    AllocTRES=cpu=3,mem=4000M<br>    CapWatts=n/a<br>    CurrentWatts=0 LowestJoules=0 ConsumedJoules=0<br>    ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s<br><div><br></div>I now filled the 'cluster' with non-gres jobs and  I submitted a GPU job:<br><div><br></div>[root@ernie /]# sbatch --wrap="sleep 6 && env" -o gres.log -c 1 <br>--gres=gpu:1 --mem=100<br>Submitted batch job 15<br><div><br></div>[root@ernie /]# squeue<br>              JOBID PARTITION     NAME     USER ST       TIME  NODES <br>NODELIST(REASON)<br>                 15       gpu     wrap     root PD       0:00      1 <br>(Resources)<br>                 11       gpu     wrap     root  R       2:02      1 g1<br>                 12       gpu     wrap     root  R       1:01      1 g2<br>                 13       gpu     wrap     root  R       0:58      1 g3<br><div><br></div><br>[root@ernie /]# scontrol show job -dd 15<br>JobId=15 JobName=wrap<br>    UserId=root(0) GroupId=root(0) MCS_label=N/A<br>    Priority=4294901746 Nice=0 Account=(null) QOS=normal<br>    JobState=PENDING Reason=Resources Dependency=(null)<br>    Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0<br>    DerivedExitCode=0:0<br>    RunTime=00:00:00 TimeLimit=5-00:00:00 TimeMin=N/A<br>    SubmitTime=2019-03-20T09:14:45 EligibleTime=2019-03-20T09:14:45<br>    AccrueTime=Unknown<br>    StartTime=Unknown EndTime=Unknown Deadline=N/A<br>    PreemptTime=None SuspendTime=None SecsPreSuspend=0<br>    LastSchedEval=2019-03-20T09:14:47<br>    Partition=gpu AllocNode:Sid=ernie:1<br>    ReqNodeList=(null) ExcNodeList=(null)<br>    NodeList=(null)<br>    NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*<br>    TRES=cpu=1,mem=100M,node=1,billing=1<br>    Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*<br>    MinCPUsNode=1 MinMemoryNode=100M MinTmpDiskNode=0<br>    Features=(null) DelayBoot=00:00:00<br>    OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)<br>    Command=(null)<br>    WorkDir=/<br>    StdErr=//gres.log<br>    StdIn=/dev/null<br>    StdOut=//gres.log<br>    Power=<br>    TresPerNode=gpu:1<br><div><br></div>I am curious what you think!<br>Peter<br><div><br></div>PS. I submit another single-core job, this one doesn't get in as well <br>due to priority now:<br>[root@ernie /]# sbatch --wrap="sleep 100 && env" -o singlecpu.log -c 1 <br>-J single-cpu --mem=100<br>Submitted batch job 16<br>[root@ernie /]# squeue<br>              JOBID PARTITION     NAME     USER ST       TIME  NODES <br>NODELIST(REASON)<br>                 15       gpu     wrap     root PD       0:00      1 <br>(Resources)<br>                 16       gpu single-c     root PD       0:00      1 <br>(Priority)<br>                 11       gpu     wrap     root  R       5:01      1 g1<br>                 12       gpu     wrap     root  R       4:00      1 g2<br>                 13       gpu     wrap     root  R       3:57      1 g3<br>[root@ernie /]# scontrol show job -dd 16<br>JobId=16 JobName=single-cpu<br>    UserId=root(0) GroupId=root(0) MCS_label=N/A<br>    Priority=4294901745 Nice=0 Account=(null) QOS=normal<br>    JobState=PENDING Reason=Priority Dependency=(null)<br>    Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0<br>    DerivedExitCode=0:0<br>    RunTime=00:00:00 TimeLimit=5-00:00:00 TimeMin=N/A<br>    SubmitTime=2019-03-20T09:17:32 EligibleTime=2019-03-20T09:17:32<br>    AccrueTime=Unknown<br>    StartTime=2019-03-25T09:12:47 EndTime=2019-03-30T09:12:47 Deadline=N/A<br>    PreemptTime=None SuspendTime=None SecsPreSuspend=0<br>    LastSchedEval=2019-03-20T09:18:44<br>    Partition=gpu AllocNode:Sid=ernie:1<br>    ReqNodeList=(null) ExcNodeList=(null)<br>    NodeList=(null)<br>    NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*<br>    TRES=cpu=1,mem=100M,node=1,billing=1<br>    Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*<br>    MinCPUsNode=1 MinMemoryNode=100M MinTmpDiskNode=0<br>    Features=(null) DelayBoot=00:00:00<br>    OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)<br>    Command=(null)<br>    WorkDir=/<br>    StdErr=//singlecpu.log<br>    StdIn=/dev/null<br>    StdOut=//singlecpu.log<br>    Power=<br><div><br></div></div><div><br></div></div></body></html>