New Freecell Solver gcc-4.5.0 vs. LLVM+clang Benchmark

New Freecell Solver gcc-4.5.0 vs. LLVM+clang Benchmark

Nadav Har'El nyh at math.technion.ac.il
Wed Feb 2 09:56:33 IST 2011


On Tue, Feb 01, 2011, Oleg Goldshmidt wrote about "Re: New Freecell Solver gcc-4.5.0 vs. LLVM+clang Benchmark":
> awareness. It's a far cry from saying that computers are "not deterministic"
> though. If you want to measure A and in fact you measure something else and
> that something else depends on various factors that you are unable to
> control, it is *not* a law of Nature.

I wholeheartedly agree that this is the case today, and we can still make
meaningful, deterministic, measurements. But thinking about this, I wonder
how long into the future this will remain so.

Computer software is getting more and more complicated and complex as the
years grow by, and it is getting harder and harder to control, or even be
aware of everything that happens under the hood. Today, I think it's still
possible (though probably taking years of study) to be aware of *everything*
that happens while your program is running - in the program, kernel, libraries,
processor, peripherals, background processes, remote servers, and so on -
but I wonder if in 20 years this will still be possible.

I wonder if in 20 years somebody can actually say "ok, I'll run this benchmark
without X windows" like Sholomi did, or will X be so intertwined with
everything that you can hardly remove it (just like you can hardly remove
the UI from MS Windows). Even today, can you imagine running a program
*without a kernel* or even without glibc, just so you don't run into the the
unknown slowdowns that those things might cause your problems?

> Uncontrolled external factors may affect the correctness of your program and
> not just performance. The meeting I took part in this morning touched on the
> following issue: the details of the environment and the setup of the build
> machine are not a part of the code that is built on it, are not controlled
> in the same manner, etc. As a result, different builds of exactly the same
> code need to be carefully checked by QA because they may behave differently
> (and their performance may differ).

Right, this reminds me of the intricate relationship between genetics and
embryology in biology. Most people think that the DNA specifies exactly
what the animal will look like. But DNA is like software, it cooperates with
preexisting hardware, and changing the hardware might change what the software
does, even if the software is untouched. There are science-fiction stories
about finding dinosaur DNA and creating a dinosaur. But even if we have
dino DNA, how do we recreate dio embryology, i.e., a dino mom with a dino
ovum (egg cell), the dino egg, and so on?


-- 
Nadav Har'El                        |   Wednesday, Feb  2 2011, 28 Shevat 5771
nyh at math.technion.ac.il             |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |"Vi-Vi-Vi is the editor of the beast" --
http://nadav.harel.org.il           |Richard Stallman (author of Emacs)



More information about the Linux-il mailing list