Summary: gcc performance

From: Andreas Höschler (ahoesch@smartsoft.de)
Date: Thu Sep 07 2006 - 14:04:02 EDT


Dear managers,

thanks a lot for the many responses I got. I was asked to make a
summary and report the numbers I got.

First I was recommended to use the Sun compiler instead of gcc since it
generates better code. We can't do that since we need Objective-C
support and at least AFAIK Suns compiler does not support this
language. :-(

Second most of you recommended to check out the -j option of make. It
indeed results in essentially quicker builds. However, we cannot use
this option. We got a bunch of error messages when starting the build.
It yields a problem if 24 processes try to create the target dir at the
same time (file already exists...). This breaks the build process. :-(

Here are my numbers for building a simple frameworks of ours on a T2000
with 6 cores and a SF240 with two 1.5GHz CPUs.

T2000:
Building framework with 'make': 1:10s
Building framework with 'make -j 24': 21s

SF240:
Building framework with 'make': 21s
Building framework with 'make -j 2': 11s

  Michael Maciolek gave this very interesting information to explain the
huge difference.

> The most likely factor in performance difference: the T2000 has
> a smaller amount of primary cache per cpu - instruction cache is
> half as big as the V240, data cache is 1/8 the V240's size.
>
> T2000 has:
>
> * 16 KB instruction
> * 8 KB primary data cache
> * 3 MB integrated L2
>
> http://www.sun.com/servers/coolthreads/t2000/specs.xml
>
> while the SunFire v240 has:
>
> * 32 KB instruction
> * 64 KB data on chip
> * 1 MB L2 per cpu
>
> http://www.sun.com/servers/entry/v240/specs.xml

Since our sever is mainly used for development (gcc builds) we tend to
get rid of the T2000 again (we thought it would serve the 10 Sun Rays
well) and rather go for a SF440 with 4 CPUs. Any other suggestions? How
can the IO system of a SF440 be compared to the IO system of a T2000
and the IO system of a SF490? The server will also run RDBMs so...

Regards,

   Andreas

Original message:
>> we are about to purchase a new machine for our dev department (Window
>> Maker, gcc, Sun Ray Server, database,...) and therefore have done some
>> performance tests on the following machines.
>>
>> Sun Fire 240
>> CoolThread T2000
>>
>> Building gcc with the gcc (supplied by Sun) we got the following
>> results:
>>
>> Sun Fire 240: 40 min
>> T2000: 117 min
>>
>> We have expected the T2000 (1GHz) to be slower than the 240 (1.5GHz)
>> but we have not expected such a big difference. Why is the 240 three
>> times faster? It is obvious that gcc and gnu make are building the
>> sources file by file and that thus only one core is utilized. Is it
>> somehow possible to distribute the workload over the cores? I know
>> that
>> Apple very recently has introduced this feature in their xCode. I was
>> wondering whether and how this would be possible under Solaris with
>> plain gcc and gnu make.
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:40:45 EDT