Proebstings Law

December 15th, 2005

Todd Proebsting argues that compiler optimisation produces results far inferior to hardware optimisation

I claim the following simple experiment supports this depressing claim. Run your favorite set of benchmarks with your favorite state-of-the-art optimizing compiler. Run the benchmarks both with and without optimizations enabled. The ratio of of those numbers represents the entirety of the contribution of compiler optimizations to speeding up those benchmarks. Let’s assume that this ratio is about 4X for typical real-world applications, and let’s further assume that compiler optimization work has been going on for about 36 years. These assumptions lead to the conclusion that compiler optimization advances double computing power every 18 years. QED.

This means that while hardware computing horsepower increases at roughly 60%/year, compiler optimizations contribute only 4%. Basically, compiler optimization work makes only marginal contributions.

Perhaps this means Programming Language Research should be concentrating on something other than optimizations. Perhaps programmer productivity is a more fruitful arena.

I think that the gains to be had in programmer productivity lie in the automated production and optimisation of higher level constructs, for example, matrix math, queries (i.e. LINQ), or even incremental versions of programs.

hot moviesporn movie samplesmovies nudemovies horse matingclips free porno moviemovie hentai clips freemovies lolita freemovie clips gay Map

3 Responses to “Proebstings Law”

  1. Ken Overton Says:

    > I think that the gains to be had in programmer
    > productivity lie in the automated production and
    > optimisation of higher level constructs, for example,
    > matrix math, queries (i.e. LINQ), or even incremental
    > versions of programs.

    But don’t you think that much of the productivity increases have been in spite of poorer performance of the resulting code? I mean, a WinForms app doesn’t run as efficiently as a Win32 app, but it’s a heck of a lot faster to write. But the reason we can get away with MFC/WinForms today is because the hardware improvements make the inefficiencies tolerable.

  2. Damien Morton Says:

    True, the hardware improvements enable us to work in a less performance-oriented mode. The result is that many kinds of things that we needed to be extremely carefll and clever about doing, can now be done without much thought. Thats a good thing.

    On the other hand, the set of all problems which we can productively solve is always bounded by performance limits. That is, our ability to write programs that deliver results within human timeframes.

    Obviously, that limit grows as hardware performance increases, but if grows for everyone equally. Our skills as coders; our ability to write performant or and/or complex code, multiplies the extent of the limits set by hardware.

    At any rate, all of the projects Ive worked on at Lab49 seemed to have performance related limits as to what was feasible or not. I dont see that characteristic of performing project work changing because of increases in hardware performance. Instead I see the actual features for which these feasibility decisions are being made changing.

  3. Mike Davey Says:

    I believe that the real progress in increasing programmer productivity will not be made in the Computer Science field, but rather Genetic Engineering.