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
Received on Tue Jul 12 2005 - 04:18:10 PDT