Cluster configurationΒΆ

Snakemake workflows, and hence IMP3, can be run in cluster mode, i.e. Snakemake will submit all the rules (except if explicitly stated) to a batch submission system. For Snakemake to know how to submit to the cluster, the command and arguments for submission can be stated in the snakemake call (here for a slurm batch scheduling system):

snakemake -s /path/to/IMP3/Snakefile --configfile /path/to/sample.config.yaml --use-conda --conda-prefix /path/to/IMP3/conda --cluster-config /path/to/IMP3/config/slurm.config.yaml --cluster "sbatch -t{params.runtime} --mem-per-cpu {params.mem} -n {threads} -p batch"

The parameters (given in brackets {}) are predefined and will be taken from the params section of each Snakemake rule, so the user do not need to set them for every workflow task. More generally, a cluster configuration file (e.g. slurm.config.yaml) can be used. Currently, IMP3 currently supplies cluster config files for slurm , for PBS and for the (Oracle) grid engine.

If other scheduling systems are used, the cluster configuration file has to be adjusted. For help, please contact IMP support.

snakemake -s /path/to/IMP3/Snakefile --configfile /path/to/sample.config.yaml --use-conda --conda-prefix /path/to/IMP3/conda --cluster-config /path/to/IMP3/config/slurm.config.yaml --cluster "{cluster.call} {cluster.runtime}{params.runtime} {cluster.mem_per_cpu}{params.mem} {cluster.threads}{threads} {cluster.partition} {cluster.nodes}"

A short description for the IMP3 cluster configuration file is given below:

__default__:
      call: "sbatch"
      nodes: ""
      mem_per_cpu: "--mem-per-cpu "
      partition: "-p batch"
      quality: "-qos qos-batch"
      runtime: "-t"
      threads: "-n"

mg_filtering:
      nodes: "-N 1"
      partition: "-p bigmem"
      quality: "-qos qos-bigmem"

The cluster configuration file is in yaml format. There is a section about the default submit command at the top. In addition, the steps that require more RAM (bigmem) are listed, together with the arguments to achieve bigmem submissions. The user needs to fill in the command for submission and the way arguments are stated - we suggest using one of the provided cluster config files (config/slurm.config.yaml, config/slurm_simple.config.yaml, config/pbs.config.yaml, or config/sge.config.yaml) as template. Please consider submitting a pull request on the IMP3 gitlab repository for new cluster config files.