我發現我用MATLAB運算時,CPU佔用率的極限大概是55%左右,即使是使用並行運算(使用parfor),也無法超過55%。請問有沒有辦法提高CPU佔用率呢?還是說這個已經是極限了,原因是什麼?在windows7下測試,出現這種現象。
matlab自帶一些函數會調用並行,但只能調用物理核心,所以超線程的u只能用到一半的邏輯處理器。
我的電腦是雙核四線程的,matlab默認將最大開啟workers的數量定義為了核心數,也就是2。因此要想使用全部4個線程,需要在設置中將workers的數量更改為4(下圖2,3)。設置完畢後開啟並行池parpool(local,4), 循環中使用parfor進行並行運算,cpu使用效率可達到100%。