Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Mar 2011 16:29:57 -0400
From:      Mehmet Erol Sanliturk <m.e.sanliturk@gmail.com>
To:        Jakub Lach <jakub_lach@mailplus.pl>
Cc:        freebsd-current@freebsd.org
Subject:   Re: FreeBSD Compiler Benchmark: gcc-base vs. gcc-ports vs. clang
Message-ID:  <AANLkTiniz2zNjZrtCBxZkPhqpG7gdQYYn3LoWAraWyvU@mail.gmail.com>
In-Reply-To: <31138978.post@talk.nabble.com>
References:  <4D7943B1.1030604@FreeBSD.org> <90325.1299852096@critter.freebsd.dk> <4D7A42CC.8020807@FreeBSD.org> <98496.1299861978@critter.freebsd.dk> <4D7B44AF.7040406@FreeBSD.org> <60071.1299936937@critter.freebsd.dk> <AANLkTinOrNfq5FBOPkXcExjN=mzZCKazxeG8BMJNFVer@mail.gmail.com> <31138978.post@talk.nabble.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 13, 2011 at 3:19 PM, Jakub Lach <jakub_lach@mailplus.pl> wrote:

>
>
> Vin=C3=ADcius Zavam wrote:
> >
> >
> > i'm still curious about things like CPUTYPE=3D and -march=3D configured=
 as
> > native, gentlemen.
> > is it the "golden egg" to use with our system or not? why "natives"
> > aren't in the benchs?
> >
> > /me feels confused.
> >
> >
> > --
> > Vin=C3=ADcius Zavam
> > profiles.google.com/egypcio
> >
>
> Apparently -march=3Dnative would equal -march=3Dcore2
> with 65nm generation Core2s, this is not the case with
> Penryns.. But there are none in the test?
>
> However, I agree that testing with -march=3Dnative
> would be simpler and more straightforward.
>
> regards,
> - Jakub Lach
> --
>




The compilers Clang and GCC may also be compared with the following design
because ( on the same computer , multiple parameters are measured ) :

      Clang Version x
 ------------------------------------
 Repeated Measures --->
                              p(1)   p(2)   p(3)   p(4) and other parameter=
s
up to p(m)
                               -----  -----  -----  -----
 Computer 1              value  value  value  value   .....
 Computer 2              value  value  value  value   .....
.
.
.
 Computer n              value  value  value  value   .....



      GCC Version x
 ------------------------------------
 Repeated Measures --->
                                p(1)   p(2)   p(3)   p(4) and other
parameters up to p(m)
                                 -----  -----  -----  -----
 Computer n+1            value  value  value  value   .....
 Computer n+2            value  value  value  value   .....
.
.
.
 Computer n+n            value  value  value  value   .....




For each compiler the same number of computers are used ( This is called
balanced design ) .
Evaluation of unbalanced designs may not be available in used statistical
packages , and
theoretically , they are NOT very good .


Here factors are :
                   (1) Compilers ( CLang , GCC )
                   (2) Measured parameters as Compilation Parameters
                       such as
                       ( No optimization )
                       ( Optimization Level 1 )
                       ( Optimization Level 2 )
                       ( Processor Kind 1 )
                       ( Processor Kind 2 ) and
                       ( Code Generation Kind 1 )
                       ( Code Generation Kind 2 ) and/or
                         any number of other parameters

Number of computers as n should be greater than Number of parameters as m .

Subjects are the computers which no one of them is equal to the other .
Measured parameters are also called treatments .

In statistical analysis packages and
   books on experimental designs
this design is called

two-factor experiment with repeated measures on one factor .

Also the other names may be used :

Repeated measures design , or
within-subjects factorial design , or
multifactor experiments having repeated measures on the same elements



Inclusion of two GCC versions into the above table as another compiler may
NOT be very well ,
because GCC compilers are likely VERY CORRELATED with each other ( because
they are using
the  same code generator perhaps some patches applied to distinguish the
versions ).


To obtain an idea about correlation strength of the GCC compilers ,
CANONICAL correlation analysis may be used when there are multiple
parameters
( do NOT use two-by-two correlation coefficients when there are more than
two parameters ) , or ,
simple correlation when there are only two parameters ( one for each
compiler ) .


Design is as follows :

                GCC Version x           GCC version y
                ---------------------   ---------------------
                 p(1)  P(2) ... p(k)    p(1) (p2) ... p(k)

Computer 1   v    v        v       v     v       v
computer 2   v    v        v       v     v       v
.
.
.
Computer n  v    v        v       v     v       v


where
     p(1) , p(2) , ... , p(k) are the measured parameters ,
      k : Number of parameters for each block individually
          ( There may be different parameter sets , but
            for our purposes equivalent parameter sets are required )
      n : Number of observations , where each computer should be different
from
          the others .

      v : Value measured for a parameter

When there is a significant CANONICAL correlation between two compiler
related
values blocks :
 (i) it is NOT possible to include the two compilers in the above
     repeated measures design because of high collinearity .
 (2) Selection of BEST compiler is possible because two compilers are very
similar
     ( there are no difference between them other than performance level ) =
.


When the CANONICAL correlation is NOT significant ,
the other GCC compiler may be included
as a third compiler into the repeated measures design .




http://en.wikipedia.org/wiki/Repeated_measures_design
http://en.wikipedia.org/wiki/Category:Experimental_design

http://en.wikipedia.org/wiki/Canonical_correlation
http://en.wikipedia.org/wiki/Category:Multivariate_statistics


Thank you very much .


Mehmet Erol Sanliturk



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTiniz2zNjZrtCBxZkPhqpG7gdQYYn3LoWAraWyvU>