Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parallel processing 限制Matlab';s并行工具箱,避免使用所有内核_Parallel Processing_Matlab - Fatal编程技术网

Parallel processing 限制Matlab';s并行工具箱,避免使用所有内核

Parallel processing 限制Matlab';s并行工具箱,避免使用所有内核,parallel-processing,matlab,Parallel Processing,Matlab,是否有可能拒绝Matlab访问所有内核?目前机器上有8个,但我想将Matlab的使用量减少到每个用户3个,这样一个用户就不会在所有8个上开始一项工作,从而减慢其他用户的速度 我没有分布式计算服务器许可证。。。只需普通的旧并行程序工具箱在提交作业对象之前,通过设置作业对象的MaximumNumberOfWorkers属性,您可以自愿限制作业使用的工人数量 jobMgr = findResource(...appropriate parameters for your job manager her

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


我没有分布式计算服务器许可证。。。只需普通的旧并行程序工具箱

在提交作业对象之前,通过设置作业对象的
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);

当你说每个用户时,你是在暗示多个用户可以同时提交到这台机器上吗?这肯定会使事情复杂化,因为我有一些示例代码,可能会显示一些您不熟悉的命令,这些命令将帮助您实现目标

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

ncores=特征(“numCores”);
nworkers=最小值(8,ncores)

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

是的。。。没有运行系统范围的作业管理器。它只是一个为所有用户安装了matlab的服务器。因此,在本地调度器允许的情况下,每个用户都可以启动自己的matlab实例并请求最多8个内核。当不止一个用户开始这样做时,这就成了一个问题。