Extremely geeky question

2 messages 2 people Latest: Nov 13, 2008

Extremely geeky question

From: Mark Sale Date: November 13, 2008 technical
Background, Most modern computers use a system called ECC (Error checking/correction) wherein each memory location has an extra bit (the parity bit) that is used for checking whether the data location is "correct". Interestingly, data bits in memory can actually change randomly, due to electro magnetic radiation - even cosmic rays. Some computers do not have ECC, most recently, the Pentium series did not. (note that this is not the division problem that some early Pentium CPUs had, this is a random event). The Core 2 duo has ECC. If there were a an random data change, NONMEM could give different results from the same run. It might very well recover, since it reads the data set from the disc source (which would not change, only stuff loaded into DRAM could change) for each iteration, and presumably, the correct values for data, and all the variables internal to NONMEM could be fixed next iteration (the Hessian might take a while to recover, and there are certainly other variables that changes could not recovered from at all). This is relevant because the next generation of Intel CPU (Core i7, to be released next week) do not have ECC. Actually it is the mother boards for the Core i7 that do not support ECC. A leader in the field (Daniel Bernstein) contents that in scientific computing you don't need ECC unless you actually care that the answer is correct (or something like that). Here is the question. Has anyone ever seen apparently random - non reproducible results from NONMEM. That is, run the same data set, same control file, same hardware, same compiler and options and got a different result. If so, any idea what hardware it was on? thanks Mark

RE: Extremely geeky question

From: Guangli Ma Date: November 13, 2008 technical
Dear Mark, Do you really trust ECC unit? If my DRAM is damaged, I will live in an apparently random world when ECC is working. :) Best regards, Guangli