限制Matlab并行工具箱使用所有核心

时间:2011-03-10 23:16:44

标签: parallel-processing matlab

是否有可能拒绝Matlab访问所有核心?目前机器上有8个,但是我想将Matlab的使用量减少到每个用户3个,这样一个用户就不会在所有8个用户上开始工作,从而减慢了其他用户的速度。

我没有分布式计算服务器许可证......只是普通的旧并行proc工具箱

3 个答案:

答案 0 :(得分:2)

您可以通过在提交作业对象之前设置MaximumNumberOfWorkers属性来自愿限制用于作业的工作人员数量。

jobMgr = findResource(...appropriate parameters for your job manager here...);
job = createJob(jobMgr);

set(job, 'MaximumNumberOfWorkers', 3);

% create some tasks and add them to the job here

submit(job);
waitForState(job, 'finished');
results = getAllOutputArguments(job);

答案 1 :(得分:2)

无法在MATLAB中强制执行严格限制,但您可以设置本地调度程序的“ClusterSize”属性。不幸的是,这必须按用户完成。除此之外,你需要使用操作系统功能,但我不确定是否存在这样的事情。

答案 2 :(得分:0)

当您说每个用户时,您是否暗示多个用户可以立即提交到此计算机?这肯定会使事情复杂化我有一些示例代码可能会显示一些您不熟悉的命令,这些命令将帮助您实现目标。

这是我用来使用尽可能多的内核的一些代码,最多8个。

ncores = feature('numCores'); nworkers = min(8,ncores);