多核心CPU不能獨立運行嗎? - Linux

Odelette avatar
By Odelette
at 2012-03-24T01:30

Table of Contents

我用的是Intel Q9400 四核心處理器 系統用Ubuntu11.04

我有兩個大的程式(互相獨立),分別跑要各花一天;但是一起跑的話要花兩天以上的時間。

可是這個四個核心不是應該可以獨立運行的嗎?

為什麼一起跑的時候不是花一天的時間,而是比兩倍的時間還長呢?

我想到的可能性

1.memory不夠用,互相牽制。top指令的資訊如下:
PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
20 0 1040m 1.0g 1004 R 100 14.8 42:37.82 6908 task1
20 0 20972 18m 880 R 100 0.3 1:59.37 1712 task2

%MEM加起來不到20%,我也沒有跑甚麼其他程式,所以應該不是memory不夠。

2.context switch太頻繁,浪費時間。可是我想想現代的系統都有很多context switch

應該不是這個原因。


所以我覺得對這個問題很疑惑,希望大家可以來討論一下~

--
Tags: Linux

All Comments

Quanna avatar
By Quanna
at 2012-03-24T17:09
BUS頻寬被吃掉 可能是 CPU<->MEMORY or MEMORY<->HD
Eden avatar
By Eden
at 2012-03-26T21:36
等情況 若你使用一般PC很容易被一項卡
Iris avatar
By Iris
at 2012-03-30T19:00
另外有一種可能:倒楣兩個PROCESS都被fork在同一個核
Iris avatar
By Iris
at 2012-04-03T04:28
chenyen大,有甚麼方法可以check這個可能性嗎?
Jacky avatar
By Jacky
at 2012-04-05T19:44
top的數據似乎跟這些無關...如果這樣只能換主機了嗎?
WolfLord大,我用top看常常有兩個cpu的工作很滿
Leila avatar
By Leila
at 2012-04-09T22:36
而且是切來切去的,所以應該不是在同一個核裡吧
Poppy avatar
By Poppy
at 2012-04-14T21:29
程式是不是把結果寫到資料庫? 可能是卡在輸出結果這邊
Delia avatar
By Delia
at 2012-04-19T00:55
第一個,跑一個程式時,也有可能是四個核心一起處理
Audriana avatar
By Audriana
at 2012-04-19T10:45
現在變成兩個一起跑,只有兩個核心各處理一個,當然這不準
第二個,有沒有考慮到disk IO部分?兩個程式一起跑
Blanche avatar
By Blanche
at 2012-04-20T21:12
disk IO變得比較多,就可能慢下來了
Eartha avatar
By Eartha
at 2012-04-24T03:39
我從Ubuntu的cpu freq小程式看到的排程情況,程式不會被綁
Poppy avatar
By Poppy
at 2012-04-26T12:40
在特定的CPU,CPU之間還會照輪,會動用(升至工作頻)第2個CPU
Liam avatar
By Liam
at 2012-04-28T16:13
是必須第一個CPU滿載. 合理推測原po的程式並非 cpu bound
所以再多顆都不會改善,瓶頸不在CPU這裏
Isla avatar
By Isla
at 2012-05-01T15:38
我看top的wa(iowait)大概都很低,所以應該不是硬碟問題
Jacky avatar
By Jacky
at 2012-05-06T03:13
可是剛剛top結果發現task1 task2都用35~40%的memory
Madame avatar
By Madame
at 2012-05-08T05:54
task1 task2裡面的步驟都是一樣的
Mason avatar
By Mason
at 2012-05-09T03:45
可能同時一起啟動,有時會剛好一起執行很耗memory的步驟
Vanessa avatar
By Vanessa
at 2012-05-12T15:58
我想解決的方式可能是...不要同時開始執行吧
Poppy avatar
By Poppy
at 2012-05-12T20:01
前後隔個兩三個小時這樣 或是再加記憶體(只是DDR2插滿了)
Jack avatar
By Jack
at 2012-05-17T10:31
如果瓶頸是在memory bandwidth,超過所需之量後,加多memory
Quintina avatar
By Quintina
at 2012-05-22T07:17
應該也沒用. memory bandwidth 決定於 RAM module與晶片組
二者之較小值.
Liam avatar
By Liam
at 2012-05-22T23:40
可能還是要用工作站級的主機比較好~~果然還是有差的

如何調整CPU時脈

Michael avatar
By Michael
at 2012-03-24T01:07
我用的CPU是Intel 四核心處理器 Q9400 請問要怎麼把CPU改成一直都用全速跑呢? 我的CPU用cpufreq-info指令來看就發現他是用ondemand模式在跑 我給他很重的loading時也是用低時脈2GHz跑 我爬文發現ondemand模式預設是95% loading才會加速,可以改 ...

Automake 的測試套件 make check-TESTS

Genevieve avatar
By Genevieve
at 2012-03-23T14:02
在寫程式的時候會想要寫一些測試套件[1]來驗證程式的功能是否正常,Automake 支援了 這種需求。 一般來說寫一個給 Hello World 程式的 Makefile.am 會長得像以下這樣: bin_PROGRAMS = hello hello_SOURCES = hello.c 如果說希望能夠 ...

Ubuntu比較耗電

Liam avatar
By Liam
at 2012-03-23T11:00
個人目前使用Ubuntu11.10 在一般狀態下(瀏覽網頁) 比Windows 7 耗電量多將近五瓦 我是筆電使用者 所以耗電量多寡還蠻重要的 不知到各位版友有無任何調整Ubuntu的方法讓耗電量減少 感謝回答 andlt;(_._)andgt; - ...

squid transparent proxy

Blanche avatar
By Blanche
at 2012-03-23T01:40
squid acl這部分小弟參考了鳥哥大的做法,在手動設proxy下也成功擋住目標domain 而想要讓家裡192.168.1.0網段下不須設定即有proxy效果 //已更正,感謝日月潭哥.. 除了在NAT server上下手,還有在PROXY上設定TP 現在小弟有個問題,我的PROXY SERVE ...

VM安裝Ubuntu時填name server address

Sarah avatar
By Sarah
at 2012-03-22T22:00
我手邊有一份在VM安裝Ubuntu的教學(一步一步圖示說明), 我看到其中有一步驟是說要你填name server address, 它有解說是and#34;The name server are used to look up host names on the network.and#34;. 想請 ...