在R2013a和Win 7 64bit和i5 3rd gen cpu上,以下内容启动了4名工作人员:
matlabpool 4
您可以在任务管理器中看到这些过程:
现在,我知道如何在low priority from a shortcut中启动MATLAB,我采用这种方法认为工作人员继承相同的优先级,但是他们得到正常默认情况下。
您知道如何以低优先级启动matlabpool吗?
答案 0 :(得分:1)
您可以在评论中结合@ natan的建议,将this file exchange submission与poolStartup.m
文件结合使用。有关如何使用poolStartup.m
的详细信息,请参阅the doc。
答案 1 :(得分:1)
我在Edric's answer之后创建了一个特定于项目的poolStartup.m
脚本,这会降低工作人员的优先级。
启动池的语法如下:
matlabpool('open', 4, 'AttachedFiles',{'path\poolStartup.m'})
其中poolStartup.m
将包含对WMIC的system()
调用,Windows Management Instrumentation Command实用程序。
有关使用情况和示例的详细信息,请参阅The Grammar of WMIC,概要WMIC.exe或Win32_Process class感兴趣的官方文档。
我选择了以下调用降低优先级(细分为几行以进行展示):
pid = feature('getpid');
cmdstr = sprintf('wmic process where processid="%d" CALL setpriority 64', pid)
system(cmdstr)
有趣的部分是:
'wmic process where processid="PID" CALL setpriority 64'
一些注意事项:
where name="name.exe"
条款。虽然调用where name="MATLAB.exe"
会立即降低具有该名称的所有进程,即工作者和客户端,这可能不是所期望的效果。例如,我可能希望在客户端上保留正常的优先级。 feature()
function,从而返回其特定的PID。SetPriority
类的Win32_Process
方法将值64映射到“idle”,并且没有值为任务管理器的条目“low “。非常快速的检查显示,通过任务管理器将进程设置为“idle”或“low”后,使用wmic
查询的优先级是相同的。< / LI>