解决方案1我建议您以较小的步骤分解管道,然后可以在bash脚本等中将其自动化。首先,您需要生成所有需要通过slurm运行的命令。如果将它们提交为Slurm作业数组(请参见此处),则可以同时提交用于解析所有这些命令输出的脚本。使用slurm依赖项,您可以使作业仅在作业阵列完成后才开始。解决方案2您可以在python脚本中执行while循环并检查作业的状态:import timet = time.time()while True: # Break if this takes more than some_limit if time.time() - t > some_limit: break # Check if the jobs are done. This could be done by # grep'ing squeue for your username and some tags # that you name your jobs check_for_completion() # Sleep for a while depending on the estimated completion time of the jobs time.sleep(some_time)解决方案3在slurm上保留N个节点,然后在其中运行脚本。这样可以避免前端混乱。我建议使用gnu parallel在节点上分配您的作业。