mailRe: Optimisation tests in the test suite.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on October 20, 2006 - 12:42:
On 10/20/06, Gary S. Thompson <garyt@xxxxxxxxxxxxxxx> wrote:
This is quite an interesting result ;-) If you are doing float maths and
don't call any higher level functions the results from the two test
cases _ought_ to be the same if both platforms impliment ieee-754.
However, there are some caveats once you call high level functions all
bets are off as there as there can be impementation/algorithm
dependancies (certainly the c standard on first reading says nothing
about what rounding sin etc use!..?). Now there are further complcations
as some compilers use fused multiply-add instructions and other
optimisation which are not coveredby ieee-754 and are not standardised
by ieee-754 in terms of their rounding behaviour....( except in C99
which has a pragma to control this sort of thing: FP_CONTRACT)

The Numeric function calls which use BLAS and LAPACK I'm sure would be notorious here.


So here my thought. What we have here are regression tests so we either


1. define a set of results for each test on each particular platform (you have a mode there someone can run the tests on a version we believe works, and then say e-mails them to us for inclusion) We then store them and then use those results only for that platform 2. define a s set of result for each test which encompases worst case performance (as long as it is reasonable), run the tests on a variety of platforms and if it fails on some platforms decide on a case by case basis if the result is reasonable and downgrade you regression tests till it works everywhere.

I would go for 2. its a lot easier to work with and much more likley to
be used by the user for testing their implementation

I agree! There are too many variables to sanely handle point 1. The model-free parameter tests should be tight but the optimisation stats tests should be set to the hypothetical worst case. The question is, how would you initially define 'worst case' when building these tests?

Edward



Related Messages


Powered by MHonArc, Updated Fri Oct 20 17:00:32 2006