slurm 集群的类似 qsub 的行为

slurm 集群的类似 qsub 的行为

我最近转向 slurm 并寻找一个作业提交工具,其行为类似于 qsub:

  1. 它通过管道获取输入
  2. 它将输出打印到标准输出

例子:

for n in `seq 1 10`; do 
    echo "echo $n" | qsub
done

应该将每个 echo 命令发送到集群,并且输出应该是 1..10(大概按随机顺序)。

到目前为止我可以

  1. 使用 sbatch 并行发送作业,但不确定是否将输出输出到 stdout
  2. 使用 srun 发送作业,然后它会按顺序一一操作

有什么建议么?

答案1

未经测试:

seq 10 | parallel -j0 -q srun 'echo begin {};sleep 0.{};echo done {}'

如果有效,请使用--keep-order以使输出保持正确的顺序:

seq 10 | parallel -j0 -q --keep-order srun 'echo begin {};sleep 0.{};echo done {}'

相关内容