Boost logo

Boost :

From: Matthias Schabel (boost_at_[hidden])
Date: 2007-03-28 16:04:19


> I don't think I will have time to write a full review of units (and
> I probably don't know enough to seriously critique it anyway), but
> FWIW, I think it should be accepted, and it looks quite useful and
> well designed to me.

Thanks for the support. Please do try to find some time to submit a
formal review - it doesn't need to be lengthy, and the more input we
get, the better the final outcome (and, in the case of positive
votes, the better the chance of acceptance :^).

> I did try some quick performance tests out of curiosity on a few
> different systems. Here is the output of the unit_example_14 test
> program for:
>
> 1) gcc 3.4.4 on WinXP / MinGW (Intel P4 2.8 GHz)
> ------------------------------------
> f(x,y,z) took 6.593 seconds to run 1e+009 iterations with double =
> 6.06704e+008 flops
> f(x,y,z) took 10.782 seconds to run 1e+009 iterations with
> quantity<double> = 3.70989e+008 flops
> g(x,y,z) took 6.625 seconds to run 1e+009 iterations with double =
> 6.03774e+008 flops
> g(x,y,z) took 9.906 seconds to run 1e+009 iterations with
> quantity<double> = 4.03796e+008 flops

Just for reference, using gcc 4.0.1 on Mac OSX (G5 2GHz) I get no
overhead :

f(x,y,z) took 4.29 seconds to run 1e+09 iterations with double =
9.32401e+08 flops
f(x,y,z) took 4.28 seconds to run 1e+09 iterations with
quantity<double> = 9.34579e+08 flops
g(x,y,z) took 4.28 seconds to run 1e+09 iterations with double =
9.34579e+08 flops
g(x,y,z) took 4.28 seconds to run 1e+09 iterations with
quantity<double> = 9.34579e+08 flops

Naturally, this library is demanding of the optimizer. I believe
someone else has verified that it is possible to achieve zero
overhead under Visual C++ 8.0 as well...

> I also tried compiling with gcc 3.3.3 but got a large number of
> errors... I attached the gzipped output in case that is
> interesting, but maybe this compiler is not supposed to be
> supported anyway?

We have not attempted to support gcc versions before 3.4.4, and I
don't know if it is possible to do it. I'll take a look and see if
there's anything obvious.

Matthias


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk