批量

MATLAB脚本或对工人功能

描述

Ĵ=批次(脚本运行该脚本文件脚本由默认的群集配置文件中指定的集群中的工人。(注:不包括.M文件扩展名与脚本名称。)该函数返回Ĵ,一个手柄到运行该脚本的作业对象。脚本文件脚本被复制到工人。

Ĵ=批次(myCluster中脚本是相同的批处理(脚本)除了在集群中的工人脚本运行指定由群集对象myCluster中

Ĵ=批次(FCNñ{X1,...,XN}运行功能FCN由默认的群集配置文件中指定的集群中的工人。该函数返回Ĵ,一个手柄来运行该功能的作业对象。该功能与给定的参数进行评估,X1,...,XN,并返回ñ输出参数。对于功能文件FCN被复制到工人。(注:不包括.M文件扩展名与函数名参数)。

Ĵ=批次(myCluster中FCNñ{X1,...,XN}是相同的批次(FCN,N,{X1,...,XN})不同之处在于在群集中的一个工人的功能运行指定由集群对象myCluster中

Ĵ=批次(___名称,值指定选项,修改作业的使用一个或多个名称 - 值对参数的行为。这些选项支持批量函数和脚本,万博1manbetx除非另有说明。使用此语法除了任何以前的语法输入参数的组合。

例子

全部收缩

批量卸载工作,在后台运行的MATLAB工人会话。您可以继续使用MATLAB计算时发生。

通过运行一个脚本作为批处理作业批量功能。默认,批量使用默认的群集配置文件。检查的MATLAB默认群集配置文件选项卡,在环境部分中,平行>选择一个默认的集群。或者,您可以指定具有一个群集配置文件“个人资料”名称 - 值对的参数。

工作=批次('myScript的');

批量不会阻止MATLAB和计算时发生,您可以继续工作。

如果你想阻止MATLAB直到作业完成时,使用等待在工作对象上的功能。

等待(作业);

默认情况下,MATLAB并将从批作业输出命令窗口作业的日记。为了找回它,使用日记功能。

日记(作业)
---开始日记--- N = 100 ---结束日记---

在作业结束后,通过获取结果加载功能。

负载(工作,'X');图(X)

如果要加载的批处理作业的所有变量,使用加载功能不带参数。

当你获取所有所需的变量,删除作业对象清理其数据,避免消耗不必要的资源。

删除(工作);明确工作

请注意,如果你发送一个脚本文件使用批量,MATLAB所有的工作区变量转移到集群,即使你的脚本不使用它们。对于大的工作区中的数据传输时间可以是大量的。作为最佳实践,将您的脚本函数文件,以避免该通信开销。对于使用的功能的示例,请参见运行批处理作业和访问文件从工人

对于更高级的选项批量运行批处理作业和访问文件从工人

您可以使用您的卸载计算来运行在后台批量。如果你的代码需要访问的文件,您可以使用其他选项,如'附加的文件'要么'AdditionalPaths',使数据访问。您可以关闭或MATLAB的同时继续工作的计算发生以后恢复的结果。

准备示例

准备并使用下面的命令复制支持文件的这个例子万博1manbetx。

prepare万博1manbetxSupportingFiles;

运行批处理作业

使用创建群集对象parcluster。默认,parcluster使用默认的群集配置文件。检查的MATLAB默认群集配置文件选项卡,在环境部分中,平行>选择一个默认的集群

C = parcluster();

将您的代码在函数内部,并通过使用提交作为批处理作业批量。对于自定义功能的一个例子,请参见支撑功能万博1manbetxmyFunction的。指定的输出参数的预期数量,并与输入的功能的单元阵列。

如果您的代码使用并行池,请使用“池”名称 - 值对参数创建您指定工人的数量并行池。批量使用一个额外的工人来运行函数本身。

默认,批量改变了工人对MATLAB客户端的当前文件夹的初始工作目录。它可以控制的初始工作目录中的工人有用。例如,您可能要控制它,如果您的群集使用不同的文件系统,因此该路径是不同的,当你从Windows客户端计算机提交给Linux集群等。

  • 为了保证工人的初始工作目录和使用它们的默认,集'CurrentFolder'''

  • 若要更改初始工作目录,组'CurrentFolder'您选择的文件夹。

此示例使用有三个工人平行池,并选择一个临时位置的初始工作目录。

作业=批次(C,@ myFunction的,1,{},...“池”,3,...'CurrentFolder',TEMPDIR);

批量卸载在你的函数的计算的并行工作,这样你就可以继续在MATLAB工作时的计算发生。

如果你想阻止MATLAB,直到作业完成,使用等待在工作对象上的功能。

等待(作业);

要检索的结果,使用fetchOutputs在工作对象。

如果你的代码中有一个错误,那么fetchOutputs抛出一个错误。您可以通过检查访问错误信息错误财产任务对象在工作。在这个例子中,该代码取决于工人无法找到的文件。

getReport(job.Tasks(1).Error)
mydata2.dat 'ANS =“使用无法读取文件myFunction的(第4行)错误'。无此文件或目录。'

从工存取档案

默认,批量会自动分析您的代码并把所需的文件给工人。在某些情况下,你必须明确地传输这些文件 - 例如,当您在运行时确定文件的名称。

在这个例子中,myFunction的访问配套文件万博1manbetxMYDATA.DAT, 哪一个批量自动检测和传输。该功能还访问mydata1.dat,但它解决了在运行时的文件名,所以自动依赖性分析没有检测到它。

类型myFunction.m
函数X = myFunction的()A =负载( “MYDATA.DAT”);X =零(倒装(尺寸(A)));PARFOR I = 1:3 B =负载( “MYDATA” + I + “DAT”);X = X + A \ B;年底结束

如果数据是在一个位置,工人可以访问,则可以使用名称 - 值对参数'AdditionalPaths'到指定的位置。“AdditionalPaths“会将此路径工人的MATLAB搜索路径,使它们可见的数据。

pathToData = PWD;作业(2)=批次(C,@ myFunction的,1,{},...“池”,3,...'CurrentFolder',TEMPDIR,...'AdditionalPaths',pathToData);等待(作业(2));

如果数据是在工人们不能访问的位置,您可以通过使用文件传输给工人'附加的文件'名称 - 值对的参数。

作业(3)=批次(C,@ myFunction的,1,{},...“池”,3,...'CurrentFolder',TEMPDIR,...'附加的文件'“MYDATA”+串(1:3)+“.DAT”);

查找现有的工作

您可以作业提交后关闭MATLAB和检索结果以后。在您关闭MATLAB,请记下作业ID。

job3ID =作业(3).ID
job3ID = 19

当你再次打开MATLAB,你可以找到使用工作找工作功能。

作业(3)= findJob(C,'ID',job3ID);等待(作业(3));

或者,您可以使用作业监视器来跟踪你的工作。您可以从MATLAB打开选项卡,在环境部分中,平行>监视作业

检索结果和清理数据

要检索批处理作业的结果,请使用fetchOutputs功能。fetchOutputs返回与功能运行的与所述输出单元阵列批量

X = fetchOutputs(作业(3))
X =1×1单元阵列{40×207}双

当您检索到所有需要的输出,并且不需要作业对象了,删除它以清理其数据,避免消耗不必要的资源。

删除(作业)明确工作

输入参数

全部收缩

MATLAB脚本由工人,指定为字符向量或字符串进行评价。

例:批次( 'aScript');

数据类型:烧焦|

集群,指定为parallel.Cluster对象,表示群集计算资源。要创建对象,请使用parcluster功能。

例:簇= parcluster;批次(群集, 'aScript');

数据类型:parallel.Cluster

功能到由工人,指定为功能句柄或功能名称进行评价。

例:批次(@ myFunction的,1,{X,Y});

数据类型:烧焦||function_handle

从评价函数预期的输出数FCN,指定为一个非负整数。

例:批次(@ myFunction的,1,{X,Y});

数据类型:||INT8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

输入函数的自变量FCN,指定为单元阵列。

例:批次(@ myFunction的,1,{X,Y});

数据类型:细胞

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:J =批次(@ myFunction的,1,{X,Y}, '池',3);

在工人只是脚本或函数之前的工作区被调用,指定为逗号分隔的一对组成的“工作区”和一个1×1的结构体。该结构的字段名定义变量的名称,以及字段值被分配到工作区的变量。默认情况下,这个参数有一个字段在当前工作区,每一个变量批量被执行。此参数仅支持脚本的运行。万博1manbetx

例:workspace.myVar = 5;J =批次( 'aScript', '工作区',工作区);

数据类型:结构

群集配置文件用于识别集群,指定为逗号分隔的一对组成的“个人资料”和字符向量或字符串。如果省略此选项,默认的配置文件来识别该集群,并应用到作业和任务属性。

例:J =批次( 'aScript', '个人资料', '本地');

数据类型:烧焦|

路径添加到工人的MATLAB搜索路径的脚本或函数执行之前,被指定为逗号分隔的对包括'AdditionalPaths'和字符向量,字符串数组,或字符向量的单元阵列。

默认的搜索路径可能不会对工人一样,因为它是在客户端上;路径差异可能是不同的当前工作文件夹的结果(CWD),平台或网络文件系统访问。指定'AdditionalPaths'名称 - 值对参数有助于确保工人寻找文件,如代码文件,数据文件,或模型文件,在正确的位置。

您可以使用'AdditionalPaths'访问文件共享的文件系统。需要注意的是路径表示可以根据目标机器有所不同。'AdditionalPaths'必须是由集群中的机器所看到的路径。例如,如果Z:\数据在您的本地Windows®/网络/数据你的Linux®簇,再加入后者以'AdditionalPaths'。如果你使用的数据存储,使用'AlternateFileSystemRoots'而不是对付其他表示。欲了解更多信息,请参阅建立数据存储的处理在不同的机器或集群(MATLAB)。

注意AdditionalPaths不仅有助于当你引用它们使用相对路径或文件名,而不是绝对路径查找文件。

例:J =批次(@ myFunction的,1,{X,Y}, 'AdditionalPaths', '/网络/数据/');

数据类型:烧焦||细胞

文件或文件夹转移到工人,指定为逗号分隔的一对组成的'附加的文件'和字符向量,字符串数组,或字符向量的单元阵列。

例:J =批次(@ myFunction的,1,{X,Y}, 'AttachedFiles', 'MYDATA.DAT');

数据类型:烧焦||细胞

标志添加的客户端的路径工人路径上用户添加的条目,指定为逗号分隔的一对组成的'AutoAddClientPath'和一个逻辑值。

例:J =批次(@ myFunction的,1,{X,Y}, 'AutoAddClientPath',假);

数据类型:合乎逻辑

标志来启用依赖性分析和自动附加代码文件到作业,指定为逗号分隔的一对组成的'AutoAttachFiles'和一个逻辑值。如果将值设置为真正,批处理脚本或功能进行了分析和代码文件,这取决于被自动传送给工人。

例:J =批次(@ myFunction的,1,{X,Y}, 'AutoAttachFiles',TRUE);

数据类型:合乎逻辑

文件夹,其中,脚本或函数执行时,指定为逗号分隔的一对组成的'CurrentFolder'和字符向量或字符串。有没有保证的工人存在此文件夹中。此属性的默认值是MATLAB时的当前目录批量命令被执行。如果参数是'',有一批执行之前在文件夹中没有变化。

例:J =批次(@ myFunction的,1,{X,Y}, 'CurrentFolder', '');

数据类型:烧焦|

标志以收集来自函数调用的日记,指定为逗号分隔的一对组成的'CaptureDiary'和一个逻辑值。有关收集的数据信息,请参见日记

例:J =批次( 'aScript', 'CaptureDiary',假);

数据类型:合乎逻辑

环境变量来从所述客户端会话给工人复制,指定为逗号分隔的一对组成的'环境变量'和字符向量,字符串数组,或字符向量的单元阵列。此处指定的名称被附加到环境变量在适用的并行配置文件指定的属性,形成环境变量的完整列表。未设置列出的变量不会复制到工人。这些环境变量批处理作业期间的工人设置。

例:J =批次( 'aScript', 'EnvironmentVariables', “MY_ENV_VAR”);

数据类型:烧焦||细胞

工人的数量使成平行池,指定为逗号分隔的一对组成的“池”并且:

  • 的非负整数。

  • 非负整数的A 2-元件载体,其被解释为范围。所得平行池的大小是尽可能大的范围内所需的。

此外,请注意批量使用另一工作人员来运行批处理作业本身。

该脚本或函数使用该池来执行语句,如PARFORSPMD这是一批代码中。由于池要求ñ工人除了工人运行批处理,群集必须至少有N + 1可用的工人。你不需要并行池已运行到执行批量和那批创建是没有关系的,你可能已经打开池新池。欲了解更多信息,请参阅运行带有并行池批处理作业

如果使用默认值,0上只有一个工人,而不是并行池脚本或函数运行。

例:J =批次(@ myFunction的,1,{X,Y}, '池',4);

例:J =批次(@ myFunction的,1,{X,Y}, '池',[2,6]);

数据类型:||INT8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

输出参数

全部收缩

工作运行该脚本或函数,返回为parallel.Job目的。

例:J =批次( 'aScript');

数据类型:parallel.Job

提示

要查看状态或跟踪批处理作业的进度,请使用作业监视器,如在作业监视器。您还可以使用作业监视器来检索这是在不同的会话中创建的,或者是在没有从返回一个作业对象创建批处理作业批作业的作业对象批量呼叫。

删除任何批处理作业您不再需要为了避免不必要地消耗集群存储资源。

介绍了在R2008a