1010
1111process {
1212
13- cpus = { check_max( 1 * task.attempt, 'cpus' ) }
14- memory = { check_max( 6.GB * task.attempt, 'memory' ) }
15- time = { check_max( 4.h * task.attempt, 'time' ) }
13+ cpus = 1
14+ memory = { 6.GB * task.attempt }
15+ time = { 4.h * task.attempt }
1616
1717 errorStrategy = { task.exitStatus in ((130..145) + 104) ? 'retry' : 'finish' }
1818 maxRetries = 1
1919 maxErrors = '-1'
2020
2121 // Process-specific resource requirements
2222 withLabel:process_single {
23- cpus = { check_max( 1 , 'cpus' ) }
24- memory = { check_max( 6.GB * task.attempt, 'memory' ) }
25- time = { check_max( 4.h * task.attempt, 'time' ) }
23+ cpus = 1
24+ memory = { 6.GB * task.attempt }
25+ time = { 4.h * task.attempt }
2626 }
2727 withLabel:process_low {
28- cpus = { check_max( 2 * task.attempt, 'cpus' ) }
29- memory = { check_max( 12.GB * task.attempt, 'memory' ) }
30- time = { check_max( 4.h * task.attempt, 'time' ) }
28+ cpus = { 2 * task.attempt }
29+ memory = { 12.GB * task.attempt }
30+ time = { 4.h * task.attempt }
3131 }
3232 withLabel:process_medium {
33- cpus = { check_max( 6 * task.attempt, 'cpus' ) }
34- memory = { check_max( 36.GB * task.attempt, 'memory' ) }
35- time = { check_max( 8.h * task.attempt, 'time' ) }
33+ cpus = { 6 * task.attempt }
34+ memory = { 36.GB * task.attempt }
35+ time = { 8.h * task.attempt }
3636 }
3737 withLabel:process_high {
38- cpus = { check_max( 12 * task.attempt, 'cpus' ) }
39- memory = { check_max( 72.GB * task.attempt, 'memory' ) }
40- time = { check_max( 16.h * task.attempt, 'time' ) }
38+ cpus = { 12 * task.attempt }
39+ memory = { 72.GB * task.attempt }
40+ time = { 16.h * task.attempt }
4141 }
4242 withLabel:process_long {
43- time = { check_max( 20.h * task.attempt, 'time' ) }
43+ time = { 20.h * task.attempt }
4444 }
4545 withLabel:process_high_memory {
46- memory = { check_max( 200.GB * task.attempt, 'memory' ) }
46+ memory = { 200.GB * task.attempt }
4747 }
4848
4949 // GPU-specific labels for Boltzgen
5050 withLabel:process_high_gpu {
5151 // Boltzgen requires GPU and substantial memory
52- cpus = { check_max( 8 * task.attempt, 'cpus' ) }
53- memory = { check_max( 64.GB * task.attempt, 'memory' ) }
54- time = { check_max( 48.h * task.attempt, 'time' ) }
52+ cpus = { 8 * task.attempt }
53+ memory = { 64.GB * task.attempt }
54+ time = { 48.h * task.attempt }
5555
5656 // GPU configuration - request 1 GPU by default
57- accelerator = { check_max( 1, 'gpus' ) }
57+ accelerator = 1
5858 clusterOptions = { task.ext.clusterOptions ?: '' }
5959
6060 // Container GPU access for Docker
@@ -63,38 +63,38 @@ process {
6363
6464 // GPU label for processes that can optionally use GPU
6565 withLabel:process_medium_gpu {
66- cpus = { check_max( 6 * task.attempt, 'cpus' ) }
67- memory = { check_max( 36.GB * task.attempt, 'memory' ) }
68- time = { check_max( 8.h * task.attempt, 'time' ) }
66+ cpus = { 6 * task.attempt }
67+ memory = { 36.GB * task.attempt }
68+ time = { 8.h * task.attempt }
6969
7070 // GPU configuration - request 1 GPU
71- accelerator = { check_max( 1, 'gpus' ) }
71+ accelerator = 1
7272
7373 // Container GPU access for Docker
7474 containerOptions = '--gpus all'
7575 }
7676
7777 withName:BOLTZGEN_RUN {
7878 // Extended time for large design runs
79- time = { check_max( 72.h * task.attempt, 'time' ) }
79+ time = { 72.h * task.attempt }
8080
8181 // Increase memory for large num_designs
82- memory = { 40.GB * task.attempt }
82+ memory = { 40.GB * task.attempt }
8383
8484 // Request 1 GPU - Boltzgen uses single GPU efficiently
85- accelerator = { check_max( 1, 'gpus' ) }
85+ accelerator = 1
8686 containerOptions = '--gpus all'
8787 }
8888
8989 withName:PROTEINMPNN_OPTIMIZE {
9090 // ProteinMPNN can benefit significantly from GPU acceleration
9191 // The model is PyTorch-based and CUDA-compatible
92- cpus = { check_max( 4 * task.attempt, 'cpus' ) }
93- memory = { check_max( 16.GB * task.attempt, 'memory' ) }
94- time = { check_max( 6.h * task.attempt, 'time' ) }
92+ cpus = { 4 * task.attempt }
93+ memory = { 16.GB * task.attempt }
94+ time = { 6.h * task.attempt }
9595
9696 // Request 1 GPU for ProteinMPNN inference
97- accelerator = { check_max( 1, 'gpus' ) }
97+ accelerator = 1
9898
9999 // Container GPU access for Docker
100100 containerOptions = '--gpus all'
@@ -103,20 +103,20 @@ process {
103103 withName:FOLDSEEK_SEARCH {
104104 // Foldseek supports GPU acceleration for searches
105105 // GPU provides 4-27x speedup for structure alignment
106- cpus = { check_max( 8 * task.attempt, 'cpus' ) }
107- memory = { check_max( 32.GB * task.attempt, 'memory' ) }
108- time = { check_max( 4.h * task.attempt, 'time' ) }
106+ cpus = { 8 * task.attempt }
107+ memory = { 32.GB * task.attempt }
108+ time = { 4.h * task.attempt }
109109
110110 // Request 1 GPU for accelerated searches
111- accelerator = { check_max( 1, 'gpus' ) }
111+ accelerator = 1
112112
113113 // Container GPU access for Docker + override entrypoint to allow bash scripts
114114 containerOptions = '--gpus all --entrypoint ""'
115115 }
116116
117117 withName:BOLTZ2_REFOLD {
118- accelerator = { check_max( 1, 'gpus' ) }
119- memory = { check_max( 32.GB * task.attempt, 'memory' ) }
118+ accelerator = 1
119+ memory = { 32.GB * task.attempt }
120120 containerOptions = '--gpus all -e TORCH_FLOAT32_MATMUL_PRECISION=medium'
121121 }
122122}
0 commit comments