cht電腦資訊硬體
adm Find login register

dual cpu

本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
1subject: dual cpuPromote 0 Bookmark 02009-04-02quote  

誰對硬體及軔體比較熟悉的,能不能用白話文簡單解釋一下,為什麼要用多個 cpu?因為看了一些文件,術語太多,恐龍本也沒翻幾頁,看不是很懂。

  1. 單 cpu 製作能力已到了極限,所以合多個 cpu 來突破極限?
  2.  一個 cpu 掛了,還有其他的 cpu 頂著。
  3. 讓 OS 可以真正同時運作不同的 task/process。
  4. 這樣比較拉風,就像娶了三妻四妾一樣……
話說我的 FreeBSD,每次編譯程式有約 50%  的 cpu idle,那我的 dual cpu 是裝辛酸的嗎?


eliu

joined: 2007-08-09
posted: 11468
promoted: 617
bookmarked: 187
新竹, 台灣
2subject: Promote 2 Bookmark 12009-04-02quote  

沒錯,dual-core/multi-core cpu 其中一個 cpu 大部分的時間是 idle 的,感覺 cpu 的速度的進展近幾年來越來越少。

多核心 multi-core cpu 的多工可以用在

  • 多個 process 搶 cpu 的情形,例如 compile gcin source,可以用 make -j2 來同時 parallel compile 兩個 *.c,,這邊 make 是 create 不同的 process,由 OS 決定 process 是在哪一個 cpu 執行。你也可以 同時 compile source,一邊玩 game or  做 cd 的 rip & encoding,這樣應該可以把 2個cpu 填滿。
  • 一個 process 裡面有 multi-thread 的情形。意思是 process 裡面也可以多工,heap memory 是 thread 共享的,不同的 thread 有不同的stack,可以在不同的cpu 執行。像 firefox/IE 就有用到 multithread,所以那些閃來閃去的圖 & download 可以給不同的 cpu 執行。

多核心 cpu,不同的 core 有各自的 cache,DRAM memory 是共享的,所以雙核 dual-core cpu 的 performane 加速通常不會到2X。

edited: 5
本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
3subject: Promote 0 Bookmark 02009-05-06quote  

我用 make -j(不加任何參數,依 manpage 是說全力加速,有幾個 job 就用幾個,不限 job 數),結果系統好像就 hang 住一樣,看了一下 top,兩個 cpu 也才各約 80% 的 loading,並沒有滿檔,我受騙了嗎?

 

ps. 我是在 VBox 裡頭的 Linux 編譯的,可能和虛擬環境也有關係?


edited: 1
eliu

joined: 2007-08-09
posted: 11468
promoted: 617
bookmarked: 187
新竹, 台灣
4subject: Promote 0 Bookmark 02009-05-06quote  
可能 Virtual machine 不支援多 CPU ?
本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
5subject: Promote 0 Bookmark 02009-05-06quote  

eliu
可能 Virtual machine 不支援多 CPU ?

哇咧,好像是?

Initializing CPU#0
SLUB: Genslabs=12, HWalign=64, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
CPU0: Intel Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz stepping 06
Brought up 1 CPUs

dmesg 裡頭沒有看到 CPU#1 的資訊。還是我誤解了 dmesg 的意思了?


guest
6subject: Promote 0 Bookmark 02009-05-07quote  

cat /proc/cpuinfo 最準 :)

LGJ

 

哇咧,好像是?

Initializing CPU#0
SLUB: Genslabs=12, HWalign=64, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
CPU0: Intel Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz stepping 06
Brought up 1 CPUs

本人已不在此站活動

joined: 2007-09-19
posted: 4946
promoted: 325
bookmarked: 206
歸隱山林
7subject: Promote 0 Bookmark 02009-05-07quote  

edt1023:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 23
model name    : Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz
stepping    : 6
cpu MHz        : 2400.868
cache size    : 2048 KB
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 2
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 constant_tsc up pni monitor
bogomips    : 4835.66
clflush size    : 64

是很準,只是看不太懂,看起來也是只有 CPU 0 的樣子?


guest
8subject: Promote 0 Bookmark 02009-05-08quote  

雖然顯示 Dual-Core

但是只有看到 processor : 0

若有兩顆以上

processor       : 1

至少要出現 1

LGJ

edt1023:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 23
model name    : Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz
是很準,只是看不太懂,看起來也是只有 CPU 0 的樣子?

...

cht電腦資訊硬體
adm Find login register
views:23125