nf-core/configs: alliance_canada
nf-core/configs: Alliance Canada Configuration
Configuration for running nextflow on the clusters of the Digital Research Alliance of Canada. Invoke by specifying -profile alliance_canada.
You also need to supply the name of the group under which you are working or whose resource allocation you want to use by running export SLURM_ACCOUNT=<def-user> before you run any nf-core pipeline. If you run nf-core frequently and always use the same resource allocation, you may find it more convenient to add the SLURM_ACCOUNT environment variable to your ~/.bashrc file.
For detailed information on running nf-core pipelines on Alliance clusters, please visit the documentation: https://docs.alliancecan.ca/wiki/Nextflow
If you run into issues, please contact Alliance Support: https://docs.alliancecan.ca/wiki/Technical_support
Config file
params { config_profile_contact = 'Cian Monnin (github/CMonnin)' config_profile_url = 'https://docs.alliancecan.ca/wiki/Nextflow'
// default to narval settings if no cluster_name defined cluster_name = System.getenv('CC_CLUSTER') ?: 'narval'
config_profile_description = params.cluster_name == 'narval' ? 'Alliance Canada (Narval) cluster profile provided by nf-core/configs.' : params.cluster_name == 'fir' ? 'Alliance Canada (Fir) cluster profile provided by nf-core/configs.' : params.cluster_name == 'nibi' ? 'Alliance Canada (Nibi) cluster profile provided by nf-core/configs.' : params.cluster_name == 'rorqual' ? 'Alliance Canada (Rorqual) cluster profile provided by nf-core/configs.' : params.cluster_name == 'trillium' ? 'Alliance Canada (Trillium) cluster profile provided by nf-core/configs.' : 'Alliance Canada HPC config'
max_cpus = params.cluster_name == 'nibi' ? 192 : params.cluster_name == 'rorqual' ? 192 : params.cluster_name == 'fir' ? 192 : params.cluster_name == 'trillium' ? null : 64 max_memory = params.cluster_name == 'narval' ? 249.GB : params.cluster_name == 'nibi' ? 750.GB : params.cluster_name == 'rorqual' ? 750.GB : params.cluster_name == 'fir' ? 750.GB : params.cluster_name == 'trillium' ? null : 240.GB max_time = 168.h}
cleanup = true
singularity { enabled = true autoMounts = true}
apptainer { autoMounts = true}
// Group name for resource allocation must be supplied as environment variableprocess { executor = 'slurm' clusterOptions = params.cluster_name == 'trillium' ? "--account=${System.getenv('SLURM_ACCOUNT')} --nodes=1": "--account=${System.getenv('SLURM_ACCOUNT')}" maxRetries = 1 errorStrategy = { task.exitStatus in [125,139] ? 'retry' : 'finish' } cpus = 1 time = '1h'
// NOTE:// these resourceLimits are set to baseline CPU for each cluser// Currently missing are configs for GPUs
resourceLimits = [ cpus: params.cluster_name == 'nibi'? 192 : params.cluster_name == 'rorqual' ? 192 : params.cluster_name == 'fir' ? 192 : params.cluster_name == 'trillium' ? null: 64, memory: params.cluster_name == 'narval' ? 249.GB : params.cluster_name == 'nibi' ? 750.GB : params.cluster_name == 'rorqual' ? 750.GB : params.cluster_name == 'fir' ? 750.GB : params.cluster_name == 'trillium' ? null : 240.GB, time: 168.h ]
}
executor { pollInterval = '60 sec' submitRateLimit = '60/1min' queueSize = params.cluster_name == 'trillium' ? 500 : 100}