Hi Marcus,
for us slurmd -C as well as numactl -H looked fine, too. But
we're using task/cgroup only and every job starting on a skylake
node gave us
error("task/cgroup: task[%u] infinite loop broken while trying "
"to provision compute elements using %s (bitmap:%s)",
from src/plugins/task/cgroup/task_cgroup_cpuset.c and the process
placement was wrong.
Once we deactivated subnuma everythings running fine.
But for completeness: I tested that on Slurm 17 (and maybe the
core was partly 16 at that time). We're using Slurm 17.11.13 and
I'll check the behavior there in the next days.
I'm hestitant to switch to 18 because of the latest bugs that
appeared with every minor release.
Best,
Andreas
--ntasks-per-node is meant to be used in conjunction with --nodes option. From https://slurm.schedmd.com/sbatch.html:
- --ntasks-per-node=<ntasks>
- Request that ntasks be invoked on each node. If used with the --ntasks option, the --ntasks option will take precedence and the --ntasks-per-node will be treated as a maximum count of tasks per node. Meant to be used with the --nodes option...
If you don't specify --ntasks, it defaults to --ntasks=1, as
Andreas said. https://slurm.schedmd.com/sbatch.html:
- -n, --ntasks=<number>
- sbatch does not launch tasks, it requests an allocation of resources and submits a batch script. This option advises the Slurm controller that job steps run within the allocation will launch a maximum of number tasks and to provide for sufficient resources. The default is one task per node, but note that the --cpus-per-task option will change this default.
So the correct way to specify your job is either like this
--ntasks=48
or
--nodes=1 --ntasks-per-node=48
Specifying both --ntasks-per-node and --ntasks at the same time
is not correct.
Prentice
--ntasks-per-node is meant to be used in conjunction with --nodes option. From https://slurm.schedmd.com/sbatch.html:
- --ntasks-per-node=<ntasks>
- Request that ntasks be invoked on each node. If used with the --ntasks option, the --ntasks option will take precedence and the --ntasks-per-node will be treated as a maximum count of tasks per node. Meant to be used with the --nodes option...
If you don't specify --ntasks, it defaults to --ntasks=1, as Andreas said. https://slurm.schedmd.com/sbatch.html:
- -n, --ntasks=<number>
- sbatch does not launch tasks, it requests an allocation of resources and submits a batch script. This option advises the Slurm controller that job steps run within the allocation will launch a maximum of number tasks and to provide for sufficient resources. The default is one task per node, but note that the --cpus-per-task option will change this default.
So the correct way to specify your job is either like this
--ntasks=48
or
--nodes=1 --ntasks-per-node=48
Specifying both --ntasks-per-node and --ntasks at the same time is not correct.
On Tuesday, 19 February 2019 10:14:21 PM PST Marcus Wagner wrote:sbatch -N 1 --ntasks-per-node=48 --wrap hostname submission denied, got jobid 199805On one of our 40 core nodes with 2 hyperthreads: $ srun -C gpu -N 1 --ntasks-per-node=80 hostname | uniq -c 80 nodename02 The spec is: CPUs=80 Boards=1 SocketsPerBoard=2 CoresPerSocket=20 ThreadsPerCore=2 Hope this helps! All the best, Chris
-- Marcus Wagner, Dipl.-Inf. IT Center Abteilung: Systeme und Betrieb RWTH Aachen University Seffenter Weg 23 52074 Aachen Tel: +49 241 80-24383
On 2/20/19 12:08 AM, Marcus Wagner wrote:
Hi Prentice,
On 2/19/19 2:58 PM, Prentice Bisbal wrote:
Yes, but used together with --ntasks would mean to use e.g. 48 tasks at maximum per node. I don't see, where there lies the difference regarding submission of the job. Even if the semantic (how or how many cores will be scheduled onto which number of hosts) might be incorrect, at least the syntax should be correct.--ntasks-per-node is meant to be used in conjunction with --nodes option. From https://slurm.schedmd.com/sbatch.html:
- --ntasks-per-node=<ntasks>
- Request that ntasks be invoked on each node. If used with the --ntasks option, the --ntasks option will take precedence and the --ntasks-per-node will be treated as a maximum count of tasks per node. Meant to be used with the --nodes option...
The difference would be in how Slurm looks at those
specifications internally. To us humans, what you say should work
seems logical, but if Slurm wasn't programmed to behave that way,
it won't. I provided the quote from the documentation, since that
implies, to me at least, that Slurm isn't programmed to behave
like that. Looking at the source code or asking SchedMD could
confirm that.
funnily the result is the same:
If you don't specify --ntasks, it defaults to --ntasks=1, as Andreas said. https://slurm.schedmd.com/sbatch.html:
- -n, --ntasks=<number>
- sbatch does not launch tasks, it requests an allocation of resources and submits a batch script. This option advises the Slurm controller that job steps run within the allocation will launch a maximum of number tasks and to provide for sufficient resources. The default is one task per node, but note that the --cpus-per-task option will change this default.
So the correct way to specify your job is either like this
--ntasks=48
or
--nodes=1 --ntasks-per-node=48
Specifying both --ntasks-per-node and --ntasks at the same time is not correct.
$> sbatch -N 1 --ntasks-per-node=48 --wrap hostname
sbatch: error: CPU count per node can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
whereas just using --ntasks=48 gets submitted and it gets scheduled onto one host:
$> sbatch --ntasks=48 --wrap hostname
sbatch: [I] No output file given, set to: output_%j.txt
sbatch: [I] No runtime limit given, set to: 15 minutes
Submitted batch job 199784
$> scontrol show job 199784 | egrep "NumNodes|TRES"
NumNodes=1 NumCPUs=48 NumTasks=48 CPUs/Task=1 ReqB:S:C:T=0:0:*:*
TRES=cpu=48,mem=182400M,node=1,billing=48
To me, this still looks like a bug, not like the wrong usage of submission parameters.
Either a bug, or there's something subtly wrong with your
slurm.conf. I would continue troubleshooting by simplifying both
your node definition and SelectType options as much as possible,
and see if the problem still persists. Also, look at 'scontrol
show node <node name>' to see if your definition in
slurm.conf lines up with how Slurm actually sees the node. I don't
think I saw that output anywhere is this thread yet.