刚开始接触matlab并行计算,以前旧电脑从不考虑这些的
小本i7四核八线程16G内存,64位win7和matlab 2012b,任务管理器显示有8个框
当用普通for循环,只有一个框接近100%,cpu使用率只有12%左右
默认配置下,键入matlabpool,右下角提示4个
然后使用parfor,进程中也能看到5个叫做matlab的,一个接近400M,其他4个接近200M
但为什么只有4个框接近100%,cpu使用率只有50%左右?如何充分使用资源
使用matlabpool 是建议1个核(core)对应一块pool(worker)所以建议出现默认4个,可以试下,
setenv('OMP_NUM_THREADS', '8');
或
setenv 'OMP_NUM_THREADS' 8
getenv 'OMP_NUM_THREADS'
图形界面的设置如下Home-parallel-mange cluster profile,修改NumWorkers为8,再次打开matlabpool,右下角显示8,运行cpu100%满负荷
顺便说下,小本风扇顿时惨厉的狂豪;内存共9个叫做Matlab的,一个主的接近3G,其他8个接近200M,我的16G内存快接近一半了
转载本文请联系原作者获取授权,同时请注明本文来自屠澄轶科学网博客。
收藏
分享
分享到: