[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