Slashdot Mirror


Intel's Single Thread Acceleration

SlinkySausage writes "Even though Intel is probably the industry's biggest proponent of multi-core computing and threaded programming, it today announced a single thread acceleration technology at IDF Beijing. Mobility chief Mooly Eden revealed a type of single-core overclocking built in to its upcoming Santa Rosa platform. It seems like a tacit admission from Intel that multi-threaded apps haven't caught up with the availability of multi-core CPUs. Intel also foreshadowed a major announcement tomorrow around Universal Extensible Firmware Interface (UEFI) — the replacement for BIOS that has so far only been used in Intel Macs. "We have been working with Microsoft," Intel hinted."

182 comments

  1. Overclocking? by Nuffsaid · · Score: 4, Insightful

    For a moment, I hoped Intel had come out with something like AMD's rumored reverse-Hyperthreading. That would be a real revolution!

    --
    Nuffsaid
    ________

    Don't know about his cat, but Schroedinger is definitely dead.
    1. Re:Overclocking? by Aadain2001 · · Score: 4, Informative

      I did my MS thesis on a topic very similar to this. Trust me, it's not worth it. While some applications that have inherent parallelism (image manipulation, movie encoding/decoding, etc) can see between 2x to 4x improvements when dynamically threaded, the majority of your basic applications are too linear and have too many dependencies between instructions for dynamic threading to really be worth the investment in hardware.

      --
      Space for rent, inquire within
    2. Re:Overclocking? by Spokehedz · · Score: 3, Funny

      See... I thought it was from that Red Dwarf episode, where Kryten put all the CPU time through one processor--exponentionally increasing it's computing power, but shortening it's overall lifespan.

      Holly only had 3min before she would be gone forever... And that bloody toaster had to ask if she wanted toast.

      Lets hope that Intel has solved this issue with their new CPU's.

      I for one which welcome, in soviet russia we compute you, and PROFIT!

    3. Re:Overclocking? by Joe+Snipe · · Score: 1

      I think a more coherent sig might be:
      In soviet russia, Overlord welcomes you, and PROFIT!

      --
      Sometimes, life itself is sarcasm...
    4. Re:Overclocking? by baadger · · Score: 3, Funny

      Lister: No, I don't want any toast. In fact, no one around here wants any toast. Not now, not ever. NO TOAST. OR muffins! We don't LIKE muffins around here! We want no muffins, no toast, no teacakes, no buns, baps, baguettes or bagels, no croissants, no crumpets, no pancakes, no potato cakes and no hot-cross buns and DEFINITELY no smegging flapjacks!

      Talkie Toaster: Ahh so you're a waffle man.

      ..off topic... so shoot me.

    5. Re:Overclocking? by Anonymous Coward · · Score: 1, Interesting

      Hey, I only thought about this for 2 seconds but I can see a potential idea. In today's processors there are very powerful branch predictive circuits, speculative execution logic, etc. All of these contribute to the performance gains we've seen over the years. So if you have an idle core why not essentially make it do a fancier version of predictive/speculative work? Basically you have two cores with the 2nd always taking the opposite branch of the first. Whichever path turns out to be the right one, switch processing to that core and keep going. Internally to each core this is already going on but separate processors couldn't do this because of latency and synchronization issues, but I fail to see why cores on the same silicon couldn't.

      Again, it's possible there are some MMX or SIMD instructions that might be parallelized over cores as well... If you have to operate on a vector of things odds are you can cheat somehow.

    6. Re:Overclocking? by Aadain2001 · · Score: 2, Interesting

      Those are all good ideas that have already been explored. The bottom line in most of these designs is that you don't get much ROI in the form of decreased execution time. For highly specialized applications that have little data inter-dependence, there is a significant increase, but you could get the same anyway by making the program multi-threaded and told to use both cores. Parallel programming is not simple for most applications since they cannot be broken down into many if any parallel tasks to make the error worth the time and effort. The area that Intel/AMD/etc should be targeting is multi-tasking: play a video game while encoding a movie and running Folding@Home without a performance drop in any of the programs.

      --
      Space for rent, inquire within
    7. Re:Overclocking? by samwichse · · Score: 1

      Hmmm... this has some interesting implications for multicore licensing.

      For instance, I work at a university and one of the labs uses a specialized number crunching program that scales almost perfectly with the number of cores (extremely parallelizable).

      However, they run it on a dual, dual-core Opteron machine. The program's license only lets it run on "two processors" where a processor is defined as a core. With tech like this reverse hyperthreading, even if it weren't quite as efficient, we could run it on all four cores without paying an extra $4000/core because each dual core would appear as a single processor.

      Sam

    8. Re:Overclocking? by IceDiver · · Score: 1

      The area that Intel/AMD/etc should be targeting is multi-tasking: play a video game while encoding a movie and running Folding@Home without a performance drop in any of the programs.

      That's one reason multi-core CPUs were developed. At some point, however, Intel and AMD are going to have to begin increasing clock speeds again. The reason is that many problems (and the programs that solve them) can't be broken into parallel tasks and thus adding cores doesn't help. Only a clock speed increase can speed them up.


    9. Re:Overclocking? by Chandon+Seldon · · Score: 1

      That'd be breaking the license just as much as hacking your license data to say "licensed for 4 processors".

      I bet that for the price that you're paying for that software, you could have some undergrad rewrite the application slightly less efficiently and then buy another 8 Opteron boxes to run the new slower software on in a cluster.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    10. Re:Overclocking? by ScrewMaster · · Score: 1

      What novel was it where researchers found hidden messages from whoever created the Universe (God, aliens, whatever) when the value of Pi was calculated out to some enormous number of digits? I guess if we're ever going to find those messages we're just gonna have to bump the clock speeds up some more.

      --
      The higher the technology, the sharper that two-edged sword.
    11. Re:Overclocking? by ckaminski · · Score: 1

      Contact by Carl Sagan.

      Last page, or thereabouts...

    12. Re:Overclocking? by WgT2 · · Score: 1

      Interesting. That is exactly what I was wondering: would turning one core off and then 'turboing' the other core cause the later to... 'how to say?'... break?

  2. Re:Who cares? by nbritton · · Score: 1

    To a degree.

  3. complexity/stability by ushering05401 · · Score: 1

    I don't follow hardware and I don't write multi-threaded apps so i could be way off on this... But with the sheer volume of poorly designed/implemented single threaded applications wouldn't it be asking for trouble to urge speed in the industry conversion to the increased complexity of multi-threaded solutions?

    Y'all multi-thread developers take as much time as you want.

    Regards.

    1. Re:complexity/stability by Anonymous Coward · · Score: 0

      I do some coding, very minor, usually personal projects.

      Yesterday, I came across a few ideas where multiple threads would be useful, and I figured since the hardware/CPUs exists (multiple cores, hyperthreading) for this sort of thing, I looked up how to clearly do this. (The reasons were mpeg transcoding/encoding, 3d/ray tracing of multiple animation sequences, and dna sequencing.)

      HOLY *#@%!

      Besides a near total lack of clear documentation, there is even inconsistent use of terminology it seems by those in the field. I had to dig quite a bit just to find some commentary even in some languages. For example, in perl, while it has the meat to fork and what not, it doesn't seem to do it well, and most think it's a losing proposition on perl5, suggesting to wait for perl6.

      Just because you call for a thread or a fork, it also seems it doesn't necessarily mean the processor's capabilities will be used. I mean, hell, if I can't even figure out if an OS utilizes a processor correctly (ever read those notes? rather difficult to parse to find something specific many times), how the hell do you get around to coding for it? Just code it in, and cross your fingers and hope your efforts aren't wasted? Even some of the research papers on the topic were laughable; it seemed the only way even the coders knew if something worked wasn't documentation or a clear logical argument, but by setting up a machine and testing the code to see if it hopefully ran faster in proportion to what was expected.

      Not only all that, but even experienced coders and applications seem to not do it so well--there was a somewhat recent article on Toms Hardware, where they said only 2 apps really seemed to use multiple cores well, and then, none of those 2 took advantage of more than 2 cores (4 cores showed really no proportional benefit). Hell, if paid commercial programmers of Adobe can't even do it right, how the hell do most of us pull it off?

  4. Why the surprise? by something_wicked_thi · · Score: 2, Interesting

    It makes perfect sense that you'd still try to speed up single-threaded applications. After all, if you have 4 cores, then any speedup to one core is a speedup to all of them. I realize that's not what this article is about. In this case, they are speeding up one at the expense of the other, but the article's blurb makes it sound like Intel shouldn't be interested in per-core speedups when that is clearly false.

    1. Re:Why the surprise? by mwvdlee · · Score: 1

      I thought so too, until I actually read TFA.
      This optimalization essentially shuts down the other cores in order to let the remaining core perform faster.
      So this optimalization is counterproductive when you have applictions that actually use multiple cores.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:Why the surprise? by something_wicked_thi · · Score: 1
      Hmm? I thought I said that... However, I have a problem with something in your post: this optimization doesn't hurt apps that use multiple cores because it is enabled only when one core is idle.

      Sorry to be so pedantic. I'm sure you knew that, but I don't like leaving misinformation lying around for other readers, even if this is Slashdot. grin

  5. Re:Who cares? by mfaras · · Score: 1

    Well... that depends.

    How good is linux's support for UEFI?

    This "single thread acceleration" will have to be supported by the OS?
    Does it have the potential to break a half-bad application?

    --
    Every time your page doesn't validate, the W3C kills a foxy.

  6. EFI used by more than Apple by EMB+Numbers · · Score: 3, Informative

    EFI is used by more than just Apple. For example, HP Itanium systems use EFI. By virtue of being "extensible", EFI is vastly better than the BIOS which has frankly failed to evolve since Compaq reverse engineered it in the early 1980s.

    It is well past time that BIOS went to the grave.

    1. Re:EFI used by more than Apple by pla · · Score: 4, Insightful

      By virtue of being "extensible", EFI is vastly better than the BIOS

      Yeah... Why, that nasty ol' standard BIOS makes hardware-level DRM just so pesky. And vendor lock-in for replacement hardware? Almost impossible! Why, how will Dell ever survive if it can't force you to use Dell-branded video cards as your only upgrade option? And of course, WGA worked so well, why not include it at the firmware level? Bought a "OS-less" PC, did we? No soup for you!


      Sorry, EFI has some great potential, but it has far too much potential for vendor abuse. The (somewhat) standardized PC BIOS has made the modern era of ubiquitous computers possible. Don't take a "step forward" too quickly without first looking to see if it will send you over a cliff.

    2. Re:EFI used by more than Apple by ThisNukes4u · · Score: 2, Informative

      And besides, most modern OSes basically relegate the bios to the back burner. Its not like we're still calling bios interrupts from DOS anymore.

      --
      thisnukes4u.net
    3. Re:EFI used by more than Apple by Bozdune · · Score: 1

      Its not like we're still calling bios interrupts from DOS anymore.

      Speak for yourself! I, for one... oh, never mind.

    4. Re:EFI used by more than Apple by 99BottlesOfBeerInMyF · · Score: 3, Insightful

      Yeah... Why, that nasty ol' standard BIOS makes hardware-level DRM just so pesky.

      Not really. It just makes improvements and DRM hacks. Add a TPM module to a BIOS-based system and include support in the OS and it will be just as effective for MS's purposes as an EFI one. BIOS makes modern hardware a pain in the butt. The fact that DRM modules are modern hardware is sort of orthogonal to the issue.

      And vendor lock-in for replacement hardware? Almost impossible! Why, how will Dell ever survive if it can't force you to use Dell-branded video cards as your only upgrade option?

      Umm, Dell is not even the biggest player in a market that is not monopolized. If Dell requires Dell branded video cards and people care (most probably won't) then people will switch to a vendor that does not do this and Dell will change or die. I don't think Dell or any other PC vendor has enough influence to force such a scheme upon the existing graphics card makers. Only MS really has that much influence and I don't think they have the motivation.

      Bought a "OS-less" PC, did we? No soup for you!

      I don't think you have to worry about this problem unless you're running Windows on it.

      Sorry, EFI has some great potential, but it has far too much potential for vendor abuse.

      I disagree. I don't see that vendors will abuse this any more than they already abuse BIOS. In any case, the change is coming. You just need to decide which side of the curve you want to be on. (Typed from an EFI laptop.)

  7. EFI by Anonymous Coward · · Score: 2, Informative

    Universal Extensible Firmware Interface (UEFI) -- the replacement for BIOS that has so far only been used in Intel Macs


    Really. I know Google is hard to use, but even Wikipedia would have given some detail on EFI history. (Hint: Itanium only ever used EFI). And it turns out that Macs are not even the first x86 machines to use it, either:

    In November 2003, Gateway introduced the Gateway 610 Media Center, the first x86 Windows-based computer system to use EFI. The 610 used Insyde Software's InsydeH2O EFI firmware, based on the Framework. It still relied on a legacy BIOS implemented as a compatibility support module to boot Windows.

    And there is always XScale.
    1. Re:EFI by Anonymous Coward · · Score: 0

      Oh, come on. He did say "used".

      Q: What's the difference between a Mac user and an Itanium user?
      A: What's an Itanium user?

  8. A Marketing Triumph by sibtrag · · Score: 5, Informative

    Intel's "Enhanced Dynamic Acceleration Technology" is a triumph of marketing. Notice how the focus is on the transition where one core becomes inactive and the other one speeds up. This is the good transition. The other transition, where the chip workload increases & voltage/frequency are limited to keep within a power envelope, is called "throttling" and is much disliked in the user community.

    Don't get me wrong, this is valuable technology. It is important that microprocessors efficiently use the power available to them. Having a choice on a single chip between a high-performance, high-power single-thread engine & a set of lower-performance, lower-power engines has great promise. But, the way this is presented is a big victory for marketing.

    1. Re:A Marketing Triumph by Anonymous Coward · · Score: 0
      I tried rereading your post several times and it looks like random babbling. Are you saying that this "good transition" is a good thing? And, if so, are you for or against Intel's "Enhanced Dynamic Acceleration Technology" !?

      The other transition, where the chip workload increases & voltage/frequency are limited to keep within a power envelope, is called "throttling" and is much disliked in the user community.

      WTF? I've got a Core 2 Duo that is, by default, running at 1.86 Ghz. However, when the CPUs load is low and when I configure my system to allow the CPU to lower its frequency, then the speed goes down to 1.6 Ghz (it may not seem much, but power consumption reduction is huge). Wikipedia's entry for "CPU throttling" says it's a way to reduce power consumption by lowering a CPU's frequency, which is pretty much the definition I expected to find. Not only do I love it (it's "greener") but I can decide, at will, if I want to enable it or not (e.g. "echo ondemand > /proc/sys/.../cpu0/scaling_governor").

      And of course it makes no fscking sense to disable it on my workstation (Core 2 Duo / 4 GB of Ram), for the technology seems to work fine: you can't notice that the speed is going up or not. It's all transparent, for the system is very smart in deciding wether to run at full speed or not.

      Care to explain why "throttling is much disliked in the user community"? Why would it be disliked? If you dislike it, can't you turn throttling off on your OS? Do you dislike the fact that your laptop, upon noticing that its battery shall soon be empty, decides to save power?

       

      $ cpufreq-info | grep limit
        hardware limits: 1.60 GHz - 1.86 GHz
      $ cpufreq-info | grep current
        current policy: frequency should be within 1.60 GHz and 1.86 GHz.
        current CPU frequency is 1.60 GHz (asserted by call to hardware).


      (For anyone on Linux, this is on a kernel 2.6.16, so I'm using the "old" speedstep-centrino and cpufreq_ondemand modules to have automatic throttling on my Core 2 Duo. If you're using a more recent kernel you'll have to use other modules)

      Note that the limits 1.6 - 1.86 are the official limits for my CPU, when configured it to run normally (i.e. I'm not overclocking that CPU), others have a wider range of operation.

      I'm posting to /., and though I've got ten programs opened (and a VMWare VM running) it makes no sense to run at full speed, so the two cores are running at 1.6 Ghz. Should I decide to do some number crunching/kernel building/etc. the system will switch to 1.86 Ghz.

      I do wonder which "user community" you're talking about...
    2. Re:A Marketing Triumph by hcdejong · · Score: 1

      The other transition, where the chip workload increases & voltage/frequency are limited to keep within a power envelope, is called "throttling" and is much disliked in the user community.

      Who cares, when you won't notice the throttling since the throttled core was sitting idle anyway? They're not slowing down the core you're using.

    3. Re:A Marketing Triumph by Kjella · · Score: 2, Informative

      Look, if you look at the benchmarks it's quite clear that you could either get the maximum clock speed *or* the big number of cores. How likely is it really that you'll have four cores, all equally at 100% load? Not unless you're doing something embarassingly parallel better left to a cluster.

      Basicly, if you have a thermal envelope. You know that consumption rises with clockspeed squared. You can either have 4*(1GHz)^2 = 4Ghz processing power or 1*(2GHz)^2 = 2GHz processing power with the same power consumption. You can use more cores if possible, since they have better efficiency. You have maximum performance for a single thread if necessary.

      One thing is thermal throttling that happens under heavy load which is when you need the processing power, it's like an engine that you can't use. Another thing is a system, that within a TPD of say 100W always makes the most possible out of it. You can eat your cake and have it too, not choosing one over the other at purchase. What's not to like about that?

      --
      Live today, because you never know what tomorrow brings
  9. Twice the speed? by Aladrin · · Score: 2, Insightful

    The article suggests that this technology makes 1 core run twice as fast by basically disabling the second core for a while. They go on to 'prove' how effective it is by running a photo processing thing that they don't explain. It runs twice as fast this way.

    So... If they can have 2 cores at full speed, or 1 core at double speed... WHY THE FUCK do they have 2 cores in the first place?

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    1. Re:Twice the speed? by Anonymous Coward · · Score: 0

      Because if you have multi-threaded applications, using 2 cores probably yields better performance than using 1 core that goes a little bit faster?

    2. Re:Twice the speed? by plasmacutter · · Score: 2, Informative

      because it's better to have separate cores with separate pipelining for multiple threads than sharing a single core.

      because of pipelining, if you have to swap between tasks, you actually lose a large number of instructuions, which means switching tasks often with a single core is significantly worse for performance than multiple cores.

      --
      VLC FOR MAC IS DYING! IF YOU DEVELOP, PLEASE SAVE IT!!
    3. Re:Twice the speed? by kannibal_klown · · Score: 1

      So... If they can have 2 cores at full speed, or 1 core at double speed... WHY THE FUCK do they have 2 cores in the first place?
      Well, in the longrun if they do something along the lines of the OS determining if the present circumstances would benefit more from 1 fast core or 2 regular cores, then you get the best of both worlds. Your machine could take situations where multi core is benefitial or jump to single core mode.

      Think of it like having a car that can transform between a sleek sports car (single core) or heavy-duty pickup truck (multi core). Then again the optimal scenario would be a pickup truck that can simple accelerate and handle like a sports car.
    4. Re:Twice the speed? by Anonymous Coward · · Score: 0

      The photo benchmark was about "Turbo Memory", probably about having some flash memory (on system instead of pendrive?) so Vista used it as more RAM.

    5. Re:Twice the speed? by 0100010001010011 · · Score: 3, Insightful

      Because when I'm encoding a movie I want my UI to be responsive.

    6. Re:Twice the speed? by Anonymous Coward · · Score: 0

      Are you encoding your movie in Windows?

    7. Re:Twice the speed? by level_headed_midwest · · Score: 1

      Think of quad-cores or more rather than dual cores. Having four cores at a moderate clock speed where one can get ramped up to a high clock speed will give you the large speed boost of many slower cores for multithreaded applications and a high-clock-speed single core for single-threaded applications. The four or more slower cores will beat the one higher-clocked one in multithreaded applications.

      --
      Just "gittin-r-done," day after day.
    8. Re:Twice the speed? by something_wicked_thi · · Score: 1

      Er, not quite.

      The time slice of an app stays the same, so you have just as many context switches on a single- or a multi-core CPU, assuming you have more tasks than CPUs. Furthermore, performance does not scale by the number of cores you have. You have locking contention, which means that you end up being serialized for at least part of the time. In almost all cases, you're better off with one fast core than two slow ones.

      Actually, it was a single benchmark running with a new technology that had nothing to do with the overclocking that produced the 2x speedup. Most likely, the benchmark they used was atypical and, furthermore, has nothing to do with the overclocking bit.

    9. Re:Twice the speed? by Anonymous Coward · · Score: 0

      You know, they invented this outlandish thing called time slicing in what, the 60s?

      One CPU is shared by multiple apps. And there's also the concept of priorities, so that apps that are foreground to the user (such as the GUI) will always get the CPU they need, while background apps (such as encoding) will only run when the CPU would otherwise be idle.

    10. Re:Twice the speed? by smallfries · · Score: 1

      Because despite what you claim you didn't read the article (properly) ? Fair enough, it was almost a whole page without the adverts.

      The doubling in speed is for a different technology - "turbo memory" under a particular (memory-bound) application.

      The speed-up for "overclocking" the core is unlikely to be as much as 2x. When you have a multi-threaded app (or several apps) then you want both cores because you'll get more performance that way. When one core is not being utilised the other core can increase its clockspeed by a small amount because the heat generated by the other core is not a problem. As somebody else pointed out above, the heat produced is roughly proportional to the square of the clockspeed, so you can get away with boosting one core a little bit.

      In short, the reason that you have two cores in the first place is that doubling the performance of a single core is not feasible within a reasonable thermal envelope.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    11. Re:Twice the speed? by smithmc · · Score: 1

        You know, they invented this outlandish thing called time slicing in what, the 60s?

      Uh, huh - ever heard of its little friends, called "context switching" and "pipeline stalling"?

      --
      Downmodding is the refuge of the weak. Don't downmod, make a better argument!
    12. Re:Twice the speed? by shird · · Score: 1

      Thats all well and good except when you realise you can get your encoding done in half the time by using two threads. This then chokes both cores. You are then stuck with an unresponsive UI again.

      So why not just use one core thats twice as fast, but without the hassle of writing multi-thread code?

      --
      I.O.U One Sig.
    13. Re:Twice the speed? by Anonymous Coward · · Score: 0

      Oh yes, terrible.

      When a GUI app needs the CPU, it might take a millisecond (probably much less) to start running again. At least I've never *seen* a context switch in terms of GUI lag. If you have, you should give BeOS a shot, just to see what reaction means.

      If Windows or Linux lag, it's because their schedulers suck and they got priorities wrong (esp. Linux with the X server, which can cause the mouse pointer to lag if the CPU is busy; can't believe they still didn't fix that). It's not the CPU's or time-slicing's fault.

  10. UEFI? by Noryungi · · Score: 2, Interesting

    While I am all for having something a bit more intelligent than BIOS to init a computer, I can't help but wonder... Does this UEFI integrates DRM functions? Is this the Trojan Horse that will make all computers DRM-enabled?

    Inquiring minds want to know!

    --
    The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
    1. Re:UEFI? by MrCoke · · Score: 1

      The 'E' stands for 'Extensible'.

    2. Re:UEFI? by KonoWatakushi · · Score: 4, Informative

      Rather than answer that question, I will ask another. Why would hardware manufacturers such as Intel and AMD want to limit their market by crippling the hardware to only run certain software? It is unlikely in the extreme that open source operating systems will be locked out, and that is what really matters.

      As I understand it, UEFI will enable some thoroughly nasty DRM, but only so far as the OS vender chooses to take it. Apple and Microsoft will almost certainly make it a miserable experience for all involved, but will probably tire of shooting themselves in the feet at some point. There are alternatives after all and they are looking better every day.

    3. Re:UEFI? by Anonymous Coward · · Score: 0

      Another question: what was wrong with OpenFirmware, a standard used by Sun and Apple and others? Was it just a case of NIH?

    4. Re:UEFI? by CrackedButter · · Score: 1

      I noted the anti Apple remark. Kinda pointless when Apple have already proved you wrong by not limiting any OS on their machines because they already use this technology and they are instead promoting alternative OS'es to co-habit with OSX.

    5. Re:UEFI? by 644bd346996 · · Score: 1

      UEFI makes it easier to do nasty things with a TPM, but it is not a guaranteed problem. The Intel Macs have EFI and TPMs, but all they use the TPM for is to enable OS X to confirm that it is on an Apple computer. The presence of the TPMs in intel Macs is probably just a sign that Apple didn't bother with making their own motherboard/chipset design from scratch, and instead just made the Intel designs fit their form factors.

    6. Re:UEFI? by Kjella · · Score: 2, Interesting

      Locked out, no. Let in, also no. Linux is going to suffer the death of a thousand needles when "secure" movies, "secure" music, "secure" webpages, "secure" e-mail, "secure" documents, "secure" networks, "secure" IM and whatnot get propagated by the 98% running DRM operating systems. I mean, look how many people are frustrated Linux doesn't play MP3 or DVDs out of the box, no matter how little it's Linux's fault, and there is an easy fix.

      What if the problem is ten times worse, and there is no easy fix? Are you going to say "but hey there's this open source network..." "but all my friends are on MSN" "they can come too" "...restore my Windows. Now!" and that'll be the end of Linux on the desktop as anything but a geek's toy.

      --
      Live today, because you never know what tomorrow brings
    7. Re:UEFI? by Splynncryth · · Score: 1

      You can hop over to Tianocore.org and get a lot of questions answered there. Grab the EFI spec (not sure if they have UEFI 2.0 up there yet or not), the Platform Innovation Framework specs from Intel for Tiano, or the Tiano EDK. UEFI does not make TPM any different than it would be with BIOS except the code can be in C. Because there really is no standards for BIOS, it can do whatever it wants, so long as you can boot your OS. But say I had an EFI TPM driver in the firmware, and my OS boot loader was EFI aware. On boot, the OS could grab the runtime services table, get some handles for the TPM driver, relocate it to the OS memory space, and call its functions like HYPOTHETICAL_EFI_TPM_DRIVER.Stop(). EFI offers a lot of advantages that will not become apparent until people start writing boot loaders specifically for it, or taking advantage of what it can offer in the preboot space. If you have access to an Intel made LGA771 server board, boot to the EFI shell and fool around for a while. See what you think.

    8. Re:UEFI? by Chandon+Seldon · · Score: 1

      You go right ahead and load a DRM protected song from iTunes onto your Sandisk Sansa MP3 player using approved OS X / iTunes functionality. Once you've done that, you can make the claim that Apple doesn't screw their customers. Apple isn't bad overall, but their just as much a villain as Microsoft in this DRM thing.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    9. Re:UEFI? by CrackedButter · · Score: 1

      Those are 2 different types of DRM. Nobody is talking about protected music files. This is at the BIOS level which can control the Applications and Operating system. Your example again is proved incorrect by the simple fact that I can burn said DRM music to a cd and then reimport it back into iTunes and then bung it on the Sansa as a normal mp3 file... so to summerise, what the fuck are you talking about?

    10. Re:UEFI? by Anonymous Coward · · Score: 0

      Why would hardware manufacturers such as Intel

      You do realise that Intel is one of the very biggest exponents of DRM, don't you? For the last 12 years, everything Intel has done has been infected with, or aimed at the eventual infection with, DRM. Intel is behind HDCP... it started, with Microsoft, the group that was intended to bring hardware-based DRM to the PC (it's know known as Trusted Computing and is no longer referred to as DRM... even though the documents show that that was its original justification). Intel invested huge resources in designing and setting standards that will allow sound and video to be end-to-end encrypted within a PC... not your protection... for the "content industry".

    11. Re:UEFI? by Chandon+Seldon · · Score: 1

      Whatever is most compatible has a large advantage. Taking your IM example, none of AIM/MSN/YIM/GTalk has a massively overwhelming market share, so every even marginally technical user uses a multi-protocol client. If a network prevented multi-protocol clients from connecting (due to DRM or whatever), the technical users would stop using it and they'd tell their friends to switch to a more open network to talk to them.

      As for "secure" movies and music, they're basically irrelevant with ThePirateBay offering better quality content for free.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    12. Re:UEFI? by zbaron · · Score: 1

      And that is why I think that Microsoft has been resisting a full embreace of EFI so far. OS independant device drivers that are stored on expansion cards. Somehow I don't think Microsoft likes the idea that a consumer can down to the shop, buy a new card of some kind and have it Just Work on any platform of their choosing.

  11. "Caught up"? by Z0mb1eman · · Score: 4, Insightful

    It seems like a tacit admission from Intel that multi-threaded apps haven't caught up with the availability of multi-core CPUs.

    Or maybe Intel, unlike the story submitter, knows that many apps simply do not lend themselves to multithreading and parallelism. It's not about "catching up".

    Multi-core for multithreaded apps? Check.
    Trying to get each core as fast as possible for when it's only used by one single-threaded app? Check.

    Makes sense to me.

    --
    ClutterMe.com - easiest site creation on the Net. Just click and type.
    1. Re:"Caught up"? by bfields · · Score: 0

      many apps simply do not lend themselves to multithreading and parallelism.

      For example?

    2. Re:"Caught up"? by nine-times · · Score: 1

      Also, and I feel dumb for saying this because it's so obvious (I'm not even an expert on these things), but you don't really need all of your applications to be multithreaded in order to benefit from multiple cores. I guess I'm assuming that I'm not the only person who runs multiple applications at the same time.

      Of course, it's more likely that you'll be taking good advantage of 8 cores if your apps are multithreaded, but if you're running two single-threaded applications on a dual core system, shouldn't the OS be smart enough to push each one to a different core, meaning each application will run faster than if it were a single core system?

    3. Re:"Caught up"? by Z0mb1eman · · Score: 1

      Anything where it's not trivial to break up the problem space into equal chunks, work on them separately, and put them back together at the end.

      One example - which I run into at work all the time: parsing large HTML (or XML, same thing really) files. Web browsers are multithreaded in the sense that they use threads for connections to the server to get different files; it's still (as far as I know) single-threaded per file as far as parsing is concerned.

      Another example - games. There's obvious potential for multithreading - one thread to maintain the gameworld state, another for AI, another for physics, another to push polygons to the GPU... But since these are different tasks, rather than one task that's being computed in parallel, it's very unlikely that the threads are going to be using the CPU cores (or multiple CPUs) equally - which sounds like the whole point of what Intel is doing.

      Of course, I am not an expert in any of these fields, so (factual) corrections are welcome :p

      --
      ClutterMe.com - easiest site creation on the Net. Just click and type.
    4. Re:"Caught up"? by Anonymous Coward · · Score: 0

      Another example - games. There's obvious potential for multithreading - one thread to maintain the gameworld state, another for AI, another for physics, another to push polygons to the GPU... But since these are different tasks, rather than one task that's being computed in parallel, it's very unlikely that the threads are going to be using the CPU cores (or multiple CPUs) equally - which sounds like the whole point of what Intel is doing. You just have to split everything up into lots of threads, most doing a small amount of work (the threads must be lightweight, so there's not too much overhead). Hard if you have to worry about race conditions, of course, but easy in a functional language. Tim Sweeney, the founder of Epic, spoke about things that a language for game development should have: http://lambda-the-ultimate.org/node/1277.
    5. Re:"Caught up"? by ConceptJunkie · · Score: 1

      You're right of course, but I think it's more of the case that you don't need lots of cycles often, but when you do you really want as much as you can get.

      Most software people use doesn't (or shouldn't) use 5% of the processor power available to it. Of course, when you fire up the latest 3D game, ray-tracer, or other truly CPU-intensive app, you need all the cycles you can ring from every core. Most of these are multitaskable or parallelable, but it's not always obvious or easy how to do it.

      Besides, how else can MS consider writing any new software now that Moore's law is taking a vacation?

      --
      You are in a maze of twisty little passages, all alike.
    6. Re:"Caught up"? by ConceptJunkie · · Score: 1

      Augh! I'm such a spelling Nazi, I have to correct myself. That's "wring" of course. I usually try to limit my Nazi-ism to setting a good example for others, but sometimes ya just gotta speak up. /me breaks out the sackcloth and ashes.

      --
      You are in a maze of twisty little passages, all alike.
    7. Re:"Caught up"? by fitten · · Score: 1

      Plus all of the existing applications that aren't threaded get the benefits on occassion (when the other core is idle).

    8. Re:"Caught up"? by bfields · · Score: 1

      One example - which I run into at work all the time: parsing large HTML (or XML, same thing really) files. Web browsers are multithreaded in the sense that they use threads for connections to the server to get different files; it's still (as far as I know) single-threaded per file as far as parsing is concerned.

      OK, fair enough. But in a lot of (almost all?) workloads, it's not really the time required to process a single file that's the problem, so much as the time required to process a whole bunch at once.

      Compiling is similar--sure, gcc isn't multithreaded, but you can keep a lot of cores busy by running make on a kernel tree....

      ... one thread to maintain the gameworld state, another for AI, another for physics, another to push polygons to the GPU... But since these are different tasks, rather than one task that's being computed in parallel, it's very unlikely that the threads are going to be using the CPU cores (or multiple CPUs) equally

      Is that really a problem? As long as you've broken things up small enough so that there isn't, say, one huge task that needs well more than half the CPU time, then just start up all those threads and let the operating system figure out how to balance them between CPUs.... Sure, they'll never be exactly balanced, but that doesn't mean you can't get a lot of benefit.

    9. Re:"Caught up"? by Chandon+Seldon · · Score: 1

      There are some program types where it is (provably) impossible to parallelize them. They're much more rare in real world applications than people seem to think.

      All of the examples you give can be parallelized - at least for a small number (say, up to 16) processors.

      XML Parser:

      1. Split the file into a number of equal sized pieces equal to the number of processors you have.
      2. In each thread, read in your chunk of the file and build whatever portion of the tree you can make out.
      3. Merge the trees together, including resolving tags that got cut in half by the split and stuff. (Since the threads share memory, this should involve parsing at most n-1 split tags and doing n*log(n) pointer operations to link up the subtrees)

        Video Games:

        The only reason that video games aren't massively parallelized is that context switches are an utter waste of CPU time on a single-CPU system - and gamers are twitchy about every last FPS. Once a good chunk of gamers have 4-core systems, it video game makers will use multithreaded physics and rendering engines because it will be a good trade to sacrifice 1-core performance for 4-core performance.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    10. Re:"Caught up"? by Chandon+Seldon · · Score: 1

      knows that many apps simply do not lend themselves to multithreading and parallelism.

      This is a myth, propagated by lazy developers and cheap end users.

      There are some classes of computing problems that can't be parallelized, but very few of those problems are the applications that we want to run faster on modern computers.

      The only application that shows up on benchmark sites that might not be easily parallelizable is file compression (i.e. "WinRAR"), and if that ever needs to be parallelized a small algorithmic change (compress blocks separately) will handle it.

      As for GUI apps, games, media encoding, etc - that stuff parallelizes no problem.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    11. Re:"Caught up"? by setagllib · · Score: 1

      I don't know how much experience you have developing real-world systems, but it can't be very much. Very, very many programs spend very, very little CPU time. You only start gaining throughput performance from multiple cores when you've already maxed out one, even if it's only because now you're switching contexts less. If you have a heavily loaded database engine, you have a decent chance of needing more cores.

      This is all really easy to measure in Unix - just use the 'time' command built in to most shells, and also available as a standalone binary for backend use. You can also issue the 'getrusage' standard library function and receive resource usage of your process, and its child processes.

      Many cores are also useful if you need each task to finish quickly but also in parallel, so even though you won't max out available CPU time, you will get things done 'earlier'. Sun has taken this idea and applied it for the Niagara processor, which has an unholy number of cores which are all pretty slow. It's a niche, but it does well for that niche.

      But really, I've written a fair few systems, and even the "scientific data processing" ones still never needed even a full 1-core CPU that you could buy for $100. If you write in .NET or something heavyweight like that, yeah, now you need a lot more CPU just to do what C/gcc can do. I don't care what people will say about JIT optimization and fast garbage collectors, it's nowhere near C for many very real-world applications. That's why my path is generally Python/Ruby/whatever + C extension for the mechanical bits that take over 95% of the CPU time. With this, I've yet to require threading.

      The one time I over-engineered a system with elegant but over-used message passing, it ended up being overall slower than just single threading it, but it's Java so that's partly to blame. I ended up making it optional to run the system synchronously, and recommended people do that until they really needed a lot more throughput. Optional threading is pretty easy to implement if you're using an elegant message passing implementation. DragonFly BSD is doing something like this on the kernel level, and also extending that messaging to be able to run across machines on a network or the Internet. It's inspiring to say the least.

      --
      Sam ty sig.
    12. Re:"Caught up"? by Chandon+Seldon · · Score: 1

      I don't know how much experience you have developing real-world systems, but it can't be very much. Very, very many programs spend very, very little CPU time.

      I'm not sure what your rant has to do with my post. Yes, there are large classes of system that aren't cpu-limited. I agree - there's no great need to re-write them to parallelize better since they're not CPU limited to begin with.

      But... my point still holds. The vast majority of real word applications can take advantage of practical levels of parallelism - even if they're not "embarrassingly parallel". If it turns out that they are CPU limited in the future, most of them can be easily redesigned to take advantage of parallelism.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    13. Re:"Caught up"? by setagllib · · Score: 1

      You can't seriously claim that "the vast majority" can take advantage. Look on any Unix package manager web interface (e.g. http://www.freshports.org/ and take a sample of about 20 programs randomly (heck, even just the most recent ones) and think of a genuinely good reason to make it more parallel. Keep in mind that many programs will be running in parallel anyway, without being multi-threaded in their own right, so you can't call that parallelising the programs.

      Just becoming more parallel does not mean it's an advantage - it carries significant impacts to complexity and makes the correctness of a program very difficult to verify formally. I would say "the vast majority of real world applications can severely cripple themselves in the search for parallelism". That's at least consistent with reality.

      --
      Sam ty sig.
  12. journalism at its finest by gEvil+(beta) · · Score: 3, Funny

    Ahhh, journalism at its finest: "The new chips will be able to overclock one of the cores if the other core is not being used." Then two paragraphs later: "This is not overclocking. Overclocking is when you take a chip and increase its clock speed and run it out of spec. This is not out of spec."

    That said, this seems to make perfect sense to me. If they're able to pump all that power into a single core while the other one is asleep/idle, all while keeping it within its operating parameters, then I'm all for it.

    --
    This guy's the limit!
  13. Most applications will never become multi-threaded by something_wicked_thi · · Score: 5, Insightful

    Why should they? The advent of multicore CPUs won't actually hurt single-threaded apps. They just won't get any faster. For most things, that's fine. Legacy apps that aren't changing are most likely already fast enough. Besides, not everything can be parallelized properly, anyway. Multithreaded applications will become more popular, but I think this trend will affect new applications much more than old ones because it's just not that important. Even new apps don't necessarily need parallelization because many things are "fast enough" on a single core.

    By the way, I actually hope that many things never become multithreaded. In my experience, most coders simply aren't capable of thinking threading through clearly. For many people, the concept is just too complex. Hopefully, compilers will improve to the point where many things can be parallelized without the coder having to know very much, if anything, about the threading involved, but, today, we're nowhere near that. We desperately need higher-level threading primitives in computer science.

  14. Given the modern power budgets, this makes sense by CTho9305 · · Score: 1

    In the past, chips were limited to a maximum voltage because of the risk of long-term damage at higher voltages. As a results, the voltage could be cranked up close to the maximum, providing high-frequency performance. Around 2004, however, OEMs started becoming concerned about cooling extremely high-power chips like Tejas, and the chip manufacturers had to start pushing the power consumption back down. Now, we have chips that could operate at higher frequencies if the power budget were higher. When you have multiple cores and some aren't running, that busy cores can be run at a higher frequency (and potentially voltage) without exceeding the overall power budget (which is what TFA says Intel is doing).

  15. Strange link by leuk_he · · Score: 1

    The link to "single core overclocking" states:

    "This is not overclocking. Overclocking is when you take a chip and increase its clock speed and run it out of spec."

    THis is just a technique to stay under the specified power envelope. Nowadays not the speed is the real problem, but the powerusage. Not that in single thread mode the CPU will run less instructions per watt.... and i guess for every 25% more cpu frequency you you 75% more power or or something like that.

    1. Re:Strange link by Carewolf · · Score: 1

      It might also be a fancy keyword for shared cache, where one core can use all the cache if the other one is sleeping or not very active. Intel has previously jumped a few fences and not implemented fully shared cache unlike AMD.

      Btw. robson? Rubs on, Rubs off..

  16. Thanks for the heads up... by dintech · · Score: 2, Insightful

    "We have been working with Microsoft," Intel hinted."

    Now I know to avoid it.

  17. mod parent up by Anonymous Coward · · Score: 0

    Exactly... I was going to quote the exact same phrase as the one you quoted: I don't agree with that dumb "tacit admission" statement. It's really about getting the best of both worlds. Not too mention that it's not just "multi-core for multithreaded apps" but also "multi-core for correctly multithreaded OSes".

  18. Re:Who cares? by something_wicked_thi · · Score: 2, Interesting

    This "single thread acceleration" will have to be supported by the OS?

    I doubt it. My reading of the article is that the CPU detects when only one core is in use and does everything itself. But, even if it does require some level of OS support, I wouldn't worry about Linux's support of it (or of UEFI, for that matter, as Linux runs quite well on Macs and Intel does a good job of supporting Linux, anyway). Linux even has support for hotplugging CPUs, so, even if it comes to that (and I doubt it will), then it should still work.

    Does it have the potential to break a half-bad application?

    Any change in a CPU's implementation should not be observable to anyone unless the observer knows to look for it (e.g. with the CPUID instruction). Intel won't release a chip that breaks existing apps. Besides, if you think about it, if apps work on a single-core CPU, why shouldn't they work on a dual-core CPU with one core disabled?

  19. Multi-core is good for jobs by pzs · · Score: 3, Interesting

    As many slashdotters are in software development or something related, we should all be grateful that multi-core processors are becoming so prevalent, because it will mean more jobs for hard-core code-cutters.

    The paradigm for using many types of software is pretty well established now, and many new software projects can be put together by bolting together existing tools. As a result of this, there has been a lot of hype about the use of high level application development like Ruby on Rails, where you don't need to have a lot of programming expertise to chuck together a web-facing database application.

    However, all the layers of software beneath Ruby on Rails are based on single-threaded languages and libraries. To benefit from the advances of multi-core technology, all that stuff will have to be brought up to date and of course making a piece of code make good use of a number of processors is often a non-trivial exercise. In theory, it should mean many more jobs for us old-schoolers, who were building web/database apps when it took much more than 10 lines of code to do it...

    Peter

    1. Re:Multi-core is good for jobs by mr_mischief · · Score: 4, Insightful

      Taking advantage of multiple cores with a single-threaded per-client application just requires having more than one simultaneous user on your server. It doesn't at all require having a multi-threaded application per client. Most HTTP connections don't do anything very fancy, and really won't be helped much internally by multiple cores. The web server software itself, the database server, the fact that popular sites (or shared servers) get more than one visitor at a time, and similar concerns will make a much bigger difference with multiple cores than making a CRUD application or a blog multi-threaded.

    2. Re:Multi-core is good for jobs by GoatMonkey2112 · · Score: 1

      I know that at least one higher level programming language can make use of multiple processors relatively easily for web applications. .Net has a relatively easy way to make web garden base applications.

    3. Re:Multi-core is good for jobs by pzs · · Score: 1

      You're right, web applications are perhaps a poor example here, but there are many other applications that run on the average desktop that will now run faster if they can make use of a multi-core system. Somebody has to do the coding that will effect this change, and that coding will often be non-trivial.

      Peter

    4. Re:Multi-core is good for jobs by Verte · · Score: 0

      I don't know if I really understand what you're saying. Making Rails and other interpreters take advantage of smp and the like is not trivial, but it's easier than having to convert all the ruby, python, perl, lisp etc apps, you've just got to convert the engine. If the low level functions, especially those with big loops like map and reduce, search, and regexp processing, can take advantage of more cores, you've got all the performance benefit you need. IMHO I'd like to see better vectorisation options to make this sort of low level parallelism easier, rather than all this threading stuff. I understand it isn't always the best way, but on your average dual or quad core machine it'd be worth it.

      So I'm not sure if there's all that much work in it, I guess.

      --
      We at slashdot are scientists, specialists and kernel hackers. Your FUD will be found out.
    5. Re:Multi-core is good for jobs by Simon · · Score: 2, Informative

      Actually I can't think of any desktop applications that would really benefit from supporting multithreading to actually warrant the extra effort. Most desktop applications for the average person run perfectly fast as single threaded programs. And the high-end stuff like graphics and 3D rendering have supported SMP for a long long time. You could buy dual processor Pentium Pro machines back in the 90s. I don't see multicore processors fuelling demand for programmers.

      --
      Simon

    6. Re:Multi-core is good for jobs by drgonzo59 · · Score: 1
      making a piece of code make good use of a number of processors is often a non-trivial exercise.


      True, but the many benefits from a multicore system don't come from necessarily runnning one process with shared data on multiple cores (i.e. threading) but running multiple processes that are fairly isolated in parallel. One could be the Ruby interpreter,other could be your database, the other a monitoring or security application, another a backup deamon and so on.


      Concurrent programming in shared data environment is very difficult. And besides, some tasks are inherently sequential like a finite state machine for example.


      In other words, I don't think that I wasted my money by buying a Core 2 Duo laptop instead of a single core machine. I notice a very real performance improvement because of an extra core. I run a numerical simulation module on one core and the system and other stuff like browsing the web and office apps can have an extra core all to themselves!

    7. Re:Multi-core is good for jobs by tji · · Score: 1

      Not really. Multi-core doesn't mean you need multi-threaded apps to benefit from it. Take a loot at the processes running on your Linux/Mac/Windows box some thime.. there are a lot of them. While process A is running on CPU 0, it doesn't need to be switched out to let process B run on CPU 1.

      Web apps, like Ruby on Rails, is a good example of why multi-threading is not needed. Web servers handle many simultaneous requests, so the workload is easily divisible based on individual requests. The web server itself may be mutlithreaded, use multiple processes, or both, but the downstream apps like Ruby don't need to be MT.

      You get a ton of benefit from multiple cores for web apps, or many other multi-process functions.

      There are some examples where the CPU needed by a single process is greater than a single core (High bit-rate H.264 video comes to mind) and these apps must be carefully coded to use multithreading. But, for the vast majority of other apps, multithreading is not worth the effort/complexity.

    8. Re:Multi-core is good for jobs by Anonymous Coward · · Score: 0

      Except rails (mongrel) is single threaded full stop.

      For other web servers/app servers you are correct, except if you are using an app server you are already having to deal with concurrent access to shared data. The app server managing task dispatch to threads does not eliminate most of the work.

    9. Re:Multi-core is good for jobs by M.+Baranczak · · Score: 1

      I can't think of any desktop applications that would really benefit from supporting multithreading

      You have got to be kidding. Most desktop applications already use multithreading to some degree - especially if they do any network IO.

    10. Re:Multi-core is good for jobs by osu-neko · · Score: 1

      Not really. Multi-core doesn't mean you need multi-threaded apps to benefit from it. Take a loot at the processes running on your Linux/Mac/Windows box some thime.. there are a lot of them.

      Um, yes. Now take a look at how many of them have an 'R' next to them rather than an 'S', indicating that they are actually running rather than sleeping. Discard all the ones with an 'S', leaving only those with an 'R' -- this is how many cores you can effectively make use of right now. There are probably not a lot of them. If this isn't an active server you're looking at, there probably isn't more than one.

      --
      "Convictions are more dangerous enemies of truth than lies."
    11. Re:Multi-core is good for jobs by ioshhdflwuegfh · · Score: 1

      In other words, I don't think that I wasted my money by buying a Core 2 Duo laptop instead of a single core machine. I notice a very real performance improvement because of an extra core. I run a numerical simulation module on one core and the system and other stuff like browsing the web and office apps can have an extra core all to themselves! You can do it very likely even better: just run two numerical applications simultaneously (provided of course that there is enough memory and any kind of "farming" parallelism present in your calculation). On Core 2 anyway kernel and most of the GUI take so little CPU (and there you can also switch to a lighter GUI, I use WindowMaker) that even with only one core free and lots of GUI stuff running (like browser and multimedia) there is still plenty of remaining CPU time available...
    12. Re:Multi-core is good for jobs by 99BottlesOfBeerInMyF · · Score: 1

      Actually I can't think of any desktop applications that would really benefit from supporting multithreading to actually warrant the extra effort. Most desktop applications for the average person run perfectly fast as single threaded programs.

      A lot of desktop applications are already multithreaded. In addition, who says there has to be extra effort? In the upcoming version of OS X, for example, many programs that utilize OpenGL, including games, automatically will spawn a second, feeder thread that simply pumps OpenGL info to the graphics card resulting in up to (but almost certainly less than) twice the performance on multi-core systems. When we get to 4 or more cores as the common standard you'll see 1 core running the OS processes and maybe a few always running apps, and programmers of CPU intensive, and even simply common applications splitting out a few threads to speed up the performance of their apps. I don't know about you, but for me, MS Word is still pretty sluggish at times and could use a boost.

    13. Re:Multi-core is good for jobs by radish · · Score: 1

      Really? Seems the actual developers of these apps have a different opinion. Pulling up task manager and selecting the "thread count" column gives me some interesting numbers:

      Outlook: 40
      Mcaffee Virus Scan: 29
      Windows Communicator: 19
      Internet Explorer: 19
      Explorer: 12

      And that's how it should be. Threads are _essential_ for desktop apps, if for no other reason than to allow the UI to remain responsive while something else happens (e.g. background printing in Word, checking email in Outlook, animating some image in a browser).

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    14. Re:Multi-core is good for jobs by Chandon+Seldon · · Score: 1

      And besides, some tasks are inherently sequential like a finite state machine for example.

      A finite state machine is an algorithm not a task. You can achieve parallelism by using a different algorithm, or by using a splitting heuristic that divides the work among multiple threads running the non-parallel algorithm.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    15. Re:Multi-core is good for jobs by tji · · Score: 1

      That depends on what you're doing. My MythTV server box stays quite active with recording, commercial flagging, transcoding, and more. Not to mention it also acts as an smb file server, daapd iTunes music server, dns server, www server, mysql server, and is often compiling huge projects -- like MythTV daily snapshots, while doing everything else. In particular, the HD video activities on the MythTV processes are CPU hungry, and can be impacted by limits in CPU, DIsk IO, or network bandwidth.

      That's just a small home server.. I plan on getting even better utilization out of the replacement I'm putting together now with a Core2Duo processor. It will perform many of the same functions, but with a larger RAID array, and several virtual hosts under Xen, including moving MySQL to one VM, and running Windows 2000 in another for those occasional Windows apps I might need. When the quad core CPUs reach reasonable home-user prices, I'll move to one of them and pile even more on it.. I'm sure I'll be able to keep the cores warm.

      But, even more important are the apps on the systems with direct user interaction.. like my MythTV frontend box or my MacBook Pro laptop. Dual cores allows me better performance when one or two CPU hungry apps are running, without impacting multimedia output (e.g. HD video). On my MacBook, I can play the H.264 video, without closing down everything else on my system, or keep various Windows apps running in Parallels, without killing the performance of the Mac apps also running (of course, you also want at least 2GB of RAM).

    16. Re:Multi-core is good for jobs by drgonzo59 · · Score: 1

      Yes, you are right, Mr. CS terminology nazi ;-) FSM is an algorithm. I was just assuming that a FSM is the only and best algorithm for that one specific hypothetical task. It was just one of the algorithms that came to my mind that I thought is inherently not concurrent / parallelizable so one could have a 1000 cores but that one finite state machine would have to go from state to state in a sequential manner on one single core .

    17. Re:Multi-core is good for jobs by Chandon+Seldon · · Score: 1

      I was just assuming that a FSM is the only and best algorithm for that one specific hypothetical task.

      This is possible, but it becomes less likely as the computer that you're working on gets more cores.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    18. Re:Multi-core is good for jobs by mr_mischief · · Score: 1

      Desktop apps and server apps both, I think, are better examples than most web apps. Multithreaded or multi-process is a good way to go when you need to get more power to a program. Often, actually, it ends up easier to deal with the multiple threads or multiple processes in an application than to try cramming everything for a complex program into a single thread. The right amount of added complexity in the right places can actually cut down on overall complexity, and makes the program faster and easier to understand as a programmer both at once.

  20. Multi-core CPUs by nevali · · Score: 5, Informative

    With all this talk of multi-threading on multi-core CPUs, Slashdotters appear to have forgotten that we all run multi-tasking operating systems. An OS isn't forced to schedule all of the threads of a single application between cores: it's perfectly capable of spreading several different single-threaded applications between cores, too.

    And no, EFI didn't appear first on Intel Macs. Intel Macs weren't even the first x86-based machines to employ it.

    1. Re:Multi-core CPUs by Anonymous Coward · · Score: 0

      Sometimes I think Slashdot needs a "+1, Come on, people!" rating.

  21. come on, guys by Verte · · Score: 0

    since we've already got to write somewhat parallel code [because cores are pipelined what, 20 deep now?], it'd be nice if that parallelism extended easily to multi cores. For example, when dividing up some function that reduces [large array -> scalar], we've already got to split execution 20 ways. It'd be nice if there was some way to split such things into the minimum arbitrary number of independent threads supported by the machine, at runtime.

    --
    We at slashdot are scientists, specialists and kernel hackers. Your FUD will be found out.
  22. yeah, it's sad you can't run linux on macs by Anonymous Coward · · Score: 0
  23. Re:Most applications will never become multi-threa by CastrTroy · · Score: 1

    I think you are right. Doing something multithreaded takes a lot of extra thinking. Even for someone who knows what their doing. I took a parallel programming course, and that was where things got really fun. Things get really complicated once you start programming things to work in parallel. Not only that, a lot of apps won't really speed up a noticeable amount from using a multi-threaded architecture. I hope that compilers can help this out, because programming multiple threads is hard enough, not to even get started on parallel algorithms.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  24. strange runon too by plasmacutter · · Score: 1

    Overclocking is when you take a chip and increase its clock speed and run it out of spec.
    ... and have to use extra cooling and forget to do so and melt the chip and get pissed and go to the store and buy a new chip and overclock it too.
    --
    VLC FOR MAC IS DYING! IF YOU DEVELOP, PLEASE SAVE IT!!
  25. Re:Most applications will never become multi-threa by pla · · Score: 3, Insightful

    In my experience, most coders simply aren't capable of thinking threading through clearly

    I agree completely, though you can expect to catch some flack for that one, from the hoardes of poor coders who think nothing (or rather, who don't think about the implications) of splitting off another thread to boost performance (even in a single core environment). ;-)

    Personally, I consider myself a damned good coder - And I avoid multithreading wherever possible. If I really need the raw CPU power, I'll usually try to model it as a full slave process before resorting to messy threading.



    We desperately need higher-level threading primitives in computer science.

    We've had it for decades - Just look for multiprocessor support, and you have implicit multithreaded support automatically.

    As one "mature" implementation, we could all start coding in HPF. I'd personally rather gnaw my own right leg off, but, to each their own.

  26. Re:Given the modern power budgets, this makes sens by mwvdlee · · Score: 1

    So basically the limiting factor in CPU design nowadays is power consumption? It can only use upto a set quantity of power, regardless of the number of cores?

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  27. Give slashdot editors some credit. by anss123 · · Score: 1

    The submitter said UEFI, It's usualy only called EFI. The Universal must have thrown them off.

    Assuming they read the submission, of course.

  28. Re:Oh no! Not UEFI! by otis+wildflower · · Score: 1

    Like they did with OpenFirmware?

    Death to BIOS.

  29. Will this help mac videocard support? by badjohny · · Score: 1

    I was under the assumption that the big problem with macs supporting pc video cards was bios vs EFI. Will this move allow quicker adaptation of video cards to move to the mac? I would assume that if they start using UEFI just like apple does now, that it would just be a OS X driver issue, and no longer a bios vs EFI issue.

  30. Re:Most applications will never become multi-threa by something_wicked_thi · · Score: 3, Interesting

    We've had it for decades - Just look for multiprocessor support, and you have implicit multithreaded support automatically.

    Well, yes and no. I think the easiest model for multithreading today is message passing, but it doesn't suit all needs and requires you to design your app to support it from the start. Most mainstream languages (read C/C++, Java, and .NET) don't really support much beyond your basic mutex, semaphore, and monitor. There are a few other things out there that provide various ways of doing things, but none are universal and none seem to have really caught on.

    What we really need is either a language that can express things in such a way that the compiler can easily make good decisions about what can be parallelized, or a compiler that can do that with existing languages. I think that the latter approach may prove impossible. To make informed decisions about threading, a compiler really needs to know things about the data, and most procedural languages just don't cope with that very well.

    It seems that HPF may provide some of these things already. I did a few quick Google searches and it seems interesting, but I wonder how much better it is than current work that is being done on auto-vectorization of loops and such in modern compilers. I'll have to look into that language more closely before I can really draw any conclusions. I believe that IBM has been trying to do some interesting work in this area with the Cell processor, too, and I suspect that's why Sony makes interesting statements about how the true power of the Cell will never be fully realized.

    Regardless, the next decade is going to be an interesting one for compiler writers, I suspect.

  31. Re:Most applications will never become multi-threa by grumbel · · Score: 1

    ### For many people, the concept is just too complex. Hopefully, compilers will improve to the point where many things can be parallelized without the coder having to know very much

    As long as we are using C or C++ I doubt that will happen, those languages are just not build with multi-threading in mind and thus aren't easily to parallelize, other languages like functional ones on the other side make the job really easy. When you don't have side effects to worry about, executing things in parallel becomes rather easy and straight forward. So I hope that switching to multi-core will also mean that we will finally switch to more advanced languages, its really time, but so far using them didn't provide much different in the end, with multi-core on the other side they could really have some huge advantages, not only will they lead to better code, but also to faster code.

    Till that happens multi-cores should still be quite beneficial, I currently have 120 processes running, while many of them just idle most of the time, its not that unusual to have two or more processes that want all the CPU they can get, good thing when you then actually have two CPU cores to give them.

  32. ACK!!! by Gr8Apes · · Score: 2, Funny

    Good lord, let me sell all my web, application, and DB servers then!!!! I've overpaid for 32 CPU systems!!!! ACK!!!

    --
    The cesspool just got a check and balance.
    1. Re:ACK!!! by oblivionboy · · Score: 1

      Yeah thats what I was thinking too...gee a single MS thesis...wow someone get this guy to Intel! :) .o.

    2. Re:ACK!!! by Chapium · · Score: 2, Insightful

      "the majority of your basic applications are too linear and have too many dependencies between instructions for dynamic threading to really be worth the investment in hardware"

      Good lord, let me sell all my web, application, and DB servers then!!!! I've overpaid for 32 CPU systems!!!! ACK!!!

      I wouldn't call server applications or dbms "basic applications."

    3. Re:ACK!!! by Milican · · Score: 1

      If what he says is true he probably knows more about the subject then you do, or the parent he replied to.

      JOhn

    4. Re:ACK!!! by Zombywuf · · Score: 3, Funny

      In which case the bottleneck is not the CPU, it's the idiot writing the software.

      --
      If you can read this you've gone too far.
    5. Re:ACK!!! by oblivionboy · · Score: 1

      Sure, but then if you check out my other slashdot posts, you'll see thats not too hard. :P .o.

    6. Re:ACK!!! by Gr8Apes · · Score: 1

      Wow, an intended funny modded flamebait? What's wrong with the mods these days? Perhaps I'm the vicitm of an evil conspiracy... naah, that'd make me paranoid.

      I'd call a web server a pretty basic application these days. Same goes for a DB. If you're talking about consumer programs like word editing and spreadsheets, I'd still say there's plenty of potential for multi-threading those to make various aspects more seamless to the end user. Just creating separate threads for input/output/main program would be a plus right there, and involves almost no high-level concurrency issues that don't already exist in the Windows world. (Most Windows programs don't have separate threads for this, but it definitely improves UI performance if done correctly. PMMail, originally designed for OS/2 and ported to windows, is a great example of how this paradigm improves responsiveness)

      So, I'll disagree, and say that basic applications are a primary benefactor of multi-threaded coding even if it's not the gee-whiz performance enhancer he originally intended to talk about.

      Oh, and because it's an MS thesis doesn't really lend any more credibility to the author's opinions than anyone else's, and in some cases less. Real world experience usually differs significantly from academia.

      --
      The cesspool just got a check and balance.
    7. Re:ACK!!! by treeves · · Score: 1
      NO, no, no! BASIC applications!

      --
      ...the future crusty old bastards are already drinking the Kool-Aid.
    8. Re:ACK!!! by Aadain2001 · · Score: 1
      I do agree with you that there is a definite disconnect between industry and academia, which is why I got my MS and then went straight into industry to do real work.

      I think you are talking about a different level of multi-threading than I was referring to (and the kind that AMD is researching). The kind of threading you are talking about would be at the programming language level, such as a multi-threaded web server or database server. These already exist and do make great use of raw processing power. But if you are talking about hardware dynamically generating threads from a single threaded program, that is a much different type of multi-threading. Those types of threads are created from sources such as loops (multiple iterations executing at once), function calls (function in one thread and the continuation in another), error handlers, and so on. These suffer from data dependencies between threads. You have to track them and either stall on them or predict them and suffer a missprediction penalty. For programs that are inherently data independent this method works extremely well. But for integer based programs, which most desktop applications are, the interdependence between threads is so high that you are going to have much more stalls and/or misspredictions, completely offsetting the threading performance. And that hasn't even taking into account how you get these inter-thread dependency values between different cores without incurring further performance issues.

      Basically, I believe threading should be done at the programming language level and not at the hardware level. Hardware is simply incapable of producing enough parallelism to increase performance enough to justify the investment in hardware, silicon, and effort. Stick to programming good multi-threaded applications (such as web and DB servers) if you really want to take advantage of multi-core systems.

      --
      Space for rent, inquire within
    9. Re:ACK!!! by Gr8Apes · · Score: 1

      I'll agree with you as well that "hardware" multi-threading (which sounds suspiciously like the recently acknowledged failure of the superscalar hyperthreaded P4) would seem to be a largely dead-end. Creating multiple threads to handle several iterations of a loop concurrently would seem to be very dependent upon what that loop actually does and extremely difficult to manage from a hardware only viewpoint. So difficult, I'd wonder why anyone would bother other than from an academic viewpoint (it's always interesting to quantify those qualities, even if it is only academic. After all, more than one surprise has come out of someone researching what seemed to have an obvious answer)

      Compiler improvements would seem much more likely for this process, or the actual programmer, both of which are software based. I'd also have to wonder whether the effort would even be worth it in hardware for media encoding/decoding processes when software multi-threaded code exists for these functions. Can hardware multi-threading improve on software multi-threading? (I'd think not)

      I do however wonder if AMD is looking at parallelizing in hardware to a DSP core. Now that could speed up certain types of functions greatly, given AMD's architecture.

      --
      The cesspool just got a check and balance.
    10. Re:ACK!!! by default+luser · · Score: 1

      Nor would server or DBMS applications require dynamic threading at the hardware level. I'm quite certain threading is already built-in to the software for such applications.

      The original poster is talking about reintroducing the idea of threads into single-threaded code, which is an incredibly difficult task. This is even more complicated a task than just out-of-order execution on scalar code.

      I'm hardly surprised that Intel took the easy way out on this one - the "hard" fixes for this problem are on the verge of impossible. If you can make your single-threaded processor faster, by all means do it!

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

    11. Re:ACK!!! by nschubach · · Score: 1

      Damn, I've been holding out for QuickBASIC Multi-Threading Edition.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  33. Where are the EFI video cards and raid cards? by Joe+The+Dragon · · Score: 1

    As you will then them to boot a efi system as with a mac pro when you put in a non efi card you get no video until you boot windows.
    And an non EFI raid card may not be able to boot in a efi system.

    1. Re:Where are the EFI video cards and raid cards? by drinkypoo · · Score: 1

      In theory, couldn't you have an extension that provided a driver that would work until boot? They do like to talk about how extensible EFI is...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Where are the EFI video cards and raid cards? by Joe+The+Dragon · · Score: 1

      But you need to have that extension in the cards rom

    3. Re:Where are the EFI video cards and raid cards? by drinkypoo · · Score: 1

      But you need to have that extension in the cards rom

      Why?

      And on top of that, most add-in cards today are firmware upgradable.

      But can you explain precisely why it would have to be in the ROM? It would have to be there to not have to be somehow installed, I'll grant you that...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Where are the EFI video cards and raid cards? by ivan256 · · Score: 1

      Only if you want the new video card to be "Plug and Play"...

      Otherwise the driver can live on the system. Even on the system disk.

    5. Re:Where are the EFI video cards and raid cards? by Joe+The+Dragon · · Score: 1

      cards today are firmware upgradable but they may need a bigger rom to hold the bios and the efi rom.
      also a raid / sata / ide / scsi card needs a rom to be able to boot from it.

  34. Ominous by Anonymous Coward · · Score: 0

    > "We have been working with Microsoft," Intel hinted."

    What a shame. All Microsoft care about is locking down the PC platform and further entrenching their malware. What's in this for OSX, BSD and Linux users (as opposed to Microsoft prisoners)?

  35. Re:Most applications will never become multi-threa by Anonymous Coward · · Score: 0

    By the way, I actually hope that many things never become multithreaded. In my experience, most coders simply aren't capable of thinking threading through clearly. For many people, the concept is just too complex. Hopefully, compilers will improve to the point where many things can be parallelized without the coder having to know very much, if anything, about the threading involved, but, today, we're nowhere near that. We desperately need higher-level threading primitives in computer science.


    Let's apply this thinking to another topic:
    By the way, I actually hope that many things never become object oriented. In my experience, most coders simply aren't capable of thinking OOP through clearly. For many people, the concept is just too complex. Hopefully, compilers will improve to the point where many things can be implemented using OOP techniques without the coder having to know very much, if anything, about the architecture involved, but, today, we're nowhere near that. We desperately need higher-level OOP in computer science.

    Just as with OOP, if the technology is not made available then architects and coders will never learn the concepts, because they'll have no exposure to it. Oh sure, an architect at a well-run software company *MIGHT* have the time to keep up with academic publications and the latest proposed technology, but seriously: when was the last time your emoployer gave you the time to pick up a new skill until it was time to actually use it? Sure, Google provides paid research time to their employees which could be used to keep abreast of new technologies and perhaps even experiment with them, but who else does? I know my employers haven't - but then again everyone regularly put in 60-70 hours per week with ongoing promises of an IPO and things finally stabilizing. The IPO never happened; the pigfucking CEO simply drew larger and larger salaries and bonuses year after year.
  36. Re:Most applications will never become multi-threa by iangoldby · · Score: 4, Informative

    What we really need is either a language that can express things in such a way that the compiler can easily make good decisions about what can be parallelized
    You mean Fortran 90?

    Seriously, several constructs in Fortran are designed specifically for parallel execution. The language itself makes it hard to write code that the compiler can't heavily optimise. There's a reason why variable aliasing is strongly controlled in Fortran and why function parameters have an 'intent' attribute. Then there are constructs such as WHERE, which is by its very nature implicitly a parallel set of operations.
  37. Re:Most applications will never become multi-threa by kartracer_66 · · Score: 2, Interesting

    Concurrent applications needn't be so difficult to program. Take a look at the actors model and STM.

    What's unfortunate is that we're stuck on this idea that concurrency == multiple threads w/shared state. With that approach, sure, apps will never scale. You're right, we do need higher-level threading primitives. I'm just not so sure they're all at the compiler level.

  38. Can't think of anyone, but... by anss123 · · Score: 1

    most applications, like games and emulators, benefit more from one fast core contra multiple slower ones. There are also applications such as Matlab, where ease of use takes the high seat over performance.

  39. EFI = no XP by Anonymous Coward · · Score: 1, Interesting

    By convincing Intel to make Santa Rosa EFI-Only, MS can ensure that none of their pesky users will be able to install XP on it.

    Nothing like using monopoly influence to prop of sales of your lastest OS that no one really needs or wants.

    1. Re:EFI = no XP by Anonymous Coward · · Score: 0

      > MS can ensure that none of their pesky users will be able to install XP on it.

      Sure they can, they just run under QEMU on linux.

  40. Thread accell. about power or temperature? by hcdejong · · Score: 1

    I suspect this isn't so much about power as it is about temperature. With a dual-core chip, you expect both cores to contribute 50% to the heat load. If one core's throttled back, you can overdrive the other core without the chip overheating.

    1. Re:Thread accell. about power or temperature? by Wesley+Felter · · Score: 1

      With a dual-core chip, you expect both cores to contribute 50% to the heat load. If one core's throttled back, you can overdrive the other core without the chip overheating.

      This is not the case, because the heat does not spread out on the chip that much. So the peak temperature of a core doesn't depend on the behavior of the other cores. The fact that Intel is using EDAT indicates that Merom is power-limited but not temperature-limited.

  41. Re:Most applications will never become multi-threa by something_wicked_thi · · Score: 1

    I think this analogy is a bit disingenuous. First, OOP isn't all that complicated, and I did acknowledge that better tools that hide the complexity will help things. The other thin you have to consider is that OOP and threading are meant to achieve two separate goals. OOP is meant to simplify design whereas threading is meant to increase performance, often at the expense of simplicity. Threading is fundamentally harder than OOP because it's harder to think about, and it only matters if you need performance. OOP is a good idea to make a good design. That is always important. Threading, as it exists today, is actually at odds with correctness as it is much harder to guarantee correctness in the presence of threading. As correctness trumps performance any day ("I can make any program run instantly if it doesn't need to produce a correct result"), threading should be used sparingly. Oftentimes, you can make better performing apps by concentrating on other things, anyway.

    Anyway, I don't know why I'm writing so much. I could have just substituted "brainfuck" in place of OOP and shown that, just by substituting a word, you haven't proven anything. Just because it was a good idea to use OOP doesn't make it a good idea to use threading.

    BTW, where do you get your information about Google employees having paid research time? Google employees have 20% time, certainly, but that isn't "paid research time".

  42. slow down, slow down by Anonymous Coward · · Score: 0

    Reading your post make it sound like a Webapp, to be multi-threaded, can simply create one thread per user connecting to the Webapp. Maybe it's not what you meant, but it's how I read your post. Things are way more complicated than that. Many of the biggest Websites are backed by Java (I'll just cite three: GMail, eBay, FedEx). In Java, it used to be that one new thread was created per user session... But this simply wouldn't scale: it is fine for toyish websites, running a few simultaneous users, but it won't scale. The cost for multi-threading in Java (and presumably in C# as well), after a certain number of threads, is just too high.

    Making a multi-threaded Webapp by assigning a thread to each user is naive and unsustainable...

  43. Re:Oh no! Not UEFI! by cortana · · Score: 1

    If your OS allows spyware to install itself into the EFI partition then it is broken. :)

  44. Re:Most applications will never become multi-threa by Anonymous Coward · · Score: 0

    "Personally, I consider myself a damned good coder"

    It only counts if OTHERS consider you a damned good coder.

  45. Re:Most applications will never become multi-threa by something_wicked_thi · · Score: 1

    Thanks for that. I shouldn't have concentrated on the compiler. What I really think we need is language-level constructs, but that's certainly not what I said.

    I like the actor's model. It sounds like a formalization of message-passing, which (as I mentioned cross thread), is, in my opinion, the best multiprocessing model we have so far.

  46. Re:Most applications will never become multi-threa by Gr8Apes · · Score: 2, Insightful

    In my experience, most coders simply aren't capable of thinking
    threading through clearly


    I agree completely, though you can expect to catch some flack for
    that one, from the hoardes of poor coders who think nothing (or rather,
    who don't think about the implications) of splitting off another thread
    to boost performance (even in a single core environment). ;-) Hordes of even "good coders" can't properly code multi-threaded apps. Actually, after more than a decade as a programmer, I'm not sure there are hordes of good coders. There are good coders, and a disturbingly large percentage of them do not understand concepts like multi-threading or effective techniques of fail-safe systems coding.

    Personally, I consider myself a damned good coder - And I avoid
    multithreading wherever possible. If I really need the raw CPU
    power, I'll usually try to model it as a full slave process before
    resorting to messy threading. You may be a good coder, but you apparently fall into the majority camp by your own admission. Not that there's anything wrong with that though. You at least realize that multi-threading isn't your thing.

    We desperately need higher-level threading primitives in computer science. ...
    As one "mature" implementation, we could all start coding in HPF. I'd
    personally rather gnaw my own right leg off, but, to each their own. As many folks pointed out to me previously, Eiffel seems to be pretty nice in this arena. I've never seen a production use of it, but who's to say it's not the next big thing? (Perhaps 3+M Java coders?)

    The major issue with multi-threading remains though, and that's identifying the parallel processes. Take a series of sequential code blocks that involve retrieving pieces of information from several sources. If those retrievals are independent of each other, you can retrieve all the pieces concurrently (in parallel) and then sequence them together when all retrievals are done. Now the process takes the time of the longest retrieval plus assembly vs an sum of all retrievals and assembly. This type of process is quite common in enterprise systems working off of several DBs. Putting such code in a slave process requires inefficient messaging results back to the calling process, and adds unnecessary overhead. This is but one case where multi-threading helps performance significantly. I'm not sure that something like Eiffel would make this code any easier to write since the bulk of the multi-threaded work is in the design itself.
    --
    The cesspool just got a check and balance.
  47. Give us RIOTS! by Colin+Smith · · Score: 1

    We want it now! Run It On The Silicon!

    Give us an FPGA coprocessor on chip.

    --
    Deleted
    1. Re:Give us RIOTS! by level_headed_midwest · · Score: 1

      Coprocessors are certainly coming back to computers, just look at AMD's Torrenza and Intel's version of that (Geneseo?) These won't be on-chip, but they will certainly hook up to the CPU/chipset over high-speed links.

      Putting the FPGA on-chip would be a bit faster, but make for more expensive chips due to not only putting the FPGA on-chip but making different chips with different kinds of FPGAs or no FPGA. I'd settle for an off-chip, upgradeable FPGA rather than have to upgrade the CPU to upgrade the FPGA coprocessor.

      --
      Just "gittin-r-done," day after day.
    2. Re:Give us RIOTS! by Anonymous Coward · · Score: 0

      An FPGA core in the CPU would make for some very interesting optimisations. But there is a problem: programs that used it would be very specialised, and forward/backward support would not be easy to arrange. If you compiled a program for, say, an Intellium 9000 processor and made use of the onboard Xiltera 90 FPGA, your program might not work when Intellium brought out the 9001 processor with the new Xiltera 110 FPGA. This is because FPGA bitstreams are extremely specialised: they work for exactly one FPGA model, not a family or product range. If this were not the case, then FPGA designs would be constrained by legacy support, which would be expensive at such a low level.

      The solution to this might be just-in-time compilation of a platform independent netlist, using a CPU-specific driver provided by the OS. But none of the current FPGA manufacturers are willing to licence out their compilation tools for this purpose. And even if they did, the resource requirements for the tools are very high (they are slow). There are some academic projects involving hardware JIT (example), and these include more efficient versions of the place and route tools, so maybe one of those will provide the future direction.

      An additional issue is how to stop bad bitstreams damaging the CPU. Bad software (illegal instructions) can't damage the CPU hardware, but FPGA bitstreams could...

  48. Re:Most applications will never become multi-threa by ioshhdflwuegfh · · Score: 1

    You mean Fortran 90?

    Seriously, several constructs in Fortran are designed specifically for parallel execution. Not quite. FORTRAN 90 was an attempt to freshen up FORTRAN 77 to become like other languages (pointers, recursion, structures, dynamical memory management), but nothing there is particularly suited for or enforcing the parallel programming. There is an attempt though to make FORTRAN 90 "high performance", HPF (High-Performance Fortran), by adding some even older things, like side-effect free constructs that would help compiler automatically vectorize certain operations (vectorization is important in scientific/engineering applications), but, historically speaking, already LISP was better for parallelization than FORTRAN, like when you add two lists with (mapcar #'+ a b), compiler knows that all individual additions can be done in parallel. Nowadays you can use OpenMP (which is SMP oriented and newest versions of gcc support it) or MPI (which is message-passing oriented) both in FORTAN or C(++) that lets you give instructions where and how to parallelize; in terms of more general programming languages, there are Erlang and Ocamm.
  49. Below max clock vs. TDP by AcidPenguin9873 · · Score: 2, Informative

    What this amounts to is taking a part that is qualified to run at, say, 2.8GHz, and selling it with a default clock of 2.2GHz in order to meet TDP. Then, when one core is disabled, you crank up the other core's clock to 2.8GHz and stay within TDP. This sounds like a good idea for mobile computing, since power (i.e. battery life) is by far the most important thing. But for servers, I think you'd want to sell as many chips as you can with the highest rated clock freq, since those are higher margin.

  50. Two letters and a slash for you... by Anonymous Coward · · Score: 0

    ...other languages like functional ones on the other side make the job really easy

    I/O

  51. Six letters... by Anonymous Coward · · Score: 0

    Monads

  52. What about Sun? by thodi · · Score: 1

    Even though Intel is probably the industry's biggest proponent of multi-core computing and threaded programming [...]
    Huh? Intel? I beg to differ: http://www.sun.com/processors/niagara/, http://blogs.sun.com/jonathan/entry/rock_arrived
  53. Re:Most applications will never become multi-threa by DrSkwid · · Score: 1
    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  54. Don't worry by Anonymous Coward · · Score: 0

    Sooon the chinese will release the Dragon3 CPU. The Dragon3 CPU will be MIPS and will run at 3000 Bogomips. That is equivalent to a 1.5GHz pentium but without MMX (the most failed extension ever), SSE (this one too!), Virtualization Technology and DRM stuff. Then, chinese hackers will add a Dragon3 backend to gcc (easy since its MIPS) and then port linux kernel to it. And then, voila. The world will switch over to Dragon3 CPUs with OpenBIOS and no DRM. You'll be able to run windows with qemu. x86+nVidia+GPU will become a high performance playstation for kids....

    Chinese: the government that cares more about its 1Bn citizens than US lobbies.

    1. Re:Don't worry by 644bd346996 · · Score: 1

      I love how you dismiss intel's VT and then proceed to say that we can run windows in qemu. Wonderful. Also, the biggest reasons MMX was a dud were that it only operated on integers, and that it precluded the simultaneous use of the FPU. SSEx took care of both those problems, and are actually very widely used in all the applications that perform vectored math (which is basically anything dealing with multimedia or encoding or gaming).

      In the future, when trolling like this, try to make it funny and/or grammatically correct. Both of those will increase the exposure your troll gets.

    2. Re:Don't worry by Anonymous Coward · · Score: 0

      1) qemu does NOT use intel VT. It does full dynamic translation. KVM uses VT, but since Dragon3 is not x86, it would not be able to virtualize windows, whether VT or not.
      2) kqemu does not use intel VT either. Neither does VMware.
      3) SSE2? Sure. Gcc still defaults to FPU though. Go check out why.

      your the troll.

  55. let's not be subtle about this by r00t · · Score: 2, Insightful

    Some people didn't get it. Here:

    This chip has to throttle itself when you use all the cores. (probably a power/heat issue)

    People hate throttling. Throttling is not marketable.

    Intel marketing turned things around, saying that the chip speeds up (a.k.a. "stops throttling") when running single-threaded apps. Speeding up is good! It's like the old turbo buttons.

    It's a sane idea. I'd been expecting to see chips that can't run at full speed continuously because of heat issues; this is pretty much the same thing. I should've patented it...

    1. Re:let's not be subtle about this by fitten · · Score: 1

      People hate throttling. Throttling is not marketable.


      Odd because things like Cool-N-Quiet and SpeedStep are throttling mechanisms and most people go out of their way to use them. I had to download drivers, turn BIOS options on, and configure my OS in order to use Cool-n-Quiet, for example... and so did anyone else using the same board/OS/etc. If you get a machine with it turned on, you just go to the BIOS and disable it, but I don't know of a single person who has done that (maybe they didn't notice it was on).
  56. Re:Most applications will never become multi-threa by Anonymous Coward · · Score: 2, Informative

    Just for the fortran-ignorant reader, note that there have been two fortran standards since F90 - 95 and 2003.

    Also, the array-operations nicked from APL in modern fortran enable a lot of implicit parallelism, as does idiomatic fortran's referential transparency.

    DON'T base your opinion of Fortran on GNU Fortran - it'd be like taking Emacs Lisp to be the state-of-the-art in Lisp. The Intel Fortran compiler can do magic things.

  57. Re:Most applications will never become multi-threa by ioshhdflwuegfh · · Score: 1

    As one "mature" implementation, we could all start coding in HPF. Well, not really, and to see this we can ask few questions: why is there no HPF compiler for Linux? Why does not gfortran FORTRAN 90 simply "fall back" onto gcc? In both cases the answer is same: FORTRAN, any standard of it, is designed primarily with the numerical applications in mind. So FORTAN compilers are traditionally very good at optimizing numerical code exactly because they were designed to optimize numerical code.
  58. NOT twice the speed by Wesley+Felter · · Score: 1

    When one core is idle, the other one will only speed up by 200 or 400 MHz. So you have a choice between, say 2.4+2.4 GHz or 2.6+0 GHz.

  59. Re:Who cares? by Anonymous Coward · · Score: 0

    I guess those who like UEFI (Unsolicited Electronic Finger in the Asshole) would appreciate Intel's probings into this area.

  60. Re:Most applications will never become multi-threa by fitten · · Score: 1

    Data partitioning is what defines whether or not something can be parallelized and to what degree. The reason why Fortran (which another poster mentions) has the 'ability' to make decisions about what can be parallelized is fairly strong. If you notice, they are mostly restrictions on functions (no memory aliasing) and hints (the data in this loop can all be worked on in parallel).

    Even when you look at Message Passing, you'll notice that all the synchronization and methods are centered on data movement (availability to the node to be worked with). You'll also notice that many of the producer/consumer (master/slave, etc.) built-in algorithms require the programmer to structure the data in such a way as to packetize the blocks of data to fit certain qualifications so that the built-in algorithms have no data sharing violations.

    Compilers and hardware figure out instruction streams that are parallelizable fairly well. OOOE and pipelines are all about this in hardware and autovectorization is easy provided there are hints that the compiler is allowed to use it (and strictures such as 'no aliasing allowed' are sort of hints). It's partitioning the data that's hard, and can be very much a runtime issue.

  61. How about... by ioshhdflwuegfh · · Score: 1

    ...heterogeneous cores? Like where both cores are from the software perspective still SMP but one core is physically better for overclocking. For example, manufacturing standards could be raised so that one core has better specifications than the other and/or chips manufactured so that one core gets more cooling, etc...

    1. Re:How about... by fitten · · Score: 1

      They can make multi-speed cores on a single chip today. The problem with using them would be the OSs. The OSs would have to be modified to know about the different cores and such. That's not that big of a deal. What's more interesting is somehow classifying the programs/threads in such ways and supplying that to the OS (as well as runtime information that could be gathered from the cores by the OS) such that efficient scheduling is performed.

  62. Re:Who cares? by Caffeinate · · Score: 1

    Unsolicited Electronic Finger in the Asshole Wouldn't that be UEFA?

    Apologies for feeding the troll.
    --
    Godless heathen.
  63. The return of trusted computing? by shaitand · · Score: 1

    'Intel also foreshadowed a major announcement tomorrow around Universal Extensible Firmware Interface (UEFI) -- the replacement for BIOS that has so far only been used in Intel Macs. "We have been working with Microsoft," Intel hinted."'

    $10 bucks says this heralds a new age of DRM.

  64. Sum the Cores! by onebadmutha · · Score: 2, Interesting

    I understand that it doesn't work at this point, sorta like "don't cross the streams" from ghostbusters.. But really, we're talking about a long series of math problems at this point, why not interleave? I understand the math is hard, that's why intel has all of those Phd's. Getterdun. I wants me some Quake 9 a 4.2 billion frames per second. Plus, programming multithreaded is all superhardish!

    1. Re:Sum the Cores! by aXis100 · · Score: 2, Informative

      why not interleave

      Because many of the CPU math results depend on other results in the chain. Spreading those dependant operands across multiple CPU's may not be efficient.

  65. Re:Most applications will never become multi-threa by dfghjk · · Score: 1

    The advent of multicore CPUs HAS hurt single-threaded app performance. You must compare today's multicore CPUs with what would otherwise exist if development efforts were invested, instead, on accelerating single core performance like had always been done in the past. In that light it's clear that today's single threaded apps would be running faster had technology not changed direction.

    I'm not arguing that multicore isn't the right thing to do but your assertion is not correct. Who knows what reality would be today if multicore wasn't pursued, but odds are it would be faster than a single Core2 core.

  66. Re:Most applications will never become multi-threa by cpeterso · · Score: 1

    Multicore CPUs will likely affect single-threaded app performance. Core will probably become slower and simpler so more can be shoveled onto a CPU. If the number of transistors per CPU can't grow (as Moore's Law hits a brick wall), then reducing the number of transisters per core is how manufacturers will increase the number of cores per CPU.

    One workaround, though, would be asymmetric multiprocessing: pair one fast single-core CPU with a slow many-core CPU.

  67. Re:Most applications will never become multi-threa by amorsen · · Score: 1

    The advent of multicore CPUs HAS hurt single-threaded app performance. You must compare today's multicore CPUs with what would otherwise exist if development efforts were invested, instead, on accelerating single core performance like had always been done in the past. In that light it's clear that today's single threaded apps would be running faster had technology not changed direction.

    I think you're wrong. Multicore didn't require any particular development -- basically it's a cut-and-paste job. Intel even went for the real cut-and-paste job with their quad-core; just producing two dual-core processors and putting them in one package. Increasing single-thread performance on the other hand requires serious research at this point. All the cheap stuff has been done. IPC increases a few percent here and there, with lots of effort, and frequency increases a bit faster than that. Look at the Itanium for a serious attempt at single-thread performance. Not doing well.

    --
    Finally! A year of moderation! Ready for 2019?
  68. FSCK TRUSTED COMPUTING!!! by Anonymous Coward · · Score: 0

    EFI being able to run code, contact the internet and police my actions even BEFORE ANY OS loads, before I have ANY CONTROL?

    FSCK EFI. I refused to buy any Intel Mac because of it, because I know what it will be used for.

    Until I have user control of EFI, what comes and goes in/out of my machine they won't get my money.

  69. BIOS still screws up plenty by bill_mcgonigle · · Score: 2, Informative

    And besides, most modern OSes basically relegate the bios to the back burner. Its not like we're still calling bios interrupts from DOS anymore.

    It's not as good as you hope. I have three new machines all with BIOS bugs that are a real problem - a SiS mobo that doesn't setup my MTTR registers correctly and so causes the machine to run murderously slow unless I tell the kernel to map out the last bit of RAM or setup my own MTRR registers by hand, an Asus mobo that causes all kinds of problems and kernel panice on the IDE CD-ROM device unless it's jumpered slave, on the secondary bus, and on the end of a single-headed cable (yeah, that was easy to figure out) and an nVidia chipset with BIOS bugs that causes the third and fourth SATA drives in a server to drop dead if they're heavily used (Tyan has sent us new BIOS flashes to try to fix this 'known problem'.).

    My only success (that is, the gear actually works without crazy bugs) in the past couple years has been with all-Intel Mobos and HP Athlon boards.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  70. Open Firmware by turgid · · Score: 1

    Open Firware has been around a lot longer than intel's EFI, and is used by Sun, IBM and Apple for their RISC boxes.

    There is a free-as-in-speech implementation for the PeeCee called OpenBIOS.

    It's implemented in FORTH.

  71. Re:Most applications will never become multi-threa by deander2 · · Score: 1

    well, congrads on setting an unnecessary upper bound on the types of programming problems you're willing and able to tackle. being able to partition a problem into subtasks, understanding their interdependencies and devising the proper inter-process communication mechanism for sharing results and data, while non-trivial, is not infeasible. and it's necessary. supercomputers are all clusters now, and in many ways always have been. server farms are the norm now, and are being built at an alarming rate. there ARE actual mhz limits in this world, and compensating for the old von-neumann bottleneck with bigger and bigger caches is a generating a horrible ROI, silicon wise. so if you can't grow up, grow out.

    the whole "carburetors are good enough / fuel injection is for pussies" argument will only turn you into that grouchy old man whining about where all the ASM jobs have gone. multithreading on multiprocessor/cluster systems (and non-uniform memory architectures) are the future.

    (btw, i left my cushy programming gig to pursue my phd in exactly this area - gotta love volunteered poverty :)

  72. Re:Oh no! Not UEFI! by Anonymous Coward · · Score: 0

    Precisely! I'm expecting this bug to show up in Vista any day now! ;-)