Making Multiple Cores appear as one?

So as we know these days most/all systems have multiple cores. But programming for multiple cores is difficult (let alone many cores :O ) 

So here's the question. Does anyone know of any software, whether this is software that runs in windows/linux/unix (preferably linux/unix) or a way of getting a Type 1 hypervisor to make multiple cores appear as a single core.

Can this even be done?

Thanks to anyone who can help

- zanginator

i dont think so. im curious what got you asking this?

maybe through virtualization? or Task Manager "Set Affinity"? I'm currious too lol

Well I was just thinking that scheduler within OS's send processes to cores depending on load, like with nodes on a NLB cluster.

And as many process are limited by CPU speed and older apps were only really coded to use a single thread (still even newer ones aren't multi threaded), I was just wondering if you could spoof the scheduler to make 2+ cores appear as one to the process. But schedulers aren't that sophisticated.

I did look at virtulization, but again pretty much all hyper visors when you set the number of cores it can use will pass that info on to the virtual OS. (eg You tell it it can use 4 cores. The Virt OS detects 4 cores.)

I've also looked into clustering, but again it will only run on one node/thread. As "Clusters make many machines appear as a single machine". 

May look into scheduler modification or just dive deeper into my research.

EDIT: It appears that it can not be done directly on an OS (as I originally thought), however there may still be promise within the use of Hypervisors.

- zanginator

while i apreciate why you are pursueing this idea, i would say it gonna have dead end's and limitied aplications overall. learn to optomize your code for using multiple threads, it's harder i know. but the benefits are better and more flexible. you would most likely have to mess around with the firmware and cpu compiler to make this happen, which is an out of os job. more hassle than it's worth in my eyes. it would probably be easier to access the software source code for older applications and optimize it for multiple threads, espicialy if it's a linux based app.

I know this will end in a dead end. I want to see how far this idea has already been taken.

As was an concept of "Reverse Hyper-Threading" http://www.theinquirer.net/inquirer/news/1005560/amd-socket-am2-has-a-secret-weapon

Which of course never succeeded. http://arstechnica.com/uncategorized/2006/07/7263-2/

I have no issues with optimising my own code, this is entirely a project to aid performance of other programs.

- zanginator

 

there is nothing like that at the moment, and I doubt there wlll be unless NM gets really small

Well I just like to provide some info that i've dug out.

Intel appeared to be/is working on something along the same concept of AMD's "Reverse Hyper Threading". Known as Anaphase.

http://pixelsmashers.com/wordpress/?p=1678

http://techgage.com/news/intel_anaphase_-_single_thread_acceleration_on_multiple_cores/

http://forums.anandtech.com/archive/index.php/t-2198930.html

Although this maybe closer to an actual thing than we imagine. As these sort of tasks require shared resources between multiple cores. Sound familiar? May I direct your attention to the FX series architecture.

The basis of the required architecture is there to enable this sort of thing. Just we seem to be missing the sheduler (or voodoo magic) to do so.

Still I shall continue to dig deeper and still post it here. Although I feel the info I require is under NDA.

- zanginator