如何检查我的代码是否在 SLURM 环境中运行?

How to check if my code runs inside a SLURM environment?

我正在使用 Snakemake 开发一个工作流,它应该可以移植到任何基于 Linux 的系统,但主要是在使用 SLURM 的 hpc 上开发到 运行。 为了在使用 SLURM 时进行优化,我想检查 SLURM 环境中的代码是否 运行s,然后稍微改变任务以改进资源管理。

我的第一个想法是尝试通过 os.path.expandvars 解析环境变量 $SLURM_JOB_ID,但我认为这有点脏,所以有没有一种干净的方法来检查环境?

检查环境变量是可行的方法。在 Python 你会这样做:

import os
if "SLURM_JOB_ID" in os.environ:
    print("Running in Slurm")
else:
    print("NOT running in Slurm")