[ET Trac] [Einstein Toolkit] #2059: SimFactory should detect the number of cores automatically

Einstein Toolkit trac-noreply at einsteintoolkit.org
Tue Sep 5 10:06:08 CDT 2017


#2059: SimFactory should detect the number of cores automatically
--------------------------+-------------------------------------------------
  Reporter:  hinder       |       Owner:                     
      Type:  enhancement  |      Status:  reopened           
  Priority:  minor        |   Milestone:                     
 Component:  SimFactory   |     Version:  development version
Resolution:               |    Keywords:                     
--------------------------+-------------------------------------------------

Comment (by rhaas):

 This outputs a warning from popen "sh: 1: lscpu: not found" which is too
 low-level. It's warning output is also done using {{{warning("")}}} to
 bracket things. This should not be done as the empty warnings are logged.
 It uses the "Core(s) per socket" value to set ppn which is incorrect since
 ppn is the number of cores by compute node (not NUMA node, ie socket).

 It would also be useful to set the default number of threads to the number
 of cores per NUMA domain. lscpu is not quite consistent in its naming, eg
 on a BW compute node (2 physical sockets, 4 numa domains, 32 cores eg in
 /proc/cpuinfo) it gives:
 {{{
 Architecture:          x86_64
 CPU op-mode(s):        32-bit, 64-bit
 Byte Order:            Little Endian
 CPU(s):                32
 On-line CPU(s) list:   0-31
 Thread(s) per core:    2
 Core(s) per socket:    8
 Socket(s):             2
 NUMA node(s):          4
 Vendor ID:             AuthenticAMD
 CPU family:            21
 Model:                 1
 Stepping:              2
 CPU MHz:               2300.000
 BogoMIPS:              4599.95
 Virtualization:        AMD-V
 L1d cache:             16K
 L1i cache:             64K
 L2 cache:              2048K
 L3 cache:              6144K
 NUMA node0 CPU(s):     0-7
 NUMA node1 CPU(s):     8-15
 NUMA node2 CPU(s):     16-23
 NUMA node3 CPU(s):     24-31
 }}}
 ie "Core(s) per socket" is the number of cores per NUMA domain but
 "Core(s) per socket" * "Socket(s)" is not equal to "CPU(s)". Instead one
 has to take the "Thread(s) per core" number into account (makes sense, the
 CPUs use a kind of hyperthreading).

 So
 * ppn is set incorrectly
 * should set num-threads
 * have to handle hyper-threading cpus

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/2059#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list