?
多核新觀念-象使用內存一樣使用CPU?
多核時代,很重要的一點就是要將多個CPU核同時運轉起來,提高CPU的利用率,說得專業一點就是要提高多核CPU的加速比系數。
但是并不是任何時候都可以同時將多個核運轉起來,比如一些不能并行化執行的代碼,特別是使用了鎖的代碼,它的執行是串行化的,無法同時利用多個核,還有負載平衡問題,多個任務無法劃分得很均勻,導致實際情況中有些任務先運行完,有些任務后運行完,先運行完的CPU核就處于空閑狀態。
是不是任何時候都需要將多個核利用到極致呢?答案是否定的,比如一個服務器軟件,如果只有一個客戶端連接過來,那么只要用一個核來處理這個請求已經綽綽有余了,何必非要同時將多個核同時運行起來呢??再比如在客戶端軟件中,客戶做了一個操作后,機器只是進行一個時間非常短的運算就結果返回給用戶,然后機器處于空閑狀態直到用戶的下一次操作為止,在這種情況下,由于機器運算量很小,一個核進行運算完全能夠滿足用戶所需的性能需求,就沒有必要同時利用多個核進行運算,因為很小的計算量情況下,多個核同時運行效率可能還不如一個核。
既然有那么多情況下不需要多個核同時進行運算,那么買多核的機器干什么? 這不由得將CPU和內存比較起來,比如裝了一個2G內存的機器,其實很多情況下是不可能將2G的內存都用完的,但是當運行一些大的應用,或者玩一些大型游戲的情況下,內存就基本上都利用上了,其實以后用多核CPU可能就象用內存一樣,并不是任何時候都需要將所有的CPU核都用上的,只有計算量很大的情況下才需要完全利用多個CPU核來進行計算,也就是說全部的CPU核主要是為計算達到一定規模時才全部使用的,當然這個計算規模隨CPU核數的不同而不同。
當然使用CPU和使用內存并不是完全相同的,因為現在軟件規模越來越大,大多數計算的規模是可以達到為多核而使用的,因為軟件規模會隨著CPU核數的增加而同步增長,大部分情況下多個CPU核都是可以充分利用上的,而內存則不一樣,不論是客戶端機還是服務器,可能大部分時候內存利用率并不是很高,只有少數高峰時候才能將內存全部用上。
?
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1698721
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
