我有一个需要通过过滤程序 A、B、C 和 D 运行的文件。A 需要 2 小时,B、C 和 D 各需要 10 到 30 分钟。
A 完成了大部分工作并花费了大部分时间,因此它被优化为使用多个处理器。
B、C 和 D 是单处理器。
所有程序都在一个 PBS 脚本中按顺序运行。
如果我在 A 运行后更改 pbs 资源需求,它会被重新解释还是 qsub 只评估一次?
或者,如果我把它分成两个 pbs 脚本,我怎样才能让一个在完成时启动另一个?
正如@Dmitri Chubarov 所建议的,作业依赖是问题的解决方案。
后续进程取决于父进程的作业 ID。Jobid 由 qsub 动态生成。我将把每个阶段放在它自己的 pbs 脚本中,并有一个包装器 bash 脚本调用每个 qsub 并传递 jobid。