Build pipeline: viash-hub.htrnaseq.v0.1-4fqnc
Source commit: c1e9594076
Source message: Bump version to 0.1.0
109 lines
2.9 KiB
Plaintext
109 lines
2.9 KiB
Plaintext
executor {
|
|
$k8s {
|
|
submitRateLimit = '10sec'
|
|
pollInterval = '1 sec'
|
|
}
|
|
}
|
|
|
|
process {
|
|
container = 'nextflow/bash:latest'
|
|
|
|
// default resources
|
|
memory = { 8.Gb * task.attempt }
|
|
cpus = 8
|
|
maxForks = 36
|
|
|
|
// Retry for exit codes that have something to do with memory issues
|
|
errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' }
|
|
maxRetries = 3
|
|
maxMemory = 192.GB
|
|
|
|
// Resource labels
|
|
withLabel: verylowcpu { cpus = 2 }
|
|
withLabel: lowcpu { cpus = 8 }
|
|
withLabel: midcpu { cpus = 16 }
|
|
withLabel: highcpu { cpus = 32 }
|
|
|
|
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
|
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
|
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
|
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
|
|
|
}
|
|
|
|
profiles {
|
|
// detect tempdir
|
|
tempDir = java.nio.file.Paths.get(
|
|
System.getenv('NXF_TEMP') ?:
|
|
System.getenv('VIASH_TEMP') ?:
|
|
System.getenv('TEMPDIR') ?:
|
|
System.getenv('TMPDIR') ?:
|
|
'/tmp'
|
|
).toAbsolutePath()
|
|
|
|
mount_temp {
|
|
docker.temp = tempDir
|
|
podman.temp = tempDir
|
|
charliecloud.temp = tempDir
|
|
}
|
|
|
|
no_publish {
|
|
process {
|
|
withName: '.*' {
|
|
publishDir = [
|
|
enabled: false
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
docker {
|
|
docker.fixOwnership = true
|
|
docker.enabled = true
|
|
// docker.userEmulation = true
|
|
singularity.enabled = false
|
|
podman.enabled = false
|
|
shifter.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
|
|
local {
|
|
// This config is for local processing.
|
|
process {
|
|
withName: ".*parallel_map_process" {
|
|
maxForks = 1
|
|
}
|
|
maxMemory = 25.GB
|
|
withLabel: verylowcpu { cpus = 2 }
|
|
withLabel: lowcpu { cpus = 4 }
|
|
withLabel: midcpu { cpus = 6 }
|
|
withLabel: highcpu { cpus = 8 }
|
|
|
|
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
|
withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } }
|
|
withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } }
|
|
}
|
|
}
|
|
}
|
|
|
|
def get_memory(to_compare) {
|
|
if (!process.containsKey("maxMemory") || !process.maxMemory) {
|
|
return to_compare
|
|
}
|
|
|
|
try {
|
|
if (process.containsKey("maxRetries") && process.maxRetries && task.attempt == (process.maxRetries as int)) {
|
|
return process.maxMemory
|
|
}
|
|
else if (to_compare.compareTo(process.maxMemory as nextflow.util.MemoryUnit) == 1) {
|
|
return max_memory as nextflow.util.MemoryUnit
|
|
}
|
|
else {
|
|
return to_compare
|
|
}
|
|
} catch (all) {
|
|
println "Error processing memory resources. Please check that process.maxMemory '${process.maxMemory}' and process.maxRetries '${process.maxRetries}' are valid!"
|
|
System.exit(1)
|
|
}
|
|
}
|