GIGA Cluster Configuration
This configuration provides sensible default parameters to run nf-core pipelines (and nf-core compatible pipelines) on the GIGA cluster.
To use it, add -profile giga
when running a pipeline.
This will automatically download the giga.config
.
The configuration sets slurm
as the default executor and enables singularity
as container runner.
Loading the required modules
Before running a pipeline, one should load slurm
, nextflow
and singularity
using the environment module system.
This can be achieved with:
# Clear loaded modules
module purge
# Add GIGA bioinformatics modules to modules path
module use '/resources/GIGA/PUBLIC/tools/modules/containerised/modulefiles'
module use '/resources/GIGA/PUBLIC/tools/modules/uncontainerised/modulefiles'
# Load modules
module load 'slurm'
module load 'singularity/giga'
module load 'nextflow/24.04.4'
Built with ❤️ by the GIGA Bioinformatics Team
Config file
/*
* GIGA CLUSTER
* ============
* This configuration file provides sensible defaults to run Nextflow pipelines
* on the GIGA cluster.
*
* For more information on the GIGA cluster, refer to this page of the wiki:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/cluster/overview.html
* If you face any issue using this configuration, please contact the GIGA
* Bioinformatics Team:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/about/contact.html#bioinformatics-team
*/
params {
config_profile_name = 'GIGA'
config_profile_description = 'GIGA cluster profile provided by the GIGA Bioinformatics Team.'
config_profile_contact = 'Martin Grignard (@MartinGrignard)'
config_profile_url = 'https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/cluster/overview.html'
}
/*
* Resources limitations
* ---------------------
* These resources limitations are maximum values across all nodes of all
* queues. At least one node matches these maximum resources in all of the
* available queues.
*
* For more information on the available nodes on the GIGA cluster, refer to
* this page of the wiki:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/cluster/overview.html#nodes
* or use the `sinfo` command.
*/
params {
max_cpus = 48
max_memory = 512.GB
max_time = 365.days // Virtually infinite (jobs without a time limit run in the 'kosmos' partition).
}
/*
* Singularity configuration
* -------------------------
* Singularity is used to run containerised tools. On the cluster, one should
* use the following command to make it available:
* $ module load singularity
* This configuration makes sure to cache the downloaded containers into a
* shared directory on the resources SSDs.
*
* For more information on how to use Singularity on the GIGA cluster, refer to
* this page of the wiki:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/tools/environment/singularity.html
*/
singularity {
autoMounts = true
cacheDir = '/resources/GIGA/PUBLIC/tools/.cache/singularity'
enabled = true
pullTimeout = 3.hours
}
/*
* Slurm configuration
* -------------------
* Slurm is used as a workload manager. On the cluster, one should use the
* following command to make it available:
* $ module load slurm
* This configuration makes sure to share the available resources in a fairly.
*
* For more information on how to use Slurm on the GIGA cluster, refer to this
* page of the wiki:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/tools/job/slurm.html
*/
executor {
name = 'slurm'
pollInterval = 10.s
queueSize = 200
}
/*
* Process configuration
* ---------------------
* Several queues are available on the cluster, based on the expected run time
* of the jobs. This configuration makes sure to request resources on the most
* relevant queue. It also makes sure to specify resources limitations (see
* values set above).
*
* For more information on the available queues, refer to this page of the
* wiki:
* https://giga-bioinfo.gitlabpages.uliege.be/docs/mass-storage-and-cluster/cluster/overview.html#partitions
*/
process {
// Resources allocation.
queue = {
task.time == null ? 'kosmos' :
task.time <= 5.hours ? 'all_5hrs' :
task.time <= 24.hours ? 'all_24hrs' :
task.time <= 5.days ? 'all_5days' :
task.time <= 10.days ? 'all_10days' :
'kosmos'
}
resourceLimits = [
cpus : 48,
memory: 512.GB,
time : 365.days,
]
// File transfer.
stageInMode = 'symlink'
stageOutMode = 'rsync'
}