作业选项没有定义提交作业的数量

the jobs option does not define the number of submited jobs

我用来触发snakemake的命令是:

snakemake --snakefile Snakefile --configfile config.json --latency-wait 60 --rerun-incomplete --keep-going --notemp --reason --use-singularity --singularity-args "--bind /somepath/folder" --jobs 400 --cores 16 --cluster-config clusterConfiguration/cluster.json --cluster "sbatch --partition={cluster.queue} --job-name={cluster.name} --cpus-per-task={cluster.nCPUs} --mem={cluster.memory} --time={cluster.maxTime} --output=\"jobs/{cluster.rulename}/slurm_%x_%A_%a.out\""

出于某种原因,我一次提交的作业不会超过 20 个。查看文档,我认为我必须使用:

--max-jobs-per-second
--max-status-checks-per-second

我不明白为什么可以使用这些选项。如果 --jobs 定义了提交作业的最大数量,为什么我们要定义每秒 cluster/drmaa 个作业的最大数量?这是什么意思?

对于第二个选项,"Maximal number of job status checks per second"是什么意思?

最后,将这两个选项设置为 400 是否可以让我同时拥有 400 个作业 运行?我可以试一下,但我想先了解一下。

谢谢。

如果您 运行 snakemake --help 这些选项都已记录在案。 --jobs 标志与您已经使用的 --core 标志同义,这将核心数(即多处理作业)限制为 16 在您的情况下。

--max-jobs-per-second 是将作业提交到集群的最大速率(即对调度程序的影响)。您通常不需要指定此标志或 --max-status-checks-per-second 标志;默认值一般都可以。

  --cores [N], --jobs [N], -j [N]
                        Use at most N cores in parallel (default: 1). If N is
                        omitted, the limit is set to the number of available
                        cores.

  --max-jobs-per-second MAX_JOBS_PER_SECOND
                        Maximal number of cluster/drmaa jobs per second,
                        default is 10, fractions allowed.
  --max-status-checks-per-second MAX_STATUS_CHECKS_PER_SECOND
                        Maximal number of job status checks per second,
                        default is 10, fractions allowed.