2011-03-22 17 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可以爲他們提供新的,他們可以開始計算下一指令第二下一秒。

原因爲什麼我們需要在虛擬機管理程序級別而不是在操作系統內執行此操作,這是因爲內存鎖定,這是不可能的。