[Shootout-list] Implicitode test

Sebastien Loisel Sebastien Loisel <sloisel@gmail.com>
Sat, 9 Apr 2005 14:49:51 +0200


Hello Simon,

Thanks a lot for this implementation, I was dreading writing it. I
feel guilty for your hardship, I knew this test was difficult to
implement in Fortran and many other languages. You have also
implemented it better than I would have. Your criticisms are accurate,
this is not how I use AD in my real code.

I would've liked to keep working on improving this test, since it
incorporates many techniques into each other. Are you proposing to
remove it?

> f90 and again is not really relevant to the test. The reference also
> contains its own float and complex data types. I could implement these
> as well but again the time is large and I don't really see what is
> gained by doing it.

I meant the low-precision float and complex types to be 32-bit floats
in C++ but I couldn't reproduce the same numerical values in ocaml.
Would it improve your impression of the test if that were made to
work?

> Like many people I contribute programs by writing them in my spare time
> - this has taken a lot of spare time and it is not finished yet. Tests

Sorry about that.

> must be realistic in what they are trying to measure. If it's a
> numerical test then it should be just that and not rely on language
> features that irrelevant.

What I meant to test was a "large numerical library" or application.
One that would use multiple techniques to arrive at answers. In
meteorology, we solve a nonlinear evolution problem. At each time
step, we have to do a few steps of a fixed point iteration. Each fixed
point iteration has a few sparse matrix solves (or spectral solves,
depending on the implementation.) We also use "semi-lagrangian
integration" which means we have to interpolate data between grid
points and fit some trajectories to the last two time steps. This code
is of course huge!

Can you think of a way to make a small benchmark, like the ones we
like, that would test a range of capabilities like that? I mean, this
is the best I could come up with. I would really like to have a
microbenchmark that would somehow be representative of such
applications.

Cheers,

Sebastien Loisel