运行批处理并行作业
运行批处理作业
从你的MATLAB中卸载工作®会话在另一个会话的后台运行时,可以使用批处理
命令在脚本中。
要创建脚本,输入:
编辑mywave
在MATLAB编辑器中,创建一个
为
循环:为A(i) = sin(i*2*pi/1024);结束
保存文件并关闭编辑器。
使用
批处理
命令,在单独的MATLAB工作器上运行你的脚本:作业=批处理(“mywave”)
批处理
不会阻塞MATLAB,你可以继续工作,而计算发生。如果您需要阻塞MATLAB直到作业完成,请使用等待
函数在作业对象上。等待(工作)
作业完成后,您可以检索和查看其结果。的
负载
命令将worker上创建的变量传输到客户端工作区,在那里您可以查看结果:负载(工作,“一个”图(一)
当作业完成时,永久地删除它的数据,并从工作区中删除它的引用:
删除(工作)清晰工作
批处理
在本地工作线程或集群工作线程上运行代码,但不需要并行池。
你可以用批处理
运行脚本或函数。有关更多详细信息,请参见批处理
参考页面。
使用并行池运行批处理作业
您可以结合这些功能来卸载作业并在并行池中运行循环。本示例将两者结合起来创建一个简单的批处理parfor
循环。
要创建一个脚本,输入:
编辑mywave
在MATLAB编辑器中,创建一个
parfor
循环:parforA(i) = sin(i*2*pi/1024);结束
保存文件并关闭编辑器。
在MATLAB中运行脚本
批处理
命令。指示脚本应该为循环使用一个并行池:作业=批处理(“mywave”,“池”3)
该命令指定三个工作人员(除了运行批处理脚本的工作人员外)对循环迭代进行评估。因此,这个示例总共使用了四个本地工作人员,包括运行批处理脚本的一个工作人员。总共涉及5个MATLAB会话,如下图所示。
查询查询结果。
等待(工作)负载(工作,“一个”图(一)
结果看起来和之前一样,但是在执行过程中有两个重要的区别:
定义的工作
parfor
-循环和累积其结果卸载到另一个MATLAB会话通过批处理
.循环迭代从一个MATLAB工作器分布到另一组同时运行的工作器(
“池”
而且parfor
),因此循环可能比只有一个工人执行要快。
当作业完成时,永久地删除它的数据,并从工作区中删除它的引用:
删除(工作)清晰工作
从当前文件夹浏览器运行脚本作为批处理作业
从Current Folder浏览器中,您可以通过浏览到文件的文件夹,右键单击文件并选择来运行MATLAB脚本作为批处理作业运行脚本作为批处理作业.批处理作业运行在由默认集群概要标识的集群上。下图显示了运行脚本文件的菜单选项script1.m
:
从浏览器以批处理方式运行脚本只使用集群中的一个工作者。所以即使脚本包含aparfor
循环或spmd
块时,它不会在集群上打开额外的工作池。这些代码块在用于批处理作业的单个工作者上执行。如果批处理脚本需要打开额外的工作池,可以从命令行运行它,如中所述使用并行池运行批处理作业.
当您从浏览器运行批处理作业时,这也会打开作业监视器。作业监视器是一种工具,允许您在调度程序队列中跟踪作业。有关作业监视器及其功能的更多信息,请参见监控工作.