[Shootout-list] Ray tracer

Sebastien Loisel Sebastien Loisel <sloisel@gmail.com>
Thu, 28 Apr 2005 22:31:16 +0200


> The only question I have is, should this replace
> something, or is it unique and necessary in its own
> right?  And why?

Been thinking about that myself. If you could wave your magic wand
again, it would help.

If there's one thing that's clear to me, it's that having things like
ray tracers, n-body and LU decomposition is more interesting than
method call. But that's just me. So I'd like to find a way to make
sure we can accept these tests.

So either

0) we refuse these new app tests.
1) we pick an unrelated, but "less interesting" test, and demote it,
2) or we just add these "app" tests but try to keep a lid on so
there's not too much proliferation.
   a) Either we have a list of "apps" and require that there are no
two variants of a single app. For instance, both n-body and
implicitode are ODE solvers.
   b) Or if we disagree on whether two benchmarks are the same "app",
whoever's trying to add the latest app has responsibility for
providing a large (LARGE) number of implementations.
3) ?

In case of 0), what the heck am I doing here?!?
I think 1) is bad, but feel free to correct me.

2a) might be most tempting, but I was hoping to sneak in my tests with
2b). I intend to give ocaml, ml, haskell, fortran, c, c++, python,
lisp, scheme and (if I am dragged kicking and screaming) java or
perhaps even c#.

Some traditional benchmark apps are

* raytracing
* SOR/GMRES or some other iterative matrix solver
* LU or sparse LU (direct matrix solver)
* PDE solver
* Fourier transform/convolution (beware FFTW!)
* multipole
* convex hull
* linear programming

They are traditional, but I think Jon and I would like to put a spin
on things by perhaps writing tests that _use_ these things instead of
just running a quick test. So like you'd stick LU in some toy PDE
solver as the linear solve, so it gets used in an interesting way.
Perhaps we can even decrease the # of apps this way.

The 100 line guideline should stay. I think it's possible to write
interesting apps in many languages in <100 lines. The raytrace is at
64 and I'm confident it'll be <100 for lots of languages.

Sebastien Loisel