Slashdot Mirror


Progress In Algorithms Beats Moore's Law

Relic of the Future writes "Seen on the blog 'Algorithmic Game Theory,' a report to congress and the president about past and future advances in information technology notes that, while improvements in hardware accounted for an approximate 1,000 fold increase in calculation speed over a 15-year time-span, improvements in algorithms accounted for an over 43,000 fold increase."

36 of 166 comments (clear)

  1. But we made up in ... by sourcerror · · Score: 4, Funny

    more bloated GUI libraries (bling), and comfier runtimes (different VMs).

    1. Re:But we made up in ... by betterunixthanunix · · Score: 4, Insightful

      Well, the real question is, are users better off as a result? Personally, I found that most of the computationally intensive graphics were not actually helping me get my work done any faster, switched to a more minimal window manager and did all that I could to reduce the amount of CPU time spent on rendering the GUI (disabling special effects wherever I saw them), and discovered that, in fact, I was correct: none of those effects were actually helping me get my work done.

      On the flip side, people tend to be turned off when they see what my screen looks like. It has gotten to the point where I do not mention that this is "Linux," because I do not want new users to get scared. In the end, looking pretty winds up being more important than how efficiently you use computational resources.

      --
      Palm trees and 8
    2. Re:But we made up in ... by martin-boundary · · Score: 2
      Why bother with window titles at all? You can disable all window decorations, and reprogram the mouse buttons to act on the *whole* window client area. Much easier to move/resize/destroy that way. All you have to do is use the extra mouse buttons that come with practically all mice, and that nobody ever uses for anything anyway.

      On my fvwm, I've set up the 8/9 buttons as follows: doubleclick 8 -> Hide, clidkdrag 8 -> Resize, doubleclick 9 -> Kill, clickdrag 9 -> Move. It seemed a bit weird the first two hours, but it was surprisingly easy to get used to, and ever since I found that I actually move and resize windows a lot more frequently than before, because the mouse gestures are so natural and don't need to be done in a small predefined space.

  2. Re:First post algo by Concerned+Onlooker · · Score: 2

    return First_post_algo();

    --
    http://www.rootstrikers.org/
  3. In other words by eclectro · · Score: 2

    Algorithmists have Moore's Law envy.

    --
    Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
  4. Not for the first time by charteux · · Score: 2

    Even in the 1980's it was recognized in avionics that algorithm improvement accounted for several orders of magnitude of speed in computing -- out performing hardware advances of the day. We highlighted that article in Avionics Weekly -- proudly displaying it outside our cubicles.

  5. 1000 fold by MichaelSmith · · Score: 4, Interesting

    Thats an interesting figure because when the alpha came out DEC were predicting 1000 fold improvement in speed over about the same period. They split the improvement over factors of ten: clock speed, parallelism in the CPU and multiple cores were each expected to deliver a factor of ten improvement.

    Now while our algorithms might be getting better our programmers definitely are not. A lot of those improved algorithms must be in our APIs. Like the way its easy to use a Hashtable in java now but in the last you might have just searched a linear array.

    1. Re:1000 fold by jc42 · · Score: 4, Interesting

      Now while our algorithms might be getting better our programmers definitely are not.

      Sometimes this is intentional. One of the more fun software competitions I've run across is to write the slowest sorting algorithm. Trivial programming tricks such as do-nothing loops that just run a counter to use time disqualify you, obviously. The judging is solely on the algorithm, by comparing the O(N) functions. One of the winners in the early years was a sort that generated a random permutation of the data, and tested it for sortedness, repeating if it wasn't sorted. And it turns out that there are several progressively worse variants of this, depending on how ridiculous your random-permutation algorithm is.

      I should go find this contest again, and see what sorting atrocities they've come up with in the past couple years ...

      (I did once read a suggestion that such contests not be widely publicised, out of fear that managers will find them and declare the winning algorithms the new company standards. ;-)

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    2. Re:1000 fold by sco08y · · Score: 3, Interesting

      Thats an interesting figure because when the alpha came out DEC were predicting 1000 fold improvement in speed over about the same period. They split the improvement over factors of ten: clock speed, parallelism in the CPU and multiple cores were each expected to deliver a factor of ten improvement.

      Now while our algorithms might be getting better our programmers definitely are not. A lot of those improved algorithms must be in our APIs. Like the way its easy to use a Hashtable in java now but in the last you might have just searched a linear array.

      There are more programmers because programming is becoming more accessible, so naturally more people who suck at programming are doing it.

      There's another problem: while gains from Moore's law have historically been realized by a recompile or less, most new algorithms require actually changing the code.

  6. What Good Lord Giveth ... by 140Mandak262Jamuna · · Score: 5, Funny

    What the Good Lord Algorithmic Efficiency Improvements giveth, the Evil Lord Real-Time-Virus-Scanner taketh away.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:What Good Lord Giveth ... by sco08y · · Score: 2

      What the Good Lord Algorithmic Efficiency Improvements giveth, the Evil Lord Real-Time-Virus-Scanner taketh away.

      Heretic! Thine computer is a vessel of purity whose sole purpose for existence is to be continually purged of impurity. Thou shalt be grateful for the pittance of cycles that our great Real-Tyme Virus Scanner does leave ye to work with your ill begotten "productivity applications."

  7. Transistor increase with software? by F.Ultra · · Score: 5, Informative

    So how did they magically increase the number of transistors using software? Oh whait, someone didn't know what Moore's law was...

    1. Re:Transistor increase with software? by Paco103 · · Score: 2

      Virtual Machines?

    2. Re:Transistor increase with software? by Idbar · · Score: 2

      I think you can take it as you want. I know of many people working on algorithms to properly edge 22nm silicon, which is improvement in hardware (number of transistors) by software (keeping the same laser wavelength but applying the light in certain patterns). So to algorithms can also improve hardware size and speed.

  8. Not so much by kasperd · · Score: 5, Insightful

    When hardware gets faster it applies more or less uniformly to all algorithms you run on that hardware. When an algorithm is improved it applies to just one specific problem. For some problems we already knew close to optimal algorithms 15 years ago, in those cases there was no way algorithmic improvements could have achieved such a speedup. And in fact the article mentions just one specific problem where algorithmic improvements made it about 43.000 times faster on one specific input. In other words, this number is not nearly as general as the summary makes it sound. The are algorithms that were not speeded up nearly as much, and for any algorithms that were bad enough to begin with, there could have been an even larger speedup - without anybody making a fuss about it.

    --

    Do you care about the security of your wireless mouse?
    1. Re:Not so much by QRDeNameland · · Score: 4, Informative

      Mod parent up. If this claim were true in any generic sense, we'd see newer software generally running ever faster on older hardware, and it wouldn't seem that every generation of hardware improvement goes mostly towards visual eye-candy and anti-virus.

      The problems the author cites, notably speech recognition, are cases that are notorious for *not* scaling to CPU power, that is, throwing brute force cycles at the problem only yields marginal benefits. While processing power doubles every 18 months, speech recognition only gets slightly better despite both better hardware and algorithmic advances.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    2. Re:Not so much by betterunixthanunix · · Score: 3, Insightful

      And in fact the article mentions just one specific problem where algorithmic improvements made it about 43.000 times faster on one specific input.

      I think a more general issue is citing a constant as the speedup for an algorithm. Improvements in algorithms often refer to improvements in the asymptotic efficiency, rather than constant factors. If I asked you how much of an improvement a switch from selection sort to merge sort would be, you would not tell me "it is 1000 times faster" because that would be wrong (except for a particular input size).

      --
      Palm trees and 8
    3. Re:Not so much by SLi · · Score: 3, Insightful

      The grandparent didn't say "clock speed doubles". It said "processing power doubles". In the last few years those things have been very distinct, in some cases processing power increasing while clock speeds have actually become lower.

    4. Re:Not so much by kasperd · · Score: 2

      A CPU getting faster does almost nothing if your process is IO bound.

      You are right, that is another aspect to it. It is entirely possible that a problem that required lots of disk I/O 15 years ago would fit in RAM today, maybe it would even fit in L3 cache. Under such circumstances it may be that an unmodified algorithm would run a million times faster on a modern computer compared to a computer from 15 years ago. Even if no part of the machine is a million times faster. In fact having enough RAM could mean close to a million times performance difference on hardware of exactly the same speed if the algorithm does lots of random access.

      A known optimum algorithm isn't going to get any better if we already know the best possible time is say log(n). But the implementation of that algorithm can improve many times through optimizing the code for the hardware.

      To show that an algorithm is optimal you need to do it within some computational model. Some models consider I/O, others don't. An algorithm which is efficient in both kinds of models tend to be complex and have a somewhat larger constant, but not by several orders of magnitude. For such problems it may have been that if we knew an optimal algorithm at that time, it was with the simple model.

      which improvement would be responsible for the increased performance? I'd argue they're inseparable.

      You could define your way out of that problem, but the results may not be very useful anyway. For example you could say an algorithm would only be considered optimal if it was optimal on both kinds of hardware (such a definition would make some kind of sense, and it would be possible to implement such an algorithm). With that algorithm you could compare the performance of the two machines, but it would still only measure the hardware improvement on a specific problem, and the number you get out may not apply to any other problem.

      --

      Do you care about the security of your wireless mouse?
  9. 45 years later by zeroRenegade · · Score: 4, Insightful

    Moore's law is based more on economics than technology. He was just a hands on executive who had a clear vision of what the future would bring. Anybody who actually has read his original paper would realize this. The fact that his theory has held up this long is incredulous.

  10. Moore's Law has nothing to do with speedup by kaychoro · · Score: 2

    Moore's Law is that the number of transistors on a single integrated circuit would double - it has nothing to do with speedup.

    --
    //TODO: create a signature
  11. Anonymous Coward by Anonymous Coward · · Score: 2, Informative

    Linear Programming is a reasonably obscure optimisation method used in operational research, where you describe a complex management problem in terms of a series of linear inequalities, then use an algorithm to evaluate all the possible solutions until it has found the optimal one. The algorithmic improvements here mean that we have found ways of cutting down the space faster, while still coming to the best solution. For one particular problem with just the right characteristics it's very possible that an improvement of 43,000 times could be achieved, but this is almost certainly an atypical case, and in general improvements due to algorithms are almost certainly going to be a lot smaller than improvements due to processing speed over a long period.

    1. Re:Anonymous Coward by justthinkit · · Score: 2
      --
      I come here for the love
  12. Re:First post algo by bersl2 · · Score: 4, Funny

    Doubles and higher-order tuples are an ongoing topic of research, much less mature than research on first posts.

  13. Actual text of statement on relative improvements by jthill · · Score: 4, Informative

    Progress in Algorithms Beats Moore’s Law

    Everyone knows Moore’s Law – a prediction made in 1965 by Intel co-founder Gordon Moore that the density of transistors in integrated circuits would continue to double every 1 to 2 years.

    Fewer people appreciate the extraordinary innovation that is needed to translate increased transistor den- sity into improved system performance. This effort requires new approaches to integrated circuit design, and new supporting design tools, that allow the design of integrated circuits with hundreds of millions or even billions of transistors, compared to the tens of thousands that were the norm 30 years ago. It requires new processor architectures that take advantage of these transistors, and new system architectures that take advantage of these processors. It requires new approaches for the system software, programming languages, and applications that run on top of this hardware. All of this is the work of computer scientists and computer engineers.

    Even more remarkable – and even less widely understood – is that in many areas, performance gains due to improvements in algorithms have vastly exceeded even the dramatic performance gains due to increased processor speed.

    The algorithms that we use today for speech recognition, for natural language translation, for chess playing, for logistics planning, have evolved remarkably in the past decade. It’s difficult to quantify the improvement, though, because it is as much in the realm of quality as of execution time. In the field of numerical algorithms, however, the improvement can be quantified. Here is just one example, provided by Professor Martin Grötschel of Konrad-Zuse-Zentrum für Informationstechnik Berlin. Grötschel, an expert in optimization, observes that a benchmark production planning model solved using linear programming would have taken 82 years to solve in 1988, using the computers and the linear programming algorithms of the day. Fifteen years later – in 2003 – this same model could be solved in roughly 1 minute, an improvement by a factor of roughly 43 million. Of this, a factor of roughly 1,000 was due to increased processor speed, whereas a factor of roughly 43,000 was due to improvements in algo- rithms! Grötschel also cites an algorithmic improvement of roughly 30,000 for mixed integer programming between 1991 and 2008.

    The design and analysis of algorithms, and the study of the inherent computational complexity of prob- lems, are fundamental subfields of computer science.

    --
    As always, all IMO. Insert "I think" everywhere grammatically possible.
  14. Re:First post algo by davester666 · · Score: 2

    Now, you have to disassemble the binary to make sure the compiler properly implemented tail recursion!

    --
    Sleep your way to a whiter smile...date a dentist!
  15. Yeah, but things are still slower by Jay+Maynard · · Score: 2

    Looks like both Moore's Law and the improvement in algorithms together don't beat out Gates's Law: Software bloat doubles every 18 months.

    --
    Disinfect the GNU General Public Virus!
  16. Re:First post algo by betterunixthanunix · · Score: 2

    Actually, the algorithm came from The Art of Computer Programming, and so it was written in assembly language to begin with.

    --
    Palm trees and 8
  17. we lose sight of algorithmic importance by cats-paw · · Score: 2

    Remember when you were a youngster and you had to learn about O() ?

    Well, over the years you lose sight of the importance of that.

    Not too long ago, just for fun, I implemented a DFT naively, O(n^2), and as an FFT (O(n log n).

    Try that and run it for 65536 points and see what happens, even on a fast machine...

    Consider for example the humble matrix solver. Iterative solvers (only applicable for certain problem spaces) can get you n lg n sort of behaviors, as compared to n^3 for generalized gaussian elimination.

    It's important to use the right algorithm !

    --
    Absolute statements are never true
  18. Moral of the story... by Khyber · · Score: 3, Insightful

    OPTIMIZE YOUR SHIT.

    Because tons of hardware is useless if you can't push it to it's limits with efficient code and algorithms.

    Game and OS designers, I'm looking right at you.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  19. parallel algorithms by lkcl · · Score: 2

    i read a sci-fi story once, i forget who it was by, where some space travellers found themselves in a situation where their computer failed. so they taught themselves maths, plotted the stars, learned to do trigonometry in their heads, and over the course of many months, the 30 or so travellers managed to work in parallel to calculate an approximate but accurate enough path to get themselves within range of rescuers.

    then, there is another sci-fi story, called "The End of Eternity", which dates back to when the title "Computer" was utilised in exactly the same way as "Professor" is utilised, now. the hero of the story was a human named "Computer Harkan". Computer. "one who computes".

    the point of mentioning these two things is very very simple: prior to modern "computers", parallel "Computing" algorithms were commonplace, well known, and heavily relied on. Along came "computers" and - you know what's coming next - exceedingly rapidly, all that incredibly valuable "parallel" expertise was lost, in favour of single-step, single-process algorithms. i believe we're paying for that loss of expertise, somewhat.

  20. [OT] fvwm by lkcl · · Score: 2

    oo - please post your ~/.fvwmrc online somewhere! *excited*. i run fvwm too, i run fvwm too!

    1. Re:[OT] fvwm by betterunixthanunix · · Score: 2

      Talk about scaring away new users...

      /me ducks

      --
      Palm trees and 8
    2. Re:[OT] fvwm by MichaelSmith · · Score: 3

      Okay here it is. I am in a bit of a rush I am sorry. You will have to fix a few things like putting in your own screen background. It has an fvwm script for monitoring nodes called "System Status". Generally Button1 is for starting things and Button2 is for configuration. It is set up to use ssh-askpass to set your ssh passphrase.

      Got to go. My wife is insisting I sit down for christmas dinner.

  21. And yet ... by PPH · · Score: 3, Funny

    ... Murphy still holds the lead.

    --
    Have gnu, will travel.
  22. More RAM, Faster CPUs make better Algos possible by billstewart · · Score: 3, Informative

    One thing that's happened to improve algorithms, besides having people study Computer Science and take advantage of the work other people have done in academia and open source systems over the past few decades, is that computers are enough bigger and faster that you can solve problems that weren't feasible in the past, because you didn't have enough RAM, or disks were too small and you needed to use tape, or CPUs weren't fast enough to bother using some techniques, and having those tools gives you more choices of algorithms than I had when I was an undergrad in the 70s, or than my professors had when they were learning CS in the 60s and 50s. 640KB wasn't enough for everybody, and I remember a Star Wars funded research project at Princeton in the late 80s that had a VAX with 128MB of RAM crammed into it so they could study what you could do if you really always had enough RAM. (They didn't think 128MB was really quite enough, but it was a good start and they could get it funded, and it was still extravagantly large - they even had a 450MB disk drive just for swap :-)

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks