Look. There are a couple cores on my chip. The way things seem to be going, there may be a whole bunch of them someday. Who knows, one day the stupid thing might be so lousy with them it looks like a fly's eyeball. Do I care?
Should I?
What sort of software application even needs to be multi-threaded? What if I spend all that time and effort threading my app for multiple cores, it doesn't run any faster and chicks still don't dig me?
How do I even know I'm ready for threading? Maybe I'm not. Maybe my software isn't ready for it. How the heck will I know?
Maybe the whole multi-core thing is just hype. Maybe Penn and Teller should have a look at it for their next cable series...or...are the benefits real and I REALLY need to do something...
Where do I go? I'm full of anxiety just thinking about it...can someone out there help me?
Should I?
What sort of software application even needs to be multi-threaded? What if I spend all that time and effort threading my app for multiple cores, it doesn't run any faster and chicks still don't dig me?
How do I even know I'm ready for threading? Maybe I'm not. Maybe my software isn't ready for it. How the heck will I know?
Maybe the whole multi-core thing is just hype. Maybe Penn and Teller should have a look at it for their next cable series...or...are the benefits real and I REALLY need to do something...
Where do I go? I'm full of anxiety just thinking about it...can someone out there help me?

Comments
Of course, it is huge benefit to thread existing apps - imagine the productivity increase, if you never had to wait for the computer to respond.
But the fun for ISVs will be to develop new apps taking advantage of the many core. James Held gave examples of the types of these apps in his keynote address in the Software enabling summit. They are called RMS (Recognition, mining and synthesis). Please refer http://www.intel.com/technology/magazine/computing/recognition-mining-synthesis-0205.htm for more details.
KS
Because you can.
Because it's there.
Everyone else is doing it.
The first one is free.
It will make you look cool.
--clay
I have two choices as a user and as an ISV programmer. I can either accept that what I do is fast enough (yeah, right) and just find more macros to shortcut my steps, or I can find ways to get my productivity up leaps-and-bounds.
How often do I have to wait for the computer to respond to me? When I am typing a letter, it's very responsive. Oops - my anti-virus just kicked in. Oops - my IT wants to patch. Oops - my desktop indexing program thinks I am waiting so it's kicking in a search. Wow, now I am sitting in front of a computer that is not very responsive. I have typed in several keystrokes and nothing is showing up on my word document. What's going on? Oh, I only have a single-core computer.
How often am I creating, making, editing, <fill in blank here> on my computer - doing something truly productive. I want to take a look at the final product. Oh, my - this single-core is slow to render this scene. It's thinking... Still thinking... Maybe I should get some coffee and come back...
So, why is multicore important? Will it save humanity? Will it solve world hunger? Will it help cure cancer? I think the potential to find the solution faster is there. As a benchmark person, I have seen how an extra core can nearly cut my time in 1/2 waiting for that scene to render. I add two more cores and now it is nearly 4x faster.
If I write software to take advantage of many cores, and my end user customers decide that they want to get to the cancer solution sooner with perhaps just a few less coffee breaks; well then, just maybe, multi-core might be important to me.
You *have* to accept multi-core. You don't have any choice. It's just not possible to make a single core that's twice as fast as the one they made last year, but it is possible to combine two cores on a chip.
Now everyone is going to have to learn how to make two cores perform twice as fast as one. There will be a bit of a learning curve, sure, but that's just life.
Programmers have always had to learn how to get the most out of newer technology.
Think of it this way, your dual-core computer will get faster without you having to upgrade it. More and more of your applications, whether games, business, you name it, will learn how to take advantage of the multiple cores.
One thing you already get -- a multi-core computer already has far, far fewer of the annoying hangs, stalls, and hiccups that drive us crazy. Once you try a dual-core computer for a day or so, you'll never tolerate those things again.
Will an expert explain to me how multi-core differes from multi-processor? I know the physical differences, I want to know how multi-core behaves compared to multi-processor. In my work, I have been running with multi-processor machines for years and have always thought that was the way to go.
First, all of the sudden everyone is disses Amdahl and his law. From the benchmark's I have reviewed, oh to many, his law is holding true. At about 3 cores your seeing the drop-off, and obviously the 4th doesn't matter if you drop off at 3. And when you start dropping off you pick up only a 1.5% gain for each additional core added. So argue out the gains & needs for 8-16-32-64-100 cores.
Parallel Processing is critical to the process, if you want to utilize multiple processors correctly. INTEL is pushing programming parallel, on the thread, that is not true Parallel Processing. Give each core it's own discrete memory, and I/O (read & write), get rid of cache, and use True Parallel Processing functionality, and then you will see the benefits of multiple cores. And the higher GHZ's chips that got hot might have been a software problem.
Marcel, multi-processors are the way to go in some incidents, and it really depends on software.
Finally, 4 chips will not give you a 4x, and remember your adding for cores and comparing back to the days of single core. Lets start asking how much can we get taking 4 cores and realizing the spec. power they are suppose to actualized. Measure a core against itself and then times the number of cores on the platform. We need to stop the fake comparisons.
Maybe one day we will have as many cores in a cpu as we have neurones in our head now?
If you would like authoritative information about multi-threaded programming on uniprocessors and multiprocessors, as well as Intel's hyper-threaded and dual-core processors, you can take one of our courses: http://www.iaps.com/linux-multithreaded.html
We have separate courses for Linux, Windows and Unix/POSIX or combinations of threads packages and operating systems.
You might also check out our short technical paper "Intel's Hyper-Threading Technology: A Programmer's Perspective" http://www.iaps.com/intel-hyper-threading.html
If this practical programming information does not help you impress the opposite sex, let me know and I will see what further advice I can provide...
This isn't about being cool and getting some, what about Amdahl's law?
Pat G. & Rattner did a switch-a-roo, was it because one wanted GHZ's and the other multi-cores?
I was reading on CNET that IBM is waiting to go beyond Quad's until it's proven. WORTH IT.
And I'm telling you it's in the software.
And why are you locking out others and allowing your chosen to access the core of the CPU for virtualization? (CSI) VMWARE & others. That's anti-competitive & wrong.
The core should be able to be accessed by those that will make the chip perform better. And Virtualization is one of many and maybe here today & gone tomorrow.
Please speak to the issues if allowed.
I have a new dual core machine and it seems that one processor is maxed out and the other is loafing. Setting the processor affinity for some aps helps a bit. It seems to me that the OS or the chip should be doing a much better job of scheduling which processor should handle the application. We develop business aps. They will eventually utilize more threads to make some processes more efficient but it's not going to be the magic bullet. Only OS multiprocessing and/or better chip level architecture will do it.
Pages