在集群上创建通信作业
工作= createCommunicatingJob(集群)
工作= createCommunicatingJob(…,“p1”,v1, p2, v2,…)
工作= createCommunicatingJob(…,“类型”,“池”,…)
工作= createCommunicatingJob(…,“类型”,“spmd”……)
工作= createCommunicatingJob(…,“配置文件”,“profileName”,…)
工作= createCommunicatingJob(集群)
为所标识的集群创建通信作业对象。
工作= createCommunicatingJob(…,“p1”,v1, p2, v2,…)
创建具有指定属性值的通信作业对象。有关已创建对象的有效属性的列表,请参见平行的。工作
对象引用页面。属性名必须是字符向量,其值必须是该属性的适当类型。在大多数情况下,这些属性-值对中指定的值会覆盖概要文件中的值。
当您将计算卸载给工作者时,在客户机上进行计算所需的任何文件也必须在工作者上可用。默认情况下,客户端尝试自动检测并附加这些文件。若要关闭自动检测,请设置AutoAttachFiles
属性为false。如果自动检测无法找到所有的文件,或者如果从客户端发送文件到worker很慢,请使用以下属性。
如果文件在工作人员无法访问的文件夹中,则设置AttachedFiles
财产。集群将您指定的每个文件从客户机复制到worker。
如果文件在工作人员可以访问的文件夹中,则可以设置AdditionalPaths
财产。使用AdditionalPaths
属性将路径添加到每个工人的MATLAB中®搜索路径,避免不必要地将文件从客户端复制到工作人员。
如果您指定AttachedFiles
或AdditionalPaths
,值与适用的配置文件中指定的值相结合。如果指定的属性名或属性值无效,则不会创建该对象。
工作= createCommunicatingJob(…,“类型”,“池”,…)
创建某种类型的通信任务“池”
.这是默认的if“类型”
没有指定。一个“池”
作业使用并行池运行指定的任务函数,该并行池可用来运行任务体parfor
循环或spmd
块。注意,只有一个worker运行任务功能,集群中的其他worker形成并行池。对于a的N个工人的群集“池”
类型作业的实际池中只有N-1个worker执行spmd
和parfor
在任务函数中找到的代码。
工作= createCommunicatingJob(…,“类型”,“spmd”……)
创建某种类型的通信任务“spmd”
,其中指定的任务函数在所有工作人员上同时运行实验室*
功能可以用于工人之间的通信。
工作= createCommunicatingJob(…,“配置文件”,“profileName”,…)
使用概要文件中指定的属性值创建通信作业对象“profileName”
.如果没有指定配置文件且群集对象在其“配置文件”
属性时,集群的概要文件将自动应用。
考虑到功能“myFunction”
它使用一个parfor
循环:
函数result = myFunction(N) result = 0;parforii=1:N result = result + max(eig(rand(ii)));结束结束
创建一个沟通的工作对象进行评估myFunction
默认集群:
myCluster = parcluster;j = createCommunicatingJob (myCluster,“类型”,“池”);
将任务添加到作业中,提供一个输入参数:
@myFunction (j, @myFunction, 1, {100});
设置并行执行所需的worker数量:
j.NumWorkersRange = [5 10];
运行工作。
提交(j);
等待作业完成并检索其结果:
wait(j) out = fetchOutputs(j)
从集群中删除作业。
删除(j);