diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b183bf1..c5e6a57 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: needs: test_all_profiles strategy: matrix: - profile: + profile: - 'abims' - 'aws_tower' - 'awsbatch' @@ -45,6 +45,7 @@ jobs: - 'imperial' - 'imperial_mb' - 'jax' + - 'lugh' - 'mpcdf' - 'munin' - 'oist' diff --git a/README.md b/README.md index 26febad..29fbce2 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ Currently documentation is available for the following systems: * [HEBBE](docs/hebbe.md) * [ICR_DAVROS](docs/icr_davros.md) * [JAX](docs/jax.md) +* [LUGH](docs/lugh.md) * [MPCDF](docs/mpcdf.md) * [MUNIN](docs/munin.md) * [OIST](docs/oist.md) diff --git a/conf/lugh.config b/conf/lugh.config new file mode 100644 index 0000000..ef80931 --- /dev/null +++ b/conf/lugh.config @@ -0,0 +1,32 @@ +//Profile config names for nf-core/configs + +params { + config_profile_description = 'National University of Ireland, Galway Lugh cluster profile provided by nf-core/configs' + config_profile_contact = 'Barry Digby (@BarryDigby)' + config_profile_url = 'https://github.com/nf-core/configs/blob/master/docs/lugh.md' +} + +singularity { + enabled = true + autoMounts = true + cacheDir = '/data/containers' +} + +process { + beforeScript = """ + module load EasyBuild/3.4.1 + module load Java/1.8.0_144 + module load singularity/3.4.1 + ulimit -s unlimited + """ + .stripIndent() + containerOptions = '-B /data/' + executor = 'slurm' + queue = { task.memory >= 64.GB || task.cpus > 16 ? 'highmem' : 'normal' } +} + +params { + max_time = 120.h + max_memory = 128.GB + max_cpus = 32 +} diff --git a/docs/lugh.md b/docs/lugh.md new file mode 100644 index 0000000..567071f --- /dev/null +++ b/docs/lugh.md @@ -0,0 +1,39 @@ +# nf-core/configs: LUGH configuration + +Author: Barry Digby + +Contact Info: barry.digby@nuigalway.ie + +System Administrator: Chris Duke + +## Quick Start + +To use the lugh configuration profile with your pipeline, add `-profile lugh` to your `nextflow run` command: + +```console +nextflow -bg run nf-core/rnaseq -profile test,nuig +``` + +Please take care to use the `-bg` flag, or run the job on a compute node. + +:warning: DO NOT RUN ANALYSES ON THE HEAD NODE :warning: + +The configuration file will load prerequisite modules for users (`Java` & `Singularity`), however it is up to the user to have a functional version of `nextflow` installed in their path. Follow `nextflow` installation instructions at the following [link](https://www.nextflow.io/docs/latest/getstarted.html#installation). + +## Queue Resources + +| Queue | Hostnames | Max Memory | Max CPUS | Max Time | +|---------|----------------|------------|----------|----------| +| MSC | compute[01-03] | 32GB | 16 | 336.h | +| Normal | compute[10-29] | 64GB | 16 | 240.h | +| Highmem | compute[04-09] | 128GB | 32 | 2880.h | + +*** + +The configuration profile design is very simple. If your process exceeds 64GB memory or 16 cpus, it is sent to the `highmem` queue. If not, it is sent to the `normal` queue. Please do not use the `MSC` queue, this is reserved for Masters students. + +Take others into consideration when deploying your workflow (do not hog the cluster :pig:). If you need to hammer the cluster with a pipeline, please reach out to me and we can tweak the configuration profile to dispatch jobs to only a handful of compute nodes via hostnames. + +## Container Cache + +Your workflow containers are stored under `/data/containers/` which is accessible to all users on lugh. diff --git a/nfcore_custom.config b/nfcore_custom.config index 81112d0..74d25b9 100644 --- a/nfcore_custom.config +++ b/nfcore_custom.config @@ -39,6 +39,7 @@ profiles { imperial { includeConfig "${params.custom_config_base}/conf/imperial.config" } imperial_mb { includeConfig "${params.custom_config_base}/conf/imperial_mb.config" } jax { includeConfig "${params.custom_config_base}/conf/jax.config" } + lugh { includeConfig "${params.custom_config_base}/conf/lugh.config" } mpcdf { includeConfig "${params.custom_config_base}/conf/mpcdf.config" } munin { includeConfig "${params.custom_config_base}/conf/munin.config" } oist { includeConfig "${params.custom_config_base}/conf/oist.config" }