MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   MATLAB分布式作业中的tasknumber? (https://www.labfans.com/bbs/showthread.php?t=26450)

poster 2019-12-14 20:13

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

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



[B]回答:[/B]

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)时,此回调功能才有效。



[url=https://stackoverflow.com/questions/5148506]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 04:53

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