PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   系統組件 (https://www.pcdvd.com.tw/forumdisplay.php?f=19)
-   -   用到大量資料比對以及演算法要用哪種CPU (https://www.pcdvd.com.tw/showthread.php?t=778938)

totorochen 2008-03-02 02:19 AM

用到大量資料比對以及演算法要用哪種CPU
 
用Java寫的程式會用到大量資料比對以及演算法要用哪種CPU?
如果L2大小會有很大的影響,打算放棄E2忍痛買E8系列了
如果完全無關,可能考慮直接用AMD

jamin 2008-03-02 04:44 AM

如果資重複使用率低, 演算法對資料相依性低, 而且每次運算的資料量大,
那 cache 大就沒有幫助.

如果是比對某些固定的 pattern, 而 pattern 足以塞進 cache,
那可就大大減少 pattern 載入時間.

所以, 還是得看樓主的程式 (更詳細的說明?? )
搞不好運算複雜, 每秒產出率不到10MB, 那根本不用管 cache 大小. :D

totorochen 2008-03-02 05:12 AM

引用:
作者jamin
如果資重複使用率低, 演算法對資料相依性低, 而且每次運算的資料量大,
那 cache 大就沒有幫助.

如果是比對某些固定的 pattern, 而 pattern 足以塞進 cache,
那可就大大減少 pattern 載入時間.

所以, 還是得看樓主的程式 (更詳細的說明?? )
搞不好運算複雜, 每秒產出率不到10MB, 那根本不用管 cache 大小. :D

字串比對分群,pattern不能算多,但是要比對的資料很多
類似google那種字串搜尋分群,資料量很大,P4 2.4BG Run起來要很久

anderson1127 2008-03-02 07:39 AM

我想,這種時後,與Cache的大小雖然是有關,但影響應該不會太大了
頂多大概影響個 20%的運算效率吧?

整體運算的效能取決於 演算法吧? (這時就得把以前學的 資料結構拿出來好好的唸一唸了... )
因為裡面就有提到 排序的部份 ,我想這應該就是你要的了吧??

如果只是單純就使用暴力法,那當然你可以選Intel/AMD的頂級CPU
(也要看你有沒有錢啦,有的話,那當然就是買Tyan/SuperMicro/Intel等大廠的MB + 大量的ECC DDR2 DRAM)

另一個問題就是,資料本身的問題,是在Local 主機裡還是存放於另一台
的Database主機裡??
如果是在另一台主機裡,那問題又來了,另一台主機不夠power,或者
Database太弱,當然也會拖慢效率!! 如果是在localhost ,那效能會好
一點!!

總之,效率的問題很多種,一關卡一關,好好的去找出每個環節的問題
改善之 , 再來談該怎麼implement你的程式吧!!

visionary_pcdvd 2008-03-02 08:21 AM

若講求效能,用C/C++應該比較適合,

印象中翻過侯傑翻譯的Java書,Java比C/C++慢了10-50倍

dynamo 2008-03-02 10:02 AM

如果程式可以寫成多執行序的話
那四核應該會是比較好的選擇

olozilyur 2008-03-02 10:24 AM

引用:
作者visionary_pcdvd
若講求效能,用C/C++應該比較適合,

印象中翻過侯傑翻譯的Java書,Java比C/C++慢了10-50倍


我想這應該是在Java HotSpot技術前的速度,現在應該沒這麼懸殊了

peter-1000 2008-03-02 11:07 AM

樓主所謂 "大量資料比對" 是多大量?
一顆CPU的Cache才多大? 而且也不會全部被挪為對比的用途, 所以你應該考量的是浮點運算的速度, 譬如幾位元的CPU搭配幾位元的OS, 以及Memory與CPU的IO速度等等, 這件事情應該從硬體到OS到軟體整體考量, 不單只是Cache的問題那麼簡單喔! :shock:

visionary_pcdvd 2008-03-02 01:41 PM

引用:
作者olozilyur
我想這應該是在Java HotSpot技術前的速度,現在應該沒這麼懸殊了

略有所聞,但因Java先天架構的關係,不論如何改良仍比C/C++慢很多倍,實在不適合用在非常需要效能的地方。

此外,越是強調物件導向特性的語言,其對CPU指令解碼分支預測的考驗越是嚴厲,或許L2大一點可加以彌補,但這只是理論上的猜測,不做實驗是無法得知的。我猜就算有幫助,了不起就快一成而已,遠不如改用C/C++有效。

Big Peter 2008-03-02 02:17 PM

Java是在VM上運行的, 與cache應無直接關係 :think:


所有的時間均為GMT +8。 現在的時間是03:48 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。