USNW Katana HPC Configuration

nf-core pipelines have been successfully configured for use on the UNSW Katana at the University of New South Wales, Sydney, Australia.

To run an nf-core pipeline at UNSW Katana, run the pipeline with -profile singularity,unsw_katana. This will download and launch the unsw_katana.config which has been pre-configured with a setup suitable for the unsw katana HPC cluster. Using this profile, a Singularity image image containing all of the required software will be used for the pipeline.

Launch an nf-core pipeline on Katana

Prerequisites

Before running the pipeline you will need to load Nextflow and Java, both of which are globally installed modules on Katana. You can do this by running the commands below:

module purge
module load nextflow java

Execution command

module load nextflow
module load java
 
nextflow run <nf-core_pipeline>/main.nf \
    -profile singularity,unsw_katana \
    <additional flags>

Queue limits

This config is defined in line with the UNSW Katana queue limits.

Config file

See config file on GitHub

unsw_katana.config
// UNSW Katana nf-core configuration profile
 
 
params {
    config_profile_description = 'UNSW Katana HPC profile provided by nf-core/configs.'
    config_profile_contact = '@jscgh'
    config_profile_url = 'https://docs.restech.unsw.edu.au/'
}
 
process {
    executor = 'pbspro'
    queue = 'submission'
 
    resourceLimits = [
    memory: 248.GB,
    cpus: 24,
    time: 100.h
    ]
 
    withLabel:process_single {
        cpus   = { 1                       }
        memory = { 4.GB     * task.attempt }
        time   = { 2.h      * task.attempt }
    }
    withLabel:process_low {
        cpus   = { 2        * task.attempt }
        memory = { 12.GB    * task.attempt }
        time   = { 2.h      * task.attempt }
    }
    withLabel:process_medium {
        cpus   = { 8        * task.attempt }
        memory = { 62.GB    * task.attempt }
        time   = { 12.h     * task.attempt }
    }
    withLabel:process_high {
        cpus   = { 12       * task.attempt }
        memory = { 124.GB    * task.attempt }
        time   = { 48.h     * task.attempt }
    }
    withLabel:process_long {
        time   = { 100.h     * task.attempt }
    }
    withLabel:process_high_memory {
        memory = { 248.GB   * task.attempt }
    }
    withLabel:error_ignore {
        errorStrategy = 'ignore'
    }
    withLabel:error_retry {
        errorStrategy = 'retry'
        maxRetries    = 1
    }
}