Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Sep 2006 14:03:17 -0400
From:      Martin Cracauer <cracauer@cons.org>
To:        Danny Braniss <danny@cs.huji.ac.il>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: numbers don't lie ...
Message-ID:  <20060914180317.GC16873@cons.org>
In-Reply-To: <E1GNOLq-000DC2-1Q@cs1.cs.huji.ac.il>
References:  <E1GNOLq-000DC2-1Q@cs1.cs.huji.ac.il>

next in thread | previous in thread | raw e-mail | index | archive | help
Danny Braniss wrote on Wed, Sep 13, 2006 at 09:36:01AM +0300: 
> Im testing these 2 boxes, Sun X4100 and Dell-2950, and:
> 
> 	SUN X4100:	Dual Core AMD Opteron(tm) Processor 280 (2393.19-MHz K8-class CPU)
> 			one 70g sata disk
> 	DELL 2950:	Intel(R) Xeon(TM) CPU 3.20GHz (3192.98-MHz K8-class CPU)
> 			4 sata disks + raid0
> 
> they both run identical 6.1-STABLE.
> 
> my 'cpu benchmark' shows the amd being much better than the intel.
> but, doing a make buildworld give interesting results:
> 
> dell-2950 : make -j16 TARGET_ARCH=amd64 buildworld : 24m17.41s real 1h3m3.26s 
> user 17m15.07s sys
> dell-2950 : make -j8 TARGET_ARCH=amd64 buildworld : 24m8.28s real 1h2m59.38s 
> user 16m16.20s sys
> 
> sunfire : make -j16 TARGET_ARCH=amd64 buildworld : 24m21.38s real 49m6.68s 
> user 14m22.64s sys
> sunfire : make -j8 TARGET_ARCH=amd64 buildworld : 23m47.69s real 48m53.58s 
> user 13m44.81s sys
> 
> which probably says something about my 'cpu benchmark' :-(
> but why is the user time so much different between the boxes?

I don't think this has much to do with parallelism or hyperthreading.
You can test by running make -j1, the AMD will probably still be
faster.

Fact is that the AMD64 is much more suitable to run "random" code
fast, whereas Intel's Netburst architecture is extremely picky and
only runs fast what it likes (after the programmer went through
Intel's 500 pages ia32 optimization manual and could yell at the
compiler writer all the time).  Compilation in gcc and scripting of
any kind, including make(1) are one of the strongest points of AMD64
over Netburst.

Toy benchmarks usually run fast on Netburst because they fit into the
caches, they don't overtax the trace cache and they usually don't use
any good amount of data or any sizeable piece of code with deep call
stacks.  That's why toy benchmarks are so evil.  I wish spec would
kick out more of their toy benchmarks, BTW.

Intel's new core2 architecture rectifies this nonsense.  And not only
that - they now give you a good speedup for some applications that
were lousy even on AMD64.

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@cons.org>   http://www.cons.org/cracauer/
FreeBSD - where you want to go, today.      http://www.freebsd.org/



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