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
