On 08/17/2016 08:41 AM, Paddy Doyle wrote:
> 
> Hi Adrian,
Hi!

> On Tue, Aug 16, 2016 at 08:11:41AM -0700, Adrian Sevcenco wrote:
> 
>> 
>> Hi! I have trouble understanding the definition of job slots for
>> each node ... and i am running slurm only on my desktop to get used
>> to it until i move it to the clusters .. it is not clear to me how
>> one can define the job slots for each node and how it can be
>> automatically done for a list of nodes (i hope that there is not a
>> requirement of human input of hardware resources for each node)
>> 
>> I have defined TaskPluginParam=Cores SelectType=select/cons_res 
>> SelectTypeParameters=CR_CPU
>> 
>> and
>> 
>> PartitionName=local Nodes=localhost Default=YES MaxTime=172800
>> State=UP
>> 
>> but in the logs i have this:
> 
> 
>> NodeName=localhost CPUs=8 Aug 16 17:45:39 sev.spacescience.ro
>> slurmd[7373]: CPUs=8 Boards=1 Sockets=8 Cores=1 Threads=1
>> Memory=16006 TmpDisk=255791 Uptime=1313157 CPUSpecList=(null)
>> FeaturesAvail=(null) FeaturesActive=(null)
> 
> ^^^^ Your configuration is stating that it is an 8-socket machine,
> where each socket has one cpu core.
> 
> 
>> Aug 16 17:45:39 sev.spacescience.ro slurmd[7371]: Node
>> configuration differs from hardware: CPUs=8:8(hw) Boards=1:1(hw)
>> SocketsPerBoard=8:1(hw) CoresPerSocket=1:4(hw)
>> ThreadsPerCore=1:2(hw)
> 
> ^^^^ ..whereas slurm has detected 1 socket with 4 cores, and each
> core has 2 hyperthreads.
yeah, i thought that if i set CPUs=8 this will set that that machine
have 8 job slots

> You should define the node as follows:
> 
> NodeName=localhost Sockets=1 CoresPerSocket=4 ThreadsPerCore=2
ok, thanks for clarification!

so.. should i understand that this must be done for each node?
if i have a very heterogenous cluster with 100+ nodes (machines with
different ages) do i have to do it for each machine?
well, i could script it somehow (put an include in slurm.conf)
and create some node_def.conf .. but how can i detect the actual
configuration? does slurm have some detection tool or should i do it
by hand with lscpu ? 
and if i can do it by hand, is it possible to add some kind of plugin to
slurm that can automatically obtain the configuration by running lscpu on nodes?

why it is needed to create some configuration by hand when slurm
already found out the correct configuration ?

>> how can i define for my machine to run 8 jobs? also, for the next
>> level, how can i set a job slot for each physical core (a job to
>> run on the physical core + its ht partner)?
> 
> I don't quite understand what you're looking for here. You can
> probably use some sbatch parameters to define what the job needs
> (e.g. --threads-per-core=2) in an allocation.
it does not need 2 threads .. this would be in order to not disable in bios
the HT .. 
if i define ThreadsPerCore=2 for node and use CR_Cores would this automatically 
alocate
the jobs per core (and so both threads will be associated with the job) ?

Thank you!
Adrian

Reply via email to