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

Einstein Toolkit trac-noreply at einsteintoolkit.org
Mon Nov 20 04:59:43 CST 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 hinder):

 There are a number of other machine definition entries which this branch
 is not yet setting:

 * spn: Sockets per node; this can be obtained from lscpu's "Socket(s)"
 line.
 * max-num-smt: probably this should be the maximum number of hyperthreads
 per core on the machine.  This can be obtained from lscpu's "Thread(s) per
 core" line.
 * num-smt: probably the default number of hyperthreads to use (we probably
 want to set this to 1, or leave it out, since it defaults to 1 in
 simfactory/etc/syntax/mdb-syntax.ini).

 In this branch, we are setting the machine definition entries

 * ppn
 * num-threads
 * max-num-threads

 However, I find that I don't actually know what all of these mean, in the
 context of the machine definition.

 * num-threads: When running a simulation, num-threads is the number of
 OpenMP threads to use on each MPI process.  In a machine definition, it is
 the default, i.e. suggested, value which will be used when running
 simulations unless overridden by the user.  I would probably set it to
 CoresPerSocket * (num-smt), even if it is slightly less efficient than
 using pure MPI, for simplicity.
 * max-num-threads: This is presumably the maximum value that SimFactory
 will allow you to use for num-threads when running a simulation.  Is this
 then supposed to stop you from oversubscribing by default?  Is this a
 property of the hardware, i.e. num-smt * CoresPerSocket * spn, or is it a
 suggested maximum, for machines where you might want to oversubscribe?
 * ppn: I am not sure precisely what this means.  In simfactory/etc/syntax
 /mdb-syntax.ini, this is described as "processors (cores) per node times
 number of hyperthreads", meaning CoresPerSocket * spn * max-num-smt,
 suggesting that this is a property of the hardware, but it might also be
 the suggested/default for the --ppn simulation option.  The user can
 specify --ppn when running a simulation, and there are min-ppn and max-ppn
 machine entries.  So maybe max-ppn is the property of the hardware?  Or
 maybe it is a recommended maximum?

 There are also min-ppn and max-ppn.

 Erik: would you mind clarifying the meaning of all these entries in the
 machine definition, so that we can be clearer about how to work out what
 to set them to?  Specifically, I would like to know which of these are
 absolute properties of the hardware, and which are suggested values for
 runtime simulation properties.

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


More information about the Trac mailing list