主要内容

createCommunicatingJob

在集群上创建通信作业

语法

工作= 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中®搜索路径,避免不必要地将文件从客户端复制到工作人员。

如果您指定AttachedFilesAdditionalPaths,值与适用的配置文件中指定的值相结合。如果指定的属性名或属性值无效,则不会创建该对象。

工作= createCommunicatingJob(…,“类型”,“池”,…)创建某种类型的通信任务“池”.这是默认的if“类型”没有指定。一个“池”作业使用并行池运行指定的任务函数,该并行池可用来运行任务体parfor循环或spmd块。注意,只有一个worker运行任务功能,集群中的其他worker形成并行池。对于a的N个工人的群集“池”类型作业的实际池中只有N-1个worker执行spmdparfor在任务函数中找到的代码。

工作= createCommunicatingJob(…,“类型”,“spmd”……)创建某种类型的通信任务“spmd”,其中指定的任务函数在所有工作人员上同时运行实验室*功能可以用于工人之间的通信。

工作= createCommunicatingJob(…,“配置文件”,“profileName”,…)使用概要文件中指定的属性值创建通信作业对象“profileName”.如果没有指定配置文件且群集对象在其“配置文件”属性时,集群的概要文件将自动应用。

例子

例1。池类型通信作业

考虑到功能“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);
介绍了R2012a