我是 SLURM 的新手。我的问题是我有一个多阶段作业,需要在集群上运行,其作业由 SLURM 管理。具体来说,我想安排一个工作:
- 抓取 N 个节点,
- 在所有人上安装软件
- (一旦所有节点成功完成安装)它会在节点上创建一个数据库实例
- 加载数据库
- (一旦加载成功)运行一组查询,用于基准测试
- 删除数据库并返回节点
每个步骤都可以使用单独的 bash 脚本运行;而脚本的执行和阶段之间的转换由主节点协调。
我的问题是我知道如何使用 SLURM 分配节点并在每个节点上调用单个命令或脚本(在每个节点上作为独立作业运行)。但是,一旦每个节点上的命令完成(或调用的脚本完成),节点就会返回到空闲资源池,让分配的节点排队等待我的工作。但上述用例涉及几个阶段/脚本;并且需要他们之间的协调。
我想知道使用 SLURM 为这样的用例设计/运行一组脚本的正确方法是什么。任何建议或示例都将非常有帮助,并受到高度赞赏。