Intel - Market Doesn't Need Eight Cores 548
PeterK writes "TG Daily has posted an interesting interview with Intel's top mobility executive David Perlmutter. While he sideswipes AMD very carefully ('I am not underestimating the competition, but..'), he shares some details about the successor of Core, which goes by the name 'Nehalem.' Especially interesting are his remarks about power consumption, which he believes will 'dramatically' decrease in the next years as well as the number of cores in processors: Two are enough for now, four will be mainstream in three years and eight is something the desktop market does not need." From the article: "Core scales and it will be scaling to the level we expect it to. That also applies to the upcoming generations - they all will come with the right scaling factors. But, of course, I would be lying if I said that it scales from here to eternity. In general, I believe that we will be able to do very well against what AMD will be able to do. I want everybody to go from a frequency world to a number-of-cores-world. But especially in the client space, we have to be very careful with overloading the market with a number of cores and see what is useful."
We've heard that before. (Score:5, Insightful)
Re:We've heard that before. (Score:2, Insightful)
Re:We've heard that before. (Score:3, Insightful)
Re:We've heard that before. (Score:3, Funny)
void * allocateMemory(size_t bytesNeeded)
{
time_t myTime;
time(&myTime);
struct tm * myTm = localtime(&myTime);
unsigned int ramWastingFactor = myTm->tm_year > 100 ? (myTim->tm_year - 100) : 1;
return malloc(bytesNeeded * ramWastingFactor);
}
Re:We've heard that before. (Score:4, Insightful)
Almost no desktop programs actually use 4 gigabytes of RAM. Not even allowing for rapid expansion will we reach that bottleneck anytime soon.
The Intel guys were right. What are the uses of 64 bit systems? They are removing a bottleneck that very few were hitting. The AMD64 instruction set fixes (more registers etc) are nice but not worth the hassle of losing binary compatibility. Result? Hardly anybody uses a pure64 system. Only enthusiasts.
Re:We've heard that before. (Score:3, Insightful)
As with every other technological yardstick of computers, entertainment is driving the platform, not "desktop programs," for which the technology of a decade ago was adequate.
Re:We've heard that before. (Score:3, Insightful)
Obviously, you have never tried to simualate or graph propagation of an organic virus with a 4 million node set using Matlab x64 on a desktop system.
We would be pleased to take your enthusiast money and 128 of your gaming buddies' money and build a Linux computational cluster to solve a problem that will likely save your life or the life of someone you know.
Re:We've heard that before. (Score:3, Informative)
No, because 64-bit doesn't have the same kind of diminishing returns increasing the number of cores does. We don't need eight cores, at least in the short-to-medium term, because it would require fundamentally rewriting all our software to be more parallel (unlike 64-bit support, which only requires fixing code that assumes 4-byte pointers).
Re:We've heard that before. (Score:3, Interesting)
I think that's somewhat of an exageration. Not all software has to be rewritten, just software where 1) speed is a driving concern and 2) isn't already multithreaded. In other words, normal office and web software doesn't need rewriting because it runs fine on 1 core. Raytracers and video effects software doesn't need rewriting because it's already multit
Re:We've heard that before. (Score:3, Interesting)
Audio processing is the classic example of trivially massively parallel processing on the desktop. Let's say you have 40 tracks with four or more effects slots, plus a few effects on a bus, plus a few effects on the master output. Each one of those is a separate computation unit.
That's not to say that there aren't dependencies, of course. Within each channel chain, each plug-in has a dependency on data from the previous plug-in. Each of the bus mixers (including the master) has a dependency on having
Re:We've heard that before. (Score:3, Insightful)
Well, AMD did come up with a way to make their 64-bit CPUs immediately useful: they increased the number of registers at the same time (but could only make them available in 64-bit mode, to avoid breaking stuff when running in 32-bit mode). Aside from that, 64-bit isn't intrinsically useful unless you want a virtual memory address space bigger than 4 gigabytes (which, at the moment, tends not to be true for casually-used PCs).
Re:We've heard that before. (Score:5, Interesting)
I'd like to take a moment to rail against most commonly accepted forms of parallel education. I'm sure you were taught about threads, critical sections, semaphores, shared memory, etc.
These are all inherently dangerous and difficult to program concepts. Write some application that is flexible and can run with N threads - usually this is hard, the best solution from Java-land is the concurrency toolkit which defines units of work which can be parallelized by a thread pool.
However, there _is_ another way. "CSP" - communicating sequential programs. This is a method of writing naturally parallel systems that do not have the disadvantages of all of the above. (Standard concurrency debugging suggestion in java: "make the method synchronized") A practical example of this is the programming language Erlang. Ericsson invented this language to write high performance telco gear. Their ATM switch line is written in it. In Erlang you have many many 'processes' (not traditional OS processes, but defined in the VM) which cannot share memory - the only way they can communicate is via async messages. You can build a synchronous call on top of async messages pretty trivially (after all, all syncronous network protocols are based on IP which is asynchronous). You never have to worry about memory stomps, or critical sections. You _do_ have to design your applications differently, but it is most definitely worth it.
Another interesting thing about this is your applications naturally parallelize. The "R11" release was just put out, which included SMP support. The previous versions would only use 1 CPU, but this version will use all your CPUs, which means if you have multiple processes ready to run, they'll run on as many CPUs you have! Instant SMP support, no redesign, no RECOMPILE necessary.
This kind of language technology is what is necessary to get us to the next level. A similar thing is possible with Functional languages such as OCaml, Haskell, etc.
I've been working in the industry for 5 years and I'm currently working on a Erlang project. My company was fairly conservative in terms of languages, there was a standing order (until about 2000) "no C++".
It's called dataflow (Score:3, Insightful)
Actualy what you described is a very specific instance of dataflow programs, where the flow can best be described by a directed "dataflow" graph. Technicaly macrodataflow since you pass data betwe
Re:We've heard that before. (Score:3, Interesting)
Re:We've heard that before. (Score:3, Informative)
No, in fact I mean CSP - see http://www.usingcsp.com/ [usingcsp.com]
Have a look at yaws: http://yaws.hyber.org/ [hyber.org] a high performance webserver written in Erlang.
Re:We've heard that before. (Score:4, Insightful)
Re:We've heard that before. (Score:3, Insightful)
If those 8 cores are from AMD, then they'll be utilizing a NUMA architecture, and provided the OS "does the right thing" then no, you won't be waiting for memory, at least not any more than you are now, and probably less so.
If those 8 cores are from intel, they'd better have improved their bullshit bus, or no, it won't help.
Re:We've heard that before. (Score:5, Insightful)
Good point... yes, Intel said this about 64bit chips, and they were right. Almost nobody needs 64bit chips. But now virtually all chips are 64bits, wasting a lot of die real estate and engineering effort because of the perceived benefits driven more by AMD's marketing than reality. It's quite possible 8 cores could end up in the same boat-- AMD pushing it for no valid technological reason and Intel being forced to follow suit.
Re:We've heard that before. (Score:5, Funny)
The Little Mouse that Roars!
KFG
Re:We've heard that before. (Score:5, Insightful)
Tom
Re:We've heard that before. (Score:3, Funny)
CPU 1: User
CPU 2: Windows Vista (Swap baby swap)
CPU 3: Outlook Anti-spam filter
CPU 4: Norton Anti-virus scanner
CPU 5: Web-security system
CPU 6: Sony "DRM Enabling" root-kit
Now, if you had said that average Linux user...
***Ducking And Covering***
- Tash
Yippie... Hybrids! [tashcorp.net]
Re:We've heard that before. (Score:4, Funny)
Re:We've heard that before. (Score:2)
Re:We've heard that before. (Score:3, Interesting)
Re:We've heard that before. (Score:5, Funny)
Re:We've heard that before. (Score:5, Interesting)
They say the biggest bottleneck of any modern computer is its user...
Re:We've heard that before. (Score:5, Interesting)
Imagine an RPG that has multiples (100's) of 'computer' competitors that are "developing" along the same lines as you and your character(s). Or perhaps an MMORPG with thousands of players, competing against 100's of thousands of virtual characters that are developing along the same lines as your and the mmorpg's characters. Say goodbye to random encounters with stale NPC's - and hello to enemies with unique names and playing styles - all due to the computer's ability to handle such incredible virtualization.
Adding more RAM and a minor increase in speed wouldn't help in either of these scenarios. Bring on the cores, man, and don't stop at 8...
Re:We've heard that before. (Score:5, Interesting)
Take NWN for instance. How about making a game where things are REALLY happening? So far most worlds are extremely static. MMORPGs are static in that nothing ever changes, you kill the Lord of Evil and he's back on his dark throne 5 minutes later. And in most RPGs things just stay there and wait for you to appear (say, you never miss a battle in progress, as they just stay there until you appear nearby so that you can conveniently join the battle).
For example, in NWN it's very clear that there are multiple factions living in the area. How about having kobolds, knolls, wolves, etc move around on their own, gather food, kill each other, reproduce, try to invade, etc? Wouldn't it be neat if you could defeat the gnolls, then wander off for whatever reason, and when you return find the kobolds now took over the gnoll cave, increased their population, and Tymofarrar got out of the cave and set fire to the town?
Of course, make it too realistic and it gets a bit weird... imagine having to kill kobold children and walking on gnolls having sex.
Re:We've heard that before. (Score:5, Insightful)
Utility is in the eye of the user.
Re:The point is... (Score:4, Insightful)
Re:We've heard that before. (Score:3, Insightful)
Video processing
photo processing
Multitrack digital audio recording with multiple real time DSP effects
And that's just what I thought about in 10 seconds. Not to mention what video games could do with all that processing power.
Re:We've heard that before. (Score:3, Interesting)
Indeed. Even with multiple applications, there is rarely more than 1 CPU-bound thread on a desktop system.
Not that I doubt the ability of the industry to produce applications that warrant increased numbers of cores, but this will take time and in the current landscape anything more than 2 goes to waste for most people. There are some applications that need it already,
Re:We've heard that before. (Score:5, Funny)
eight is something the desktop market does not need
So is he the only person on the planet who has not tried the Vista beta?
Re:We've heard that before. (Score:5, Insightful)
My crystal ball is not always crystal clear, but I believe that 8+ cores will exist and are needed in the near future, at least for desktop systems.
History here. I'm an HPC admin which translates into I run beowulf stuff where pretty much OTS computers are connected together to work as one big computer. I'm also a desktop computer user who is anal retentive about having realtime info regarding the status of my computer with respect to CPU utilization and whatnot.
Now, in the many years of running desktop systems and being anal retentively monitoring them, I've noticed that CPU utilization is very often bursty. Meaning that its common for the CPU to hover around zero, and spike up with doing something like rendering a webpage, printing, compiling code, etc, etc. But most of the time (> 90% or well more if including when I sleep and stuff), the CPU is doing nothing.
So, what is my point? Give me cores out the wazoo, and let them completely power down when not needed and crank up to all 8 or more when needed. This will greatly improve power requirements and improve performance at the same time. Evidence of similar stuff in either nature or in other technologies are plentiful. 1) Hybrid gas/electric cars. They use both for higher performance when needed, and then back off and oscillate between the two when its optimal for efficiency. 2) Animal tissue like muscles and nerves. Muscles are pretty much idle most of the time, and only use a few fibers when doing a light contraction, but all of the available fibers become active when exerting maximum effort. Similar, but different with nervous systems. 3) Human workloads. There are certain industries that are not really a constant, and even the seemingly constant ones also have bursts as well, but lets think of things like seasonal things like retail, taxes, or things like seasonal vacation spots. These kinds of jobs bring in more human bodies to handle the peak loads, and let them go when the peaks are over. Its nuts that in many places in the US, seasonal vacation spots are frequently employed by people from half way across the world!
Now, is my 8+ core pipe dream going to happen tomorrow? No. But I believe this is where computing is going. Another thing that will have to change is that RAM should not be as random. In other words, memory, like CPU cores, should go dormant when not needed in order to conserve power as well, and of course there is the memory bandwidth issue as well.
Re:We've heard that before. (Score:3, Interesting)
Re:We've heard that before. (Score:3, Insightful)
You can distribute different pages for printing, different frames pro html rendering, or divs or something. Your browser could be decompressing pngs and jpegs in other cpus while one parse the html too.
Web browsing is still limited by the network anyway, increase cpu to browse the web doesn't make any sense for me. At least with my 400kbps DSL
But I at least would not want to increase cpu power for these trivial tasks. I would prefer that it happens when I do something heavier, like a game, or at least so
Re:We've heard that before. (Score:4, Interesting)
A webpage, for example, need not be parsed serial, though the performance of current systems is high enough that you get nothing in attempting to parallelize the renderer. A printer, however, can trivially be designed to be parallel, especially if you have unusually high DPI. Think of a printer rendering to a paper in the same way that a graphics card renders to a framebuffer. If you can use multiple pipelines, GPUs, and cards to accelerate video display, why wouldn't the same be possible for printing? The neat thing about printers and printed data is that there is no dependence, the image in the upper right exists independent of the image on the lower right, and etc etc. In theory you could have a core assigned to every PIXEL printed on a page, and a corresponding printhead with a printhead for each core, and you would be able to print an entire page in a cingle CPU cycle. Technically.
So there are plenty of other things that could be executed on multiple cores:
Decoding video (playback)
Encoding video (storage, rendering, chat)
AI for games (imagine simulating a multitasking AI on multiple cores)
Physics for games (uncoupled events can be processed independently and coupled events require access to the same data)
Yes, everything has a serial bottleneck, such as data access, but once properly set up most things can also be set up to be multicore as well. Saving a file, for example, can be multicore if you imagine the write as happening all at once, rather than serially, with each core assigned to a write head, each write head then operating independently... Etc.
Re:We've heard that before. (Score:4, Interesting)
So imagine a situation where a webpage was DESIGNED to be parsed in parallel. The page hierarchy would be formatted into independent chunks that could be assigned to different threads and cores without first preparsing it. It would be like having an index built into the webpage such that different elements on the page could automatically, without additional effort, be spun off to different cores. A navigation bar, a banner, the main content, a link-box, and a footer, for example, could all be defined in a webpage such that as soon as the render saw that there exists five elements on the page each element is spun off to a different core to be handled.
The same with a printer; if the printing language were designed up front to be parallel, rather than serial, you could see speedups in rendering, though such gains is probably negligible. An image, such as an embedded jpeg in a document, would be split into four, for four cores, and then rendered into the appropriate printing language, which might come in handy when 10 megapixel pictures become common. Imagine a printer with four print heads, now. You could conceivably send four streams of data at once, which again could be fed by four cores (or a single core of course, if it pre-computed the data needed to be sent to the printer).
Decoding video: Uh, take a look at HD... that's pretty hardcore
Encoding video: Imagine now encoding an HD video chat on the fly
AI: I think you misunderstand. One AI enemy which formulates, simultaneously, five DIFFERENT responses from the same data structures... in other words, an AI of split mind. In the same way I can imagine writing four different responses to you, but only acting on one of them, an AI with multiple responses, but only a single action, becomes much richer, more unpredictable, and unbelievably more complex.
Physics: Physics is really a generic superset of graphics. Graphics is merely how light interacts with the data structures. Throw in gravity, sound, friction, and mass, and you have physics. The same reason why graphics can use multiple cores, then physics can too. Imagine if the 3d sound effects were split among two CPUs, just like frames are? Sound can be trivially represented as frames, much like graphics. Imagine the same with gravity being calculated by two CPUs every other frame, or friction, etc. You can calculate, for example, the spray pattern of a shotgun in time; the trajectory is known, the number of pellets are known, and the environment is known. Right now we approximate the intersection of a shotgun blast with the intersection of a player or a structure, but with additional compute resources you can actually trace each pellet individually!
The same with falling rocks, a flooding room, etc.
Most problems ARE parallelizable, I think, the only real question is approaching the problem from the onset with multiple cores in mind.
Re:We've heard that before. (Score:2)
The market currently doesn't need eight cores in a desktop, but there may be a call for it in high end desktops and workstations.
I figure more cores is inevitable, but the issue is whether
I'll be the first to say it... (Score:5, Funny)
The desktop market is the largest market. (Score:5, Insightful)
Are you going to lead or follow?
Re:The desktop market is the largest market. (Score:3, Informative)
If they double the number of cores, I can only take advantage of that if I have a problem that can be parallelized and then if I work very very hard to multi-thread my project.
Re:The desktop market is the largest market. (Score:2)
Re:The desktop market is the largest market. (Score:3, Insightful)
Second, the makers of multimedia applications already go ahead with multithreading, because it really works for that type of application. This will drive the market for more cores. In the long
Re:The desktop market is the largest market. (Score:2)
It is irrelevant whether Intel leads or follows except insofar as it achieves their agenda of technical, marketing, and profit superiority.
Intel will wait until the technology is mature, the market is ready, and their competition UNready, if they have the choice.
Comment removed (Score:4, Insightful)
Re:Translation (Score:4, Insightful)
Question. (Score:4, Insightful)
Re:Question. (Score:2)
Yes and no : depends on the brand (Score:5, Informative)
For Intel that's exactly the case :
With current intel architecture, memory is interfaced with the NorthBridge.
With multicore and multiproc systems, all chips communicate to the NorthBridge and get their memory access from there.
So more cores and processors means same pipe must be shared by more, and there for memory bandwith per core is lower.
Intel must modify their motherboard design. They must invent QUAD-channel memory bus, they must push newer and faster memory types (that's what hapenned with DDR-II ! They needed the faster datarates, even if those come at cost of latency), etc...
But the more their pursue in this direction, the more latency they add to the system. Which in the end will put them in a dead end. (Somewhat like the deeper pipe of their quest for Gigahertz put them in dead-end of burning-hot and power-hungry P4).
For AMD that's not quite the same :
With the architecture that AMD started with the AMD64 series, memory is directly interfaced with a memory controller that is on-die with the Chip.
The multiple procs and the rest of the mother board communicate using a standarized HyperTransport.
The rest of the mother board doesn't even know what's hapenning up there with the memory.
And with the advent of HyperTransport-plugs (HTX) the mother board doesn't even realy need to know it.
Riser cards with Memory-And-CPU-Both-of-Them (à la Slot 1) is possible (and highly anticipated, because it'll make possible a much wider possibility of specialized accelerators to be plugged than currently with AM2 socket)
The most widely publicised advantages of this structure are the lower latency.
But this also makes it easier to scale up memory bandwith : Just add another on-board memory controller and voilà you have dual-channel. That was the differences between first generations of entry-level AMD64 (Athlon 64 for 7## socket : one controller - single channel, Athlon FX for 9## socket : 2 controllers, dual channel).
by the time 8 cores processors come out and if CPU riser-board with standart HTX connector appears, nothing will prevent AMD to just build riser board designed for 8 cores chips with 4 memory controllers (and Quad-channel speed). Just change the riser board, memory speed will scale. Mother board doesn't need to be re-designed. In fact, same mother board could be kept.
And this won't come at the price of latency or whatever : the memory controller is ON the cpu die, and must not be shared with anything.
In fact, that's partially already happening :
In the case of multi procsystems, instead of all procs sharing the same pipe thru the NorthBridge, each chips has it's own controller going at full speed.
And this memory can be shared over the HT bus (albeit with some latency).
It's basically 4 memory controllers (2 per proc) working together. Acheiving quad-channel alike shouldn't be that difficult.
Specially when Intel is pushing the memory standart to chips with higher latency : asking for more bandwith in parallel over the HT-bus won't be that much penalizing.
So I think AMD will be faster at developping solutions to scale against higher number of cores than Intel, due to better architecture.
Maybe, it's not a coincidence that AMD is working on technology to "bind together" cores and present them as single proc to not-enough SMP-optimized software, and that at the same time Intel is telling who ever wants to listen to them that 4 cores is enough, 8 is too much. (Yeah, sure, just tell it to the database- and Sun Niagara people. Or even to older BeOS users. This just sounds like "640k is enough for everyone")
Re:Question. (Score:5, Informative)
So which bottleneck are you refering to? The new Core 2 Duo chips of Intel's share the L2 cache and, as far as I can tell from the reviews I have read, this setup works very well. Both chips can share data very quickly or when executing a single sequential program one of the cores can use all of the L2 cache (which in the Extreme Edition verion is up to 4MB!). Or are you refering to the main memory? It is possible for both cores to need to access the main memory at the same time, but modern pre-fetching and aggress speculation techniques reduce how often that occurs and the timing penalties when they do occur. And of course, the larger the L2 cache the more memory can be stored on the chip at once, reducing the need to access the main memory very often. According to Intel's own internal testing, they had a very hard time using all of the bandwidth the current front side bus and memory offers, which means the main memory shouldn't be a bottleneck.
So what is the bottleneck you are refering to?
Re:Question. (Score:2)
Was this testing done with one 'Core 2 Duo'? Two? Four?
My understanding is that the FSB bottleneck only really comes into play with multiple chips, and that AMDs solution (EV7 derived PTP connections between each Chip and the Memory, I think), was better when more chips were involved because each chip ends up wit
Re:Question. (Score:3)
The speculation is that Apple will want to keep that Quad line by putting in two Core 2 Duos. Therefore 4 cores for the desktop may be anounced as early as two weeks from now (and one would assume that once its released for Apple, it will filter into other Intel shops like Dell). There was also the speculati
Re:Question. (Score:2)
That's the good thing about AMD processors. They don't have to go across the FSB to get at the RAM
Re:Main memory of course. (Score:4, Insightful)
If you look at Intel's Core 2 Duo, the cache space is not "divided" as the number of cores increase. Each core, if running at full load, will have 2MB of cache (extreme edition anyway). That is a very respectivable cache size and would be a respectable single core processor. When one core is not running (like when running only Word), one core sleeps while the other core is given all of the cache.
Past marking ploys (GHz) were definately wrong, and trying to directly replace those metrics with the number of cores is also a bad choice. But don't you see that that is exactly what Intel is trying to prevent? The interviewee in the article is saying that more cores != more performance. Hence why desktop users will have no need for 8 cores or more. Most of the posts on this topic are along the lines of "ya right, more cores FTW!", which is a very uninformed mentality.
Re:Question. (Score:4, Insightful)
For Intel, they are currently using a shared bus approach. It makes sense for a lot of reasons (mainly by being very cost effective), and they are developing a point-to-point bus for the near future. In such a system, each CPU is using the bus for retrieve data. This means that they lock the bus, make their calls, finish, and unlock. The total bandwidth available is split between all parties, so if there are multiple active members (e.g. CPUs) then their effective bandwidth is split N ways. The only solution to this is to have multiple shared busses, which is expensive.
A point-to-point bus gives each member their own bus to memory. Thus, there is NxBW effective bandwidth available. As memory cells are independant, the memory system can feed multiple calls. You'll only run into issues if multiple CPUs are accessing the same memory, but models have been around for a long time. There might be a slightly higher latency, but not by much.
With multiple cores, you may get the benefit of shared caches which could remove a memory hit.
Overall, I would assume a multi-core system would scale fairly similarly to a multi-processor system.
Re:Question. (Score:3, Interesting)
However, these chips are designed for throughput of multiple threads; for a desktop, single threaded app, you will still have the same memory bottlenecks we have now.
Re:Question. (Score:4, Insightful)
well, (Score:4, Insightful)
Re:well, (Score:5, Insightful)
1 core is really enough for most users. 2 cores is enough for most power users. 4 cores will be enough for all but the most demanding jobs. Workstations are different, however and are not usually considered part of the "desktop". For example, I could see 3D artists using 4 or 8 cores easily. In fact, there's simply no such thing as a computer that's "too fast" for certain purposes.
The issue, though, is one of moderation. Why would a desktop user want 8 cores, which are drawing insane amounts of power, when they're not even utilizing 4 to full advantage? Word processing, accounting, and surfing the web don't need any of this. Games? I can imagine in 10+ years we'll have some photo-realistic 3D games that run in real-time, but the vast majority of the work will likely be handled by GPU's and won't need 8 cores to deal with it.
I simply cannot fathom a purpose for 8 cores for any "desktop" application that isn't in the "workstation" class.
Re:well, (Score:2)
Re:well, (Score:2)
Re:well, (Score:2, Insightful)
But this time the new hardware would be dependent on a major overhaul of the software industry. Any programmer can write code to fill up a 1GB hard drive, but effectively using 8 cores usually requires talented programmers who have mastered multithreaded programming. This is a small fraction of the software developer population, so apps that can take advantage of an 8-core CPU will probably be few and far between for a good long whi
Re:well, (Score:5, Insightful)
But ineffectively using 8 cores can be done by any dumbass with a C# compiler or a book on the pthreads library. Which is why we actually will need 8 cores.
Re:well, (Score:2)
Re:well, (Score:2)
But, I suppose he's lucky he's not a doctor with one of those names such as:
bone
cutter
sharp
burns
butcher
crusher
But, hopefully, he'll come up with something TRULY prescient, maybe to rival Moore's Law... Any possibility?
the desktop will love 8 cores in no time (Score:2)
640K cores ought to be enough for anybody... (Score:3, Informative)
On the other hand, to be fair, the scaling issues start getting odd. I'd expect that we're going to have to move from a multi-core to a multi-"computer" model, where each set of, say, 4 cores works the way it does now, but each set of 4 gets its own memory and any other relevant pieces. (You can still share the video and audio, though at least initially there will presumably be a priviledged core set that gets set as the owner.)
Still, as my post title says, this does strike me as rather a 640KB-style pronouncement. (The original quote may be apocraphal, but the sentiment it describes has always been with us.)
Re:640K cores ought to be enough for anybody... (Score:4, Informative)
That's called NUMA [wikipedia.org].
Silly Perlmutter (Score:5, Funny)
If the home user can justify (even indirectly due to demands of the operating system or changes in software architecture) 4 cores then 8 is immenently logical. Seems some minds at Intel are falling back to the dubious position they held regarding home users never needing 64 bit CPUs. Then again, maybe they're just playing dumb and are slaving away, burning midnight oil by the drum, to make 8 and 16 core processors.
Three Cores for the Clippy, but I don't know why,
Seven for the Vista kernel which is defect prone,
Nine for for Bloat which will make the cooling fry,
One for the Screensaver to toil alone,
In the Land of Redmond where Marketing lies.
One Core to rule them all, One Core to find them,
One Core to bring them all and in the darkness bind them
In the Land of Redmond where Marketing lies.
Re:Silly Perlmutter (Score:2)
That's a catchy little rhyme, there, but I have some problems with it.
1) Marketing lies all the time. That's a given. You don't have to tell us what we already knew.
2) It's not restricted to Redmond as you seem to imply.
Re:Silly Perlmutter (Score:2)
Re:Silly Perlmutter (Score:3, Insightful)
$154 - AMD Athlon 64 X2 3800+ Dual Core 2GHz
$86 - AMD Athlon 64 3200+ 2GHz
Looks pretty close to a wash in my book.
$327 AMD Opteron 165 Dual Core 1.8GHz
$170 AMD Opteron 144 - Box 1.8GHz
Not much difference here on $ per-core-GHz either.
Your statement might have been true las
Translation (Score:2, Insightful)
Re:Translation (Score:2)
I suppose you could transcode a DVD in 5 minutes with that many cores... or a Blu-ray disk in an hour
Re:Translation (Score:2)
Okay, I just thought about power requirements for 8 cores, and then I thought about the fact that included even in the article summary was an indication that CPU power requirements are going to drop "dramatically." Obviously, I can't see into the future (or Intel's labs) to find out what the word "dramatically" means, but it's a clear indication that they're trying to keep
Neither four nor eight. (Score:5, Funny)
Classic mistake (Score:5, Insightful)
Re:Classic mistake (Score:2, Troll)
Constantly streaming video in multiple thumbnail size icons on taskbars...
Umm, I already have that in my OS X dock. What else have you got?
Hmm, I'm not sure we need much stronger, but it does not take much processing power now. Between and encrypted home dir, VPN, and SSL/SSH, everything is already pretty much encrypted at least once.
Maybe a little,
Do all cores have to be smart? (Score:5, Interesting)
Is it possible to couple CISC and RISC cores on one die? Is this how the math coprocessors of the 386 era worked? This sounds like an ideal solution to me since nobody needs 4 or 8 cores to be fully powered and ready to pounce at all times.
Re:Do all cores have to be smart? (Score:4, Informative)
It's essentially how all modern processors are. I think the old coprocessors were the last that weren't on the same die (except the fake "coprocessors" that actually took over and completely ignored the old CPU, was more like a CPU upgrade in drag). Modern processors have a CISC instruction set which gets translated to a ton of mircoops (RISC) internally, and with parallel execution you in essence have multiple cores on one die - they're just not exposed to the user.
The limitation compared to a cell phone, which has an extremely fixed feature set is trying to find workable dedicated circuits for that are meaningful for a general purpose computer. That's essentially what the SSE[1-4] instruction sets are, dedicated encryption chips (on a few VIA boards, plus the new TCPA chips), dedicated video decoding circuitry (mostly found on GPUs) and maybe a few more. But on the whole, we've not found very many tasks that are of that nature.
In addition, there are many drawbacks. New formats keep popping up, and your old circuitry becomes meaningless or CPU technology speeds on and makes it redundant. The newest CPUs can so barely decode 1080p H.264/VC-1 content, but I expect that to be the hardest task any average desktop computer will face. What more is there a market for? I don't think too much.
Re:Do all cores have to be smart? (Score:2)
Also, a core could be dedicated to an infrequent but CPU-intensive job. For instance, I once read about a PCI card solely dedicated to gzipping TAR archives. Yes, this is a server-intended product, but everybody zips (sooometimes - REM). Maybe occasionally taxing computations are enough to warrant a dedicated core if they get cheap enough.
People Will Always "Need" More (Score:5, Insightful)
Once upon a time, Bill Gates said we would never "need" more than 640K.
Once upon a time, mainframes only had 32K of RAM -- and that was a vast amount more than their predecessors.
The '286 came out and was primarily aimed at the server and workstation market. "No one will ever need all of that power."
Thing is, people always "need" more speed, more RAM and more storage. And they'll pay for it too, so Intel may "need" to sell 8X cores.
Shortsided assessment of "need"... (Score:2)
Outside of my web browser and email client, 3 of the 5 applications I use on a daily basis for very intensive computing take full advantage of multi-processor threading, and all 3 of those would take full advantages of 8 cores (compared to the 2 I currently have and the 4 my next machine will have).
Re:Shortsided assessment of "need"... (Score:2)
The only real programs that will take advantage of large numbers of cores will be scientific applications. Games? You offload the AI to one core, the sound to one (or the nice
Even 4 is probably overkill at the moment (Score:2)
But once you try to write an individual program to split it's *own* load between 2 CPUs, things get complicated fast. And the more CPUs you try to use, the harder it gets.
The fact is, it's hard to make multi-threaded softwar
I would disagree... (Score:2)
I eventually asked somewhere whether there was a known bug, or whether the effect was just plain computationally intensive, and thus inherently slow. The answer: the latter.
I would think that image manipulation would often lend itself to divide and conquer, and hence could use as many CPUs as you'd care to throw at the task... and that also, it's a common enough t
8 cores ought to be enough for anybody (Score:2)
hah (Score:2)
"Perlmutter: Yes."
Since when does "need" matter? (Score:2)
Now suddenly we're supposedly not "needing" faster technology?
'scuse me, please, but this is still a free market, no matter what the producers think. And in a free market I decide what I need! And should I decide to need it and someone makes it, I will buy it.
If the chip isn't from Intel, so be it.
6 Coors enough (Score:5, Funny)
Comparisons to 640K misguided ... (Score:4, Insightful)
For those extremely rare apps and jobs that are highly parallelable 8 and above will be useful. However this will be very rare and this is why the comparisons to the infamous 640K quote are misguided. Increasing RAM is easy, software naturally consumes RAM with no additional work necessary, just do more of what you are alraedy doing. Multiprocessing is something completely different, the code must be designed and written quite differently, and it is often very difficult to retrofit existing code for multiprocessing. Now you have the practical problem that not all problems are parallelable.
Strangely enough, I think one case where 8 cores could be useful in a home environment would be a bit retro. A multiuser/centralized system. One PC with the computational power for the entire family, dumb terminals for individual users, connections to appliances for movies, music, etc. Such a machine might go into the basement, garage, closet, or other location where noise is not an issue. Of course, I'm not sure such a centralized machine would be cost effective.
Learn, history, repeat doom, etc... (Score:2)
Aha!
(Yes, I know he didn't actually say that, but it's still a famous misquote.)
I smell a fundemental software change coming... (Score:3, Interesting)
Peak CPU speed.
For now we have topped out on this, meaning our existing software is either gonna have to get more efficient, or it's going to have to change, unless we want to just deal with the level of performance and features we currently have.
(like that's gonna ever happen --how else would the closed corps sell upgrades then?)
Additionally, some application areas do not have enough CPU power to fully realize their potential. MCAD is one of these, by way of example. Take the fastest CPU's we have today and they are still not fast enough to fully render a solid model without wasting the operators time. Current software offerings are all working toward smarter data, creative ways to manage the number of in-memory and in-computation models, better kernel solves, etc...
But it's just not enough for the larger projects to work in the way they could be working.
Most of the MCAD stuff currently is built in a linear way. That's largely because of the parametric system used by almost all software producers today. With a few changes to how we do MCAD, I could see many cores becoming very important for larger datasets.
Peak CPU and RAM are the two primary bottlenecks that constrain how engineering CAD software develops and what features it can evolve for it's users. It's not the only example either.
The bitch is that most of the software we have is more than adequate for most of the people. For those that lie outside the norm, dependance on this software (both development and just use value need), constrains their ability to make use of multi-core CPU capabilities...
Messy.
Will be interesting to see how this all goes. Will the established players evolve multi-core transitional software that can bridge the gap, or will new players arise, doing things differently to take advantage of the next tech wave?
IMHO, there is a strong case for Intel doing the, "If we build it, they will come thing." For the higher demand computing needs, there really isn't any other way to improve, but through very aggressive code optimization.
Parallelization and cache coherency (Score:3, Interesting)
Pixar's Photorealistic Renderman (perhaps one of the greatest pieces of software ever written, from an engineering point of view) is very odd in that its shading language, while interpreted, is actually much faster at accomplishing its goals than other compliant renderers which compile down to the machine level. I believe this is because of memory bottlenecks, and despite the fact that computer graphics is an "embarassingly parallel" problem, eight cores is likely to aggrevate this much more than it is to help.
What I think is needed is a more functional-programming approach to a lot of these problems, where the mathematics of an operation is more purely expressed, leaving things like ordering/scheduling up to the compiler/runtime environment. Runtime compiled languages, like Java, can sometimes outperform even the best hand-optimized C due to the fact that the runtime compiler can optimize to the cache size and specific chihp family.
Also, this type of language would benefit multi-core processing because it would help expose the most possible parallelization opportunities, and let the compiler (perhaps even through trial and error) determine exactly when and how much parallel code to create.
Currently all of my parallel supercomputing code uses Fortran and the Message Passing Interface, but it's clear that this approach leads to code that is often very hard to debug and is very programmer-intensive. Hopefully the future of programming languages will help ease us into general purpose computing on highly parallel architectures like Cell.
Past 4 cores, you want NUMA anyway (Score:3, Insightful)
So he's right; before it makes sense to have more than 4 cores on a chip, you'll want multiple chips of 4 cores each with separate memory busses, and then system RAM on the processor chip (at which point the architecture is significantly different, because the system is asking the processor for memory values, rather than the opposite), and only then does it become efficient again to put more cores on the chip, as you can have a multiple-node chip.
People It's JUST Marketing*Speak (Score:3, Interesting)
Let me translate from marketing-speak to plain English for y'all:
droid: two are enough for now, four will be mainstream in three years and eight is something the desktop market does not need.
translation: We have a two core product available now, we will have a 4 core product available in three years but we don't yet have a plan for an eight core product.
Re:Similar to their 64-bit desktop stance? (Score:2)
Re:Similar to their 64-bit desktop stance? (Score:2)
Cost of memory is the big issue. You can buy a good dual-core PC for what it would cost to put 16GB into it.
Re:Jesus Christ guys... (Score:2)