On 2016-02-11 07:36, Rohan Garg wrote: > > Hello, > > I'm trying to set up SLURM-15.08.1 on a single multi-core node to > manage multi-threaded jobs. 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. > (Is this the expected behavior of the EASY-backfilling algorithm?) > > Here's the list of jobs: > > $ 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 -- not hints. You have 3 jobs that each request 1 socket = 3 socket. You have 2 phys. sockets. /Benjamin -- FSU Jena | JULIELab.de/Staff/Benjamin+Redling.html vox: +49 3641 9 44323 | fax: +49 3641 9 44321
