> Interesting. I have been testing the intel compiler with various > releases from time to time, but hardly find it producing binaries which > show any significant improvement. > For example I have just recently compared icc8 againt gcc3.4.0 with gzip > and bzip2 (as I use those programs fairly heavily). I was not able to > measure any performance increase with icc8, when testing the programs on > pII cpus. For sure I'd like to see the icc compiler really in action but > so far I've yet to discover a program where it actually makes any > improvement over gcc. Those programs are too "simple" and one has a cache-spill footprint which ends up limiting its performance more than actual instruction scheduling and data access reordering. BZIP2 (Block sorting compressor) for example will spill the cache of ANY modern CPU, given the fact that its working memory set is at least 4-5MB (up to 20MB or so, depending on the compression level selected). For BZIP2, memory speed is everything. If you benchmarked an 800FSB 3.0GHz processor against a 400FSB 3.0Ghz processor, the 800FSB processor would blow its doors off. For gzip, the performance would be pretty close to identical. GZIP has some assembler helpers in the core guts (alas, written against the Pentium as the newest CPU)... so there's little ability to distinguish itself there. If you disable all of the ASM stuff in GZIP builds, you might see small deltas between the compilers in your comparison, but there's little room for code-gen area improvements in performance there. Try out LAME (mp3 encoding), OpenSSL's "speed" benchmark, etc. > About the link you sent in another email: I am sceptical about claims > coming directly from Intel That link isn't from Intel. It's from MySQL, AB, the developers of MySQL. MySQL, AB has been touting this advantage for a while now, just less publicly. In fact, I think up until very recently, you could only get ICC builds of MySQL from them if you PAID for MySQL - it was probably one of the little "perks" of purchasing it. It was certainly never available for (public) download, again, up until very recently. In less formal settings, developers from within MySQL, AB have acknowledged the solid gains in speed from using the Intel compiler. You can find them with google. > as I suspect them to be just marketing blurb. > If some independant sysadmin confirms their figures with a mysql > running in a real world production system I would be more satisfied. Well, it *IS* a marketing document after all, but it's mostly MySQL's marketing document, insofar as they are touting their speed advantage over their competitors. Yes, Intel is taking some limelight as well... but it's MySQL's marketing document. MySQL, AB includes a very comprehensive set of SQL torture tests for performance evaluation, which comes with their source code. The document includes all compiler settings used for both compilers' builds, so the claims are easily verified. In any event, I have seen the difference in my own code - it manages to discover vectorising code generation possibilities in surprising places. If you don't see any differences, maybe it's not for you. If you're earnest about investigating it, then try it out with at least the following settings: Assuming a P4: CFLAGS='-xW -tpp7 -march=pentium4 -mcpu=pentium4 -O3 -ipo' Assuming a P3/AthlonXP: CFLAGS='-xK -tpp6 -march=pentium3 -mcpu=pentium3 -O3 -ipo' Some very large projects create intermediate libraries - you may find you need to build those with -ip instead of -ipo I'm neither an Intel employee, nor an employee of MySQL, AB. I poo-poo'ed Intel until about a year or two ago when I gave their compiler an honest try on a modest 400FSB P4-1.6GHz CPU and was very pleasantly surprised. If you don't discover the same results, I'm sorry. I didn't design the CPU or the compiler, so THAT'S not MY fault. :) =MB= -- A focus on Quality.