// Define the Scratch directory def scratch_dir = System.getenv("VSC_SCRATCH_VO_USER") ?: "scratch/" // Specify the work directory workDir = "$scratch_dir/work" // Perform work directory cleanup when the run has succesfully completed // cleanup = true // Reduce the job submit rate to about 3 per second, this way the server won't be bombarded with jobs // Limit queueSize to keep job rate under control and avoid timeouts executor { submitRateLimit = '30/1min' queueSize = 50 } // Add backoff strategy to catch cluster timeouts process { errorStrategy = { sleep(Math.pow(2, task.attempt) * 200 as long); return 'retry' } maxRetries = 5 } // Specify that singularity should be used and where the cache dir will be for the images singularity { enabled = true autoMounts = true cacheDir = "$scratch_dir/singularity" } env { SINGULARITY_CACHEDIR="$scratch_dir/.singularity" } // Define profiles for each cluster profiles { skitty { params { config_profile_description = 'HPC_SKITTY profile for use on the Skitty cluster of the VSC HPC.' config_profile_contact = 'ict@cmgg.be' config_profile_url = 'https://www.ugent.be/hpc/en' max_memory = 177.GB max_cpus = 36 max_time = 72.h } process { executor = 'slurm' queue = 'skitty' scratch = "$scratch_dir" } } swalot { params { config_profile_description = 'HPC_SWALOT profile for use on the Swalot cluster of the VSC HPC.' config_profile_contact = 'ict@cmgg.be' config_profile_url = 'https://www.ugent.be/hpc/en' max_memory = 116.GB max_cpus = 20 max_time = 72.h } process { executor = 'slurm' queue = 'swalot' scratch = "$scratch_dir" } } victini { params { config_profile_description = 'HPC_VICTINI profile for use on the Victini cluster of the VSC HPC.' config_profile_contact = 'ict@cmgg.be' config_profile_url = 'https://www.ugent.be/hpc/en' max_memory = 88.GB max_cpus = 36 max_time = 72.h } process { executor = 'slurm' queue = 'victini' scratch = "$scratch_dir" } } kirlia { params { config_profile_description = 'HPC_KIRLIA profile for use on the Kirlia cluster of the VSC HPC.' config_profile_contact = 'ict@cmgg.be' config_profile_url = 'https://www.ugent.be/hpc/en' max_memory = 738.GB max_cpus = 36 max_time = 72.h } process { executor = 'slurm' queue = 'kirlia' scratch = "$scratch_dir" } } doduo { params { config_profile_description = 'HPC_DODUO profile for use on the Doduo cluster of the VSC HPC.' config_profile_contact = 'ict@cmgg.be' config_profile_url = 'https://www.ugent.be/hpc/en' max_memory = 250.GB max_cpus = 96 max_time = 72.h } process { executor = 'slurm' queue = 'doduo' scratch = "$scratch_dir" } } }