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