多核新觀念-象使用記憶體一樣使用cpu?
多核時代,很重要的一點就是要將多個cpu核同時運轉起來,提高cpu的利用率,說得專業一點就是要提高多核cpu的加速比係數。
但是並不是任何時候都可以同時將多個核運轉起來,比如一些不能並行化執行的**,特別是使用了鎖的**,它的執行是序列化的,無法同時利用多個核,還有負載平衡問題,多個任務無法劃分得很均勻,導致實際情況中有些任務先執行完,有些任務後執行完,先執行完的cpu核就處於空閒狀態。
是不是任何時候都需要將多個核利用到極致呢?答案是否定的,比如乙個伺服器軟體,如果只有乙個客戶端連線過來,那麼只要用乙個核來處理這個請求已經綽綽有餘了,何必非要同時將多個核同時執行起來呢? 再比如在客戶端軟體中,客戶做了乙個操作後,機器只是進行乙個時間非常短的運算就結果返回給使用者,然後機器處於空閒狀態直到使用者的下一次操作為止,在這種情況下,由於機器運算量很小,乙個核進行運算完全能夠滿足使用者所需的效能需求,就沒有必要同時利用多個核進行運算,因為很小的計算量情況下,多個核同時執行效率可能還不如乙個核。
既然有那麼多情況下不需要多個核同時進行運算,那麼買多核的機器幹什麼? 這不由得將cpu和記憶體比較起來,比如裝了乙個2g記憶體的機器,其實很多情況下是不可能將2g的記憶體都用完的,但是當執行一些大的應用,或者玩一些大型遊戲的情況下,記憶體就基本上都利用上了,其實以後用多核cpu可能就象用記憶體一樣,並不是任何時候都需要將所有的cpu核都用上的,只有計算量很大的情況下才需要完全利用多個cpu核來進行計算,也就是說全部的cpu核主要是為計算達到一定規模時才全部使用的,當然這個計算規模隨cpu核數的不同而不同。
當然使用cpu和使用記憶體並不是完全相同的,因為現在軟體規模越來越大,大多數計算的規模是可以達到為多核而使用的,因為軟體規模會隨著cpu核數的增加而同步增長,大部分情況下多個cpu核都是可以充分利用上的,而記憶體則不一樣,不論是客戶端機還是伺服器,可能大部分時候記憶體利用率並不是很高,只有少數高峰時候才能將記憶體全部用上。
多核新觀念 象使用記憶體一樣使用CPU?
多核新觀念 象使用記憶體一樣使用cpu?多核時代,很重要的一點就是要將多個cpu核同時運轉起來,提高cpu的利用率,說得專業一點就是要提高多核cpu的加速比係數。但是並不是任何時候都可以同時將多個核運轉起來,比如一些不能並行化執行的 特別是使用了鎖的 它的執行是序列化的,無法同時利用多個核,還有負載...
多核新觀念 象使用記憶體一樣使用CPU?
多核新觀念 象使用記憶體一樣使用cpu?多核時代,很重要的一點就是要將多個cpu核同時運轉起來,提高cpu的利用率,說得專業一點就是要提高多核cpu的加速比係數。但是並不是任何時候都可以同時將多個核運轉起來,比如一些不能並行化執行的 特別是使用了鎖的 它的執行是序列化的,無法同時利用多個核,還有負載...
多核新觀念 象使用記憶體一樣使用CPU?
多核新觀念 象使用記憶體一樣使用cpu?多核時代,很重要的一點就是要將多個cpu核同時運轉起來,提高cpu的利用率,說得專業一點就是要提高多核cpu的加速比係數。但是並不是任何時候都可以同時將多個核運轉起來,比如一些不能並行化執行的 特別是使用了鎖的 它的執行是序列化的,無法同時利用多個核,還有負載...