运行 GNU Parallel --sem 在 SGE 集群上挂起

运行 GNU Parallel --sem 在 SGE 集群上挂起

我正在尝试在 SGE 集群上并行运行 3 个命令,例如

cmds=("prog 1 2 3" "prog 4 5 6" "prog 7 8 9")
for cmd in "${cmds[@]}"
do
    sem -j 3 $cmd
done
sem --wait

因此,我的命令执行并成功完成,这是我从生成的输出日志中推断出来的,而且我可以看到它们不再在节点上运行。但是当我用 qsub 提交时 sem --wait 会无限期地等待。或者,我以交互模式运行并且a.手动键入命令和 b.获取 shell 脚本;这两种方法都成功完成。关于运行 sem,我有什么遗漏的吗?

谢谢你的帮助。

答案1

您按顺序运行每个命令。当脚本到达 时sem --wait,所有三个命令都已运行并完成。

尝试&在该sem -j 3 $cmd行中添加一个。这将在后台并行运行每个命令。

cmds=("prog 1 2 3" "prog 4 5 6" "prog 7 8 9")
for cmd in "${cmds[@]}"
do
    sem -j 3 $cmd &
done
sem --wait

相关内容