[ET Trac] [Einstein Toolkit] #1361: disable hyperthreading in loopcontrol by default
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Sat May 11 19:08:46 CDT 2013
#1361: disable hyperthreading in loopcontrol by default
-----------------------------------+----------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: LoopControl |
-----------------------------------+----------------------------------------
when running with both openmp and sufficiently many threads that
hyperthreading threads are used, many tests using LoopControl (Cartoon,
RotatingSymmety180, RotatingSymmetry90) fail.
This can be tracked down to disabling hyperthreading support in
LoopControl (ie. turning of hyperthreading makes things work).
In particular on bethe with smt and 8 physical cores:
The Cartoon/test_cartoon_2.par test shows differences from the recorded
results when run with 16 threads (but not with 8 threads). If I then go
ahead and disable OMP in all ML source files but ML_BSSN_enforce *and*
comment out the #include "loopcontrol.h", then the difference goes away.
Adding back #include "loopcontrol.h" brings back the error.
Some further experimenting with LoopControl's options shows that indeed
the use_smt_threads option is what causes problems. If I turn it off
things work fine even with a vanilla source tree. Otherwise relative
differences are on the order 1e-7 and absolute 1e-11 (in
momx_z_[2][2].xg). Without smt the results are identical to the stored
values.
The issue only occurs in combination of OpenMP, vectorization and
hyperthreading. The issue is independent of the compiler (both intel 13
and gcc 4.4 show the same behaviour), and vectorization (sse2) and many
threads (up to 4 times the number of physical cores) works fine on non-smt
machines.
I propose to disable LoopControl::use_smt_threads by default. Note that we
cannot completely remove it since apparently for Vesta (a Blue Gene/Q) smt
is required to get and multi-threading at all.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1361>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list