Dual Core CPUs without proper hardware implementations

TheWesDude

Sonny, I Watched the Vault Bein' Built!
This has been pissing me off for years. Started when i used to look at dual cpu mobos and such.

Why the hell are they putting out dual core CPUs and dual cpu motherboards without proper hardware implementations so that your programs don't have to be designed to be compatible to get the full use out of them?

Like the current dual core cpus, the programs have to be programmed to take use of the 2nd core or else you are just running on half your cpu! Seriously, what the hell is the point. The hardware should take care of that with on-the-fly load balancing so it doesn't matter what OS or what programs you are using, you will get full use out the cpu.

I feel that until the hardware/OS solves this problem, its going to be a pretty worthless trend as currently its far better to get a single core amd/intel 4 ghz single core rather than a 5ghz dual core.

/discuss
 
euhm, there is only so much you can do on a hardware level without going into too great complexity & dependence on specific scenarios.

Sun's CPU's demonstrate this. that's why they're popular in their niche market. Intel & AMD can't do this however due to their own markets, so they need to put out CPU's that are versatile.

what you should be whining about is the lack of decently written software, not the design of the hardware.
 
"Load balancing", as you put it, *is* handled automatically - by the OS. The OS has a component called the process scheduler, and it determines which thread is going to be executing on which CPU core and when.

However, if you're running only one process, and that process has only thread, then there *is* nothing to schedule. The thread will be executing on a single CPU core, as there is no *need* for it to execute on multiple cores, nor is that even possible.

On the other hand, it should be obvious that automatic conversion of a single-threaded application into a multi-threaded one isn't something that can be done easily or efficiently. While there are compilers capable of automatic parallelization, they are still no substitute for competent application modeling that only human programmers are capable of. Multi-threaded programming is very challenging even for human programmers, and some of the worst, most-difficult-to-track bugs result from poor thread synchronization.
 
OK, here's the deal, programs have to be developed to take advantage of multi-thrading because if they didn't and the OS attempted to multi-thread your application automatically you'd run into some serious damn problems, including two threads running the same piece of code at the same time, which can lead to all sorts of unexpected results. That's why multi-threaded applications are an abosolute nightmare to debug and also why the programmer must design their application in such a way to take advantage of multi-threading, it's not something that can simply be thrown in willy nilly, if you're attempting to thread application-critical systems a lot of time needs to be spent on design and making sure you know how everythings going to work. I can think of one instance where a thread accessed and locked a resource, another thread then attempted to access and lock the same resource. This can be a major issue in multi-threaded apps and without proper safty guards can lead to program-fatal errors.
 
Without multiple cores the benefits of multithreading in a video game is limited since it has to be fudged through time slicing. The attitude was "what's the point?" since video games rarely have background processes running within them (except for things like sound), unlike Operating Systems where you might be running several programs at once, such as writing a word document while virus scanning your harddrive. Now we're beginning to see multiple cores (that run at about the same speeds) permeate the home PC market as well as consoles as such it's really only now that you're going to get significant benefits from threading your game.
 
Back
Top