开发者

Combine multi Cores into SIngle Core Processing , on linux , Possible?

I am thinking about an idea , where a lagacy application needing To run on full performance on Core i7 cpu. Is there any linux software / utility to combine all cores for that application, so it can process at some higher performance than using only 1 core?

the application is readpst and it only uses 1 Core for Processing outlook PST files.

Its ok if i can't use all cores , it will be fine if can use like 3 cores.

Possible? or am i drunk?

I will rewrite it to use multiple cores if my C knowledge on 开发者_如何转开发multi forking is good.


Intel Nehalem-based CPUs (i7, i5, i3) already do this to an extent.

By using their Turbo Boost mode, when a single core is being used it is automatically over-clocked until the power and temperature limits are reached.

The newer versions of the i7 (the 2K chips) do this even better.

Read this, and this.


"Possible? or am i drunk?"

You're drunk! If this was easy in the general case, Intel would have built it into the processors by now!


What you're looking for is called 'Single System Image' or SSI. There is scant information on the internet about people doing such a thing, as it tends to be reserved for super computing (and perhaps servers).

http://en.wikipedia.org/wiki/Single_system_image


No, the application needs to be multi-threaded to use more than one core. You're of course free to write a multi-threaded version of that application if you wish, but it may not be easy to make sure the different threads don't mess each other up.


If you want it to alleviate multiple cores then you could write a multi-threaded version of your program. But only in the case that it is actually parallelizable. You said you were reading from pst-files, take care not to run into IO bottlenecks.

A great library for working with threads, mutex, semaphores and so on is POSIX Threads.


There is'nt available such an application, but it is possible.

When a OS will run in a VM, then the hypervisor could make use of a few CPUs to identify which CPU code could run parallel, and are not required to run sequentially, and then they could be actually done with a few other CPUs at once,

In the next second when the Operating CPUs are idle (because they finished their work faster then the menager can provide them with new they can start calculating the next second of instructions.

The reason why we need to do this on the Hypervisor level, and not within the OS, is because of memory locking this wouldnt be possible.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜