Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29280 Discussions

Generation of random normal deviates on large scale computers

JohnNichols
Valued Contributor III
563 Views

Many years ago, I got a copy of the original Muller paper for Normal Deviates from Princeton. They dug it out of a filing box and sent me a photocopy. 

I have seen this paper referenced in other papers, but as the original was in a box and I could not find copies online, it suggests the author's copied the reference, bad karma to not read the original. 

Here is a PDF of the original so it is at least once place on the web.  I will send a copy to Princeton. 

When I do the Monte Carlo for the Plastic Analysis, I check the normal deviates and throw an exception if the results are not normal, this happens more frequently than one would think.  You cannot use these methods without checking every single time.  

I know it could be in MKL, but the important people are here. 

0 Kudos
1 Reply
jimdempseyatthecove
Honored Contributor III
448 Views

John, this may be a case of the compiler optimizing for speed (e.g. not protecting ()'s).

IOW you are adding/subtracting relatively very small magnitudes with relatively very large magnitudes, and dropping significant digits in the process.

 

You might try adding /fp:precise

 

That failing, or in addition to, try changing your REAL variables (and parameters) to REAL(16)

 

Jim Dempsey

0 Kudos
Reply