文档帮助中心文档
批处理
{C1,…,Cn}
C1,…,Cn
运行MATLABworker上的脚本或函数
j =批(脚本)
j =批(myCluster脚本)
j =批(fcn N {x1,…,xn})
j =批(fcn myCluster, N, {x1,…,xn})
j =批(___、名称、值)
例子
j=批(脚本)运行脚本文件脚本在由默认集群概要文件指定的集群中的worker上。(注:不包括.m使用脚本名的文件扩展名。)函数返回j,运行脚本的作业对象句柄。该脚本文件脚本复制到工作人员。
j=批(脚本)
j
脚本
.m
j=批(myCluster,脚本)是一样批处理(脚本)除了该脚本运行在由集群对象指定的集群中的worker上myCluster.
j=批(myCluster,脚本)
myCluster
批处理(脚本)
j=批(fcn,N,{x1,…,xn})运行函数fcn在由默认集群概要文件指定的集群中的worker上。函数返回j,是运行该函数的作业对象的句柄。函数是用给定的参数计算的,x1,…,xn,并返回N输出参数。函数文件fcn复制到工作人员。(注:不包括.m带有函数名参数的文件扩展名。)
j=批(fcn,N,{x1,…,xn})
fcn
N
{x1,…,xn}
x1,…,xn
j=批(myCluster,fcn,N,{x1,…,xn})是一样批处理(fcn N, {x1,…,xn})除了该函数运行在由集群对象指定的集群中的worker上myCluster.
j=批(myCluster,fcn,N,{x1,…,xn})
批处理(fcn N, {x1,…,xn})
j=批(___,名称,值)指定使用一个或多个名称-值对参数修改作业行为的选项。除非另有说明,否则这些选项支金宝app持函数和脚本的批处理。将此语法与前面语法中的任何输入参数组合一起使用。
j=批(___,名称,值)
名称,值
全部折叠
使用批处理将工作卸载到后台运行的MATLAB工作会话。在进行计算时,可以继续使用MATLAB。
方法作为批处理作业运行脚本批处理函数。默认情况下,批处理使用默认的集群配置文件。检查MATLAB上的默认集群配置文件首页选项卡,环境部分,在平行>选择默认集群.或者,您可以使用“配置文件”名称-值对的论点。
“配置文件”
工作=批(“myScript”);
批处理不会阻塞MATLAB,你可以继续工作,而计算发生。
如果您想阻塞MATLAB直到作业完成,请使用等待函数作用于作业对象。
等待
等待(工作);
默认情况下,MATLAB将批处理作业的命令窗口输出保存到作业的日志中。要检索它,请使用日记函数。
日记
日记(工作)
——开始日记——n = 100——结束日记——
在作业完成后,使用负载函数。
负载
负载(工作,“x”);情节(x)
如果要加载批处理作业中的所有变量,请使用负载函数没有参数。
当获取了所有必需的变量后,删除job对象以清理其数据并避免不必要地消耗资源。
删除(工作);清晰的工作
注意,如果您使用批处理, MATLAB将所有的工作空间变量传输到集群,即使您的脚本不使用它们。大型工作空间的数据传输时间可能非常长。作为一种最佳实践,将您的脚本转换为函数文件以避免这种通信开销。有关使用函数的示例,请参见运行批处理作业并从工作人员访问文件.
有关更高级的选项批处理,请参阅运行批处理作业并从工作人员访问文件.
您可以使用批处理.如果代码需要访问文件,可以使用其他选项,例如“AttachedFiles”或“AdditionalPaths”,以使数据可访问。当计算发生时,您可以关闭或继续在MATLAB中工作,稍后恢复结果。
“AttachedFiles”
“AdditionalPaths”
准备的例子
使用支持函数金宝appprepare金宝appSupportingFiles将此示例所需的数据复制到当前工作文件夹。
prepare金宝appSupportingFiles
prepare金宝appSupportingFiles;
您当前的工作文件夹现在包含4个文件:A.dat,B1.dat,B2.dat,B3.dat.
A.dat
B1.dat
B2.dat
B3.dat
运行批处理作业
使用。创建集群对象parcluster.默认情况下,parcluster使用默认的集群配置文件。检查MATLAB上的默认集群配置文件首页选项卡,环境部分,在平行>选择默认集群.
parcluster
c = parcluster ();
将代码放入函数中,并通过使用批处理.有关自定义函数的示例,请参阅支持函数金宝appdivideData.指定期望的输出参数数量和带有函数输入的单元格数组。
divideData
注意,如果您使用批处理发送脚本文件,MATLAB会将所有工作区变量传输到集群,即使您的脚本没有使用它们。如果您的工作空间较大,则会对数据传输时间产生负面影响。作为一种最佳实践,将您的脚本转换为函数文件以避免这种通信开销。只需在脚本的开头添加一个函数行就可以做到这一点。为了减少本例中的开销,divideData在此活动脚本之外的文件中定义。
如果您的代码使用并行池,请使用“池”参数名-值对创建具有指定的工作人员数量的并行池。批处理使用附加的工作程序来运行函数本身。
“池”
默认情况下,批处理将工人的初始工作文件夹更改为MATLAB客户端的当前文件夹。在workers中控制初始工作文件夹是很有用的。例如,如果您的集群使用不同的文件系统,因此路径不同,例如当您从Windows客户机向Linux集群提交时,您可能想要控制它。
要保留工作人员的初始工作文件夹并使用其默认值,请设置“CurrentFolder”来“。”.
“CurrentFolder”
“。”
若要更改初始工作文件夹,请设置“CurrentFolder”到你选择的文件夹。
这个例子使用了一个有三个worker的并行池,并为初始工作文件夹选择了一个临时位置。使用批处理卸载计算divideData.
工作=批(c @divideData 1 {}...“池”3,...“CurrentFolder”, tempdir);
批处理运行divideData在一个并行工作器上,这样您就可以在计算发生时继续在MATLAB中工作。
要检索结果,请使用fetchOutputs在工作对象上。作为divideData取决于工人找不到的文件,fetchOutputs抛出一个错误。您可以使用getReport在错误的属性任务工作中的对象。在本例中,代码依赖于工作人员找不到的文件。
fetchOutputs
getReport
错误
任务
getReport (job.Tasks (1) . error)
错误使用divideData(第4行)无法读取文件'B2.dat'。没有这样的文件或目录。”
从工作人员访问文件
默认情况下,批处理自动分析您的代码,并将所需的文件传输给工作人员。在某些情况下,必须显式地传输这些文件——例如,当您在运行时确定一个文件的名称时。
在这个例子中,divideData访问支持文件金宝appA.dat,这批处理自动检测和传输。该函数还访问B1.dat,但是它在运行时解析文件的名称,因此自动依赖关系分析不会检测到它。
类型divideData.m
函数X = divideData() A = load("A.dat");X = 0(翻转(大小(A)));parfor i = 1:3 B = load(“B”+“i”+“.dat”);X = X + a \ b;结束结束
如果数据位于工作人员可以访问的位置,则可以使用名称-值对参数“AdditionalPaths”指定位置。“AdditionalPaths将这条路径添加到工作人员的MATLAB搜索路径中,并使数据对他们可见。
“AdditionalPaths
pathToData = pwd;工作(2)=批(c @divideData 1 {}...“池”3,...“CurrentFolder”tempdir,...“AdditionalPaths”, pathToData);等待(工作(2));
如果数据位于工人无法访问的位置,则可以使用“AttachedFiles”名称-值对的论点。如果客户机和工作人员不共享相同的文件系统,或者如果集群在非共享模式下使用通用调度器接口,则需要传输文件。有关更多信息,请参见使用通用调度器接口配置(MATLAB并行服务器).
文件名=“B”字符串(1:3)+ +“.dat”;工作(3)=批(c @divideData 1 {}...“池”3,...“CurrentFolder”tempdir,...“AttachedFiles”文件名);
找到现有的工作
您可以在作业提交后关闭MATLAB并在稍后检索结果。在关闭MATLAB之前,请记下作业ID。
(3) job3ID =工作。ID
job3ID = 25
当您再次打开MATLAB时,您可以通过使用findJob函数。
findJob
工作(3)= findJob (c,“ID”, job3ID);等待(工作(3));
或者,您可以使用作业监视器来跟踪作业。你可以用MATLAB打开它首页选项卡,环境部分,在平行>监控工作.
检索结果和清理数据
要检索批处理作业的结果,请使用fetchOutputs函数。fetchOutputs返回单元格数组,其中包含使用的函数的输出批处理.
X = fetchOutputs(工作(3))
X =1×1单元阵列{40×207双}
当您检索了所有必需的输出并且不再需要作业对象时,请删除它以清理其数据并避免不必要地消耗资源。
删除(工作)清晰工作
要由工作人员评估的MATLAB脚本,指定为字符向量或字符串。
例子:批处理(“aScript”);
批处理(“aScript”);
数据类型:字符|字符串
字符
字符串
平行的。集群
集群,指定为平行的。集群对象,表示集群计算资源。要创建对象,请使用parcluster函数。
例子:集群= parcluster;批处理(集群,“aScript”);
集群= parcluster;批处理(集群,“aScript”);
数据类型:平行的。集群
要由工作人员计算的函数,指定为函数句柄或函数名。
例子:批处理(@myFunction 1 {x, y});
批处理(@myFunction 1 {x, y});
数据类型:字符|字符串|function_handle
function_handle
被求值函数的预期输出数fcn,指定为非负整数。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
单
双
int8
int16
int32
int64
uint8
uint16
uint32
uint64
函数的输入参数fcn,指定为单元格数组。
数据类型:细胞
细胞
指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
j =批(@myFunction 1 {x, y},“池”,3);
“工作区”
在调用脚本或函数之前,工作器上的工作区,指定为逗号分隔对,由“工作区”和一个1乘1的结构体。结构的字段名定义变量的名称,字段值被分配给工作空间变量。默认情况下,该参数为当前工作区中的每个变量都有一个字段批处理是执行。该参数仅支持运行脚本。金宝app
例子:工作区。myvar# = 5;j =批(“aScript”、“工作空间”,工作空间);
工作区。myvar# = 5;j =批(“aScript”、“工作空间”,工作空间);
数据类型:结构体
结构体
群集概要文件用于标识群集,指定为逗号分隔对组成“配置文件”和一个字符向量或字符串。如果省略此选项,则使用默认概要文件来标识集群,并应用于作业和任务属性。
例子:j =批(“aScript”、“配置文件”,“当地”);
j =批(“aScript”、“配置文件”,“当地”);
在脚本或函数执行之前添加到工作人员的MATLAB搜索路径的路径,指定为逗号分隔对组成“AdditionalPaths”以及字符向量、字符串数组或字符向量的单元格数组。
在worker上的默认搜索路径可能与客户机上的不一样;路径差异可能是由于不同的当前工作文件夹(慢性消耗病)、平台或网络文件系统访问。指定“AdditionalPaths”名称-值对参数有助于确保工作人员在正确的位置查找文件,如代码文件、数据文件或模型文件。
慢性消耗病
您可以使用“AdditionalPaths”访问共享文件系统中的文件。请注意,路径表示可能因目标计算机而异。“AdditionalPaths”必须是集群中的机器所看到的路径。例如,如果Z: \数据在本地的Windows上®机是/ /数据网络你的Linux®群集,然后将后者添加到“AdditionalPaths”.如果使用数据存储,请使用“AlternateFileSystemRoots”而不是处理其他表示。有关更多信息,请参见设置数据存储,以便在不同的机器或集群上进行处理.
Z: \数据
/ /数据网络
“AlternateFileSystemRoots”
请注意,AdditionalPaths只有当您使用相对路径或文件名而不是绝对路径引用文件时,才有助于查找文件。
AdditionalPaths
例子:j =批(@myFunction 1 {x, y}, AdditionalPaths, ' /网络/数据/ ');
j =批(@myFunction 1 {x, y}, AdditionalPaths, ' /网络/数据/ ');
数据类型:字符|字符串|细胞
要传输给工作人员的文件或文件夹,由逗号分隔的对组成“AttachedFiles”以及字符向量、字符串数组或字符向量的单元格数组。
例子:j =批(@myFunction 1 {x, y},“AttachedFiles”、“myData.dat”);
j =批(@myFunction 1 {x, y},“AttachedFiles”、“myData.dat”);
“AutoAddClientPath”
真正的
假
将客户端路径上用户添加的条目添加到工作路径的标志,指定为逗号分隔的对,由“AutoAddClientPath”和一个逻辑值。
例子:j =批(@myFunction 1 {x, y}, AutoAddClientPath,假);
j =批(@myFunction 1 {x, y}, AutoAddClientPath,假);
数据类型:逻辑
逻辑
“AutoAttachFiles”
标记以启用依赖项分析并自动将代码文件附加到作业,该作业指定为由“AutoAttachFiles”和一个逻辑值。如果将值设置为真正的,对批处理脚本或函数进行分析,并自动将其所依赖的代码文件传递给工作人员。
例子:j =批(@myFunction 1 {x, y}, AutoAttachFiles, true);
j =批(@myFunction 1 {x, y}, AutoAttachFiles, true);
脚本或函数执行所在的文件夹,由逗号分隔的对指定为“CurrentFolder”和一个字符向量或字符串。不能保证worker上存在此文件夹。该属性的默认值是MATLAB的当前目录批处理命令执行。如果论证是“。”,在批处理执行之前,文件夹中没有更改。
例子:j =批(@myFunction 1 {x, y}, CurrentFolder, '。');
j =批(@myFunction 1 {x, y}, CurrentFolder, '。');
“CaptureDiary”
标志从函数调用中收集日志,指定为逗号分隔的对,由“CaptureDiary”和一个逻辑值。有关收集的数据的信息,请参见日记.
例子:j =批(‘aScript’,‘CaptureDiary’,假);
j =批(‘aScript’,‘CaptureDiary’,假);
“EnvironmentVariables”
要从客户端会话复制到工作人员的环境变量,指定为逗号分隔对,由“EnvironmentVariables”以及字符向量、字符串数组或字符向量的单元格数组。属性的后面附加了这里指定的名称EnvironmentVariables属性,以形成完整的环境变量列表。列出的未设置的变量不会复制到工作人员。这些环境变量在批处理作业期间设置在工作人员上。
EnvironmentVariables
例子:j =批(“aScript”、“EnvironmentVariables”、“MY_ENV_VAR”);
j =批(“aScript”、“EnvironmentVariables”、“MY_ENV_VAR”);
0
要放入并行池的工作器数量,指定为逗号分隔的对,包括“池”和:
一个非负整数。
一个由非负整数组成的2元向量,它被解释为一个范围。由此产生的并行池的大小在请求的范围内尽可能大。
另外,请注意批处理使用另一个辅助程序来运行批处理作业本身。
脚本或函数使用这个池来执行语句,例如parfor和spmd在批处理代码中。因为游泳池需要N除了运行批处理的worker之外,集群必须至少有N + 1工人。执行时不需要已经运行的并行池批处理,并且批处理创建的新池与您可能已经打开的池没有关联。有关更多信息,请参见使用并行池运行批处理作业.
parfor
spmd
N + 1
如果使用默认值,0,脚本或函数只能在单个工作器上运行,而不能在并行池上运行。
例子:j =批(@myFunction 1 {x, y},“池”,4);
j =批(@myFunction 1 {x, y},“池”,4);
例子:j =批(@myFunction 1 {x, y},“池”,[2,6]);
j =批(@myFunction 1 {x, y},“池”,[2,6]);
平行的。工作
运行脚本或函数的作业,返回为平行的。工作对象。
例子:j =批(“aScript”);
j =批(“aScript”);
数据类型:平行的。工作
若要查看批处理作业的状态或跟踪进度,请使用作业监视器,如监控工作.还可以使用作业监视器检索在不同会话中创建的批处理作业的作业对象,或检索在没有从批处理调用。
删除不再需要的批处理任务,避免不必要地消耗集群存储资源。
全部展开
行为在R2021a中改变
从R2021a开始,一个函数fcn卸载与批处理计算单元格数组输入参数{C1,…,Cn}作为Cn fcn (C1,…).在以前的版本{C1,…,Cn}抛出一个错误{{C1,…,Cn}}被评估为Cn fcn (C1,…).
Cn fcn (C1,…)
{{C1,…,Cn}}
从R2021a开始,使用以下代码来卸载fcn ({a、b}, {c, d})在集群上myCluster一个输出。
fcn ({a、b}, {c, d})
批处理(myCluster @fcn 1, {{a、b}, {c, d}});
批处理(myCluster @fcn 1, {{{a、b}, {c, d}}});
删除|日记|fetchOutputs(工作)|findJob|负载|等待
删除
fetchOutputs(工作)
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系
得到审判现在