[Users] Test case requiring strict floating point operation ordering
Roland Haas
rhaas at aei.mpg.de
Wed May 13 11:52:27 CDT 2015
Hello all,
>>> Allow the user to set CCTK_STRICT_MATH in the optionlist. This
>>> would indicate that strict ordering of floating point operations,
>>> and IEEE compliance, is required in this build. This could
>>> potentially then be used to select compiler optimisation settings
>>> automatically. We could then introduce additional Cactus tests,
>>> only enabled when CCTK_STRICT_MATH was set, which checked that
>>> certain operations give exactly the correct results.
That is probably doable but requires changes to the script that parses
test.ccl and we need to check that make makes the option list variables
accessible to its daughter processes (such as that script).
I added the required pragmas to LocalInterp2 to actually get IEEE
conforming arithmetic in the file in question (there is a simimlar one
for gcc as well in the no-associative-math) to demonstrate how this
could be done. This lets the test pass on datura (where it failed
before). This can be found here:
https://bitbucket.org/cactuscode/cactusnumerical/pull-request/4/enforce-ieee-arithmetic-where-required/diff
This is too late for the release I think, and for the release we should
disable the test altogether I fear (not liking it though) unless we are
happy with the C++ code change (and the corresponding gcc options for
those option lists where -Ofast is used).
>> I like this idea.
I agree -- provided the fact that the test did not run is shown in the
same manner that tests that are not run for other reasons is shown.
Otherwise there is a high chance of someone trusting the fact that "all
tests passed" that the interpolation is actually symmetric. The C++ code
must then be changed to depend on the same flag and not its own
LOCALINTERP_SYMMETRIC preprocessor define anymore. Basically unless
CCTK_STRICT_MATH is set, there may not be C++ code that claims to
preserve the symmetry.
Yours,
Roland
--
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://keys.gnupg.net.
More information about the Users
mailing list