推 soem: 個人認為你這樣描述資訊過少,若有點CPU資訊,以及你觀察到 06/18 20:51
→ soem: 的狀況會比較容易理解你遇到的問題。 06/18 20:51
→ yqwu: cpu是 2* XEON E5-2620 比上兩年前買的i7 6核心 型號忘了 06/18 23:22
→ yqwu: 簡單來說就是兩個CPU和一個CPU跑完一組平行計算的時間一樣 06/18 23:23
→ yqwu: 所以我在想是不是新的電腦設定錯誤 06/18 23:23
推 WolfLord: 一般來講,你只要啟動的是SMP KERNEL就夠了,至於平行 06/18 23:34
→ WolfLord: 演算的效能並不是單純你用了哪一個KIT就一定能凸顯的 06/18 23:35
→ WolfLord: 多核心程式需要注意的很多,但單純從您的說法裡面可以 06/18 23:36
→ WolfLord: 推測的資訊其實很貧乏:是否有適當分割演算,演算是否 06/18 23:37
→ WolfLord: 有不當的相依關連,甚或邏輯性的等待拴鎖等等..... 06/18 23:37
→ tjjh89017: 搞不好ram吃滿了,所以沒有辦法跑那麼快XD 06/18 23:38
→ tjjh89017: 之前就有遇過ram吃滿,CPU沒有辦法跑出理論GFlops 06/18 23:38
應該不會是這個問題
就我知道的 我們學長之前開發的程式不太吃ram
所以應該不是ram的問題
→ WolfLord: 如果你的計算程式只是一般的單一流程計算程式,那不管 06/18 23:39
→ WolfLord: 少個核:都不會實質增加你的演算速度的。這種程式需要 06/18 23:40
→ WolfLord: 是像 Carry 那種暴力蠻牛(核心時脈與實質核心演算速度 06/18 23:41
→ WolfLord: )處理器 06/18 23:42
我們的計算程式有經過平行化處理
但是不能夠跨node (openmp)
我之前自己有測試過 4核心的cpu 和6核心的cpu開了HT比較
執行的時間大概是3:1 也就是6核心cpu速度有快三倍
所以後來買了一台新的雙cpu的電腦 結果跑起來沒有比單顆的快覺得很納悶
買之前有請廠商測試過
他報給我的速度的確有快一倍
可是自己裝好了來用又沒有
要問他們怎麼設定 他們又說要收錢Orz
推 KAOKAOKAO: 編譯的時候有正確link嗎? 06/19 19:02
這個不是很懂
推 suyuan: 為什麼不把原始碼丟出來呢?不要浪費大家的時間用猜的 06/19 20:37
抱歉 其實我也算是個電腦白癡 很多地方不是很懂
請問大概是要什麼原始碼呢
丟上cluster跑的程式嗎
實在對這方面不是很熟
十分感謝各位熱心的回答
※ 編輯: yqwu (1.163.54.181), 06/19/2015 20:56:43
→ shihchiang: 既然都平行了怎不用顯卡跑 06/20 00:38
openmp好像只能用cpu平行化的樣子
推 WolfLord: 先確認你是不是用SMP核心起動OS吧 06/20 02:02
我來google一下看看這個怎麼確認
→ sunneo: cat /proc/cpuinfo看看,32bit kernel只到8 cores 06/21 20:21
是指主機的嗎?
※ 編輯: yqwu (1.171.169.95), 06/21/2015 22:13:03
推 WolfLord: cat /proc/version 看看有沒有標示SMP啊~ 06/21 23:57
→ yqwu: 原來是這樣看 感謝!! 有標示SMP 06/22 08:46
→ yqwu: 請問會是主機centos版本太舊的問題嗎 目前5.4 06/22 13:50
→ jjooeeyy: 跑的時候有確定每個cpu跟cores都有被用到? 06/22 16:46
→ WolfLord: 那 ps 看看執行續有沒有分裂(同程式多個PID)如果沒有 06/22 19:57
→ WolfLord: 程式寫得有問題,如果有,可能要檢查看看是否有互相卡 06/22 19:58
→ WolfLord: 卡關的邏輯判斷式 06/22 19:59
→ tjjh89017: try this 06/22 20:22
→ tjjh89017: export OMP_NUM_THREADS=12 06/22 20:22
→ sunneo: 主機的啊,如果你沒自己編核心,32bit kernel只認得8cores 06/24 03:40