On 2016-02-11 07:36, Rohan Garg wrote:
> [...] The machine has 16 physical cores
> on 2 sockets with HyperThreading enabled. I'm using the EASY
> scheduling algorithm with backfilling. The goal is to fully utilize all
> the available cores at all times.

> Given a list of three jobs with requirements of 8 cores, 2 cores,
> and 4 cores, the expectation is that the jobs should be co-scheduled
> to utilize 14 of the 16 available cores.  However, I can't seem to
> get SLURM to work as expected. SLURM runs the latter two jobs
> together but refuses to schedule the first job until they finish.

The job should be shown in squeue with ST: PD and (Reason): (Resources)"
In your case you can never allocate more than 8+4 cores because you
request 3 sockets (1 per job)

>   $ cat job1.batch
> 
>     #!/bin/bash
>     #SBATCH --sockets-per-node=1
>     #SBATCH --cores-per-socket=8
>     #SBATCH --threads-per-core=1
>     srun /path/to/application1
>   
>   $ cat job2.batch
>   
>     #!/bin/bash
>     #SBATCH --sockets-per-node=1
>     #SBATCH --cores-per-socket=2
>     #SBATCH --threads-per-core=1
>     srun /path/to/application2
>   
>   $ cat job3.batch
>   
>     #!/bin/bash
>     #SBATCH --sockets-per-node=1
>     #SBATCH --cores-per-socket=4
>     #SBATCH --threads-per-core=1
>     srun /path/to/application3

At a quick glance:

In general let the scheduler do the work. Don't micro-manage.
Be aware that your SBATCH setting are constraints. In this case
"--sockets-per-node=1" might not be what you want:

http://slurm.schedmd.com/sbatch.html
<--- %< --->
-B --extra-node-info=<sockets[:cores[:threads]]>
    Request a specific allocation of resources with details as to the
number and type of computational resources within a cluster: number of
sockets (or physical processors) per node, cores per socket, and threads
per core. The total amount of resources being requested is the product
of all of the terms. Each value specified is considered a minimum. An
asterisk (*) can be used as a placeholder indicating that all available
resources of that type are to be utilized. As with nodes, the individual
levels can also be specified in separate options if desired:

        --sockets-per-node=<sockets>
        --cores-per-socket=<cores>
        --threads-per-core=<threads>

    If SelectType is configured to select/cons_res, it must have a
parameter of CR_Core, CR_Core_Memory, CR_Socket, or CR_Socket_Memory for
this option to be honored.
<--- %< --->

/Benjamin
-- 
FSU Jena | JULIELab.de/Staff/Benjamin+Redling.html
vox: +49 3641 9 44323 | fax: +49 3641 9 44321

Reply via email to