假设我使用类似的东西提交工作bsub pwd.现在我想获得该作业的作业ID,以便为下一个作业构建依赖项.有什么方法可以让bsub返回作业ID吗?
Nils和Andrey分别在shell和C/C++环境中得到了这个特定问题的答案.为了构建依赖项,您还可以使用-J命名作业,然后根据作业名称构建依赖项:
bsub -J "job1" <cmd1>
bsub -J "job2" <cmd2>
bsub -w "done(job1) && done(job2)" <cmd>
Run Code Online (Sandbox Code Playgroud)
还有更多的信息在这里.
这也适用于作业数组:
bsub -J "ArrayA[1-10]" <cmd1>
bsub -J "ArrayB[1-10]" <cmd2>
bsub -w "done(ArrayA[3]) && done(ArrayB[5])" <cmd>
Run Code Online (Sandbox Code Playgroud)
您甚至可以逐个元素依赖.以下作业的第i个元素仅在ArrayB达到DONE状态的相应元素时运行:
bsub -w "done(ArrayB[*])" -J "ArrayC[1-10]" <cmd3>
Run Code Online (Sandbox Code Playgroud)
您可以在-w 此处找到有关您可以指定的各种内容的更多信息.
作为参考,这是迄今为止我能想出的最佳解决方案.它利用了bsub将包含ID的行写入STDOUT的事实.
function nk_jobid {
output=$($*)
echo $output | head -n1 | cut -d'<' -f2 | cut -d'>' -f1
}
Run Code Online (Sandbox Code Playgroud)
用法:
jobid=$(nk_jobid bsub pwd)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5553 次 |
| 最近记录: |