I should mention that I have the Intel C++ compiler (trial) for MacOS. It's not at all reliable and I can get it to crash with some of the crappy code at work! It has picked up some genuine bugs though!
However, I'll compile a Quake 3 with it to compare the performance. The damn thing will parallelize and vectorize your code for you for free!!! I'm excited about that :-D
I compiled some bundles at work which're used by ColorTuneX (if you know what I mean) and it shaved a second off generating an ICC device link profile... i.e. 23 seconds to 22 (not much!). I then profiled it with Shark and found that 25% of that time measurement was then in GCC compiled code which was only optimized by GCC not ICC. It didn't used to spend it's time there from looking at a GCC only build.
I tried to compile that bundle but the icc compiler crashed compiling some ropey code (not mine). I'll speak to the offending team (Windows) to see if I can force them to make that code simpler so that icc can handle it.
At 600 bucks it seems to be worth it *but* you have to have respectable code to pass through it. I did file a defect with Intel for not supporting @executable_path (frameworks and dylibs) but not the compiler crash.
Intel compiler
If you're looking for speed improvements, I'd still look at the algorithm you're using in the bottle-kneck code as it's likely the actual code that's slow.
The parallelization is of great interest, since Macs have multi-core architectures. But... there's a GCC branch that implements OpenSMP and it's supposed to be merged into the main branch.
I think I'll wait for GCC to be honest.
The parallelization is of great interest, since Macs have multi-core architectures. But... there's a GCC branch that implements OpenSMP and it's supposed to be merged into the main branch.
I think I'll wait for GCC to be honest.
Update: The OpenSMP implementation (libgomp) is part of some Linux distribiutions (Mandrake I think). It's in GCC 4.2
Apple *must* supply the developers with GCC 4.2 for 10.5... the damn top end systems have 4, logically, CPUs with 8 on the Intel road map.
OpenSMP removes much of the hassle of building your own thread pools. It's a case of using #pragma statements to tell the compiler to run sections of code in parallel.
Of course peeps like myself have all that code in their apps as it is but it'd be nice to delete some sources and reduce my source code size.
It's not that threaded code is hard, at least for me, but most developers aren't smart enough to understand the implications of threading.
My original background was cracking C64 games and building demos so I understand "interrupts", which is effectively what threads are from a coding sense. Oddly I ended up at Macrovision ;-)
BTW, I left my job the other day, by choice, and am taking at least a month off. Last time I did that Only Mortal was the result...
Apple *must* supply the developers with GCC 4.2 for 10.5... the damn top end systems have 4, logically, CPUs with 8 on the Intel road map.
OpenSMP removes much of the hassle of building your own thread pools. It's a case of using #pragma statements to tell the compiler to run sections of code in parallel.
Of course peeps like myself have all that code in their apps as it is but it'd be nice to delete some sources and reduce my source code size.
It's not that threaded code is hard, at least for me, but most developers aren't smart enough to understand the implications of threading.
My original background was cracking C64 games and building demos so I understand "interrupts", which is effectively what threads are from a coding sense. Oddly I ended up at Macrovision ;-)
BTW, I left my job the other day, by choice, and am taking at least a month off. Last time I did that Only Mortal was the result...