-
Notifications
You must be signed in to change notification settings - Fork 277
/
utd_ganymede.config
75 lines (65 loc) · 2.03 KB
/
utd_ganymede.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//Profile config names for nf-core/configs
params {
config_profile_description = 'University of Texas at Dallas HPC cluster profile provided by nf-core/configs'
config_profile_contact = 'Edmund Miller(@emiller88)'
config_profile_url = 'http://docs.oithpc.utdallas.edu/'
}
env {
TMPDIR = "/home/$USER/scratch/tmp"
SINGULARITY_CACHEDIR="/home/$USER/scratch/singularity"
}
singularity {
enabled = true
envWhitelist='SINGULARITY_BINDPATH,LD_LIBRARY_PATH'
autoMounts = true
cacheDir = "/home/$USER/scratch/singularity"
}
def membership = "groups".execute().text
def select_queue = { memory, cpu ->
if (memory <= 32.GB && cpu <= 16 && membership.contains('genomics')) {
return 'genomics,normal'
}
if (memory > 32.GB && memory <= 125.GB && cpu <= 12 && membership.contains('kim')) {
return 'Kim,128s'
}
if (memory > 32.GB && memory <= 125.GB && cpu <= 16) {
return '128s'
}
if (memory <= 250.GB && cpu <= 28) {
return '256i,256h'
}
}
// Submit up to 300 concurrent jobs
// pollInterval and queueStatInterval of every 5 minutes
// submitRateLimit of 20 per minute
executor {
queueSize = 300
pollInterval = '5 min'
queueStatInterval = '5 min'
submitRateLimit = '20 min'
}
process {
beforeScript = 'module load singularity/3.2.1'
executor = 'slurm'
queue = { select_queue(task.memory, task.cpu) }
withLabel:process_low {
cpus = { check_max( 2 * task.attempt, 'cpus' ) }
memory = { check_max( 12.GB * task.attempt, 'memory' ) }
time = { check_max( 6.h * task.attempt, 'time' ) }
}
withLabel:process_medium {
cpus = { check_max( 16 * task.attempt, 'cpus' ) }
memory = { check_max( 31.GB * task.attempt, 'memory' ) }
time = { check_max( 8.h * task.attempt, 'time' ) }
}
withLabel:process_high {
cpus = { check_max( 12 * task.attempt, 'cpus' ) }
memory = { check_max( 120.GB * task.attempt, 'memory' ) }
time = { check_max( 16.h * task.attempt, 'time' ) }
}
}
params {
max_memory = 250.GB
max_cpus = 28
max_time = 96.h
}