On Monday I posted Geekbench results for my Sun Ultra 20 M2 running Solaris and Windows. Afterwards, I received a number of requests asking how Linux performed on the same hardware.
Now that I’ve finally managed to download Fedora Core 6 (arguably the “official” Linux of Geek Patrol), here are the Geekbench results for Fedora Core 6 (and Solaris, as a comparison) on a Sun Ultra 20 M2.
Setup
Here’s the configuration of my Sun Ultra 20 M2:
- AMD Dual-Core Opteron 1210
- 512 MB DDR2-667 RAM (1 DIMM)
- Solaris 10 (6/06)
- Fedora Core 6 (x86_64)
- Geekbench 2006 (Build 230)
I’m reporting the baseline score, rather than the raw score, for each benchmark (where a score of 100 is the score a Power Mac G5 1.6GHz would receive). Higher is better.
Results
Overall Score
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Emulate 6502 (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Emulate 6502 (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Blowfish (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Blowfish (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
bzip2 Compress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
bzip2 Compress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
bzip2 Decompress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
bzip2 Decompress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Floating Point Performance
Mandelbrot (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Mandelbrot (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Dot Product (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Dot Product (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
JPEG Compress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
JPEG Compress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
JPEG Decompress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
JPEG Decompress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Read Sequential (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Read Sequential (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Write Sequential (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Write Sequential (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Allocate (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Allocate (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Write (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Write (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Copy (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stdlib Copy (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Copy (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Copy (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Scale (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Scale (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Add (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Add (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Triad (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Stream Triad (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Linux)
Conclusion
Solaris, once again, is faster overall (although only 7.5% faster than Linux, as opposed to 15% faster than Windows); Solaris (and the Sun Studio compiler) is faster in the floating point category while Linux (and GCC) is faster in the stream category.
If you’re using Linux for processor-intensive tasks, it might be worth checking out Solaris (and the Sun Studio compiler) to see if your tasks run faster under Solaris rather than Linux.
Apple updated the MacBook Pro lineup on Tuesday; among other improvements the MacBook Pro now uses the Core 2 Duo processor. I thought I’d take a quick look at the performance of the new MacBook Pros (compared against the “old” MacBook Pros, of course) using Geekbench 2006.
Setup
Here is the setup of the two test machines:
I’m reporting the baseline score, rather than the raw score, for each benchmark (where a score of 100 is the score a Power Mac G5 1.6GHz would receive). I’m also reporting the results for the 32-bit and 64-bit version of Geekbench for the Core 2 Duo (since it’s capable of running both).
As always, higher is better.
Results
Overall Score
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Emulate 6502 (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Emulate 6502 (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Blowfish (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Blowfish (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
bzip2 Compress (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
bzip2 Compress (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
bzip2 Decompress (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
bzip2 Decompress (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Floating Point Performance
Mandelbrot (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Mandelbrot (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Dot Product (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Dot Product (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Dot Product (single-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Dot Product (multi-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
JPEG Compress (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
JPEG Compress (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
JPEG Decompress (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
JPEG Decompress (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Read Sequential (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Read Sequential (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Write Sequential (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Write Sequential (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Allocate (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Allocate (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Write (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Write (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Copy (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stdlib Copy (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Copy (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Copy (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Copy (single-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Copy (multi-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Scale (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Scale (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Scale (single-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Scale (multi-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Add (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Add (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Add (single-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Add (multi-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Triad (single-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Triad (multi-threaded scalar)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Triad (single-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Stream Triad (multi-threaded vector)
Core 2 Duo (64-bit)
Core 2 Duo (32-bit)
Core Duo (32-bit)
Conclusion
Moving from the Core Duo to the Core 2 Duo means 32-bit MacBook Pro performance is up 10% without an increase in processor clock speed. That’s impressive! Even more impressive is the Core 2 Duo is 20% faster (when executing 64-bit code) than the Core Duo (when executing 32-bit code).
Unless you want to run 64-bit applications (or want one of the other new features the new MacBook Pro offers) I don’t think it makes a lot of sense trade in your old MacBook Pro for a new MacBook Pro. However, coming for almost any other laptop (like, I don’t know, my PowerBook G4), the new MacBook Pro looks like a compelling upgrade, at least from a performance perspective!
I’ve been working with a Sun Ultra 20 M2 workstation, running Solaris 10 and Windows XP, over the past couple of weeks. While I’m going to write up my impressions of the Sun Ultra 20 M2 sometime soon, I thought I’d share some of the performance results I’ve collected on the Ultra 20 M2, especially now that Geekbench runs on Solaris.
Update: Geekbench results for Solaris and Linux running on the same Sun Ultra 20 M2 are now available.
Setup
Here’s the configuration of the Sun Ultra 20 M2:
- AMD Dual-Core Opteron 1210
- 512 MB DDR2-667 (1 DIMM)
- Windows XP Professional x64 Edition or
- Solaris 10 (6/06 Update)
- Geekbench 2006 (build 230)
I’m reporting the baseline score, rather than the raw score, for each benchmark (where a score of 100 is the score a Power Mac G5 1.6GHz would receive). Higher is better.
Overall Score
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Emulate 6502 (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Emulate 6502 (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Blowfish (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Blowfish (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
bzip2 Compress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
bzip2 Compress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
bzip2 Decompress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
bzip2 Decompress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Floating Point Performance
Mandelbrot (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Mandelbrot (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Dot Product (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Dot Product (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
JPEG Compress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
JPEG Compress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
JPEG Decompress (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
JPEG Decompress (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Read Sequential (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Read Sequential (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Write Sequential (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Write Sequential (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Allocate (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Allocate (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Write (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Write (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Copy (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stdlib Copy (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Copy (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Copy (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Scale (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Scale (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Add (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Add (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Triad (single-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Stream Triad (multi-threaded scalar)
Sun Ultra 20 M2 (Solaris)
Sun Ultra 20 M2 (Windows XP)
Conclusion
Overall, I’m pleased with the performance of the Sun Ultra 20 M2. While this model (with an Opteron 1210) isn’t quite as fast as a low-end Mac Pro, it’s less than half the price of a low-end Mac Pro. Models equipped with faster Opterons (like the Opteron 1218) will certainly be more competitive when it comes to performance.
Another thing worth mentioning is that Solaris (and the Sun Studio compiler) outperformed Windows (and Visual C++) by almost 15%. Solaris outperformed Windows in almost every benchmark category, even outperforming Windows dramatically in some specific tests (such as some of the floating point benchmarks). If you’re working with processor-intensive tasks, Solaris might be the operating system for you.
I just thought I’d let y’all know that I’ve released a new Geekbench 2006 build. Build 230 should fix a number of performance problems on multi-core and multi-cpu machines (especially 8-core and 16-core machines). As always, the release notes have the details.
If you’ve got access to a multi-core machine, you should see your Geekbench score increase to a more reasonable level with this release.
After spending some quality time with Solaris 10 running on a Sun Ultra 20 M2, I’ve ported Geekbench 2006 to Solaris for both 32- and 64-bit x86-based processors. While Geekbench for Solaris has some limitations (most notably SIMD benchmarks are not available), I think Geekbench for Solaris is quite useful since it’s one of the few easy-to-use benchmarks available for Solaris.
If you’ve got an x86-based Solaris box, download Geekbench 2006 for Solaris:
Comments and feedback are welcome.
Today John Gruber released a command line tool called BBColors. Basically, it saves and loads text colour schemes in BBEdit, which is handy because changing your text colours manually is a pain in the ass (which is why I haven’t really done it before).
Because it’s easy now, and because I am a nerd, I futzed around with my colours to see if I could capture some nostalgia. So without further ado I present to you a BBEdit text colour scheme I am calling “Doogie.”

Combine it with a large font size and you too can feel like Doogie Howser when you are writing your next blog entry.

Download it here. Look at the source here.
Feel free to leave comments suggesting changes to the colour scheme; I know some of the colours are awkward but bear in mind that I really only had plain text in mind when making it.
Filed in
News
on Oct 08 2006
Erik J. Barzeski on Wil Shipley’s Carbon vs. Cocoa rant:
Ah, yes, the flammable Wil Shipley – the not-so-delicious
monster of Mac development. Wil publishes a long rant on
the tired old topic of Carbon vs. Cocoa, some folks respond,
and Wil goes off. Hasn’t this happened before?
Wil’s latest article contains a number of errors and silly comments,
including his disparaging of FSRefs, his ignorance re: the relative
age of Carbon and Cocoa, etc., yet when taken to task on his opinion,
Wil calls people names and shifts goalposts.
I’m just glad I’m not the only one who’s kind of tired of Wil Shipley’s ego. I mean I’m no developer but Shipley’s rants kind of get to me, probably because (as Barzeski points out) when someone disagrees with him or points out a problem with his argument he calls them a name and proceeds to say something like “don’t read my blog if you don’t like it.”
Gruber has an interesting response, too.
It is worth reading the comments on Shipley’s rant (although you will have to wade through some zealotry from either side of the argument), but one thing Shipley said kind of irked me:
… let’s talk about Delicious Library, ok, Rosyna? Yes,
it’s slow if you load in hundreds of items. Version one
was not designed for that many. Version 2 is designed
for tens of thousands, so customers with larger
collections will be happy there.
Why wasn’t Delicious Library designed to deal with hundreds of items? That’s just dumb. When I got my copy of Delicious Library I had over 300 CDs, over 100 DVDs and around 50 games and I don’t know how many books. Delicious Library was slow to load with this many items, but compared to other people I know my collection is relatively small. Maybe the people I know are the minority, but with an app like Delicious Library is that minority not the exact group you should be coveting?
Just asking.