On Mon, Jul 11, 2005 at 05:27:33PM -0400, Jesse Mazer wrote: > I don't know what compiler optimization flags are, but if the trajectories
Compiler optimization flags tell the compiler to optimize generated code more aggressively, which may even break your code, at a high optimization setting. Anything involving changing order of instruction execution and not using accurate arithmetics (FPU floats) will introduce numerical error, which will result in an exponential deviation in a susceptible system. This is not a problem (unless the result fails to converge) as higher order metrics are extracted from the raw trajectory in a numerical experiment. This is entirely equivalent to injecting a small amount of numerical noise into the system, or perturbing a nonlinear system (such as a neuronal network in vivo). > are different, presumably that means that you are not really running > exactly the same algorithm, if you include the compiler as part of the > whole algorithm (ie if you wanted to emulate what the computer is doing Absolutely, the code generated is different. It's not the same algorithm. This is something which can trap the naive user, however, and it makes regression testing (which looks for precise end result in a number of test cases) quite more difficult. Similiar issues occur with execution errors (a bit flipped in processing, undetected), and parallel algorithms which optimize performance for accuracy (e.g. using a protocol on the signalling mesh which won't detect a dropped packet). Such issues are becoming more and more pronounced with the length of the run (total number of instructions) and the size of the parallel system, ultimatively resulting in a degree of unreliability e.g. in computer proofs. Physical simulations are more robust here. > using a universal Turing machine, the input strings would have to be > different for different compilers). Yes. However, the reality makes the term "a specific algorithm" somewhat blurry, and more difficult to measure. -- Eugen* Leitl <a href="http://leitl.org">leitl</a> ______________________________________________________________ ICBM: 48.07100, 11.36820 http://www.leitl.org 8B29F6BE: 099D 78BA 2FD3 B014 B08A 7779 75B0 2443 8B29 F6BE
signature.asc
Description: Digital signature