我正在使用-qsub命令在集群中创建一组任务。
在我的matlab代码中,我想建立一个同步点来检查我的所有工作是否都已完成执行。如果所有人都已完成执行,我想为他们分配一些其他任务。
例如:my function(matlab)是:
function test(taskId)
do_task_1(taskId);
__sync() ----->check whether all the workers have finished the job successfully
do_task_2(taskId);
end
我该怎么办? 附:我是集群计算的初学者。
答案 0 :(得分:1)
游戏稍晚,但对你或其他人可能仍然有用。我怀疑你可以在matlab中做到这一点。其他有更多经验的人可能会另有建议我将这两个任务拆分为单独的matlab程序,并将-sync选项与Grid Engine一起使用:
qsub -sync y do_task_1.sh
# -sync y makes qsub wait for job to finish
qsub do_task_2.sh
您可以将上述命令放在脚本中,这样就不必等待第一个任务完成。
或者,您可以使用'-hold_jobid`:
qsub do_task_1.sh
qsub -hold_jid <job_id_of_task_1> do_task_2.sh