2007年6月14日 星期四

多核心CPU的應用(Processor Affinity)

現在電腦CPU,從最早一昧的在追求高時脈,一直到現在的主流是追求核心數多寡,最後一定會趨於一個平衡的狀態(供需法則)

但是回頭看看,最早深植人心的(類)雙核心技術,應該是P4的Hyper-Threading(HT)技術(超執行緒技術),對於那時的電腦產業投下一顆震撼彈

接著兩大CPU陣營(INTELAMD),就開始了多核心製程的競賽,無論如何,兩方互相砥礪之下,對消費者而言都是好事,因為才有機會拿到「俗又大碗」的CPU呀!(希望不要有任何一家因故而消失呀!)

在說明多核心CPU的應用之前,有一點要先說明一下,如果有去看一下多核心技術的文章,就會發現它是提高處理器的實用性,而不是一昧地追求高時脈(有高廢熱、高電耗...等問題)

所以在INTEL-CORE2-CPUAMD-Athlon 64 X2產生時,初期時脈並不高,所以指定其中一個核心來運作特定程式,不一定能夠得到相對的效益,可是一直到最近的新製程與時脈,其實已經都接近先前的高時脈CPU了(自己動手超頻的不在此限...)

那要怎麼來指定其中一個CPU核心來執行特定程式呢?

筆者原本是認為應該在XP上做不到,或是一定要加掛其它程式(因為也沒有特定去研究過啦!),還記得之前在寫有關於Prime95的文章時,也是為了要實現雙核心都滿載的狀況,必需要開啟兩隻Prime95的程式,才能夠對雙核心技術的CPU,達到測試的效果

不過,昨天在巧合的狀況下發現,其實還有另外一種操作方式也行:

1. 按下ctrl + alt + del,出現Windows安全性。
2. 選擇工作管理員 --> 處理程序。
3. 選取特定程式 --> 右鍵 --> 設定相關性。
4. 選擇CPU0CPU1...之一。(有多核心的CPU)

這樣子就可以把特定程式跑單CPU的執行緒,筆者很想附圖跟大家分享

不過現在手邊的電腦,沒有如此高檔的CPU(筆者是能用就好的那一型,不是3C魔人呀!),如果真的想看設定的圖,可以看一下WiKi上關於Processor Affinity的說明

最後筆者要補充一件事,那就是真的設定單一CPU來執行真的會比較好嗎?

其實也並不盡然,因為我們做這種設定,大多是為了測試CPU或是單一程式執行會影響其它程式的流暢性,才會有這樣子的需求,否則還是讓電腦自己選定執行的方式,畢竟人的習慣變通,經常都會依循特定的模式

如此一來就會造成反效果喔!使用前請三思!!