我发现我用MATLAB运算时,CPU占用率的极限大概是55%左右,即使是使用并行运算(使用parfor),也无法超过55%。请问有没有办法提高CPU占用率呢?还是说这个已经是极限了,原因是什么?在windows7下测试,出现这种现象。
matlab自带一些函数会调用并行,但只能调用物理核心,所以超线程的u只能用到一半的逻辑处理器。
我的电脑是双核四线程的,matlab默认将最大开启workers的数量定义为了核心数,也就是2。因此要想使用全部4个线程,需要在设置中将workers的数量更改为4(下图2,3)。设置完毕后开启并行池parpool(local,4), 循环中使用parfor进行并行运算,cpu使用效率可达到100%。