• 3

軟體對於雙核心&四核心的支援程度差異有多少?

http://www.mobile01.com/topicdetail.php?f=296&t=662110&last=6663667#6656478
上述連結中的內文使我產生了這樣的疑問:為何軟體至今仍會有是否支援雙核心或四核心的功能差別?

早期CPU仍只有單核心時,也許就不太需要關注這個話題,但隨著CPU中核心的數目不斷的增加,這個話題似乎常在一些主題中被反覆提到,但...小弟似乎也未看見真正的回答。

程式設計或應用軟體開發時,不是會以執行緒(Threads)作為程式內運行的方式嗎?此設計不就是針對多核心或多執行緒的多核CPU來開發嗎?既然以此方式開發,還有雙核心、四核心,甚至6核心、12核心...的差別嗎?

且作業系統在推出時,不就已宣告該OS可使用的CPU數目及核心數目了嗎?究竟在多核心的支援上,是看OS的支援程度呢?還是Threads的設計程度?

還望有能的大大可以解小弟心中已久的疑惑,感謝!
2008-06-17 14:23 發佈
簡單講,一個是作業系統的支援,一個是應用程式的支援,應用程式是在作業系統上面執行,若作業系統不支援到多核心或是多執行緒,上面的應用程式也用不到,若作業系統支援多核心或是多執行緒,但應用程式不支援,當然也是用不到囉.
eriinhld wrote:
http://www...(恕刪)

早期單核心時代,CPU只要按照程式的流程一路執行下來就好,也就沒有所謂幾個執行緒的問題。
現今多核心時代,假設一個程式要分給多個核心來完成,那麼程式必定要寫成多執行緒,將程式的分工交給各個核心處理。
一段程式的分工若是按照雙核心來設計的,那麼妳有四核心也只會跑其中兩個。簡單來說,就是雙核程式還沒有聰明到自己變成四核,而OS也沒聰明到把雙核設計的程式改成四核。

另外程式與OS間如何將分工做好分配也有很重要的關係。
雖然多緒程式設計很早就有了,
不過設計門檻高,
(必須使用 delphi/bcb/vc++ 開發,以vb或其他工具並不容易實作)
大多數情況而言,也認為單序的程式就夠了,
讓os自行管理多行程(程式)的切換既可,
除了少數使用於多CPU(最少為雙CPU)的程式外,
一般的應用程式設計師不會找自己麻煩.

因為 Visual Studio.Net 中的VB.net提供了比較簡單的多緒程式設計,
也因為多核心cpu已經是入門級配備,
所以多緒程式設計慢慢變成主流,
並非一開始就是以多執行緒的程式設計為主.

多執行緒的程式會分配到幾個cpu,
基本上由OS決定,
但是多緒程式的複雜度及除錯難易度也會隨cpu數量增加而增加,
不是教科書上講的這麼簡單.
非常感謝樓上大大們的解說,使小弟又有了一些新的知識與領悟。
看樣子,應用軟體、遊戲軟體核心支援的數目永遠追趕不上CPU核心成長的數目...,到時候6核心&12核心一樣還是英雄無用武之地。
Windows 8,等待你!~~
eriinhld wrote:
非常感謝樓上大大們的...(恕刪)


多核心還是有用啦

你可以把不同程式

分配給不同核心工作

這樣也是多工

而且每個程式

都有100% cpu在運作

也不錯啦
影片轉檔程式就有支援哦!!
你可以試試看影片, copy大量資料, 又上網, 又轉檔, ...
這時候, 就知道四核心的好處了,
如果你根本不會轉檔, 那用2核心可能就很足夠了.
我自已用起來也是覺得雙核比之前的單核效能好很多。

有人說開多個程式就會用到多工多核。那很顯然多核整體上感覺會順暢很多吧?
因為windows幾乎都是處在同時執行多個程式的狀態下。比如防毒軟體、網路連線、及其他windows在暗中執行的東東等。
即使在只執行單一遊戲的情況下,其實windows也不只有在執行遊戲一個程式而已。

而且雖然理論上,比如時脈3.0G的單核在同時執行二個程式時,一個程式會分到1.5G的執行時間,感覺上好像不遜於1.5G的雙核很多,但實際上用單核在執行多個程式時,經常感覺很卡,比光執行一個程式的效能會降低很多。感覺還不如先執行完一個程式,再執行另一個程式比較快。這種時候感覺多核顯然順暢許多。

但是如果有單一程式非常倚賴單一CPU的時脈,比如某個很耗CPU不支援多核的遊戲,那可能單一CPU負載超過100%,其他核心的CPU負載都不高,那可能就是雙核高時脈來跑這個遊戲反而比四核來得快。

不知我以上的這種說法對嗎?
levis501tw wrote:
雖然說現在的程式很多...(恕刪)

你的想法基本上是沒錯,但四核效能贏雙核並不是定論,而是要看如何使用。
假使一台電腦上所有的工作由雙核心就可以輕鬆處理(CPU常沒事幹閒著,使用率也沒滿載過),那四核心也不會比雙核快。

別忘了程式是有流程順序的,一個單執行緒的程式,程式中有些段落要等待前面的段落算出結果才能接著運算,在前面的步驟沒執行完之前,後面的步驟是不可能先拿出來給其他核心執行的。
換個方式來說
單核 雙核的差異很多人都清楚不需要再解釋了吧
當今遊戲跟程式最多只支援到雙核(大家都這樣說)
那就表示雙核在使用上離滿載已經不遠了,這樣講明白嗎
大量支援雙核或多核程式推出時
雙核滿載,其他程式要怎麼辦?
再升級一次嗎?又多花一次
為何不一次到位?我沒說要高階四核哦
當I老大明年的產品都確定四核起跳了(高階一點的還+HT模擬八核)
真搞不懂還有人一直推雙核
說四核用不到浪費 耗電之類的話
所以四核絕對撐得比雙核久
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?