2011-03-22 42 views
3

我正在考虑一个想法,其中一个需要运行在Core i7 cpu上的完整性能的迟滞应用程序。是否有任何Linux软件/实用程序将该应用程序的所有内核组合在一起,因此它可以以比仅使用一个内核更高的性能进行处理?在Linux上将多核整合到SIngle核心处理中,可能吗?

该应用程序是readpst,它只使用1个核心处理outlook PST文件。

它可以,如果我不能使用所有核心,它会没事的,如果可以使用像3核心。

可能吗?还是我喝醉了?

如果我在多分支方面的C知识很好,我会重写它以使用多核。

+0

这是毫无意义的。 'readpst'程序根本不使用CPU,它几乎完全是I/O。 – 2017-01-02 13:29:19

回答

4

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

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

+1

借调。醉酒是正确的答案。 – 2011-04-04 10:18:26

2

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

1

如果您想让它减轻多个内核,那么您可以编写一个多线程版本的程序。但仅限于它实际上可并行化的情况。你说你正在读取pst文件,注意不要碰到IO瓶颈。

一个用于处理线程,互斥量,信号量等的好库是POSIX Threads

+0

当我试图分叉4个孩子时,我遇到了IO Deadlocks的问题。 – 2011-05-01 13:48:13

6

基于Intel Nehalem的CPU(i7,i5,i3)已经在一定程度上做到了这一点。

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

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

阅读thisthis

+1

这是不是在多线程上运行代码,因为OP要求,是吗? – dty 2011-03-23 08:23:58

+1

@dty:不,但他也提到“全面表现”,所以值得一提。 – 2011-03-23 17:24:24

+0

多数民众赞成,这也很有帮助。 – 2011-07-15 09:46:16

1

有is'nt提供这样的应用程序,但它是可能的。

当一个操作系统运行在虚拟机中时,系统管理程序可以利用几个CPU来识别哪些CPU代码可以并行运行,并且不需要按顺序运行,然后可以通过几个CPU其他CPU上,

在当工作的CPU处于空闲状态(因为他们完成了他们的工作速度更快,则MENAGER可以为他们提供新的,他们可以开始计算下一指令第二下一秒。

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