John Maddock wrote:
Geoff Wedig wrote:
Hello,
We are experiencing a problem with boost::random using icc on Windows under optimization. If we compile with the -O1 option, we get correct behavior. Compiling with -O2 or no -O option gives us a string of zeros.
We have compiled a small test case which shows this problem:
To date, I've done a lot of hunting trying different compiler options to attack this problem. The compiler option which seems to have the most consistent effect, in that adding it makes the program work, whereas removing it makes it not is -Qunroll0.
I am guessing something in the optimization is causing the generator not to initialize properly, but I do not, at present, know how to solve it.
Has anyone else seen this, or have any ideas what might be going wrong?
Sorry, no. What I normally do in cases like this is a bit of "comparitive debugging": start up two instances of Visual Studio, and debug both, one with optimisation on, one with it off, and see what the difference is.
It's always possible that there's an un-initialised variable bug lurking somewhere of course, but I would have expected that to have shown up by now if that was the case.
BTW, I tried your code with reasonably up to date versions of Intel 9.1 and 10.0 using -Ox and everything worked as expected. Which Intel compiler version are you using?
HTH, John.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Thanks for the idea. I'll look into it. I checked the compiler, and it seems to be 8.1. I had thought it was 9.1, which is what we use on Linux. Maybe I should check in with the systems guys.... Thanks! Geoff -- Geoff Wedig Software Engineer Digital Domain