0

我用来触发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 定义了提交作业的最大数量,为什么我们要定义每秒集群/drmaa 作业的最大数量?这是什么意思?

对于第二个选项,“每秒最大作业状态检查次数”是什么意思?

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

谢谢。

4

1 回答 1

1

如果您运行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.
于 2019-12-12T12:41:51.623 回答