太阳网格引擎同步点

时间:2014-03-14 17:23:08

标签: matlab parallel-processing cluster-computing sungridengine qsub

我正在使用-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

我该怎么办? 附:我是集群计算的初学者。

1 个答案:

答案 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