Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB分布式作业中的tasknumber?

我正在集群上运行分布式作业。我需要执行一个脚本,当上一个任务完成时(而是所有任务都已完成),该脚本会向我发送电子邮件。我已经准备好脚本,但是不确定如何完成任务。是否有类似于labindex的任务ID?

我想在工作中构建此电子邮件功能的原因是,这样我就可以在提交后退出MATLAB并在完成后收集我的数据。这样,我就不会浪费资源经常对其进行ping操作以获取其状态。



回答:

jobMgr = findResource(parameters for your cluster's job manager...); job = createJob(jobMgr); set(job, 'JobData', yourdata); set(job, 'MaximumNumberOfWorkers', yourmaxworkers); set(job, 'PathDependencies', yourpathdeps); set(job, 'FileDependencies', yourfiledeps); set(job, 'Timeout', yourtimeout); for m = 1:numjobs task(m) = createTask(job, @parallelfoo, 1, {m}); % Calls taskFinish when the task completes set(task(m), 'FinishedFcn', {@taskFinish, m}); end 在其他地方,您将定义一个taskFinish函数,该函数会在每个任务完成时获取回调。

function taskFinish(taskObj, eventData, tasknum) disp(['Task ' num2str(tasknum) ' completed']); end 请注意,此代码是为“分布式计算工具箱”的原始发行版(后来更名为“并行计算工具箱”)编写的,因此可能有更优雅的方法来完成您要执行的操作。需要注意的是,这可以完成工作-我的理解是,仅当您在集群上运行MATLAB作业管理器(而不是第三方MPI作业管理器之一,例如TORQUE)时,此回调功能才有效。



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:17


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.