Slashdot Mirror


Intel's Dual-core strategy, 75% by end 2006

DigitumDei writes "Intel is moving ahead rapidly with their dual core chips, anticipating 75% of their chip sales to be dual core chips by the end of 2006. With AMD also starting to push their dual core solutions, how long until applications make full use of this. Some applications already make good use of multiple cpu's and of course multiple applications running at the same time instantly benifit. Yet the most cpu intensive applications for the average home machine, games, still mostly do not take advantage of this. When game manufacturers start to release games designed to take advantage of this, are we going to see a huge increase in game complexity/detail or is this benifit going to be less than Intel and AMD would have you believe?"

71 of 306 comments (clear)

  1. Solitaire??? by zzmejce · · Score: 5, Funny

    I hope sol.exe will become dual-core aware soon.

  2. Dual Core Gaming by carninja · · Score: 2, Interesting

    One has to wonder if this is going to provide Intel with a competitive edge against Sony's Cell processor in the gaming front...

    1. Re:Dual Core Gaming by mcc · · Score: 3, Informative

      The XBox2 and Gamecube are both already known to be using POWER/PowerPC derivatives. Besides which, chip contracts for new consoles are the sort of thing that get worked out an amount of time in advance measured in years, and they're usually not bought from quite the same stock that PC OEMs are buying from. Intel's plans for their mass market "by late 2006" lineup really couldn't have any impact on the console world at all at this moment.

  3. dual cores by lkcl · · Score: 3, Insightful

    less heat generated. more bang per watt.

    1. Re:dual cores by gl4ss · · Score: 2, Informative

      not automatically.

      all else equal.. two cores, two times the power, two times the heat..

      --
      world was created 5 seconds before this post as it is.
    2. Re:dual cores by sbryant · · Score: 4, Informative

      all else equal.. two cores, two times the power, two times the heat..

      You haven't been paying attention! Go back and read this article again (about AMD's demo of their dual core processor). While you're at it, read the related /. article.

      The dual core processors use nowhere near double the power and produce nowhere near double the heat.

      -- Steve

    3. Re:dual cores by PureCreditor · · Score: 2, Insightful

      if the 2 cores can share L1 and L2, then it's less than "twice the power"...and given the close distances between the 2, it's not hard to create a high-speed connect that will equate Shared L1 to Local L1 speeds.

  4. Games do take advantage of having a second cpu by nounderscores · · Score: 4, Funny

    It's just that it's called a GPU, sits on a special card, on a special slot and is sold to you regularly about once every six months for an ungodly amount of money.

    It would be interesting if games were rewritten to run with the game logic on one core, the graphics on another core and the networking code on a third core of a multicore chip...

    Hey. You could even have a mega-multicore chip and do first person shooters with realtime raytracing... each core is responsible for raytracing a small area of the screen. I'm sure that there's a company working on this. I saw a demo video in a computer graphics lecture. I'll have to check my notes.

    1. Re:Games do take advantage of having a second cpu by svanstrom · · Score: 2, Interesting

      It isn't really the game itself that needs to be written to take advantage of a second CPU (or whatever), it's the code that's always being reused (either something inhouse, or the engine that they're using).

      People are lazy, and when things will work today as it is, most companies will rather focus on releasing the game asap than spending alot of time recoding what they've already got...

      It comes down to how much money they can make in as little time as possible.

      But, of course, once a company starts pushing their better performance/more features/more "beautiful" games, then everyone else has to catch up instantly; or else their profit goes down.

      It's a "all of us or none of us"-kind of a game, with really really high stakes.

      --
      perl -e'print$_{$_} for sort%_=`lynx -dump svanstrom.com/t`'
    2. Re:Games do take advantage of having a second cpu by TheRaven64 · · Score: 2, Interesting

      The problem is that x86 is a horrible architecture for multithreading. On a standard x86 chip, a context switch is about 100 times more expensive than a function call (on an architecture like PowerPC or SPARC function calls and context switches have similar overheads). Designing a multithreaded game is relatively easy, but would give a huge performance penalty on uni-processor machines.

      --
      I am TheRaven on Soylent News
    3. Re:Games do take advantage of having a second cpu by TomorrowPlusX · · Score: 2, Interesting

      Actually, for what it's worth I'm writing a game in my free time which already splits rendering and (physics/game logic) into two threads. The idea being that the physics runs while the rendering thread is blocking on an opengl vsync. While the behavior is synchronous, it runs beautifully on both single and dual processor machines.

      In principle this should have detrimental effects on single processor machines but my relatively meager 1.3 ghz powerbook plays beautifully at 30 fps and 60 physics frames per second.

      Anyway, this isn't *really* what's being discussed since the behavior is in fact synchronous, but I'm just saying it ain't hard. I'm surprised more games aren't multithreaded. It's not as if MT is hard. You just have to be careful.

      --

      lorem ipsum, dolor sit amet
    4. Re:Games do take advantage of having a second cpu by Rhys · · Score: 3, Interesting

      Beyond the GPU, any intensive computation application gets benefits from the second CPU.

      Our local (to UIUC) parallel software master, working on the turing xserve cluster is pulling about 95% (I think, don't quote me) of theoretical peak performance in linpack running on 1 cpu on 1 xserve. Bring that up to both cpus in one and he said it dropped to around 50%.

      Why? The OS has to run somewhere. When it's running, that processor is stuck with it. The other processor is stuck waiting for the OS, and then things can pick up again.

      Now, we haven't yet finished tuning the systems to make the OS do as little as possible. (they're still running GUIs, so we can remote desktop into them amoung other things.) But still that's quite a performance hit!

      He said two machines running 1 CPU each over myrinet were still in the 90%ish of theoretical peak.

      So can we quite rehashing this stupid topic every time dual core CPUs comes up? Yes it'll help. No it won't double your game performance (unless it's written for a dual-core cpu), and probably it won't even double it then, because there's still teamspeak/windows/aim/virus scan/etc running that need cpu time.

      --
      Slashdot Patriotism: We Support our Dupes!
    5. Re:Games do take advantage of having a second cpu by nounderscores · · Score: 2, Funny

      I can see it now. Sony Playstaion X being bought by enemy nations to harvest their AI cards and install them in a new autonomous guidance module for SWORDs.

      At present, the SWORD robot is operated with a thirty-pound control unit with two joysticks, buttons and a video screen. I wonder how much the current control module looks like a playstation portable?

    6. Re:Games do take advantage of having a second cpu by amorsen · · Score: 3, Interesting
      (on an architecture like PowerPC or SPARC function calls and context switches have similar overheads).

      I have no idea where you got that from. x86 is a relatively fast architecture when it comes to context switches. SPARC has the huge register file to save and reload.

      I can't find recent results though. If anyone has recent comparative lmbench numbers I'd like to see them.

      --
      Finally! A year of moderation! Ready for 2019?
    7. Re:Games do take advantage of having a second cpu by wilsone8 · · Score: 2, Insightful

      Multithreading IS hard if you are sharing any state between the threads. And the difficulty in debugging multithreaded issue in a large/complex application (i.e., any commercial game these days) goes up by at least an order of magnitude with the introduction of true multi-threading via 2 cores. On a single processor machine, you can get away with more because you don't have true concurrency. And in your particular case, you actually have no concurrency so it is even easier. But if you want to be truely scalable and try to squeeze as much out of that second processor as possible, you have to deal with all sorts of problems like deadlock, write barriers, critical sections, etc. These are HARD issues, not least because many of the bugs these issues can introduce are both hard to wrap your head around and because the issues will only expose themselves when you get an unlucky context switch at just the right moment in execution.

      --
      The real problem is not whether machines think but whether men do. - B.F. Skinner
    8. Re:Games do take advantage of having a second cpu by magarity · · Score: 4, Insightful

      networking code on a third core

      The CPU waiting on networking, even 1Gbits/sec, is like waiting for a raise without asking. It's so little overhead to a modern CPU that using an entire core to do it is an exercise is silliness. If you are worried about any overhead associated with network encryption, etc, you can just spend $45 on an upgraded NIC with that capability built in to its own logic. The CPU never need be bothered.

    9. Re:Games do take advantage of having a second cpu by callipygian-showsyst · · Score: 4, Funny
      I have no idea where you got that from.


      Probably from a recent Mac users meeting! I've gone to those things, and you see these people who do nothing but run Photoshop all day long skip around and say "Intel is bad because its thegmented!" and other nonsense.

    10. Re:Games do take advantage of having a second cpu by Anonymous Coward · · Score: 2, Informative

      The problem is not the architecture but the OS. The perfomance impact on context switches is mostly in changing the memory space (TBL, cache flush). Just two people developed an OS that runs all programs in the same space, so the processor keeps running at full speed. It can do this because it's written in a safe language (Java, but could be C# or other) so nothing can write to arbitrary addresses.

      Despite being written in Java by just two people instead of the thousands that wrote the Linux kernel and optimizing C compiler, it is 50% the speed doing actual work. For comparison, commercial JVMs generate code that ranges from 2x-5x faster than gcj (gcc's java compiler) so this OS could easily be much faster than Linux. The only hold-up is drivers and support for archaic C/UNIX style programs (they should put it into the linux kernel as a module and gradually replace linux code with sane OO code).

  5. cue the spell-checker jokes by Anonymous Coward · · Score: 3, Funny

    or is this benifit going to be less

    how long will it be before dual core CPUs boost slashdot editor's ability to spell-check?

  6. Well... by Kn0xy · · Score: 3, Insightful

    If their going to be that ambitious with their sales, I hope the are concidering pricing the the chips in a price range that anyone could afford and is willing the pay.

    1. Re:Well... by Jeff+DeMaagd · · Score: 2, Informative

      Just like many other advancements in CPU, yes, people will be able to afford them, if not right away, pretty quickly.

      I think the initial pricing for a dual core 2.8 GHz chip is about $250. 3.0 & 3.2GHz will be available at higher prices, I think an extra $100 per step.

  7. Memory latency is the limiting factor by rastan · · Score: 3, Informative

    AFAIK memory latency/bandwidth is currently the limiting factor in conmputation speed. Dual core processors will not change this, but make the gap even bigger.

    --
    Understanding is a three-edged sword. --Kosh
    1. Re:Memory latency is the limiting factor by MindStalker · · Score: 3, Interesting

      Not nessesarly, as both cores share the same memory controller and registered memory, latency from core to core is essentially zero. I wonder if someone could write some really smart code that has one core doing all memory prefetching and the second core doing the actual computations. Could be interesting.

    2. Re:Memory latency is the limiting factor by Deliveranc3 · · Score: 2, Insightful

      Budy, some of us have AMD.

      Come on in the HyperTransport is fine. Care for a pinya-Onchipmemorycontroller?

    3. Re:Memory latency is the limiting factor by philipgar · · Score: 3, Informative

      The idea of using a second core to prefetch is not really a new idea, and actually (at least for Intel chips) is not really a smart idea.

      A more useful practice is the use of speculative prefetching on SMT (i.e. Hyper-Threading) cpus, where one thread runs the code, and the other thread speculates ahead issuing prefetch instructions. Of course to really support this well you need to have a compiler optimized for generating a speculative thread to run ahead of the primary thread.

      All this makes programming much more difficult. My approach to software prefetching (Im currently involved in research in using SMT and software prefetching in databases) follows a different model, and shows that using a software-pipelining approach works remarkably well to hiding main memory latency due to cache misses.

      Of course this is in a database world where things are ordered. .. . However this approach could also be applied to a game where instead of iterating over objects running every detail for the object you do work on object 1, prefetch object 1's next memory reference, do the second stage of object 2 etc etc. It needs special consideration to be done properly, but if its the core of your algorithm, it can have dramatic effects on performance (particularly if your objects do not fit entirely within L2 cache, and require different parts of them to be loaded each iteration).

      While a speculative thread can prefetch these objects the performance benefits of this thread yield roughly the same performance boost as simply using software-pipelining techniques, and leave the resources for a second thread to run simultaneously with the first. Although if a sufficient speculative prefetch thread compiler is created then that approach is much easier to use for everyday applications.

      Phil

    4. Re:Memory latency is the limiting factor by Lonewolf666 · · Score: 3, Informative

      Not as much as you imagine.
      Compare an Athlon64/Socket939 to an Athlon64/Socket754 with the same clock speed. The Socket939 version has twice the memory bandwidth, but on average only 10% better performance according to AMD's P-Rating.
      Now consider a dual core Athlon64/Socket939 with the same clock speed, where the two cores share the higher memory bandwidth. I would expect this chip to be as fast as two Athlon64/Socket754, or 80% faster than a single core Socket939 model.
      Actually, clock speed will be a greater limitation:
      AMD has announced that the dual core versions will run at 400-600MHz less to reduce the heat output.

      --
      C - the footgun of programming languages
  8. Huge increase in game complexity? In short: No by Reverant · · Score: 5, Insightful
    When game manufacturers start to release games designed to take advantage of this, are we going to see a huge increase in game complexity/detail
    No, because most games depend more on the gpu rather than the CPU. The cpu is left to do tasks such as opponent AI, physics, etc, stuff that the dedicated hardware on the graphics card can't do.
    1. Re:Huge increase in game complexity? In short: No by tc · · Score: 2, Informative

      In my experience doing performance tuning, most games tend to be CPU (and/or memory-bandwidth) bound on their common configurations. Sure, you can always concoct cases where this isn't true (e.g. slow video card in super-fast PC, insane resolutions or pathological scenes), but it does tend to be broadly the case.

      This is partly because it's much easier to tune to a GPU budget. On the PC you can recommend different resolutions and/or anti-aliasing modes and instantly have a dramatic impact on fill-rate requirements without sustantially altering how your game plays. You can also add or remove polygons from models, and swap out shader effects until you get something that fits your budget on your target platform.

      Tuning for CPU is more difficult, because making a sweeping change is likely to have gameplay impact and is harder to do. Changing how often or how deeply the AI thinks, or the level of sophistication of your physics system, is going to have an impact on gameplay, and is certainly a lot more programmer work than just telling your artists to remove a couple of lights. Coming up with more efficient algorithms that deliver identical results requires a lot more hard thinking - and time for that is limited.

    2. Re:Huge increase in game complexity? In short: No by ivan256 · · Score: 2, Interesting

      The cpu is left to do tasks such as opponent AI

      Funny that you call that a "basic task."

      Game AI can easily use all the computing power you can throw at it. Look at how much CPU it takes to beat the best players at chess... And that has signifigantly less potential computational strategy involved than, say, a realistic tactical war sim...

      The problem is that most current games these days are tests of reflexes and memory. Few games employ adaptive strategy. Of the games that do, I can't think of any that use it in real-time. That's probably why you see AI as a simple task... In reality, game AI is simple because computers are too slow for it to be complex.

  9. relevant article by antonakis · · Score: 5, Informative

    I don't know if it has been referenced here before, a very interesting and enlightening article : http://www.gotw.ca/publications/concurrency-ddj.ht m

    1. Re:relevant article by prezninja · · Score: 3, Informative

      I don't think the parent did enough to sell this article to the masses reading through, although it is an excellent reference.

      The article linked to by the parent ("The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software") should be read, and is of particular interest to developers.

      The article draws a very good picture of how the trend towards mutli-core systems will require developers to rethink the way they design their applications if they want to continue taking advantage of future increases in processing power.

      I was referred to this article yesterday, and it is so good and motivating that I imagine it will be the feature of or featured in future Slashdot articles.

      It will be appearing in Dr. Dobb's Journal later this month.

  10. So Intel's going to be a year late ?. by Gopal.V · · Score: 3, Interesting
    AMD demo'd their dual core x86 a year ago. Also from what I read, the Pentium extreme is NOT going to share the memory controller - which means unlike the AMD, we might need a new motherboard for the dual core ones (well, AMD promised that we wouldn't). So this is costlier, uglier and more power hungry.

    All in all I see that Intel is going down unless they do something quick. And remember Competition is good for the Customer.

  11. Pretty soon by PeteDotNu · · Score: 2, Insightful

    Once multi-core chips start getting into home computers, the game developers will have a good justification for writing thread-awesome programs.

    So I guess the answer to the question is, "pretty soon."

    --
    My other processor is big-endian.
  12. Meanwhile back in PPC land by Anonymous Coward · · Score: 5, Interesting

    I find this interesting, every machine Apple sells except at the definite low end is dual CPU SMP now, and it's been this way for awhile. Now Intel/AMD seem to be realizing "oh yeah, dual cpus, maybe that's something we should start targeting for the mass market instead of just the high end" (though AMD seems to be pretty comfy with the idea already). I wonder why Apple doesn't seem interested in dual cores though. Intel/AMD seem to be treating multicore tech as their way of getting SMP out of the power-user range, Apple doesn't seem to want to have anything to do with it even though POWER has had multicore ability for a really long time. What's up with this, is there something I'm missing?

    1. Re:Meanwhile back in PPC land by chrishillman · · Score: 2, Insightful

      Apple has offered Dual-CPU systems for a long time, but they are more than just a company for teachers to buy computers from. They also sell systems to graphic artists, publishing houses and many other places that benefit from dual-CPU systems. It's just the Apple shotgun approach, they are aming at their market which includes many levels of users. It's not their intention that Grandma should have a dual CPU 64bit system (unless she is a Lightwave user looking to decrease render times). Multiple core CPUs have been AMDs dream for a long time now. This is just Intel not wanting to look stupid on the 64bit front any longer. They are making sloppy decisions to try to beat AMD to market so Dell can use such "innovations" in their ads.

  13. Hmm? by Erwos · · Score: 4, Insightful

    "how long until applications make full use of this"

    Full use? Probably never. There's always improvements to be made, and multi-threaded programs are a bitch and a half to debug, at least in Linux. Making "full use" of SMP would _generally_ decrease program reliability due to complexity, I would imagine.

    But, with an SMP-aware OS (Win2k, WinXP Pro, Linux, etc.), you'll definitely see some multi-tasking benefits immediately. I think the real question is, how will Microsoft adjust their licensing with this new paradigm? Will it be per-core, or per socket/slot?

    I'm going to go out on a limb and predict that Longhorn will support 2-way SMP even for the "Home" version.

    -Erwos

    --
    Plausible conjecture should not be misrepresented as proof positive.
  14. All the consoles will use IBM by g2racer · · Score: 2, Insightful

    A little off topic, but anybody find it interesting that all the next generation consoles will use IBM processing power? Considering the number of consoles sold compared to PCs, this has got to piss both Intel and AMD off...

    1. Re:All the consoles will use IBM by Ironsides · · Score: 2, Insightful

      Not really. Intel and AMD have never had the console gaming market. Also, the consoles really do require either an embedded microprocessor, or one that is customized. The gameboy series uses arm7 and arm9 processors. The recent Consoles themselves have used customized ones. The X-Box is the only exception in that it used a general purpose Pentium 3.

      I can see that Intel and AMD might want to break into that market, but they would have to create a custom chip (as a general purposed will either use too much power or won't cut it) just for that. Something I am not sure they want to do.

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
    2. Re:All the consoles will use IBM by betaguy9000 · · Score: 2, Informative

      The Gameboy uses a Z80. The Xbox uses a Celeron.

  15. That Is The Change In Software by EngineeringMarvel · · Score: 4, Insightful

    Your statement is true, but I think you missed the point the article poster was trying to get across. Currently games are writeen to use computer resources that way. If the code was written differently for games, they could allocate some of the graphic responsiblities to the 2nd CPU instead of all of it going to the GPU. The 2nd CPU could be used to help the GPU. Allocating more of the now available (2nd CPU) resources to graphics allows more potential in graphics. That's what the article poster wants to see, that game resoure allocation written in the games code be changed to use the 2nd CPU to help enhance graphics in the video game.

    --
    I couldn't think of anything witty to say, so...you're stuck with this.
  16. Me too by imrec · · Score: 5, Funny

    Those bouncing cards STILL leave trails at the end of a game! REFRESH! GAWDAMNIT! REFRESH!!

    --
    Note: This sig contains nine S's, nine I's and five O's which... means absolutely nothing.
  17. It's called Multi-threading by TimeTraveler1884 · · Score: 2, Interesting

    For example on the Intel HT processors, all I have to do is write my applications to use multiple threads for operations that are CPU intensive and voila! I have almost doubled the speed of my app. Otherwise, a single thread app will only use one of the cores.

    Often, it's almost trivial to write an app as a multi-threaded app. The only difficult part is when a the problem your application is solving does not lend itself well to paralellization. So sequential problems don't really benefit from it.

    However, this is almost always -something- that can be done in paralell. Even if the problem the app is solving is highly sequential, if you need to read the disk or anything, you can always implement look-ahead and caching code that runs in a different thread. Or whatever. Because it's rare you will just cruch numbers and not display it, require data, or send it across a network. Usually, the GUI itself will have it's own thread and benefit from a dual-core processor

  18. It's just _Dual_ by infofarmer · · Score: 2, Insightful

    Oh, come on, it's just dual, it's just a marketing trick. Speed has been increasing in a logarithmic manner for years on end, and now we're gonna stand still at the word "Dual"? If intel/amd devise a way within reason to logarithmically increase the number of cores in a CPU (which I strongly doubt), that'll be a breakthrough. But for now - it's just a way to keep prices high without inventing anything at all. WOW!

  19. Re:Quake 3? by Anonymous Coward · · Score: 2, Informative


    It did. It was dropped in Doom 3, as it really wasn't that much of a win for the effort.

    Modern games are really limited by bandwidth or by GPU power. CPU power is only really used for game logic, which isn't terribly complex compared to the other parts of a game.

  20. Complexity/detail by Glock27 · · Score: 3, Insightful
    "are we going to see a huge increase in game complexity/detail?"

    If you consider a factor of about 1.8 (tops) "huge".

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  21. Make sure you first don't pay double by bigtallmofo · · Score: 4, Interesting

    Check your licensing agreements before you buy one of these dual-core processors. Make sure that your software vendor isn't going to double the price on you.

    Oracle and others have announced plans to increase their revenue by charging people for multiple cores in their single processor.

    --
    I'm a big tall mofo.
  22. Re:So Intel's going to be a year late ?. by unother · · Score: 5, Insightful

    Yes, but since the core of Intel's marketplace consists of people who see a monitor and think it is the computer, this is a barrier that Intel can easily hurdle.

  23. OpenGL Performer by Anonymous Coward · · Score: 2, Interesting

    This problem has already been solved by OpenGL Performer

    Applications, even 'games', written using Performer, will immediately benefit from multiple CPUs.

  24. Re:fp by Anonymous Coward · · Score: 4, Funny

    If you had a dual-core system you would have gotten second post too.

  25. Fairly simple... by Gadgetfreak · · Score: 3, Insightful

    I think as long as the hardware becomes established, people will write software for it. From time to time, hardware manufacturers have to push the market in order to get the established standard to jump to the next step.

    It's like what Subaru did when they decided to make all their vehicles All Wheel Drive. It was a great technology, but most people at the time just didn't care to pay extra for it. By making it a standard feature, the cost increase is significantly reduced, and provided that the technology is actually something functional, the market should grow to accept it.

    --
    "No fair, you changed the outcome by measuring it!" - Professor Hubert J. Farnsworth
  26. Games and multi core by Anonymous Coward · · Score: 5, Interesting

    As already mentioned games already do make use of the GPU and the CPU so we're fairly used to some mutliprocessor concerns.

    To say that most PC games are GPU bound however is a mistake - most games I've come across (and worked on as a games core technology/graphics programmer) are CPU bound - often in the rendering pipeline trying to feed that GPU.

    Anyhow games are already becoming dual-core aware. Most if not all multiplayer games make use of threads for there network code - go dual core (or hyperthreading) and you get a performance win. Again most sound systems are multi threaded often with a streaming/decompression thread, again a win on multi core. These days streaming of all manner of data is becoming more important (our game worlds are getting huge) and so again we will be (are) making use of dual core there too.

    I personally have spent a fair amount of time performance enhancing our last couple of games (mostly for HT but the same applies to true dual core) to make sure we get the best win we can. For example on dual core machines our games do procedural texture effects on the second core that you just don't get on a single core machine and still get a 20% odd win over single core. I'm sure most software houses take this as seriously as us and do the same. It's very prudent for us to do so - the writings been on the wall about multi processors being the future of top end performance for a while now.

    At the end of the day though us games developers have little choice but to embrace multi core architectures and get the best performance we can. We always build software that pushes the hardware to the full extent of it's known limits because that's the nature of the competition.

    Just think what the next generation of consoles is going to do for the games programmers general knowledge of concurrent programming techniques. If we're not using all of the cores on our next gen XBox or PS3 then our competition will be and our games will suck in comparison.

  27. Do they share the cache? by jbb999 · · Score: 3, Interesting
    Do these new chips share the highest speed cache? I can think for several ways to make use of them without using traditional threads. For example: Set up a pool of threads each one of which just reads a function address from a queue of work and then calls that function, waiting when there is no work. The main program can then just push function pointers onto the queue knowing that a thread will pick up the work.
    I'm thinking that instead of writing something like
    for(int i = 0; i < NumberOfModels; i++) {
    UpdateModelAnimation(i);
    }
    you could write
    ThreadPool* pool = new ThreadPool();
    for(int i = 0 ; i < NumberOfModels; i++) {
    pool->QueueAsyncCall(UpdateModelAnimation, i);
    }
    pool->WaitForAllToFinish();
    The queueing of work could be made pertty low overhead and so if there were only a few thousand CPU instructions in the call you'd get a big speed up, but only if each processor already had the data they were working on in cache. If each core has a separate cache this would be a lot less efficient. Does anyone know?
  28. Dual core is soooo last-year by frogmonkey · · Score: 2, Insightful

    I am going to wait for at least quad core 64bit processors ;)

  29. Boon for Game AI by fygment · · Score: 2, Insightful

    A lot of posts have quite rightly pointed out that the GPU is currently how games use a "pseudo" dual core. But it seems that what games could be doing now is harnessing the potential of dual core not for graphics, but for game enhancement i.e. better physics and true AI implementations. Realism in games has to go beyond tarting up the graphics.

    --
    "Consensus" in science is _always_ a political construct.
    1. Re:Boon for Game AI by tartley · · Score: 3, Interesting
      While I agree very strongly with the sentiment that improvements in games have to go beyond tarting up graphics, if considererd carefully this exposes a fundamental problem.

      Any aspect of a game may be programmed to scale with the hardware upon which the game is run (eg. graphics get more detailed, framerates improve, physics is more realistic, AI gets smarter)

      However, the problem here is that if these improvements to the game are in any way substantial rather than superficial - if they actually affect the gameplay in any way - then users playing the game on a high-end machine will end up playing a substantially different game than users on a low-end machine.

      In the case of more detailed graphics, or better framerates, the changes are superficial enough that this does not matter. But for anything deeper - such as AI - the developer has to ask themselves whether it is really desireable for the intelligence of in-game aliens to depend on the nature of the PC the game is run on. Will a low-end PC make the aliens so stupid that the game is substantially easier? Will a high-end PC result in aliens which consistently frustrate the player?

      In order to fix this, developers might consider preventing the software from running on systems which are deemed 'too slow', or they may disable features such as 'AI scaling' on systems that are 'too fast' - ironically these desparate measures would of course be in direct opposition to the original intent of making the game scale well across a wide variety of hardware.

  30. One possible multi-threaded benefit by JSBiff · · Score: 4, Interesting

    I would like to see a more multi-threaded approach to game programming in general, and not all the benefits would necessarily be about performance.

    One thing that has bugged me a long time about a lot of games (this has particular relevence to multi-player games, but also single player games to some extent) is the 'game loading' screen. Or rather, the fact that during the 'loading' screen I lose all control of, and ability to interact, with the program.

    It has always seemed to me, that it should be possible, with a sufficiently clever multi-threaded approach, to create a game engine where I could, for example, keep chatting with other players while the level/zone/map that I'm transitioning to is being loaded.

    Or maybe I really want to just abort the level load and quit the game, because something important in Real Life has just started occuring and I want to just kill the game and move on. With most games, you have to wait until it is done loading before you can then quit out of the game.

    In other words, even ignoring performance benefits for a moment, if a game engine is correctly multi-threaded, I could continue to have 'command and control', and chat, functionality while the game engine, in another thread, is loading models and textures.

    1. Re:One possible multi-threaded benefit by nounderscores · · Score: 3, Interesting

      In other words, even ignoring performance benefits for a moment, if a game engine is correctly multi-threaded, I could continue to have 'command and control', and chat, functionality while the game engine, in another thread, is loading models and textures.

      That would put the pressure back where it should be - on the level designers - to make sure that each segment was challenging enough so that a player couldn't pass through two loadzones simply by running so fast that the first zone hasn't fully loaded yet and wind up in a scary blank world full of placeholder objects.

    2. Re:One possible multi-threaded benefit by dasunt · · Score: 2, Insightful
      One thing that has bugged me a long time about a lot of games (this has particular relevence to multi-player games, but also single player games to some extent) is the 'game loading' screen. Or rather, the fact that during the 'loading' screen I lose all control of, and ability to interact, with the program.

      It has always seemed to me, that it should be possible, with a sufficiently clever multi-threaded approach, to create a game engine where I could, for example, keep chatting with other players while the level/zone/map that I'm transitioning to is being loaded.

      You don't technically need multithreading to make the game seem responsive while its doing something.

      Imagine:

      while ( load_tiny_bit_of_map() )
      {
      if ( check_input() ) { process_input(); }
      }

      Assuming that the function 'load_tiny_bit_of_map()' takes only a few dozen milliseconds, you won't notice it.

      Being multithreaded makes that a bit easier, but other parts of the game may grow in complexity (depending on the game). The reason why that's not done is lazyness/lack of time/poor feedback. (I always thought there should be a minigame or something while maps load...)

  31. Already can take advantage it by mcbevin · · Score: 2, Insightful

    The average system is already running a number of different processes at once. Even if most individual applications aren't multithreaded, a dual-core will help not only make the system technically faster but also help hugely on the response of the system (which is often a far more important factor for the 'feel' of how fast a system is as the user experiences it) whenever process are running in the background.

    While one might ask whether it makes much useful difference to the 'average' home user, one might ask the same about say 4ghz vs 2ghz - for most Microsoft Word users this makes little difference in any case. However, for most users who really make use of CPU-power in whatever form, the dual-core will indeed make a difference even without multi-threaded applications, and it won't take long for most applications where it matters to become multi-threaded, as its really not that hard to make most cpu-intensive tasks multi-threaded and thus further improve things.

    I for one am looking forward to buying my first dual-CPU, dual-core system (i.e. 4x the power) once the chips have arrived and reached reasonable price levels, and I'm sure that power won't be going to waste.

  32. Performance plateau and functional programming by barrkel · · Score: 5, Interesting

    I believe that we're going to see a performance plateau with processors and raw CPU power for the next 5 years or so.

    The only way CPU manufacturers are going to get more *OPS in the future is with many cores, and that's going to require either slower or the same kind of speeds (GHz-wise) as things are today. To get programs to run faster under these circumstances you need some kind of explicitly parallel programming.

    We haven't seen the right level of parallelism yet, IMHO. Unix started out with process-level parallelism, but it looks like thread-level paralellism has beaten it, even though it is much more prone to programmer errors.

    On the other end of the scale, EPIC architectures like Itanium haven't been able to outcompete older architectures like x86 because the explicitly parallel can be made implicit with clever run-time analysis of code. Intel (and, of course, AMD) are their own worst enemy on the Itanium front. All the CPU h/w prediction etc. removes the benefit of the clever compiler needed for EPIC.

    Maybe some kind of middle ground can be reached between the two. Itanium instructions work in triples, and you can effectively view the instruction set as programming three processors working in parallel but with the same register set. This is close (but not quite the same) to what's going to be required to efficiently program multi-core CPUs, beyond simple SMP-style thread-level parallelism. Maybe we need some kind of language which has its concurrency built in (something sort of akin to Concurrent Pascal, but much more up to date), or has no data to share and can be decomposed and analyzed with complete information via lambda calculus. I'm thinking of the functional languages, like ML (consider F# than MS Research is working on), or Haskell.

    With a functional language, different cores can work on different branches of the overall graph, and resolve them independentantly, before they're tied together later on.

    It's hard to see the kind of mindset changes required for this kind of thinking in software development happening very quickly, though.

    We'll see. Interesting times.

    1. Re:Performance plateau and functional programming by Ulric · · Score: 2, Insightful

      I do not for one moment believe that Amdahl's law won't affect these systems. Dual-core won't be a problem, quad-core probably won't, but I can't see that stuffing in more cores will solve the scalability problem in the long run.

    2. Re:Performance plateau and functional programming by Ulric · · Score: 2, Interesting
      It is small for certain applications.

      Quoting Twelve Ways to Fool the Masses When Giving Performance Results on Parallel Computers:

      2. Present performance figures for an inner kernel, and then represent these figures as the performance of the entire application.

      It is quite difficult to obtain high performance on a complete large-scale scientific application, timed from beginning of execution through completion. There is often a great deal of data movement and initialization that depresses overall performance rates. A good solution to this dilemma is to present results for an inner kernel of an application, which can be souped up with artificial tricks. Then imply in your presentation that these rates are equivalent to the overall performance of the entire application.

      4. Scale up the problem size with the number of processors, but omit any mention of this fact.

      Graphs of performance rates versus the number of processors have a nasty habit of trailing off. This problem can easily be remedied by plotting the performance rates for problems whose sizes scale up with the number of processors. The important point is to omit any mention of this scaling in your plots and tables. Clearly disclosing this fact might raise questions about the efficiency of your implementation.

      8. If MFLOPS rates must be quoted, base the operation count on the parallel implementation, not on the best sequential implementation.

      We know that MFLOPS rates of a parallel codes are often not very impressive. Fortunately, there are some tricks that can make these figures more respectable. The most effective scheme is to compute the operation count based on an inflated parallel implementation. Parallel implementations often perform far more floating point operations than the best sequential implementation. Often millions of operations are masked out or merely repeated in each processor. Millions more can be included simply by inserting a few dummy loops that do nothing. Including these operations in the count will greatly increase the resulting MFLOPS rate and make your code look like a real winner.

      10. Mutilate the algorithm used in the parallel implementation to match the architecture.

      Everyone is aware that algorithmic changes are often necessary when we port applications to parallel computers. Thus in your parallel implementation, it is essential that you select algorithms which exhibit high MFLOPS performance rates, without regard to fundamental efficiency. Unfortunately, such algorithmic changes often result in a code that requires far more time to complete the solution. For example, explicit linear system solvers for partial differential equation applications typically run at rather high MFLOPS rates on parallel computers, although they in many cases converge much slower than implicit or multigrid methods. For this reason you must be careful to downplay your changes to the algorithm, because otherwise the audience might wonder why you employed such an inappropriate solution technique.

  33. Re:So Intel's going to be a year late ?. by jest3r · · Score: 2, Interesting

    AMD will be releasing Quad Core chips as early as 2007 according to Arstechnica. Where does that leave Dual Core?

    http://arstechnica.com/news.ars/post/20040813-40 99 .html

  34. in other news... by SpongeBobLinuxPants · · Score: 2, Funny

    anticipating 75% of their chip sales to be dual core chips by the end of 2006

    global warming expected to increase by 75% by the end of 2006

  35. Already done, apparently. by raygundan · · Score: 2, Informative

    I would think so! All the "big" chess computers (Deep Blue, etc...) have just been massively parallel systems, and chess is one of those things that people have been coding and refining for years. I'm not much of a chess player myself-- computers have been kicking my ass since the 1MHz era, but it appears that multiprocessor chess software is already available for end-users:

    Deep Junior 9 and Deep Shredder 9 support multiple processors, and should have no trouble on a multicore system.

    Each core doubles how many moves it can evaluate in a given time-- and searching possible moves is primarily how chess algorithms work.

    Plus... Shredder renders a fancy 3D glass chess set for you, making sure your GPU doesn't get lonely with nothing to do.

  36. Oracle will change in due time... by Anonymous Coward · · Score: 2, Informative

    When dual-core procs become the norm, Oracle will wonder why everybody stopped buying their software, and will adjust their pricing accordingly. Oracle has made a science out of accurately determining what price the market is actually willing to bear, just a smidgeon short of the market telling them to "F--- Off" and that's what their pricing structure will be. Oracle keeps the "riff raff" out of their customer base that way, and only wishes to deal with the serious players who must have their database when no others will do. It's kinda like the world of business jet aircraft... hideously expensive, but there is still enough market demand out there such that the vendors are barely able to keep up with it.

  37. 2Times the Spam, Trojans and Viruses by gelfling · · Score: 4, Funny

    Seriously. 75%? What do they think that much power will be used for? Do they dream that everyone will suddenly run out and plunk down $2500 for a machine that can Doom 3 faster than than plutonium doped lightening?

    I think all that power will used in the same way it always is. Malcontents will write more sophisticated malware. MS will release more shiny glittery gewgaws that do nothing except open up more security holes and antimalware vendors will write more complex and unwieldy antimalware applications. In the meantime all the corporate suits will demand more cumbersome elaborate corporate apps that are specifically written for dual core systems thereby requiring parallel track applications to be maintained while the old machines the suits abandoned still get cycled through the organization for 3 years. And for the first 12-16 months hardware vendors will experience hardware QA and BIOS screw-up hell as they try to appease the 15 year olds in the focus groups who demand 1337 dual core hawtness!!! It will suck and Intel will make make billions.

  38. Re:So Intel's going to be a year late ?. by swb · · Score: 2, Interesting

    Where are AMD's dual core chips? Sure as hell can't buy them today...

    I had a vendor's SE tell me that AMD's dual core chips are "practically sitting in boxes at a warehouse" so that the day Intel starts shipping developer samples they can start shipping actual products to end users immediately, giving them a huge head start in terms of marketing and, if you believe they've already been manufacturing them, the ability to discount them faster than Intel can.

    I think that's a strange strategy, but I was also told that AMD has gotten burned by being too far ahead of the curve before (Athlon?); apparently having Intel do it, too, lends credibility and mindshare to technologies, enabling greater acceptance of an AMD solution.

    Of course this is conspiracy theory and marketing speak from an SE, so who knows, but it's not completely implausable. Having a huge supply of readily-MB-compatible dual core CPUs you can start shipping immediately as your competitor's product is just beginning production (and requires new mainboard designs to boot) could allow you to steal their marketing hoopla for your _available_ product.

  39. Haskell, declarative parallelism by shapr · · Score: 5, Interesting
    This is discussed in great detail in this thread on lambda-the-ultimate.org The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. The summary as I see it is
    • declarative parallelism will always scale better than threads or whatever else
    • micro-optimizations will always be faster than declaractive parallelism
    Manual parallelism won't scale well from one core to sixty-four cores, but will be faster in static situations like running on one Cell CPU in the PS3 where the configuration is known at design time of the app.
    This is the same trade-off as manual memory allocation versus garbage collection. Garbage collection is easier and more automatic than manual memory control in C, but if you put enough effort in a C program will be more efficient than a GC-using program.
    So the essence of the answer is that declaractive parallelism gives you development speed, but manual parallelism gives you execution speed. You choose what you want.
    I have a two CPU machine right now, and I'm very much looking forward to the rumored SMP version of Haskell that uses Software Transactional Memory. That's gonna rock!
    --

    Shae Erisson - ScannedInAvian.com
  40. Re:Huge increase in game complexity? Maybe. by adam31 · · Score: 2, Interesting
    But there are some tasks that can be done by both CPU and GPU but are generally assigned to the GPU. For instance, you can generate a stencil shadow volume in a vertex shader... it's just very wasteful of the GPU. You can also animate characters on the GPU, but they have to be retransformed to do multi-pass effects. So if the game is GPU-bound, a good idea is moving these tasks to the CPU.

    Honestly, working on a dual-core CPU, you could create 2 threads-- 1 that just does character animation and silhouette/shadow volume generation, and another that does physics/AI. And you'd have very well balanced processor usage and better GPU efficiency (depending on the game of course).

  41. Intel debutes with Workstation dual cores by edxwelch · · Score: 2, Interesting

    If I remember correctly Intel's dual core debute is a workstation processor, while AMD will have their Opteron dual cores first.
    Dual core processors make more sense in a server than a workstation.