[ET Trac] [Einstein Toolkit] #530: Change default for --num-threads
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Thu Sep 8 10:57:47 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 rhaas):
Replying to [comment:3 eschnett]:
> My apologies for missing the discussion. I dislike the idea of
introducing a global variable for this.
>
> If people want to use only a single thread, they can (a) use the --num-
threads option, or (b) build without OpenMP, or (c) change the settings in
their defs.local.ini file. A global variable complicates things for
everybody, and is really just a sign that we do not dare to make a choice
ourselves. However, this is just what Simfactory is supposed to do -- make
choices so that people don't have to care. Since with think that OpenMP
works fine, and since the majority of our code (McLachlan, GRHydro) have
been parallelised, we should simply make the switch. Or was there somebody
in the discussion who mentioned an actual problem that would arise?
I usually turn off OpenMP for my hydro runs since at least for the runs
that I run (48 cores, lonestar, ideal gas eos) I find that GRHydro with
OpenMP is about a factor of two slower (!) than without. So even if
GRHydro might be OpenMP aware and actually contain code to use it, I do
not run with it since it is not beneficial for me. This might have changed
by now but was still the case with the development version of GRHydro
about 2 months or so ago (and I don't think much has changed in GRHydro
wrt OpenMP since then). So it seems to be there are valid reasons to run
without OpenMP even if all thorns are not single-threaded.
As far as fiddling with OMP_NUM_THREADS goes: OpenMP offers a function
omp_set_num_threads
(https://computing.llnl.gov/tutorials/openMP/#OMP_SET_NUM_THREADS) to
change the number of used threads used in parallel sections. It could be
called by the flesh early on (taking env("OMP_NUM_THREADS") into account).
This seems better than fooling with the environment variables which should
be user settable (I think).
Also it would seem that the information of whether to use or not use
OpenMP has to be present already at at the time qsub runs since it affects
the number of MPI processes requested and therefore the flesh alone cannot
handle it completely it seems to me.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/530#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list