Sago Labs
Sago Labs – Welcome!
by admin on Oct.28, 2008, under Sago Labs
My company, Sago Networks, is launching a new section to our website – Sago Labs. I’ll be contributing to this via my blog and posting interesting bits on what behind the scenes projects I am involved with to let others know some of the interesting things we have cooking in the kitchen and sharing this with the community.
Here you will find information on ongoing research projects and results, new technologies we are exploring, and general Geekness in the Superlative. Also, you may get a comment or two on Sago culture, people and events – as it is a rather colorful place to work and there is always something interesting or funny afoot.
Watch the RSS feed for more to come!
Cheers,
Pete Eby
MySQL Server and Intel Compiler
by admin on Oct.23, 2008, under Linux, Sago Labs
Hot on the heels of the last post on the Intel C Compiler for Linux, a colleague pointed out this MySQL developer post which talks about compiling MYSQL with different options and compilers to obtain performance improvements.
I Googled around, thinking that perhaps there may be some information from people who have specifically tried to compile theĀ MySQL daemon with the Intel Compiler (ICC). Indeed I found quite a bit. Here is an extremely interesting presentation giving MySQLd benchmarks from compiling with ICC. Although this is based on earlier versions of ICC and MySQL, it is quite likely similar performance benefits could be seen with current versions.
Further looking about I discovered that MySQL binaries compiled using ICC for a variety of platforms are available for download directly from the MySQL Developer site. Just look in the downloads section and you will see the ICC versions available.
This makes it extremely simple to expiriment with these versions and benchmark them to see if they may be useful in a production environment.
Intel C Compiler for Linux
by admin on Oct.22, 2008, under IT Adventures, Linux, Sago Labs
Recently I learned that Intel makes its professional C compiler for Linux available for free. I discovered this fact at this blog, the writer of which extolled the virtues of the Intel C Compiler (ICC) and how the binaries it creates can run faster than those compiled with the GNU C compiler (GCC) – up to 35% faster. The author gave some test results of benchmarks created using Crafty, a chess engine.
Well – all this seemed pretty interesting to me! Using Crafty seemed a great idea, chess engines being so computationally intensive. Crafty also has an apparently undocumented benchmark function, so this is perfect.
Of course I am familiar that different compilers, compiling options and optimizations can effect the performance of the resulting binary, but I have never personally compared these results. And the potential for such significant gains was too tempting to pass up. Plus I could experiment with the Atom specific optimization flag. A veritable candy store of geekness.
I decided to duplicate that authors test, using the Intel and GNU compilers to compile Crafty and generate some benchmarks. My results were quite comparable to his, in fact the ICCC benchmarks were a bit better.
Here you can see the comparison between the GCC and ICC versions, and well as a third option showing an ICC version compiled with the -xL optimization flag for the Intel Atom.
In Crafty there was a slight improvement compiling with the -xL flag specifically for the Atom architecture. However, there is a significant difference between the ICC and GCC versions as you can see:
The substantial improvements available through compiling using the Intel C compiler clearly show it should be used when possible, particularly on computationally intensive applications.
Installing ICC is quite straightforward. Ensure you have GCC and G++ (called GCC-C++ in some distro packages) as these are required. Then just run the install script.
The specific Makefile options I used to compile each of the above three versions can be found on this Wiki article I wrote on Crafty – I did have to experiment with these a bit to get the ICC version to compile correctly. I also have a page on the Intel Compiler specifically here.
Have fun test driving this for yourself and please comment your tests and findings, I would love to hear about them.