On 4/27/2010 11:55 PM, Fabian Hänsel wrote:
Hi Ali,

I have solved that problem. I just removed the gcc flag -O3 from my compile script and the error vanished. However the speed of my code is also reduced to 50 iterations/minute from 70 iterations/minute, still not bad.

Is there any alternative to -O3 flag?

I tried -O2 too but this also gives errors.

You could try to set optimizations more fine-grained. Every -Osomething stands for a certain set of optimizations. Start with e.g. "gcc -Q -O2 --help=optimizers" to see all available optimizations and which are enabled at -O2. Read about them on the gcc manpage. Disable those that decrease accuracy. Enable more from the O3 level if you like. Be aware that decreased accuracy is maybe the source of your described performance gain. As your algorithm seems to be quite (numerically) instable, an additional look into dokumentation regarding precision and general sources regarding numerical instablity might benefit you while estimating the effects of certain optimizations.

If you are seeing run-time problems as soon as you invoke optimization, an evident suspicion is that you may have bugs such as uninitialized variables or range errors. If you are lucky, turning on the associated gcc diagnostics and run-time checks may help discover them.

--
Tim Prince

Reply via email to