(clumsy fingers) if I understand your question correctly, but maybe;
srun --cpu_bind=threads On Wed, Feb 8, 2017 at 4:02 PM, andrealphus <andrealp...@gmail.com> wrote: > srun --cpu_bind=cores > > On Wed, Feb 8, 2017 at 1:08 PM, Brendan Moloney <moloney.bren...@gmail.com > > wrote: > >> Hi, >> >> I want to allocate at the level of logical cores (each serial job gets >> one thread on a hyperthreading system), which seems to be achievable only >> by not setting threads_per_core on each node, and instead just setting >> CPUs=<total_logical_cores>. >> >> However with core binding, this will pack two tasks onto the same >> physical core while all other cores are left idle. On a system with 20 >> cores and 40 threads I see this behavior: >> >> $ srun bash -c "lstopo | head -n 6 ; sleep 10" & >> NUMANode L#0 (P#0 47GB) + Package L#0 + L3 L#0 (25MB) + L2 L#0 (256KB) >> + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0) >> NUMANode L#1 (P#1 47GB) >> HostBridge L#0 >> PCIBridge >> PCI 15b3:1003 >> $ srun bash -c "lstopo | head -n 6 ; sleep 10" & >> NUMANode L#0 (P#0 47GB) + Package L#0 + L3 L#0 (25MB) + L2 L#0 (256KB) >> + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#20) >> NUMANode L#1 (P#1 47GB) >> HostBridge L#0 >> PCIBridge >> PCI 15b3:1003 >> >> I expected to see the second job get logical core #1 (on the second >> physical core) but instead it gets logical core #20 (the second thread on >> the first physical core). I can't imagine that this is ever the desired >> behavior, but I guess I could be missing some use case. >> >> I have spent quite a bit of time reading the documentation/mailing list >> and experimenting with different options, all to no avail. Is it possible >> to achieve my desired setup with Slurm? >> >> I also experimented with setting threads_per_core=2 and then setting >> OverSubscribe=FORCE:2, but I am pretty unhappy with the results. I think >> it is confusing that you request one cpu and end up with two (with your >> --mem-per-cpu doubled), and best I can tell there is no way to only >> oversubscribe if the user requested 1 core instead of two. >> >> Thanks for your time, >> Brendan >> >> >> >> >