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

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Sep 6 15:48:19 CDT 2017


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

Comment (by rhaas):

 Hello Steve,

 no problem about the branch, just so long as I looked at the correct one.

 Sorry got sidetracked. I guess given that we are more likely to find a i5
 or so on a laptop than a AMD Istanbul processor and that we normally
 ignore hyperthreading cores, one should *not* after all take BW as the
 example but rather the latp.

 So maybe the thing to do would be to take "Core(s) per socket" as the
 "num-threads" value which should be a useful number of threads per NUMA
 domain, then make ppn equal to "CPU(s)" and also make max-num-threads
 equal to that number.

 This will mean that simfactory by default will use "Core(s) per socket"
 threads per MPI rank and allow you to use all the cores on a machine
 (either by spawning enough MPI ranks which is limited by ppn or by setting
 --num-threads to max-num-threads).

 In the code this would be achieved by:
 {{{
         NumberOfCores = CoresPerSocket
         NumberOfThreads = ThreadsPerCore*CoresPerSocket*Sockets
 }}}
 which are still confusing names.

 I pushed two changes into your branch. One that implements those formulae
 and one that uses subprocess.Popen (available since python 2.4 so safe to
 use) instead of os.popen to capture both stdout and stderr. I cannot use
 simfactory's simlib.ExecuteCommand (which would be preferred) since that
 one requires a valid machine definition file.

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


More information about the Trac mailing list