Slashdot Mirror


The Future of Computing

An anonymous reader writes "Penn State computer science professor Max Fomitchev explains that computing has evolved in a spiral pattern from a centralized model to a distributed model that retains some aspects of centralized computing. Single-task PC operating systems (OSes) evolved into multitasking OSes to make the most of increasing CPU power, and the introduction of the graphical user interface at the same time reduced CPU performance and fueled demands for even more efficiencies. "The role of CPU performance is definitely waning, and if a radical new technology fails to materialize quickly we will be compelled to write more efficient code for power consumption costs and reasons," Fomitchev writes. Slow, bloated software entails higher costs in terms of both direct and indirect power consumption, and the author reasons that code optimization will likely involve the replacement of blade server racks with microblade server racks where every microblade executes a dedicated task and thus eats up less power. The collective number of microblades should also far outnumber initial "macro" blades. Fully isolating software components should enhance the system's robustness thanks to the potential of real-time component hot-swap or upgrade and the total removal of software installation, implementation, and patch conflicts. The likelihood of this happening is reliant on the factor of energy costs, which directly feeds into the factor of code optimization efficiency."

17 of 184 comments (clear)

  1. Bloat by metamatic · · Score: 3, Insightful

    Every time I think software can't get any more bloated, I wait a year or two and it doubles in size again.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Bloat by euice · · Score: 5, Insightful

      Well, they keep thinking that 100 developpers can do the same job as a handful of good developpers. That's wrong most of the time, as in "9 women can have one baby in one month".

    2. Re:Bloat by metamatic · · Score: 4, Insightful

      No, bloat is avoidable yet not avoided in high level languages too. For example, I wrote an RSS and Atom library in Ruby, because I didn't like the one in the standard library--it was ugly code and badly documented. I expected my replacement to be slower and larger, because it was clean understandable code. To my surprise it was half the size and twice as fast. But we're still stuck with the crappy one, because it was the first one hacked together and therefore became part of the standard libraries. And that's the root problem--we have a culture where implementation speed is valued over everything else.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    3. Re:Bloat by bit01 · · Score: 3, Insightful

      certain tasks simply cannot be split up.

      That's a popular idea. It's almost always wrong.

      It may be true that something can't be split up well automatically but pretty much any practical task can be parallelized to some degree manually.

      Seriously, I challenge anybody here to name even one real-world CPU or IO intensive task that cannot be split up. Even things like encryption and compression can be pipelined and there are complicated mathematical and statistical tricks including speculative execution that can be applied as well.

      It may not be cost effective to do the split but if money is no object some parallelism will almost always help. Yes, tasks can have chokepoints but these become irrelevant if you can parallelize the work before and after the chokepoint.

      There are obscure mathematical exceptions, dependencies on external events and it may be hard to do with the tools being used but that's not what I'm talking about here.

      ---

      Creating simple artificial scarcity with copyright and patents on things that can be copied billions of times at minimal cost is a fundamentally stupid economic idea.

  2. This is called "the wheel of reincarnation" by davecb · · Score: 2, Insightful

    The Foley and van Dam classic, "Fundamentals of Interactive Computer Graphics" cites Myer and Sutherland's description of adding more intelligence to graphics processors until they become the equivalent of CPUs, at which point they repeatedly find themselves slower than mass-production CPUs and are turned back into simple devices driven by fast external CPUs once more (;-))

    --dave

    --
    davecb@spamcop.net
    1. Re:This is called "the wheel of reincarnation" by Anonymous Coward · · Score: 1, Insightful

      This is true in many cases but *not* for graphics processors. nVidia and ATI *can* compete with CPU makers because they do mass-production too. Among all the things you could have said, you chose to quote that book in possibly the only place where it's wrong? You made my day.

    2. Re:This is called "the wheel of reincarnation" by ChronosWS · · Score: 2, Insightful

      Was that a revelation? This has been going on for years, although at the present time I do not see specialized graphics CPUs losing any ground to their general CPU bretheren, in large part because they are architected as part of a complete system which is designed entirely for massive data manipulation but no expansion, random peripherals or anything else. So long as that architectural decision remains, it's unlikely we will see the downward spiral of performance predicted. But that's just my opinion.

  3. The future of software by aersixb9 · · Score: 1, Insightful

    Although the universitys are pumping out thousands of qualified, certified programmers, there doesn't seem to have been any great innovations in software since Wolf3d & Office...And perhaps AOL & TCP...we need another new 'genre' of software...just for fun, here's the genres I can think of off hand: POS/Inventory, Email, File Sharing / Downloading, FPS, Paper Preperation, Scheduling and Coordination, motor control (fuel injectors / cars), RTS, Strategy/War, MMORPG, MMOFPS, Textgames, 2d photo/art, 3d modeling/art, business simulation, flight simulation, car/driving games, publishing (via the web),...and, uh, I'm probably forgetting a bunch, such as program building software (compilers, visual studio) and much more...although the future of computers is probably neat new software, that may or may not require more mhz, and not necessarily more mhz that allows the current styles of software to get more refined.

  4. Wirth's law by mangu · · Score: 2, Insightful
    "software is getting slower faster than computers are getting faster"


    That's why I don't buy those Python/Ruby/Java productivity boasts. I'd rather do it efficiently in C/C++ right now than wait for a faster CPU that may never come.

    1. Re:Wirth's law by Bert64 · · Score: 2, Insightful

      Typically more time is spent running the code than writing it...
      For a one-off script that's gonna be run once and never used again, slow inefficient code that's quick to write makes sense... But for the majority of code that's going to be run over and over again, the time you saved writing the code could be wasted 10 times over waiting for it to run.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  5. small code is hard work by NotInTheBox · · Score: 4, Insightful

    Writing small is difficult and I don't think it can be done in a group. Most software which is small is written bij less then 3 programmers.

    Compare: "Easy writing makes hard reading." -- Ernest Hemingway

    --
    What I cannot create, I do not understand
  6. The future of computing is transparent. by The+Living+Fractal · · Score: 5, Insightful

    Today we have bulky boxen and entire rooms filled with computers. We have computers taking up space in our offices and homes. We dedicate energy to just keeping them cool. Tommorow (ok, so not really tommorow, probably in the semi-distant future) we won't really see computers at all in terms of our daily routines. They'll be so miniaturized as to become transparent. The only aspect of computing we'll see in our daily lives will be the user interfaces. The actual computers themselves will be invisible, or at least barely noticeable. They'll become mere extensions of our every whim, capable of reinforcing and improving our minds in a seamless fashion. That, I believe, is the future of computing.

    Take for example Google. What happens when you can query a search into google without actually interfacing with an external device like a laptop with a wireless internet connection? Or into Wikipedia? You'll be able to answer questions within seconds of being asked. Maybe less. This is a bigger change than you might think. Where does this leave conventional schooling, for example?

    To me, it's exciting. And I wish it were here already.

    TLF

    --
    I do not respond to cowards. Especially anonymous ones.
  7. Re:virtualization, generators, and languages by kfg · · Score: 2, Insightful

    . . . he doesn't know much about predicting the future

    Be vague.

    KFG

  8. Cart before the horse by Anonymous Coward · · Score: 1, Insightful

    Throughout the article, he tries to make it seem like CPUs got "better" and then people tried to make apps that used that new CPU power. Ummm, not from where I sit...people wanted more CPU power and the manufacturers gave them what they wanted. I agree that RAM is the bottleneck, BUT I completely disagree with his assumption that people will switch to "green" computers because they save power.
    Try telling your mutual fund manager not to move several billions of dollars in a trade, because the "green" computer is not through computing, while his competitor (who doesn't use the "green" computer) has just made an extra few million for his clients :-)

  9. Re:Time to pull out my... by Jugalator · · Score: 2, Insightful

    Seriously, WHY DOES it take a 4ghz computer to play solitaire?

    Even Vista only requires a ~800 MHz computer for the "Vista Capable" label, stupid! ;-)

    Seriously, if all you want to do is to play Solitaire, why don't you grab MS-DOS and a DOS version of Solitaire and check the minimum requirements? Chances are it'll end up at something less than 8 MHz at least. But it won't be that suitable for many other modern world scenarios than playing Solitaire, you won't get something too much better than monochrome text graphics, you won't get good multitasking, no networking support or advanced features like domains or preparations for remote desktop, no USB support, and so on ad infinitum... And there you have a hint in why this looks the way you're wondering.

    Modern operating systems are to be prepared for *everything* (or so the philosophy goes at least), and the users should basically just be able to press "Next" in the install process, and then it should be able to do everything listed on a website that don't know the user at all, but still have that big shiny list of stuff advertising what it can do. Guess what happens in the OS design process and how much is installed, and how high the requirements become?

    Of course, minimalist freaks that still needs to use Microsoft software can take a look at Windows CE for embedded devices, or the upcoming "Windows Fundamentals for Legacy PCs" for something XP-like that has already been shown to only need 64 MB RAM in a review.

    --
    Beware: In C++, your friends can see your privates!
  10. microblade... huh? by Anonymous Coward · · Score: 1, Insightful

    "...and the author reasons that code optimization will likely involve the replacement of blade server racks with microblade server racks where every microblade executes a dedicated task and thus eats up less power."

    Huh? The reasons that blades sell is because they are economically efficient. Creating multiple "single task" physical blades to replace a single more powerful virtualized blade is not cost efficient. In the microBlade, you multiply the number of common components needed to run an independant system (I/O, memory, core chipset, etc) which costs more in absolute terms, costs more in power, and costs more to manage. If the microblade is less powerful than the macroblade, what do you do when you need the macroblade's execution power? Cluster a bunch of microblades together? Not real effcient.

  11. LACK of power created demand for multitasking by Sloppy · · Score: 2, Insightful
    What a twisted perspective:
    So as CPU power grew to meet specific tasks we wanted our PCs to perform it became too much for general tasks such as text editing or spread-sheeting. That extra power just as in the case of old mainframes led to the adoption of multi-tasking operating systems on desktop and personal computers. We had extra power and we wanted to do something with it.

    Multitasking is for getting the most our of your computer (whether it's fast or slow) but pays off most rewardingly when it's slow. If processors and I/O were infinitely fast, people wouldn't give a damn about multitasking, because they would never be waiting for their computer to complete a task. It's when you have to wait for something that you most enjoy multitasking; it lets you use your machine for doing something else instead of twiddling your thumbs staring at the progress indicator.

    Let's say you want to render a graphics scene, download a file, and edit a text document. An MSDOS user would do those things serially, sadly knowing that:

    • while he was rendering, his serial port was idle
    • while he was downloading, his CPU was nearly idle
    • while he was editing, his serial port and CPU were both nearly idle

    And this was true whether it was a 4.7 MHz XT or a 100 MHz 486. "Extra power" had nothing to do with it. Indeed, the 486 user probably lamented MSDOS' lack of multitasking less (not more, as the author suggests) because the rendering would be so much faster.

    Meanwhile, the 7 MHz Amiga user, despite the seemingly "wimpiness" of his machine (HA!), did all three operations in parallel. His CPU stayed at 100% utilization, his serial port downloaded as fast as it could, and his text editor easily kept up with his typing. The Amiga user gets the most out of his machine. Not because the Amiga is fast, but because multitasking mitigates slowness.

    It's the mere desire to get the most work done, that led to multitasking on personal computers. It wasn't the "extra power" that did it. It just seemed that way to the x86 users (and probably only the x86 users) because the slow chips (8086) just happened to have very poor support for multitasking compared to the fast chips (80386). So multitasking appears to correlate with speed. But for the x86ers, it was really a question of CPU features, rather than performance.

    The crux of the author's error is this: "We had extra power and we wanted to do something with it." He has forgotten that "we wanted to do something with it" whether or not we had "extra power."

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.