在Linux上将多核组合到SIngle核心处理中,可能吗?

时间:2011-03-22 23:04:23

标签: c linux multithreading performance multicore

我正在考虑一个想法,一个需要在Core i7 cpu上运行全面性能的延迟应用程序。是否有任何Linux软件/实用程序可以组合该应用程序的所有内核,因此它可以比仅使用1个内核更高的性能进行处理?

应用程序是readpst,它只使用1 Core处理outlook PST文件。

如果我不能使用所有内核就可以,如果可以使用3核,那就没问题了。

可能?还是我喝醉了?

如果我对多分叉的C知识很好,我会重写它以使用多个核心。

6 个答案:

答案 0 :(得分:6)

基于Intel Nehalem的CPU(i7,i5,i3)已经达到了这个程度。

通过使用Turbo Boost模式,当使用单个内核时,它会自动超频,直到达到功率和温度限制。

更新版本的i7(2K芯片)可以做得更好。

阅读thisthis

答案 1 :(得分:4)

“可能吗?还是我喝醉了?”

你喝醉了!如果在一般情况下这很容易,那么英特尔现在已经将其构建到处理器中了!

答案 2 :(得分:4)

您正在寻找的是“单一系统映像”或SSI。互联网上关于人们做这种事情的信息很少,因为它往往被保留用于超级计算(也许是服务器)。

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

答案 3 :(得分:2)

不,应用程序需要多线程才能使用多个核心。如果您愿意,您当然可以自由编写该应用程序的多线程版本,但要确保不同的线程不会相互混淆可能并不容易。

答案 4 :(得分:1)

如果您希望它减轻多个核心,那么您可以编写程序的多线程版本。但只有在它实际上可并行化的情况下。你说你正在读取pst文件,注意不要碰到IO瓶颈。

用于处理线程,互斥,信号量等的优秀库是POSIX Threads

答案 5 :(得分:1)

没有这样的应用程序,但它是可能的。

当操作系统在VM中运行时,管理程序可以使用一些CPU来识别哪些CPU代码可以并行运行,并且不需要按顺序运行,然后它们实际上可以通过其他几个来完成CPU一下子,

在下一秒操作CPU处于空闲状态时(因为他们完成了更快的工作,然后操作员可以为他们提供新的工作,他们可以开始计算下一秒的指令。

我们需要在虚拟机管理程序级别而不是在操作系统内执行此操作的原因是因为内存锁定这是不可能的。

相关问题