[ET Trac] [Einstein Toolkit] #530: Change default for --num-threads
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Thu Sep 8 09:16:42 CDT 2011
#530: Change default for --num-threads
--------------------------+-------------------------------------------------
Reporter: eschnett | Owner: hinder
Type: enhancement | Status: assigned
Priority: major | Milestone:
Component: SimFactory | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Comment (by knarf):
The usual mechanism using OMP_NUM_THREADS works quite well, and I would
not force users to use something else instead. That would only create
confusion.
Our problem here is that in some cases OMP_NUM_THREADS as set by something
like simfactory should be ignored depending on which thorns are active in
a simulation. Simfactory does not really know that, Cactus does. The flesh
would also know which thorns are flagged 'single-thread' by some
mechanism. So, the flesh could contain code which sets the number of used
openmp-threads to something else than OMP_NUM_THREADS, depending on some
conditions. I don't like to introduce another environment variable and use
this. Instead I propose:
- The flesh gets a new accumulator parameter 'single-threaded' (name to be
discussed) which can be added to by thorns to force single-threaded
execution. No user would have to know or could set this parameter.
- The flesh gets another new parameter 'ignore-single-threaded' (name to
be discussed), but this one intended for interaction with the user to be
able to ignore the accumulator parameter, for testing primarily.
- The flesh would then do nothing if 'single-threaded' is 0 (the default),
which means no thorns requested to be executed only single-threaded.
- The flesh would set the number of threads to 1 (using the openmp C api)
if 'single-threaded' is something else than 0, unless 'ignore-single-
threaded' is set to 'yes' in which case it would also not do anything.
This would ensure that a mere user wouldn't have to do anything to Cactus,
the parameter file or simfactory, assuming single-threaded thorns use the
accumulator parameter. It's also easy to do that for developers of such
thorns. The only action a user would have to take if this is not what is
intended is to set one parameter in the parameter file, which should not
occur often and which is reasonably easy.
Frank
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/530#comment:6>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list