No, Slurm goes strictly by what the job specifies for memory at submit time. Slurm has no way of knowing how much memory a job might need in the future. The only way to safely share a node is for Slurm to reserve the requested memory for the duration of the job. To do other wise would be a disaster.

Think about it: Your node has 64 GB of RAM.  Job1 starts and requests 40 GB of memory, but it doesn't need that much memory until the last hour of an 8-hour job. For first 7 hours, it only needs 8 GB of RAM. 2 hours later, job2 is submitted, and will run for 12 hours, and needs 32 GB of memory for almost all of it's run-time. The node has enough cores for both jobs to run simultaneously.

If Slurm behaved the way you expected, job2 would start immediately. When job1 finally needs that 40 GB of memory, it tries to allocate them memory and then fails because job2 is already using that memory. That's not fair to job1, and this behavior would lead to jobs failing all the time.

Prentice

On 4/17/19 1:10 PM, Mahmood Naderan wrote:
Yes. It seems that what user specifies, slurm will reserve that. The other jobs realtime memory is less than what users had been specified. I thought that slurm will dynamically handles that in order to put more jobs in running state.

Regards,
Mahmood




On Wed, Apr 17, 2019 at 7:54 PM Prentice Bisbal <pbis...@pppl.gov <mailto:pbis...@pppl.gov>> wrote:

    Mahmood,

    What do you see as the problem here? To me, there is no problem
    and the scheduler is working exactly has it should. The reason
    "Resources" means that there are not enough computing resources
    available for your job to run right now, so the job is setting in
    the queue in the pending state waiting for the necessary resources
    to become available. This is exactly what schedulers are

    As Andreas pointed out, looking at the output of 'scontrol show
    node compute-0-0' that you provided, compute-0-0 has 32 cores and
    63 GB of RAM. Out of that 9 cores and 55 GB of RAM have already
    been allocated, leaving 23 cores and only 8 GB of RAM available
    for other jobs. The job you submitted requested 20 cores (tasks,
    technically) and 40 GB of RAM. Since compute-0-0 doesn't have
    enough RAM available, Slurm is keeping your job in the queue until
    enough RAM is available for it to run. This is exactly what Slurm
    should be doing.

    Prentice

    On 4/17/19 11:00 AM, Henkel, Andreas wrote:
    I think there isn’t enough memory.
    AllocTres Shows mem=55G
    And your job wants another 40G although the node only has 63G in
    total.
    Best,
    Andreas

    Am 17.04.2019 um 16:45 schrieb Mahmood Naderan
    <mahmood...@gmail.com <mailto:mahmood...@gmail.com>>:

    Hi,
    Although it was fine for previous job runs, the following script
    now stuck as PD with the reason about resources.

    $ cat slurm_script.sh
    #!/bin/bash
    #SBATCH --output=test.out
    #SBATCH --job-name=g09-test
    #SBATCH --ntasks=20
    #SBATCH --nodelist=compute-0-0
    #SBATCH --mem=40GB
    #SBATCH --account=z7
    #SBATCH --partition=EMERALD
    g09 test.gjf
    $ sbatch slurm_script.sh
    Submitted batch job 878
    $ squeue
                 JOBID PARTITION     NAME USER ST       TIME  NODES
    NODELIST(REASON)
                   878   EMERALD g09-test shakerza PD      
    0:00      1 (Resources)



    However, all things look good.

    $ sacctmgr list association
    format=user,account,partition,grptres%20 | grep shaker
    shakerzad+      local
    shakerzad+         z7    emerald cpu=20,mem=40G
    $ scontrol show node compute-0-0
    NodeName=compute-0-0 Arch=x86_64 CoresPerSocket=1
       CPUAlloc=9 CPUTot=32 CPULoad=8.89
       AvailableFeatures=rack-0,32CPUs
       ActiveFeatures=rack-0,32CPUs
       Gres=(null)
       NodeAddr=10.1.1.254 NodeHostName=compute-0-0 Version=18.08
       OS=Linux 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50
    UTC 2017
       RealMemory=64261 AllocMem=56320 FreeMem=37715 Sockets=32 Boards=1
       State=MIXED ThreadsPerCore=1 TmpDisk=444124 Weight=20511900
    Owner=N/A MCS_label=N/A
       Partitions=CLUSTER,WHEEL,EMERALD,QUARTZ
       BootTime=2019-04-06T10:03:47 SlurmdStartTime=2019-04-06T10:05:54
       CfgTRES=cpu=32,mem=64261M,billing=47
       AllocTRES=cpu=9,mem=55G
       CapWatts=n/a
       CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
       ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s


    Any idea?

    Regards,
    Mahmood


Reply via email to