ubuntu - 如何按顺序运行多个 .sbatch 脚本
问题描述
我必须为集群运行多个 sbatch slurm 脚本。说,我有 50 个 sbatch 文件,我在终端中按顺序运行它们(正在使用 Ubundu),如下所示:
sbatch file1.sbatch
sbatch file2.sbatch
.
.
.
sbatch file50.sbatch
我想简化这 50 个不同的命令以在单个命令中运行。由于我是使用终端和集群的新手,我真的不知道如何解决这个问题。请建议我执行此操作的一些解决方案(我想我需要使用一些 for 循环语句,但我怀疑其中的语法)。我完全糊涂了,一些相关文件也可能会有所帮助。
谢谢你。
更新:我尝试了以下脚本:
#!/bin/bash
for i in {1..3}
do
sbatch layer$i.sbatch
done
但是,它并没有创造单独的工作。只有单个作业作为整体提交。所以,这对我不起作用。
$ ~/Marabou% sbatch call_sbatch.sbatch
Submitted batch job 4576049
谢谢。
更新:
以下脚本有效:
import os
os.system ("sbatch filename1.sbatch")
os.system ("sbatch filename2.sbatch")
解决方案
您准备的代码应该在交互式 shell 中运行,而不是启动到队列中。
直接运行你的代码:
$ sh call_sbatch.sbatch
或者,如果您的文件是可执行的,
$ ./call_sbatch.sbatch
它应该使用您创建的循环运行内部行,并且该循环会将您感兴趣的作业发送到队列(在您的示例代码中,三个作业:layer1.sbatch、layer2.sbatch 和 layer3.sbatch)。
推荐阅读
- xpath - Getting single element with similar xpaths but with different same level, "neighboring" node
- android - 如何在android中重定向端口?
- apache-kafka - avro.io.AvroTypeException:数据 [object] 不是模式的示例
- python - 将大型 wav 文件(或任何大型文件)读取/处理到 python 的最快方法
- android - 如何避免在 DayNight 模式下重新启动更改方向的活动?
- machine-learning - H20 自动编码器异常仅接受数值预测器
- java - EL1008E:(pos 5): 在“java.util.LinkedHashMap”类型的对象上找不到属性或字段“customerid” - 可能不是公开的?
- kotlin - 如何从 Kotlin 中的函数返回布尔值
- android - 约束布局与滚动视图高度不匹配
- testing - 尽管没有任何错误但元素未打开,但 Click() 不起作用 - (赛普拉斯自动化)