|
Boost : |
Subject: Re: [boost] performance of a linear algebra/matrix library
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2010-05-08 09:19:13
On 05/07/2010 03:06 PM, DE wrote:
> on 06.05.2010 at 22:48
> Kenny Riddile wrote :
>> If you mean a language-imposed, inherent abstraction penalty, then I
>> doubt it (certainly not 33%). You can find out for yourself though:
>
>> http://www.stepanovpapers.com/AbstractionPenaltyBenchmark.cpp
>
> i've run the code for my everyday compiler (msvc80) and it greported
> no abstraction penalty
>
> i've also tried icc11 and it showed minor abstraction penalty
> (mean = 1.17)
>
>
> accidentaly i tried to compile my code with icc11 and -- it's a
> miracle! -- the test showed no abstraction penalty
>
> i believe the implementation in fact works just as i expected
> so i guess if one wants speed he should get a better compiler
>
> for curious ones here are some results:
>
> n 2 4 8 16 32 64 128 256 512 1024 2048
> msvc80 1.77 1.57 1.34 1.12 1.05 1.12 1.32 1.33 1.23 1.23 1.23
> icc11 1.53 1.32 1.26 1.55 2.17 1.07 1.02 0.98 1.00 1.03 1.02
>
> n is matrices' dimensions
> numbers in the latter 2 lines are ratios of runtime of C++ code to
> that of C code (time_cpp/time_c)
> 'msvc80' denotes time ratio for msvc version
> 'icc11' denotes the one for icc version
Hi,
maybe this is a stupid question: Do you average the performance results?
When I run AbstractionPenaltyBenchmark.cpp the results differ from run
to run by ca. 30%, such that the one single result is not significant. I
usually average them over 100-1000 runs until they have converged.
Karsten
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk