2011年5月26日 星期四

i7的HT功能開關 對於實驗的影響

用了兩天測試多核心效能 和HT功能開關

請注意!!!
這是對於我的基因演算法 實驗結果
不保證對實驗室所有實驗都這樣



結論先講.
關了HT對實驗不會是壞事,
支援多核的程式, 同時執行4個核心就好 多了慢很多!
單核的程式, 一次執行最多4個就好 讓它們搶cpu會慢很多


測試環境
i7-2600 (4核, 開HT變8核), 16G-ram, win7-64bit, matlab 2010b.
matlab開啟多核心功能. 平行處理基因演算法. 每個核心分別處理一條基因.

population=400, generation=3.
單核. 163 sec
------------------------------
2核開HT. 125 (兩次平均)
3核開HT. 75 (兩次平均)
4核開HT. 91 (兩次平均)
5核開HT. 95 (兩次平均)
6核開HT. 103 (兩次平均)
7核開HT. 115 (兩次平均)
8核開HT. 147 (兩次平均)
--------------------
3核關HT. 85 (三次平鈞:76,83,98)
4核關HT. 80 (二次平鈞:68,92)

總共執行四個實驗的話
支援多核的程式同時只能跑一個, 所以時間是x4
單核程式可以同時跑4個( 每一個都只占了25% cpu),
單核 vs. 多核是 163 vs. 320 ( 80x4 )
==> 結論其一. 執行多個單核程式較單純 效率>=支援多核心的程式

從開HT看來
3核最佳,
4核可能是太忙了 沒空核心間溝通而拉低效能
5核上去 效果奇差無比
==> 結論其二. 支援多核的程式, 4核就好, 多了HT的邏輯CPU無益

相比於關掉HT 使用3,4核結果差不多
==> 結論其三.支援多核的程式, 使用4個核心以下, 關閉HT vs. 開啟HT 結果沒差


另外一個測試 當次數超過實際核心數.
population=50, generation=3.
同時跑5個程式@開HT 338 sec (414+337+363+282+294)
同時跑5個程式@關HT 336 (361+358+229+367+365)
同時跑4個程式+單獨跑1個 142 (86+85+84+71)/4 + 60

超過核心數, cpu使用都是五個程式搶來搶去 結局差不多
==> 結論其四. 跑的程式數量 > 核心數, 開關HT 近乎沒影響

低於核心數 再單獨跑1個 遠低於同時跑
==> 結論其五. 跑的程式數量 > 核心數, 分兩堆跑 比較好




剛才也找了一下 有人提到
(ref:http://news.pchome.com.tw/magazine/report/ct/Advance/456/8/122546880053371031007.htm )
"沒對八條執行緒做最佳化,一旦有多虛擬核心使用,的確有可能錯亂,而造成幫助有限或效能下降的現象。"
"根據實測結果,在Core i7 920開啟HT後,各項測試平均下來只有6.151%的效能成長"
"HT該開還是關? "
"完整支援多執行緒的Cinebench R10軟體"
"「開啟HT只用到一半的執行緒」與「關閉HT但完整利用四條執行緒」,其實後者的效能會比較好"

沒有留言: