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."

166 comments

  1. First post algo by Anonymous Coward · · Score: 1

    And yet first posts never seem to get any faster

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

      return First_post_algo();

      --
      http://www.rootstrikers.org/
    2. Re:First post algo by Anonymous Coward · · Score: 0

      Cool first post you got there, but check out my doubles, bro.

    3. 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.

    4. 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!
    5. 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
    6. Re:First post algo by Ethanol-fueled · · Score: 1

      >>34663188

      Nice dubs, bro.

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

      Nix! It was MIX, betterunixthanunix.

      --
      http://www.rootstrikers.org/
    8. Re:First post algo by Anonymous Coward · · Score: 0

      >34663188

      Nice doubles brah.

      But check out mine.

  2. 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 MichaelSmith · · Score: 1

      At work I run fvwm with the mouse configured for left hand use with xmodmap and Button3 on the title bar set to close the window. Right handed users inevitably grab the mouse with their right hand and try to move a window with their Button1.

    3. Re:But we made up in ... by cskrat · · Score: 1

      I get a similar effect by using a Dvorak keyboard layout at work (keycaps still in qwerty). Great fun when a coworker tries to enter a password on my keyboard.

      --
      My God! It's full of eval()'s.
    4. 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.

    5. Re:But we made up in ... by MichaelSmith · · Score: 1

      I suppress titles on some window classes. NEdit has tabs and an information field to tell me which file has focus, so the title bar is redundant there. I might give your approach a go. It sounds interesting.

    6. Re:But we made up in ... by I(rispee_I(reme · · Score: 1

      I've always thought that people who insisted on left-handed mouse configs were pansies, and in fact, every one I've heard complain about it turned out to suffer chronic Munchhausen's syndrome, with many other symptoms.

      I am left-handed. The QWERTY layout is one of the few tools that is specifically biased in southpaws' favor. The keyboard is by most measures a more complex object than the mouse, the latter of which can be flailed about until it works.

      It's far easier to learn to use a mouse using your right hand than learn to type using the crappy half of the alphabet.

      Why would you ever want to take your smart hand off the good half of the keyboard? It's like ignoring a natural 20.

    7. Re:But we made up in ... by MichaelSmith · · Score: 1

      using a Dvorak keyboard layout at work (keycaps still in qwerty).

      :)

    8. Re:But we made up in ... by bzipitidoo · · Score: 1

      More screen space was one of the most important to me. You don't have to do as much moving and resizing ;). I was amazed what a difference it made moving from a 15" monitor at 1024x768 to a 19" monitor at 1600x1200. And now 24" wide screen LCDs and dual monitor setups are common. Keep the PDF viewer and browser with reference material and search results on one monitor, and have an integrated development environment on the other. I'm looking forward to 6'x3' tabletop size monitors.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    9. Re:But we made up in ... by MichaelSmith · · Score: 1

      The left handed configuration is more balanced. Backspace, delete and enter are both on the right side of the keyboard. I can select an object with my left and and activate it with the enter key using my right hand.

    10. Re:But we made up in ... by ToasterMonkey · · Score: 1

      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.

      I'm not going to argue that on a Linux desktop anyway, the special effects are mostly just that, special effects, but you might get yourself into a situation like in a car; ripping the sound dampening material out makes it more efficient, but is not worth it 99.9% of the time. Animation is used in interfaces on a couple OSs that will go nameless to provide a smooth visual transition from one state to another. It isn't a new concept, it's just easier to do with today's hardware. I think the problem is animation on a Linux desktop is implemented largely just to look cool, not serve a particular purpose. I think they only accidentally achieve the same goal as the source they borrowed the effect from in some cases.

      We could probably say color is not necessary in UI design too (the UI, not the rendering of things w/ color information), but that doesn't mean it isn't very useful when the hardware supports it.
      Repeat with mouse, pixilated graphics, sound, etc..

    11. Re:But we made up in ... by Undead+Waffle · · Score: 1

      The biggest flaw I see with your logic is that the mouse is more of a precision device, so it makes sense to use it with your stronger hand.

      I am left handed but I use the mouse right handed. Not because it's "better" but because it's a standard setup and there are so many right handed mice I don't want to limit myself.

      Also, when I'm using the mouse and keyboard together I'm rarely typing. Usually I'm hitting backspace/delete, enter, etc. Not that it matters that I have to reach my left hand across the keyboard because it takes me about as long to move my right hand back to the keyboard as it does to move my left hand back to where it should be.

    12. Re:But we made up in ... by martin-boundary · · Score: 1
      I also like to have the window titles displayed in the background menu, eg. something like

      DestroyFunc invokeRootMenu
      AddToFunc invokeRootMenu
      + I DestroyMenu recreate RootMenu
      + I AddToMenu RootMenu "r00tMenu [Desk $[desk.n]]" Title
      + I AddToMenu RootMenu "New" Function NewTerm
      + I All (Iconic,CurrentScreen) AddToMenu RootMenu ($[w.name])\ [$[w.desk]] WindowId $[w.id] SelectWindow
      + I All (!Iconic,CurrentScreen) AddToMenu RootMenu $[w.name]\ [$[w.desk]] WindowId $[w.id] SelectWindow
      + I AddToMenu RootMenu "" Nop
      + I AddToMenu RootMenu "Restart" Restart fvwm2
      + I AddToMenu RootMenu "Quit" Quit
      + I Popup RootMenu

      Ideally, if you open a lot of terminals, you'll want to display the current shell command in the title with something like BASH_COMMAND or whatever your shell uses. That way it shows up in the menu above. The trick is to update the title just before the command gets executed.

      To get the mouse behaviour I was talking about, try something along these lines:

      DestroyFunc KillMove
      AddToFunc KillMove
      + H Move
      + D Close
      + C Move

      DestroyFunc HideResize
      AddToFunc HideResize
      + H Resize
      + D Iconify true
      + C Raise
      + C Resize

      Silent Mouse 9 W N Function HideResize
      Silent Mouse 8 W N Function KillMove

    13. Re:But we made up in ... by 644bd346996 · · Score: 1

      My setup: A regular mouse on the right for gaming and occasional casual use, and a tablet for anything requiring precision or lots of GUI interaction (and for some RTS games). That way, I'm not developing muscle memory that is in any way backwards, but I still get to take advantage of the better dexterity in my left hand.

      I do quite like the layout of laptops like the MacBook Pro, with a big touchpad centered under the keyboard, so that you can use it with either hand. Even the multitouch gestures added by jitouch are ambidextrous, so I can switch between hands easily, depending on what side of the keyboard I need to use more.

    14. Re:But we made up in ... by MichaelSmith · · Score: 1

      I also like to have the window titles displayed in the background menu, eg. something like

      DestroyFunc invokeRootMenu
      AddToFunc invokeRootMenu
      + I DestroyMenu recreate RootMenu
      + I AddToMenu RootMenu "r00tMenu [Desk $[desk.n]]" Title
      + I AddToMenu RootMenu "New" Function NewTerm
      + I All (Iconic,CurrentScreen) AddToMenu RootMenu ($[w.name])\ [$[w.desk]] WindowId $[w.id] SelectWindow
      + I All (!Iconic,CurrentScreen) AddToMenu RootMenu $[w.name]\ [$[w.desk]] WindowId $[w.id] SelectWindow
      + I AddToMenu RootMenu "" Nop
      + I AddToMenu RootMenu "Restart" Restart fvwm2
      + I AddToMenu RootMenu "Quit" Quit
      + I Popup RootMenu

      Mouse 1 R A WindowList

      ...would appear to do the same thing apart from being able to add the extra functions to it.

    15. Re:But we made up in ... by samael · · Score: 1

      I can't talk about runtimes, but my window manager is currently taking up less than 3% of my CPU. If yours is sucking up dramatically more than that then I'm somewhat surprised...

    16. Re:But we made up in ... by martin-boundary · · Score: 1

      Oh yes, that's true. The built-in windowlist is pretty good, I just wanted to have a "New" terminal menu item when I wrote this a few years ago (the idea was to emulate the behaviour of the wm2 window manager which I liked). I should read the fvwm docs again one of these days, there's probably lots of new things to try :)

    17. Re:But we made up in ... by Anonymous Coward · · Score: 0

      There's a tradeoff in efficiency, but when you have prettier UIs, more people see the computer as an everyday appliance like a TV, cellphone, etc. and less as a scary, bewildering device that only nerds can decipher and use. It also makes you look less geeky when you're using a slick OS X GUI versus wm2 or a tiling window manager. Both of these things combined encourages more people to use the computer in their everyday life, not just when forced to use it for work. And more people using computers means better and cheaper computers for everyone.

      That said, it is a bit ridiculous that the same basic casual computing tasks (e.g. word processing, listening to music, watching videos, surfing the web, checking your email, etc.) requires so much more processing power today than it did 10 years ago. Sure, video resolutions have gone up, but modern OSes and desktop applications take way too much resources. I don't think GUIs are all to blame, but whatever it is, most people ought to be able to get by on just a cheap, low power Atom system. The ever decreasing cost of processing power shouldn't be canceled out by the every increasing processing power consumption of basic apps.

    18. Re:But we made up in ... by JamesP · · Score: 1

      let me guess, you use emacs...

      --
      how long until /. fixes commenting on Chrome?
    19. Re:But we made up in ... by jhol13 · · Score: 1

      It is not CPU time, it is wall clock time.
      BTW, this is one reason why web applications currently suck, they are extremely slow on best and make you wait for seconds and sometimes even longer on worst.

    20. Re:But we made up in ... by betterunixthanunix · · Score: 1

      I'm not going to argue that on a Linux desktop anyway, the special effects are mostly just that, special effects, but you might get yourself into a situation like in a car; ripping the sound dampening material out makes it more efficient, but is not worth it 99.9% of the time.

      Except that I never claimed that disabling the effects made me more efficiently, but rather that it did not make me any less efficient. The only effect that is remotely useful is the smooth transition between workspaces, mainly because it helps me subconsciously keep track of "where" I am without using a paging window; even then, only a couple frames of animation is really necessary. Beyond that? Translucent windows? Rotating cubes? Wobbly windows?

      Maybe you are right -- maybe the cool looking effects really are helping people get their work done on other OSes. Can you cite some research? Any sort of a study?

      We could probably say color is not necessary in UI design too

      It is not a question of what is "necessary," but rather, what is "useful" or "helpful." Color displays, when used properly, are useful, as you stated. My point was mainly that I never found most of the special effects to be useful or helpful, so I disabled them -- it means longer battery life (less time spent on graphics) without sacrificing my own ability to work. Again, if you can point me to a study that shows how these special effects have helped people get their work done, as opposed to just looking cool, I would love to read it.

      --
      Palm trees and 8
    21. Re:But we made up in ... by samael · · Score: 1

      Wall clock time? My PC never seems to be waiting on something being drawn, so I'm not sure why graphical fluff would be a problem.

    22. Re:But we made up in ... by jon3k · · Score: 1

      I'm a lefty at work too (and right-handed at home). Took a few weeks to get really comfortable using it, but I hope over a career in IT it will save my wrists splitting time between both hands.

    23. Re:But we made up in ... by jon3k · · Score: 1

      Rotating cube is nice because it helps me visualize what desktop I'm on, like you pointed out. Translucent windows is helpful because it allows you to work from a document behind (or slightly overlapping) a terminal without spending a lot of time managing windows (resizing, moving). Wobbly windows are just annoying.

    24. Re:But we made up in ... by jon3k · · Score: 1

      Depends on the web app. If you're refreshing entire pages against a slow web server I'd agree. Well designed web apps using DHTML (Javascript, CSS, et al) that reload only portions of the page (using things like AJAX and Comet) can make for great applications. GMail is a pretty good example.

    25. Re:But we made up in ... by St.Creed · · Score: 1

      When I studied computer science back in 1989 or so, my professor made a joke. He said that computing power would probably be used only to "draw an animated trashcan" and so we shouldn't be too wildly optimistic about increasing processing power. Ofcourse, we all had a big laugh.

      20 years later, the joke doesn't seem so funny anymore.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    26. Re:But we made up in ... by Anonymous Coward · · Score: 0

      What Linux window managers need is a simple slider control starting with low power requirements, through Windows, advanced (Gnome and Kde simple), and ending with max eye candy (Kde with all the effects turned on). This would allow converting microserfs to start with maximum compatability mode and migrate to more advanced settings as they become more skilled, as well as allowing the rest of us to easily tailor our resource use.

    27. Re:But we made up in ... by Anonymous Coward · · Score: 0

      You say that like it's a bad thing.

    28. Re:But we made up in ... by ChrisMaple · · Score: 1

      I'm ambimoustrous. The mouse is set for right-handed use, but I prefer to use it left-handed, except when I want to use it very fast (games). Generally, I'm right-handed. I've injured each upper arm once by having the mouse much too far off to the side.

      --
      Contribute to civilization: ari.aynrand.org/donate
    29. Re:But we made up in ... by White+Flame · · Score: 1

      I don't mind a nicely presented UI. What I *do* mind is UI effects that actually take time. Transitions, fades, and smooth expansions/collapsing of elements cause you to have to wait needlessly for your computer to perform a completely unproductive, time-taking activity, instead of immediately performing the requested visual change. The amount of time these things take up is incredibly noticeable when dealing with a UI-heavy workflow that you're well versed in, and turning them off IMO yields much better mental flow through the process.

      It's these things that actually *reduce* productivity. UIs looking nicer may not increase productivity, but processing a plain non-animated UI vs a nicely polished non-animated UI most likely isn't too different in CPU utilisation either, much less human-noticeable time.

    30. Re:But we made up in ... by damaged_sectors · · Score: 1

      What Linux window managers need is a simple slider control starting with low power requirements, through Windows, advanced (Gnome and Kde simple), and ending with max eye candy (Kde with all the effects turned on). This would allow converting microserfs to start with maximum compatability mode and migrate to more advanced settings as they become more skilled, as well as allowing the rest of us to easily tailor our resource use.

      For a moment there I thought you were being witty, sadly.... Anyway, KDE (3.x) has just that and it is a slider. Log in as a new user for the first time and you get to set the level of bling in preferences. I dont' know about other *nux desktop environment/window managers or KDE 4.

    31. Re:But we made up in ... by damaged_sectors · · Score: 1

      Rotating cube is nice because it helps me visualize what desktop I'm on, like you pointed out. Translucent windows is helpful because it allows you to work from a document behind (or slightly overlapping) a terminal without spending a lot of time managing windows (resizing, moving). Wobbly windows are just annoying.

      I've enjoyed wasting many hours setting up the cube and all the rest, tweaking Kaffeine so I could retain the window elements - lot's of fun. Then I removed it all to regain resources. Then I put it all back again when I recently upgraded - then I apt-get --purge removed it all again - to regain resources and stability. It doesn't play well with vms and X over ssh. But mainly I no longer use it because pretty as it is - I can't see it when I'm working - translucency is tiring in long session and defeats the purpose of my nicely backlit monitors, carefully selected black fonts on wheatstraw - and I can't see the other effects without minimizing windows. The bling is very popular with other people though - another reason it robbed me of productivity. Could be I'm just more easily distracted by shiny things than you (or my work is less interesting), or maybe because I'm the sort of cheap bastard who doesn't care about hubcaps because I can't see them from the drivers seat.

      I use KDE, I name my terminal sessions, Alt+tab cycles through open windows, Windoof+Tab cycles through workspace as does the middle mouse button on the desktop. I also only use 4 workspaces on boxen, 2 on portables - and if I can get away with it I'll kill kdm before compiling anything largish.

      Bling I do use is drop shadow. One piece of bling I would like, if I could find the time to do it, would be something to make finding the cursor easier on dual monitor setups when waking from screen blank - some way to enable a momentary big flash of colour instead of my usual wave, peer, hunt & hope.

  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"
    1. Re:In other words by JamesP · · Score: 1

      Well, they worked hard, studied a lot, improved the algorithms, lots of testing, implementation care, etc

      Then some doofus comes and does "select * from table;"

      --
      how long until /. fixes commenting on Chrome?
  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. How do you know then Moore's Law will apply? by serutan · · Score: 0

    There should be an algorithm for that.

    1. Re:How do you know then Moore's Law will apply? by Vlad_the_Inhaler · · Score: 1

      Patent it, this has to be stopped.

      --
      Mielipiteet omiani - Opinions personal, facts suspect.
  6. 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 Anonymous Coward · · Score: 0

      You must not understand a thing about programming if you believe that every programmer should have to rewrite the same algorithms over and over without any help from anybody else.

    2. Re:1000 fold by jedidiah · · Score: 1

      Someone still has to be able to write and maintain the API.

      It's like not being allowed to use a calculator in low level math.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:1000 fold by Anonymous Coward · · Score: 0

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

      Why not? All the ones that are even remotely competent have had all that time to learn more. Plus there are all the ones who started more recently and have at least had some of that time to learn more. After 15 years, we should be better both in terms of the total number of good programmers AND in the proportion of good programmers.

    4. 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.
    5. Re:1000 fold by FrootLoops · · Score: 1

      That's an exaggeration of the GP's point. Being able to implement classes efficiently if you have to is a very good skill. It's also not like programmers have until recently gotten strictly better with time. The early programmers who wrote everything in octal were probably much better at what they did on average than today's average coder.

    6. 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.

    7. Re:1000 fold by arth1 · · Score: 1

      No, but you should understand the algorithms you use, and be able to troubleshoot them, or replace them when needed. If not, you have no business using them -- then you're just connecting black boxes, which is as far from programming as stapling prefab is from carpentry.

    8. Re:1000 fold by SuricouRaven · · Score: 1

      On their hardware, they needed to be better.

      One of the programs I wrote needs to search an array of tens of thousands of 128-bit entries to see if a particular value is in there*, then repeat this hundreds of thousands of times for different searches. I know that the tidy way to do this would be to sort the array first, but I don't - because the thing is executing on a 2.4GHz processor, and I just can't be bothered to write a sorter and binary search just to save a few miliseconds off the processing time.

      *MD5sums of games, porn and lolcats. The program is used by a school to delete files the students shouldn't have.

    9. Re:1000 fold by namgge · · Score: 1

      I know that the tidy way to do this would be to sort the array first, but I don't - because the thing is executing on a 2.4GHz processor, and I ....

      Searching a sorted array is O(log(N)) and can have appalling cache performance. Consider using a hash-table to store the values and then testing for presence/absence of a value is O(1). Namgge.

    10. Re:1000 fold by SuricouRaven · · Score: 1

      You missed the point: That would require effort on my part. The linear search is inefficient, and slow, but it can be implimented in four lines of code. If the program wasn't for internal use only, then maybe I'd be bothered to do it right. Until either that happens or I find so many examples of Spongebob art the forbidden hashes list grows to an impractical size, I'll keep it as it is.

    11. Re:1000 fold by Kjella · · Score: 1

      The judging is solely on the algorithm, by comparing the O(N) functions.

      Hehe I once managed to put an expensive function inside the inner loop making a mostly O(N) function more like O(N^2)... that gets very noticable when you got 100k file hashes you're trying to match. It would have made a pretty good run for stupidest algorithm. But when you don't really have a benchmark, the results were correct it wasn't that obvious what I did wrong except it ran very, very slowly.

      --
      Live today, because you never know what tomorrow brings
    12. Re:1000 fold by Anonymous Coward · · Score: 0

      Relevant Paper

    13. Re:1000 fold by jadrian · · Score: 1

      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.

      I think you're forgetting about actually changing the hardware, in the former case.

    14. Re:1000 fold by Surt · · Score: 1

      I assumed the point was that the hash version should basically be the same four lines of code. Replace the array with a hash (set) at the instantiation and none of the rest of the code should have to change.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    15. Re:1000 fold by Anonymous Coward · · Score: 0

      Talking about this one?
      http://en.wikipedia.org/wiki/Bogosort

    16. Re:1000 fold by jc42 · · Score: 1

      Yeah; I think that's one of the seminal papers of the subject area. It mentions the sort algorithm that generates permutations and tests each one for being sorted. But it's more general, addressing the problem of solving a problem as reluctantly as possible, while demonstrably making progress with each step.

      There are suspicions that various commercial products were written by adherents of this school of software algorithms ...

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    17. Re:1000 fold by KeithIrwin · · Score: 1

      You consider n! slow? Really? Try the original bogosort algorithm as proposed by Jon Doyle when he was a researcher at CMU.
      1) Given a list of integers to sort, replace each integer in the list with the integer which represents the Ackerman function of that integer
      2) Sort the list using any other sorting algorithm you would care to use
      3) Take the inverse Ackerman function of each number of the list.

      Where v is the list of input values, this algorithm runs in time O(n*A(max(v)-1) (which is a worst case running time of O(A((2**n)-1)) ).

      You really think that factorial is slow? Ackerman. Ackerman is fucking slow.

    18. Re:1000 fold by Anonymous Coward · · Score: 0

      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.

      That's a Bogosort. The O(\infty) can easily be achieved by forcing permutations to appear which aren't sorted, but will lead to the themselves after a few repetitions again.

      Captcha: develop ... and the sounds of thrown chairs and chanting sound from Redmond.

    19. Re:1000 fold by FrootLoops · · Score: 1

      It depends on the language. Implementing binary search only takes a few lines as well, so maybe the language didn't have a convenient Sort function (VB6 didn't, /shudder). In that case maybe it didn't have a convenient hash set either. (If it did, of course it's worth the almost 0 effort of changing the class type.)

  7. 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."

    2. Re:What Good Lord Giveth ... by Anonymous Coward · · Score: 0

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

      Not to mention the next Windows "upgrade".

    3. Re:What Good Lord Giveth ... by drfreak · · Score: 1

      Sorry, no mod point as I replied to something else in the article, but please mod parent up "Funny As Shit!"

  8. 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 c.derby · · Score: 1

      i guess you didn't bother to read TFA....

      "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."

      --
      -- derby
    2. Re:Transistor increase with software? by Anonymous Coward · · Score: 0

      WHOOSH

      or is th

    3. Re:Transistor increase with software? by lostthoughts54 · · Score: 1

      Wow. lets see if i can explain your error.
      Moore's law describes a long-term trend in the history of computing hardware. The number of transistors that can be placed inexpensively on an integrated circuit has doubled approximately every two years
      It has nothing at all to do with processor speed or performance(although those are sideeffects) it only concerns itself with number of transistors.
      The comment is saying that moore's law is actually misleading or irrelevant, That algorithims speed us up more than more transistors(although that is very misleading).
      In order for "Progress In Algorithms Beats Moore's Law" to be true, that means the algorithm actually increased the number of transistors on the circuit(which is preposterous)
      so to quote the other guy,
      "So how did they magically increase the number of transistors using software? Oh whait, someone didn't know what Moore's law was..."

      TL:DR
      "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." has absolutely nothing to do with Moore's Law because Moore's law doesn't concern itself with performance. And the guy above u was correct in his comment.

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

      Virtual Machines?

    5. Re:Transistor increase with software? by Garble+Snarky · · Score: 1

      No, you're wrong. The article clearly states, in the passage that you quoted, that it is talking about performance gains due increased processors speeds which are clearly linked to Moore's law growth in transistor density. It doesn't say that Moore's law = improvement in performance. It doesn't say that algorithms are directly comparable to Moore's law. It says that both Moore's law and algorithm research lead to performance gains, and the gains in performance due to algorithm research are more significant, for a specific type of problem, over a specific time period.

    6. Re:Transistor increase with software? by cr_nucleus · · Score: 1

      What you don't seem to hear in this argument is that Moore's law is only about manufacturing process. It has no direct impact on performance so there is no point in mentioning it as far as performance is involved.

      What could be somewhat relevant would be a hardware architecture improvement vs software architecture improvements comparison.
      History shows us that it is indeed more relevant like when Intel went from the Pentium 4 to the Pentium M (i.e. Pentium 3 with a vengeance) eventually leading to the Core architecture.

      I sympathize with F.Ultra since it always irks me when someone talks about Moore's law in a discussion about processor speed.

    7. Re:Transistor increase with software? by F.Ultra · · Score: 1

      Which is all moot because More's law has nothing to do with performance. Anyway you put it the headline of the Slashdot article is wrong.

    8. Re:Transistor increase with software? by Anonymous Coward · · Score: 0

      Doubling the number of transistors doesn't have a direct impact on performance? That's a pretty loose definition of "direct". It means we can squeeze twice as many transistors into the same die. Tell you what, give me one example of where we saw a specific processor see a 2 fold increase in transistor density and the performance went down. I'm not sure if you're being overly pedantic or just not seeing the forest for the trees.

    9. Re:Transistor increase with software? by lostthoughts54 · · Score: 1

      I even pointed out that moore's law results in more speed.
      BUT MOORE's law had nothing to do with speed increasing, that is a side effect.
      So what u dont seem to get is we know comps have been getting faster and software advancement has caused it to speed up more but this is a moot statement when discussing moore's law....MOORE'S law is about fabrication not performance. So software advancement has no relation to it.

      We see what the guy is saying but he is saying it completely wrong.
      And for some people(seems i am not the only one) moore's law concept issues is sorta a pet peeve

    10. 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.

    11. Re:Transistor increase with software? by Anonymous Coward · · Score: 0

      That virtualize on the transistor level? God help us all.

    12. Re:Transistor increase with software? by Anonymous Coward · · Score: 0

      Sarcasm is great and all, but it shouldn't be modded up when it has no value. Parent post is in no way informative.

      If you want to learn about Moore's law, and what it might applies to, start here

    13. Re:Transistor increase with software? by Anonymous Coward · · Score: 0

      What you don't seem to understand is that the effect on performance is so blindingly obvious Moore didn't even need to state it - it was implied.

  9. 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 petermgreen · · Score: 1

      While processing power doubles every 18 months
      That may have been the case at one point but it hasn't been true recently.

      I bought the 13 inch macbook i'm typing this on over 3 years ago. It has a 2.16GHz C2D. When I look at laptops now I still see dual core chips at 2.GHz. Occasionally a quad core is seen but the clock speed (with all four cores running) is only arround that of my macbook (slightly over if you count turbo and buy the extreme edition).

      Over in desktop land a similar thing is true, by mid 2007 we had 2.67 GHz C2Qs. Now we have 3. GHz i7 quads and hexes.

      There has been improvement in the last 3 years but afaict it's closer to 2x than 4x.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    4. Re:Not so much by petermgreen · · Score: 0

      grr /. ate my angle brackets and everything inside them.

      "2." should have been "2.(something)" and "3." should have been "3.(low number)" (using ordinary brackets this time so /. doesn't eat them again)

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    5. 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.

    6. Re:Not so much by Anonymous Coward · · Score: 0

      Agreed, why bother with al-gorithms in the first place. We need better clock
      generators so we can Moore up the Processor Clock. With good Turbo and Nitro
      and Cooling and XTR timings you can bloody well have 5 or 6 GHZ. Yeeah!

      Also, why dont we build more boxes with acrylix windows? Put some blue lights
      and a some good leds and make 'em blink at hypnotic 4HZ and you know! it wont
      even matter if the explorers pause or so you still have plenty to look at.

      Incidentally, if we made us moore du7mber each 1,1/2 years by few points, we
      really could someday really make >human AI com true. In 10 more years maybe?

    7. Re:Not so much by Anonymous Coward · · Score: 0

      You're probably right... However, they could have tested against that and ruled it out.

      If you take an old algorithm and run it on modern hardware, and then run a current algorithm then you should be able to see an improvement. I didn't RTFA, but I just assumed (probably naively) that they thought of that.

    8. Re:Not so much by Anonymous Coward · · Score: 0

      He said processing power, idiot, not clock speed. Quit IT immediately, your geek card has been revoked.

    9. Re:Not so much by petermgreen · · Score: 1

      In the last few years those things have been very distinct
      P4 to core was a huge increase in performance per clock but that was some time ago and afaict increases since then have been more evoloutionary than revoloutionary.

      I stand by my statement that the improvement in the last 3 years is closer to 2x that 4x at least for CPUs that are available at anything like a sane price, The hex cores push that to 3x but only if you have a heavily multi-threaded workload and nearly $1000 to drop on the CPU alone.

      See for example an anadtech bench comparison of a Q6600 to an i7-950 http://www.anandtech.com/bench/Product/53?vs=100

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    10. Re:Not so much by Sparr0 · · Score: 1

      It is true in MANY senses. Take a game like Cube, which uses a very novel and efficient approach to representing and rendering a 3d world for a first person shooter. Send that code back in time to the day's of Wolf3D and it would blow them away on their same old-to-us hardware.

    11. Re:Not so much by QRDeNameland · · Score: 1

      I think you misinterpret what I mean by "true in any generic sense". I'm talking about the idea of algorithmic performance outpacing hardware performance applying across the board, as the article and summary seem to imply.

      I'm entirely aware that new innovative algorithms can make great improvements in specific cases. However, in the vast majority of technology domains, the performance gains of more efficient software rarely outpace the performance gains of hardware over time (in many cases the opposite, better hardware encourages *less* efficient software), yet alone at anything like what the summary is suggesting.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    12. Re:Not so much by Sparr0 · · Score: 1

      Do you have any counterexamples? That is, for what problems was the optimal algorithmic solution known 20 years ago?

    13. Re:Not so much by Pence128 · · Score: 1

      Cube requires more video ram than Wolf3D requires video ram, main ram, hard disk space and the disks it came on combined.

      --
      404: sig not found.
    14. Re:Not so much by QRDeNameland · · Score: 1

      Again, you misinterpret me. I never said more optimal algorithmic solutions are not being developed in any domain, just that the rate of performance gain from such optimizations are generally not as rapid as developments in hardware.

      For example, database technology. As mature a tech as that is, algorithmic improvements are being made every day, I'm sure. But you can't tell me that the improvement you get in database performance over the past 10 years is more due to better software than better hardware, let alone anything like a 43:1 ratio in favor of software that is being suggested here.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    15. Re:Not so much by drsmithy · · Score: 1

      Over in desktop land a similar thing is true, by mid 2007 we had 2.67 GHz C2Qs. Now we have 3. GHz i7 quads and hexes.
      There has been improvement in the last 3 years but afaict it's closer to 2x than 4x.

      A Core i series CPU is substantially faster at the same clock speed than a Core 2 series CPU.

    16. Re:Not so much by Anonymous Coward · · Score: 0

      The grandparent didn't say "clock speed doubles". It said "processing power doubles".

      And Moore said transistor count. Just like you occationally can increase performance by reducing the number of instructions you program uses you can also somtimes increase performance by reducing transistor count.

      Moores law/observation doesn't correlate perfectly with performance. It works a lot better with for example memory size. (Also uses transistors.)

    17. Re:Not so much by Dogtanian · · Score: 1

      While processing power doubles every 18 months

      That may have been the case at one point but it hasn't been true recently.

      I suspect that this is the common misunderstanding of Moore's Law. Although Moore's itself refers to the number of transistors, until recently it *was* fair to say that the Moore's increases were accompanied by broadly comparable increases in computational speed, and most people assumed that Moore's referred to the latter, or at least implied it.

      Although Moore's Law itself still hasn't been broken, the change in focus to multi-core processors (which I assume we both know *isn't* the same as a 2 or 4 times faster single core CPU) means that the commonly-assumed accompanying increases in true computational speed *has* been broken.

      --
      "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
    18. Re:Not so much by Sulphur · · Score: 1

      some good leds and make 'em blink at hypnotic 4HZ

      And if you make 'em blink at 8HZ, you might get a migraine.

    19. Re:Not so much by hitmark · · Score: 1

      indeed. Said "law" can either increase the number of transistors pr core, or drop the cost pr core as one manage to fit more cores pr wafer and so increase production yields.

      --
      comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
    20. Re:Not so much by Anonymous Coward · · Score: 0

      You're right, but the answer is even more complex than you describe.

      A CPU getting faster does almost nothing if your process is IO bound. But an algorithm that has a time/space tradeoff would benefit from having more memory if suddenly you have enough space to actually use this algorithm. 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.

      The fact that choosing the right algorithm, and software improvements in general beat the pants off hardware improvements is nothing knew, and has been standard doctrine in software development for 30+ years. The dumb part about the article is it simplifies this idea down to a single number, which is so ridiculous to be meaningless. The speed you get from hardware and software improvements cannot always be sol easily separated from one another. In my example of the time/space tradeoff algorithm (I know one such example exists in cryptography), which improvement would be responsible for the increased performance? I'd argue they're inseparable. I think this is the case in more instances than we might guess.

    21. Re:Not so much by Anonymous Coward · · Score: 0

      Mod parent up. If this claim were true in any generic sense, we'd see newer software generally running ever faster on older hardware

      The article doesn't make the claim that software in general gets faster, only that algorithms have improved performance more than hardware has. That's nothing particularly stunning, and it's something any programmer worth his/her salt knows inherently.

      The fact that software itself hasn't gotten much faster is really quite beside the point. Performance is but one aspect of the utility of software. People blame eye candy and anti-virus for performance losses with a pass of the hand and no second thought. I'm sure it's partially true, but I think it's but one small part of the picture. There's many reasons why performance of new software doesn't suddenly get better, but the primary one is it doesn't have to. Your word processor only has to be as fast as you can type, (or cut/paste). Any faster than that and it really benefits nobody. That also means any effort the developer expends on performance beyond "good enough" is a complete waste of his/her time.

    22. Re:Not so much by arth1 · · Score: 1

      P4 to core was a huge increase in performance per clock but that was some time ago and afaict increases since then have been more evoloutionary than revoloutionary.

      I stand by my statement that the improvement in the last 3 years is closer to 2x that 4x at least for CPUs that are available at anything like a sane price, The hex cores push that to 3x but only if you have a heavily multi-threaded workload and nearly $1000 to drop on the CPU alone.

      See for example an anadtech bench comparison of a Q6600 to an i7-950 http://www.anandtech.com/bench/Product/53?vs=100

      But again you're talking speed. That's what this benchmark measures. Moore's law, on the other hand, talks about number of transistors.

      The improvements that have come with the Westmere architecture are not to be scoffed at (unless all you look at are old code benchmarks[*]). Some of them include
      - 32 nm processing
      - six cores
      - L3 cache shared by all cores
      - huge page support
      - graphics processor inside the CPU packaging
      - lowered power usage
      - SSE 4.2 and AES-NI instructions
      - real mode virtualization
      - Obsoleting the North Bridge.

      [*]: The benchmark is also flawed for the purpose of looking at what's new, in that it measure code compiled for the older CPUs, not what's possible on the new CPUs. So it's useful in telling you how your existing programs will run, not in telling you how things optimized for the new CPU will run.

    23. Re:Not so much by Surt · · Score: 1

      Newer software is adding functionality faster than the algorithmic advances are making it faster.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    24. Re:Not so much by Anonymous Coward · · Score: 0

      The paper was published by an academic report to Congress. It's likely the authors are trying to influence Congress who won't understand better to steer money towards their computer science research rather than hardware research. As most people on Slashdot are pointing out, algorithm speed only affects specific problems Plus, many of these are driven by parallelism, which can hardly be called an algorithm only innovation.

    25. 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?
    26. Re:Not so much by Just+Some+Guy · · Score: 1

      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.

      I get what you're saying, but still agree with the article. There's one trivially simple algorithmic adjustment that's far more common now than 15 years ago: memoizing functions. I told a story a while back about changing a coworker's code from running for 4 hours to 8 seconds. The crux of the change was using a Python dict to store the output of a function and re-using it whenever possible, and the 99+% cache hit rate had a magical effect on runtime. It also took half a GB of RAM.

      That wouldn't have been a practical optimization 15 years ago, at least not on hardware then that would have been approximately as nice for the time as my company's current systems are. I didn't invent a better quicksort. I just used a basic, well-known method in a way that I couldn't have used it not so long ago.

      --
      Dewey, what part of this looks like authorities should be involved?
  10. 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.

    1. Re:45 years later by m50d · · Score: 1

      Facts are rarely sufficiently self-aware to be credulous or incredulous.

      --
      I am trolling
    2. Re:45 years later by Jonner · · Score: 1

      The fact that his theory has held up this long is incredulous.

      Stop anthropomorphizing facts! Actually, now that I think about it, a fact that doubts its own validity makes for a compelling character.

  11. 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
    1. Re:Moore's Law has nothing to do with speedup by Anonymous Coward · · Score: 0

      that was just the route they chose. We could have instead has redundancy

    2. Re:Moore's Law has nothing to do with speedup by ae1294 · · Score: 0

      that was just the route they chose. We could have instead has redundancy

      I canz hav redundancy?

    3. Re:Moore's Law has nothing to do with speedup by monkyyy · · Score: 0

      but they are connected and the fact most people think thats what it was with push capitalism to do so, it will hurt us one day when capitalism no longer fills the gap(capitalism is rather fat and probably wont fall in the gap just yet)

      --
      warning pointless sig
  12. 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
  13. are we stupid or something? by Nyder · · Score: 1

    I'm not sure they know what Moore's law is.

    Oh, a submission from tim? of course it's wrong.

    nothing new here

    --
    Be seeing you...
    1. Re:are we stupid or something? by Anonymous Coward · · Score: 0

      I'm not sure they know what Moore's law is.

      Yes, but do you know what Cole's Law is?

  14. 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.
  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!
    1. Re:Yeah, but things are still slower by Anonymous Coward · · Score: 0

      Yeah, because Win7 is such a hog compared to XP. I wonder if you did a check on Linux 2001 vs Linux today if you would make the same claims that it's Gates' OS that is bloat... I think you'd be in for a wicked surprise which OS has bloated the most in the last decade.

    2. Re:Yeah, but things are still slower by GofG · · Score: 1

      Hmm...

      I ran Linux in 2001 and I run Linux today.

      Aside from switching from Konqueror to Firefox and from OO.o to LibreOffice, I don't think I have added or subtracted a single piece of software in the interim.

      What are you talking about? Maybe Ubuntu is more bloat-ridden than distros a decade ago, but clean do-it-yourself linux distros like Gentoo and Archlinux still come with absolutely no bloat whatsoever, containing nothing except what you checked on a list.

      --
      GFA/M/S d-- s: a--- C++++ UBL++$ P+ L+++ !E- W++ N+ !o K- w--- !O !M !V PS++ PE Y+ PGP+ t+++ 5- X+ R tv@ b++ DI++++ D+ G
    3. Re:Yeah, but things are still slower by I(rispee_I(reme · · Score: 1

      I've always wondered how they get away with advertising each version of Windows as "the fastest version EVER!"... while steadily increasing the minimum hardware requirements on the box.

      You mean it runs faster on a faster computer? Gosh, bowl me over.

  16. 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
    1. Re:we lose sight of algorithmic importance by Anonymous Coward · · Score: 0

      What did you mean by iterative matrix solvers? n log n seems suspect, and I'm curious :).

    2. Re:we lose sight of algorithmic importance by cats-paw · · Score: 1

      how about n^2 log n ?

      Actually I think that multigrid methods, which are solving systems of equations really can be n log n. Admittedly it's been a while since I looked at it. However, the key is that the matrix should be sparse, and well conditioned. So the n log n bound is only going to be true for very specific problem domains.

      I could be wrong :-)

      --
      Absolute statements are never true
  17. Re:Actual text of statement on relative improvemen by jthill · · Score: 0

    Aww, jeez. There was a post saying they didn't know Moore's Law meant transistors, which I figured wsa ridiculous for a Presidential Commission, so I fetched the report and snipped it. Seemed to me the text must be buried a few link-layers or pages deep. It didn't occur to me it would be front dead center and about two thirds of the blog article. This is slashdot. I have no defense. .

    --
    As always, all IMO. Insert "I think" everywhere grammatically possible.
  18. Re:Actual text of statement on relative improvemen by pem · · Score: 1
    What about memory size?

    Without knowing about the "before" and "after" algorithm, it's hard to know if the "after" algorithm couldn't have been run earlier because there wasn't enough memory.

    I've written a lot of stuff that runs a hell of a lot faster lately, but I use a lot more memory than I did 20 years ago.

    Any realistic scenario will chalk up around a factor of at least 8000 to memory improvements, leaving, oh, maybe a factor of 5 to pure algorithmic improvements.

  19. 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.
  20. 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.

    1. Re:parallel algorithms by Anonymous Coward · · Score: 0

      It's an Arthur C. Clarke story, but I don't remember the title. I remember they built abacuses (abacii?) to calculate with.

    2. Re:parallel algorithms by Anonymous Coward · · Score: 0

      I believe that story is "into the comet" by Arthur c Clarke, they use abacus to do the calculations.

      Posted ac cause I can't remember my login on the phone

    3. Re:parallel algorithms by DerekLyons · · Score: 1

      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.

      Except - your descriptions don't prove this at all. The second one in particular gives us nothing but the name of the hero.

    4. Re:parallel algorithms by White+Flame · · Score: 1

      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.

      There's a stark difference in time scale. If you have 3 important steps that need to be done, you can have 3 people working on it for a few minutes each, double-check and cross-check their answers, and the next step happens when all are ready. In a computer, each step can be mechanically expected to perform the right answer, for many task-oriented problems, in a very small period of time. So much so that the overhead of setting up parallelism for those tasks and coordinating their results is slower than just performing them in series, plus is much more work than the human counterpart of dividing & conquering a task.

      Now, for a programmer to parallelize and coordinate more complex procedures is a different programming design challenge than just "Here's what needs to get done, sic humans on it until it's finished" and "Here's the procedure that needs to be carried out, encode it into the computer" which is what things have been based on so far. It's not hard, just different. Procedures are generally serially specified, even if only because that's a side effect of streaming human communication/linguistic style.

  21. Wirth's Law by $0.02 · · Score: 1

    Software is getting slower faster than hardware becomes faster

    --
    If enithin kan gow rong it whil. (Murfey)
  22. [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.

  23. 43,000 fold? by crf00 · · Score: 1

    I don't understand, how does it mean algorithm improvement of 43,000 fold? Who needs 43,000 fold when anyone can easily make 1,000,000 fold improvement!

    Proof:

    Let N=1000
    O(N^2) = 1,000,000
    O(N) = 1000
    O(log N) = 3
    O(1) = 1

    O(N^2)/O(1) = 1,000,000 / 1 = 1,000,000

    Wait till we made improvement in O(N!) problems like traveling salesman and see how huge improvement that's gonna be!

    1. Re:43,000 fold? by Anonymous Coward · · Score: 0

      You obviously fail at algorithm analysis.

  24. Not all algorithms can be parallelized by betterunixthanunix · · Score: 1

    As it turns out, some very important problems are inherently hard to parallelize:

    http://en.wikipedia.org/wiki/P_complete

    --
    Palm trees and 8
    1. Re:Not all algorithms can be parallelized by Anonymous Coward · · Score: 0

      You might want to read that a bit more closely. It specifically states that it is unknown whether or not NC = P, where NC is the class of (in vague terms) nicely parallelizable problems. That is, in fact, likely the most important open question in parallel complexity theory.

  25. Bubble sort by Anonymous Coward · · Score: 0

    Most of the improvement may have finally come from general abandonment of bubble sort for quicksort.

  26. Does This Account For Increases In Memory? by rsmith-mac · · Score: 1

    While processing power has increased over the years, the amount of memory that can be built in to a given amount of space has grown at a similar rate. So while it's easy to account for pure processing performance increases, what about algorithms that improved due to the space-time tradeoff, which would allow more complex algorithms that use more memory in return for requiring less processing time?

    It seems disingenuous to say that algorithm improvements beat Moore's Law if they're really just benefiting from Moore's Law by being allowed more memory. There's a distinct difference between "we can use a better algorithm because we have more memory" and "we've discovered a novel new & faster approach".

  27. Montgomery Scott school of programming by George_Ou · · Score: 1

    If you can make and algorithm 43000 times faster, that means the first version was utter garbage to begin with. By this standard, all a person needs to do is write an algorithm that is one million times less efficient than the hardware would permit. Then over 18 months, make the software progressively faster until it gets one million times faster and claim that you performed a miracle. I think this is the Montgomery "Scotty" Scott school of computer programing where you under promise a thousand fold but deliver a half ass effort to claim that you're a genius

    The ugly reality is that mainstream applications and OSes have slowed down more than the hardware has improved. That's disturbing considering the fact that hardware these days is about 10,000 times faster yet modern OSes are more sluggish than ever. Fortunately, people are waking up to this fact from instant computing devices like smartphones and tablets and once they've used instant computing, waiting 5 minutes for a computer to boot or even 45 seconds on a lean fresh install just won't be acceptable.

    1. Re:Montgomery Scott school of programming by Pentium100 · · Score: 1

      I do not really care about boot time (after all, the phone does not turn on instantly too), however, software andoperating systems did get slower over time with not much improvement to justify the slowness.

      For example, Windows Vista and 7 require much better hardware than Windows XP, but apart from the changes in GUI it's not much different. So, where do the clock cycles and memory go? Windows 2003 (fresh install) runs quite fast inside a VM on one of my PCs (3x Xeon 700MHz, 3GB RAM) with one CPU and 256-384MB RAM given to it. Windows 7 runs slow even with 1GB RAM given to it.

      Over time, electronic devices got more power efficient, even for the same type of device (cell phone, amplifier). Also, in a device, you can usually tell where the power is wasted - some component gets hotter. OTOH, software over time gets less efficient and needs more processor power to do the same thing that the previous version did.

  28. hi by Celina252010 · · Score: 1

    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. http://mybestpicksever.com/

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

    ... Murphy still holds the lead.

    --
    Have gnu, will travel.
  30. Top notch programmer by Anonymous Coward · · Score: 0

    The difference in between top notch programmer and the rest of the garden variety type is this -

    Top notch programmers are ever enthusiastic over the things they have produced while the rest - they are just coders.

    That's why top notch programmers keep on finding ways to optimize their algorithm while the rest ---> you know who you are and what you have been doing.

    1. Re:Top notch programmer by Anonymous Coward · · Score: 0

      I'm sorry I'm sorry!

      I had a deadline and then they took the code away!

      AAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHhhhhhhhhhhhhhhhhhhhhhhhhhhhh...[into the night]

  31. 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
  32. Re:Actual text of statement on relative improvemen by Lord+Byron+II · · Score: 1

    A similar thing has occurred over the last 30 years in the physics sub-field of quantum Monte Carlo. I forget what the numbers are, but it's something similar with the algorithmic improvements being like an order of magnitude greater than the CPU improvements.

  33. Yes! Faster bubble sorts! by mpaque · · Score: 1

    Ah, I remember looking at the sorting algorithm in a low level graphics library. Tightly hand coded, packed to keep every pipeline stage filled and make optimal use of all the parallel units in a VLIW graphics processor, it was probably the most efficient bubble sort I'd ever seen.

    I coded up a quicksort to about the same degree of tightness in a couple days, and, golly gee, a whole bunch of code suddenly got faster. Some MUCH faster... That was Lesson 1 for me. Optimize algorithms before optimizing implementations.

  34. What restraint! by Baldrson · · Score: 1

    Given the conflict of interest in the report evidenced by:

    Report to the President and Congress: Designing a Digital Future: Federally FUnded R&D in Networking and IT:

    It's amazing they didn't report a billion-fold increase in algorithms resulting from government funded R&D.

  35. When the phone reboots a few times a day by George_Ou · · Score: 1

    When the phone reboots a few times a day, boot time matters. Yes of course, the phone (android) shouldn't crash but it does.

    OSes on the other hand do need to be boot more, especially laptops if you don't want to lose charge in standby or you care about crypto which only works if you power off. In standby mode, people can freeze the memory and transplant it to another computer.

    The other problem is that OSes that boot slow also tend to run slow. The user interface slowness is something developers and product managers neglect all too often. That has worked for traditional computing products, but the public clearly likes a fast feeling OS. That's why the iPad does so well.

  36. Deployment has improved, not quality by scdeimos · · Score: 1
    From TFA:

    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.

    I for one am yet to see any major improvements in speech recognition in the last ten years. It seems that it plateaued around 1995-2000 and hasn't had any decent improvements since.

    Meanwhile, speech recognition has seen an increase in deployments in things such as:

    • voice-driven menu systems... "I'm sorry, did you say 'put me through to an terminator'?", and
    • speech-to-text voicemail... Telstra in Australia is a classic for this, with voicemail SMS's being nearly incomprehensible in conjunction with changing peoples' names such as "Royce" into something completely different such as "Melissa". wtf?

    Speech recognition still has a long way to go me thinks.

    1. Re:Deployment has improved, not quality by rubycodez · · Score: 1

      if it's any consolation, human brains still struggle with speech recognition of Australians too

  37. Re:Actual text of statement on relative improvemen by hardwarefreak · · Score: 1

    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 prof is fibbing. The gains are mostly in the big on-die L2 cache with its fat, core clocked dedicated backside bus (thanks to Intergraph, and Intel for stealing it from them, then AMD, IBM, et al). The prof simply shrunk the code and data set to fit (mostly or wholly) in the 512KB/1MB cache of their 2003 era Athlon XP/Pentium IV. As with most apps, it's all in the ca$he baby, all in the ca$he.

  38. It Makes Sense by lsatenstein · · Score: 1

    When I started, we had 8 bit processors and no 32 bit arithmetic support. We had to code 32bit arithmetic ourselves. Today we have 64bit arithmetic, and shortly, 96 or 28 bit arithmetic will be common in a few years.

    --
    Leslie Satenstein Montreal Quebec Canada
  39. Prior knowledge of the problem? by npendleton · · Score: 1

    Transistors and processing power help with all problems. Algorithms fall into two categories, generalized and specific. Generalized Algorithms help all problems that relate, but rely heavily on processing power. If you can identify a specialized problem, then a specific algorithm(s) can slash time to compute drastically. To achieve these 43,000 times improvements, one needs to know the data before computation. A better image compression algorithm, e.g. jpeg2000, is only useful if you have raster image data with large deployed color depth. If all images were compressed by competition between specific algorithms, such as gif, png, jp2000, then the server has to compute the compression of each, so that all users can enjoy the speed increase (network speed, drive storage space, ram storage, decompress time) that comes from smaller files. The server still has to compress the one file many times to select best outcome, which is not a speed increase at all for the server, even if all users of a website such as google would benefit from less bandwidth and processor speed. Specific algorithms need to be flawlessly implemented on all systems, taking considerable development time and money. Generalized algorithms combined with faster processors is how most net data will likely be transferred. The specific algorithms will likely live on servers where all data can be stored as highest quality data, e.g. jp2000, and then converted when needed to .jpg for end users, to maximize the number of users that can benefit from the service.